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.

Of course they are experts and smart. That doesn't mean they won't make mistakes. Both Java and C# have added generic support only after several cycles. We'll see how long Go manages to resist adding it. My prediction is Go will not become a mainstream language without it.


C# designers have shown to be sometimes smarter than D designers.

And D sometimes has smarter decisions than C#. I think the statement is 
meaningless.



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.

I think that's projecting a lot of the weaknesses of the C++ implementation onto D, and I don't think that is justified. For example, D simply doesn't have the compilation speed problems C++ has.

The code bloat issue is resolvable with implementation effort, and neither C# nor Java have ever had any shortage of resources thrown into their development. The same goes for bug-prone-ness.

D has gone a long way towards reducing the language complexity issue. D templates are *far* simpler than C++ ones, yet more powerful. I also don't see how C# generics are simpler (for the user) than D templates, and C# generics are quite complex under the hood.



Here you can find why C# designers have refused C++-style templates & STL and
chosen the generics instead: http://msdn.microsoft.com/it-it/magazine/cc163683%28en-us%29.aspx One important problem of C# generics can be solved adding IArithmetic<T>: http://www.osnews.com/story/7930

I think a better article is here: http://windowsdevcenter.com/pub/a/oreilly/windows/news/hejlsberg_0800.html

The msdn article makes some misinformed statements.


I like D templates and I agree that adding them to D1 was a good idea (mostly
because D1 is designed to be similar to C++) but you must accept that some
language designers can understand STL and still refuse to add all the
features necessary to implement it.

The computer language space is far, far too large for any one programmer (no matter how expert & smart) to be experienced enough in all the varied paradigms to make informed tradeoffs.

Reply via email to