Browse thread
stl?
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Jon Harrop <jon@f...> |
| Subject: | Re: [Caml-list] stl? |
On Wednesday 04 March 2009 20:49:14 Yoann Padioleau wrote: > Jon Harrop <jon@ffconsultancy.com> writes: > > On Wednesday 04 March 2009 16:48:18 Yoann Padioleau wrote: > >> I don't think so. I've read the last "history of C++" by Stroustrup > >> in HOPL-III, who discusses quite a lot about the STL and Stepanov, > >> and from what I remember unboxing was a big issue > >> and having "generic" (which is slightly different from polymorphic) > >> algorithms without introducing performance > >> penalty that object-solution has with dynamic dispatch was also > >> a big issue. Those people are not stupid. > > > > If they were not stupid, why were their innovations were dropped, e.g. > > Java, C# and even VB.NET > > First, who cares about Java or C# or VB.NET? About 60% of all professional developers. > Last time I checked, > all the software I use on my machine (linux, mozilla, apache, mysql, emacs, > X-windows, gtk, gnome, git, transmission, ...) are written in > C and sometimes C++ (well except the beautiful ocamlopt and ocamldebug). Of course, most of those programs predate .NET. > >From what I know, most Microsoft software are still written in C++ > > (Office, Visual Studio, the kernel, etc), and most Apple software > too (with sometimes some objective C stuff). Do we have an example > of a Java killer-app ? Does Java need a killer app? > > provide parametric polymorphism from ML (aka generics) > > instead of C++ templates? > > But haven't they added generics in Java because Java programmers > wanted some of the capabilities of C++ templates ? They even > use its syntax, and recent Java has added some ugly extensions > with some star-stuff around it that I don't understand. So I think > Java generics are closer to C++ templates than ML parametric polymorphism > and its inference. Java's generics were by Wadler (Haskell) and Odersky (Scala) and .NET's generics were by Syme (F#). They all followed ML and not C++. > And Java has decided to not follow C++ on many things, they also > don't have overloading... Java has overloading but not overloaded operators. > >> They know about ML. > > > > IIRC Alex Stepanov claimed to know ML but then made a series of factually > > incorrect statements about it, e.g. "phantom types do not exist". > > I know ML and I don't know those phantom types thing. And if they are > "phantom", isn't he right indeed that they do not actually exist? No. :-) > Do ML designers really know C++ and all its lastest features too > as in C++0x ? The designers of ML obviously didn't know any C++ because they designed ML before C++ had been invented. I'm not sure there is much for anyone to learn from C++98/C++03/C++0x. They are just flogging a dead horse. > > His published work includes nothing on anything related to ML: > > > > http://www.stepanovpapers.com/ > > > > I do not believe they knew about ML. > > I think at least Stroustrup mentions in its "the design and > evolution of C++" book some comparisons with ML. > But probably at that time ML didn't > have yet the functor stuff, just the parametric polymorphism. Stroustrup may well have not known about functors when he was designing C++ but not being familiar with parametric polymorphism was silly. > > I've learned about 20 > > programming languages now and every one taught me something new. C++ > > taught me what happens when you let idiots loose on programming language > > design and get industry to hype the result regardless of its objective > > value. > > C++ taught me that if you want to be really successful, you need a > migration path (or you need to wait for old programmers to die or that a > very different kind of platform arrives so that legacy code > does not matter any more, e.g. the web). Indeed. Which raises the question of how I should put an OCaml front end onto HLVM... > > I'm very happy to see C++ dying. > > Is it ? Yes. > >> > Scripting languages were not so hot at the time, short of Perl, but > >> > Ruby would easily fit well into the STL idea, just like Lisp also did. > >> > >> No, because of the performance penalty of dispatch. Again, those C++ > >> designer guys have strong requirments on performance. > > > > Their performance requirements were: destroy the performance of anything > > we are not familiar with in order to preserve the performance of familiar > > features > > regardless of the relative merits of the different approaches. That > > is really stupid and very counter productive, of course. > > Did Stroustrup did that? I never saw Stroustrup criticizing > other languages (but I've seend many Java people trashing C++). Stepanov, IIRC, gave a list of languages that he claimed were incapable and was wrong. I would not trust his opinion on such matters and consider C++ to be more of a get-rich-quick scam than a valuable constribution to programming. C++ is one of the few languages I would advise people to not bother learning. -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e