Sun, 25 Jul 2010 20:21:05 -0500, Andrei Alexandrescu wrote: > On 07/25/2010 04:54 PM, bearophile wrote: >> Andrei Alexandrescu: >>> In my humble opinion, the design of Java, C#, and Go is proof that >>> their authors didn't get the STL. Otherwise, those languages would be >>> very different. >> >> I don't believe you. Among the designers of Java, C# and Go there are >> people that are both experts and smart. C# designers have shown to be >> sometimes smarter than D designers. So I think some of them 'get the >> STL' and understand its advantages, but despite this in the universe >> they have found some other reasons to refuse it. I think they were >> unwilling to pay the large price in language complexity, >> bug-prone-ness, code bloat and compilation speed that C++ and D are >> willing to pay. > > But then their containers and algorithms are markedly inferior to STL's. > They are toxic to the programmers who have only been exposed to them. So > Java and C# got STL and decided to not go with it, I'm sure they would > have at least gotten a few good bits from it. But no - the entire e.g. > Java container library is parallel to everything STL stands for.
I think the Java/C# developers gave up X % of the execution speed to avoid hard crashes (exceptions instead of segfaults) AND to make it possible for ordinary people to develop applications. Even Java was too complex so the less bright people made PHP for the idiot part of the community (I'm not saying all PHP users are idiots, but if you're an idiot, you can't develop in Java or C++, but you can fluently write PHP). It's a sad fact that not everyone is as intelligent as A. Alexandrescu or W. Bright. A PHP website for a local fishing club doesn't need super efficient code. Why? There are maybe 2..4 visitors daily and the only interactive part on the page is a feedback form. A typical C/C++/D program written by a mediocre developer crashes every 15..60 minutes because of bug prone low level code. That's the reason why there are "inferior" languages. PHP doesn't crash. You just get an interactive error message. And you can fix the bug in 1..5 minutes without restarting the server. A novice coder is willing to sacrifice 99.9% of performance to get this feature.