Are there any downsides in using C++ for network daemons?

Posted by badcat on Stack Overflow See other posts from Stack Overflow or by badcat
Published on 2011-01-16T09:18:28Z Indexed on 2011/01/16 9:53 UTC
Read the original article Hit count: 241

Hey guys!

I've been writing a number of network daemons in different languages over the past years, and now I'm about to start a new project which requires a new custom implementation of a properitary network protocol.

The said protocol is pretty simple - some basic JSON formatted messages which are transmitted in some basic frame wrapping to have clients know that a message arrived completely and is ready to be parsed.

The daemon will need to handle a number of connections (about 200 at the same time) and do some management of them and pass messages along, like in a chat room.

In the past I've been using mostly C++ to write my daemons. Often with the Qt4 framework (the network parts, not the GUI parts!), because that's what I also used for the rest of the projects and it was simple to do and very portable. This usually worked just fine, and I didn't have much trouble.

Being a Linux administrator for a good while now, I noticed that most of the network daemons in the wild are written in plain C (of course some are written in other languages, too, but I get the feeling that > 80% of the daemons are written in plain C).

Now I wonder why that is. Is this due to a pure historic UNIX background (like KISS) or for plain portability or reduction of bloat? What are the reasons to not use C++ or any "higher level" languages for things like daemons?

Thanks in advance!


Update 1:

For me using C++ usually is more convenient because of the fact that I have objects which have getter and setter methods and such. Plain C's "context" objects can be a real pain at some point - especially when you are used to object oriented programming.

Yes, I'm aware that C++ is a superset of C, and that C code is basically C++. But that's not the point. ;)

© Stack Overflow or respective owner

Related posts about c++

Related posts about c