From: Jon Harrop <jon@ffconsultancy.com>
To: caml-list@yquem.inria.fr
Subject: Re: [Caml-list] stl?
Date: Wed, 4 Mar 2009 20:07:43 +0000 [thread overview]
Message-ID: <200903042007.43232.jon@ffconsultancy.com> (raw)
In-Reply-To: <87eixdz12l.fsf@aryx.cs.uiuc.edu>
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 provide parametric polymorphism from ML (aka generics)
instead of C++ templates?
> 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". His
published work includes nothing on anything related to ML:
http://www.stepanovpapers.com/
I do not believe they knew about ML.
> 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.
> I hate C++ with a passion, but the C++ designers are far from stupid.
C++ is the pedagogical example of bad language design. 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.
I'm very happy to see C++ dying.
> > 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.
> 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
next prev parent reply other threads:[~2009-03-04 20:02 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-03 21:40 stl? Raoul Duke
2009-03-03 22:31 ` [Caml-list] stl? Yoann Padioleau
2009-03-03 22:42 ` Till Varoquaux
2009-03-03 23:36 ` Jon Harrop
2009-03-04 0:13 ` Peng Zang
2009-03-04 0:58 ` Yoann Padioleau
2009-03-04 1:10 ` Raoul Duke
2009-03-04 1:19 ` Pal-Kristian Engstad
2009-03-04 1:21 ` Yoann Padioleau
2009-03-04 1:29 ` Jon Harrop
2009-03-04 14:26 ` Kuba Ober
2009-03-04 14:24 ` Kuba Ober
2009-03-03 23:42 ` Jon Harrop
2009-03-04 0:11 ` Brian Hurt
2009-03-04 1:05 ` Yoann Padioleau
2009-03-04 4:56 ` Brian Hurt
2009-03-04 20:11 ` Yoann Padioleau
2009-03-04 21:59 ` Brian Hurt
2009-03-04 22:42 ` Yoann Padioleau
2009-03-04 23:19 ` Jon Harrop
2009-03-04 23:03 ` Jon Harrop
2009-03-11 3:16 ` Brian Hurt
2009-03-11 5:57 ` David Rajchenbach-Teller
2009-03-11 6:11 ` David Rajchenbach-Teller
2009-03-04 1:59 ` Jon Harrop
2009-03-04 6:11 ` Brian Hurt
2009-03-04 14:08 ` Christophe TROESTLER
2009-03-04 14:19 ` Peng Zang
2009-03-04 16:14 ` Brian Hurt
2009-03-04 16:35 ` Andreas Rossberg
2009-03-04 16:40 ` Peng Zang
2009-03-04 21:43 ` Nicolas Pouillard
2009-03-05 11:24 ` Wolfgang Lux
2009-03-04 19:45 ` Jon Harrop
2009-03-04 21:23 ` Brian Hurt
2009-03-04 23:17 ` Jon Harrop
2009-03-05 2:26 ` stl? Stefan Monnier
2009-03-04 3:10 ` [Caml-list] stl? Martin Jambon
2009-03-04 6:18 ` Brian Hurt
2009-03-04 16:35 ` Mikkel Fahnøe Jørgensen
2009-03-04 16:48 ` Yoann Padioleau
2009-03-04 20:07 ` Jon Harrop [this message]
2009-03-04 20:31 ` Richard Jones
2009-03-04 20:49 ` Yoann Padioleau
2009-03-04 21:20 ` Andreas Rossberg
2009-03-04 21:51 ` Pal-Kristian Engstad
2009-03-04 22:50 ` Jon Harrop
2009-03-04 23:18 ` Pal-Kristian Engstad
2009-03-05 1:31 ` Jon Harrop
2009-03-05 2:15 ` Pal-Kristian Engstad
2009-03-05 3:26 ` Jon Harrop
2009-03-05 6:22 ` yoann padioleau
2009-03-05 7:02 ` Raoul Duke
2009-03-05 8:07 ` Erick Tryzelaar
2009-03-05 9:06 ` Richard Jones
2009-03-05 9:34 ` malc
2009-03-05 9:56 ` Richard Jones
2009-03-05 10:49 ` malc
2009-03-05 11:16 ` Richard Jones
2009-03-05 12:39 ` malc
2009-03-05 19:39 ` Jon Harrop
2009-03-05 21:10 ` Pal-Kristian Engstad
2009-03-05 22:41 ` Richard Jones
2009-03-05 22:53 ` malc
2009-03-05 8:59 ` Richard Jones
2009-03-05 17:50 ` Raoul Duke
2009-03-05 8:17 ` Kuba Ober
2009-03-05 1:06 ` Jon Harrop
2009-03-05 9:09 ` Richard Jones
2009-03-05 20:44 ` Jon Harrop
2009-03-05 20:50 ` Jake Donham
2009-03-05 21:28 ` [Caml-list] OCaml's intermediate representations Jon Harrop
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200903042007.43232.jon@ffconsultancy.com \
--to=jon@ffconsultancy.com \
--cc=caml-list@yquem.inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox