> You may have noticed that C++ is not always deemed universally better than C. What language are all the top web servers implemented in?
Apache and nginx => C
Tomcat, Jetty => Java
IIS => C++/C#
> Most OS's actually have a pretty small API footprint (Windows being the obvious outlier). If it were really just about the language bindings, it would not be a real impediment. A language runtime can abstract out the OS (as the C runtime does).
If developers aren't forced to use it, then they won't use it, even if made available.
> I'm going to claim this could well be a function of Darwinian forces.
That is my hope, after all we only need a few generations of developers and then the issue is taken care of by itself.
Okay, if you are going to throw in Tomcat & Jetty, you should also throw in the likes of lighttpd, mongrel2, etc., all of which are written in C. Pretty much all the load balancers/reverse proxies are written in C too. Hmm.... is it maybe possible that it isn't always better to use C++ instead of C?
> IIS => C++/C#
Yup, the one outlier no doubt owes about 0% of its success to its tech stack. In general, if you don't work at Google and want a C++ web server on anything other than Windows, you are looking at a C++ server framework that has an embedded HTTP stack (tntnet, Wt, etc.).
> If developers aren't forced to use it, then they won't use it, even if made available.
I know. I spend all my time watching them because if I don't they just start doing everything in assembly.
> That is my hope, after all we only need a few generations of developers and then the issue is taken care of by itself.
> > Apache and nginx => C > Tomcat, Jetty => Java
> Okay, if you are going to throw in Tomcat & Jetty, you should also throw in the likes of lighttpd, mongrel2, etc., all of which are written in C. Pretty much all the load balancers/reverse proxies are written in C too. Hmm.... is it maybe possible that it isn't always better to use C++ instead of C?
No, they were developed by open source Linux guys that only care about C in what concerns compiled languages.
C++ was always badly received by the Linux community, in contrast with commercial UNIXes.
> IIS => C++/C#
> Yup, the one outlier no doubt owes about 0% of its success to its tech stack. In general, if you don't work at Google and want a C++ web server on anything other than Windows, you are looking at a C++ server framework that has an embedded HTTP stack (tntnet, Wt, etc.).
Yes, nothing like contributing to have more insecure servers around.
>> That is my hope, after all we only need a few generations of developers and then the issue is taken care of by itself.
> I think you missed my point. ;-)
I surely got your point, but it is not about Darwin of languages, rather of developers.
> No, they were developed by open source Linux guys that only care about C in what concerns compiled languages.
> C++ was always badly received by the Linux community, in contrast with commercial UNIXes.
You mean like KDE, Firefox, OpenOffice, OpenCV, VLC, bitcoin... heck even gparted is a C++ app.
The kernel developers obviously have a bias against C++ (and they'd argue that it is a justified bias). User space is a different land.
> Yes, nothing like contributing to have more insecure servers around.
? Not sure your point here...
> I surely got your point, but it is not about Darwin of languages, rather of developers.
> I surely got your point, but it is not about Darwin of languages, rather of developers.
My point was about Darwinian forces applied to language or developers.
I was responding to your point about OS vendors not being left around. It would appear that, for whatever reason, going with something other than C or C++ for your base OS doesn't seem to result in good survival odds.
>> No, they were developed by open source Linux guys that only care about C in what concerns compiled languages. > C++ was always badly received by the Linux community, in contrast with commercial UNIXes.
>You mean like KDE, Firefox, OpenOffice, OpenCV, VLC, bitcoin... heck even gparted is a C++ app.
>The kernel developers obviously have a bias against C++ (and they'd argue that it is a justified bias). User space is a different land.
I use Linux since 1995, and was for some time a Gtkmm contributor in the early days.
I know how it feels to be a C++ developer in Linux land.
> I use Linux since 1995, and was for some time a Gtkmm contributor in the early days.
> I know how it feels to be a C++ developer in Linux land.
The GNOME crowd was self selected to be a bunch of "C not C++" bigots. The KDE community was quite different (even if MOQ is an abomination ;-). The only community I can think of that would be more hostile to C++ is the kernel devs.
I don't think your experiences are accurately reflective of the larger community. Particularly as C++ has improved (really, pre-gcc 3.0 there wasn't a good C++ compiler, and pre-2000 hardly anybody understood RAII, so C++ was kind of a pain), the larger community's attitude has changed. You can see this reflected in the success of the Boost project.
Coming from Turbo Pascal background I tend to be very critic of unsafe by design nature of C and C++. Specially given my focus in compiler design during the university, which allowed me to have a broad focus and experience in many languages, the average HN crowd might not be aware of.
Having said this, I was already coding in C++ in MS-DOS around 1993 (Turbo C++) and only used plain C when forced to do so.
So I have been part of the C++ community since the early PC compilers were available, and experienced this C vs C++ for quite some years now.
The funny part is remember the performance complaints back then about C and C++, that nowadays people state in HN about languages trying to replace them.
Apache and nginx => C
Tomcat, Jetty => Java
IIS => C++/C#
> Most OS's actually have a pretty small API footprint (Windows being the obvious outlier). If it were really just about the language bindings, it would not be a real impediment. A language runtime can abstract out the OS (as the C runtime does).
If developers aren't forced to use it, then they won't use it, even if made available.
> I'm going to claim this could well be a function of Darwinian forces.
That is my hope, after all we only need a few generations of developers and then the issue is taken care of by itself.