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: | Yoann Padioleau <padator@w...> |
| Subject: | Re: [Caml-list] stl? |
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 ? 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). >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 ? > 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. And Java has decided to not follow C++ on many things, they also don't have overloading, they have a GC, etc. It's just not the same target. > >> 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 ? Do ML designers really know C++ and all its lastest features too as in C++0x ? > 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. > >> C++ even has some advanced dependent types in some way (array<n>). > > I would not call it "advanced". C++'s type system was accidentally Turing > complete in a very practically limited way. > > Haskell is similar in this respect: check Oleg's 600-line GHC-extended Haskell > equivalent of the OCaml code: > > `a > > That's what the "power" of Turing completeness buys you. :) Indeed. Many of those typing-guru tricks are as ugly and incomprensible than all the tricks people use with C++ expression templates. > >> I hate C++ with a passion, but the C++ designers are far from stupid. > > C++ is the pedagogical example of bad language design. That's what I was thinking before reading Stroustrup's HOPL-III paper where you can a chance to get inside the head of stroustrup and the rationale for many of his decisions. Stroustrup wanted a transition path from C to OO, and he wanted to make that possible without introducing any bit of performance penalty versus a hand crafted C program, because he knew the programmers he targeted were really stubborn on performance and then even a 1% overhead would not be accepted (you can call those programmers morons, but that's the kind of people he wanted to have an impact on). He succeeded. > 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). > > I'm very happy to see C++ dying. Is it ? > >> > 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++). > >> Most of us can live with those overheads, but apparently they don't. > > No, we don't just live with the overheads. We reap the benefits of objectively > well-engineered features like fast exceptions and fast garbage collection > that C++ is incapable of. > > -- > Dr Jon Harrop, Flying Frog Consultancy Ltd. > http://www.ffconsultancy.com/?e > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs