Fellow Monks,
In an interview with Howard Dierking (from MSDN), Bjarne Stroustrup (BS: the father of C++) shares his current thoughts on programming language and software design.
Though C/C++ is a statically typed language suite, suited (so to speak) for low level systems programming, and tho' BS doesn't mention Perl per se, I found it interesting how he - during the interview - stresses the core the virtues of ... Perl :-)
A general-purpose language should support the writing of libraries that express general and application-specific notions, support tool building, and provide the glue needed to connect different parts of an application. For that, the language needs flexibility, an expressive type system, good basic performance, and long-term stability.
I worry about the number of languages being designed, implemented, introduced with great fanfare, and then fading away without significant impact. During this—typically many-years long phase of development—a new language consumes significant resources with essentially no returns. I wrote a paper on this phenomenon called "A Rationale for Semantically Enhanced Library Languages". I argue for using libraries, possibly supported by tools, and a general-purpose language
From the above mentioned paper :
Basically,
designing, implementing, maintaining and supporting
a language is tremendously expensive. Only a large user
community can shoulder the long-term parts of that.
The net effect is that on the order of 200 new languages are developed each year and that about 200 languages become unsupported each year.
That's a viewpoint relevant also for the Perl community and the current evolution to Perl6, including Perl5 compatibility. (see also Evolving a language in and for the real world: C++ 1991-2006).
Allan Dystrup.
Re: On the Evolution of Languages
by elmex (Friar) on Apr 18, 2008 at 07:06 UTC
|
Hmm, interesting indeed. That are the general requirements
for any pragmatic and practical language I guess.
I worry about the number of languages being designed, implemented, introduced with great fanfare, and then fading away without significant impact.
Thats indeed true. I myself designed multiple small toy
languages, just for fun and for learning how to use
bison and how one could implement closures and all.
But I would've never had the strength or the time to
make it really usable, to round up the edges and fix the
bugs and write the standard library, which is the MOST
important part just right after a nice syntax.
About Perl6: I wonder whether they have a large enough
user community. After I learned 2-3 years ago that Perl6
won't be usable for another 2-3 years (despite all the loud
propaganda and hype), I concentrated on Perl (5) again.
About C++: There are times I get the need to write
some C++ code, especially with the nice libraries provided
by the boost project.
But in the end I come back to Perl and write the real
application there somehow. The value and flexibility of anonymous closures is just too big, and coding C++ can
also be very tedious work. Adding the method in the header
and then in the code file, for each callback make another
function which also has to be declared correctly, and
so on.
In the end I think to myself: Hey, I'm doing this for fun
and in my free time, so why not use a language you can
actually make more progress and be more flexible for
big future changes.
| [reply] |
Re: On the Evolution of Languages
by sundialsvc4 (Abbot) on Apr 18, 2008 at 13:38 UTC
|
“A language” is much more than just a compiler: it is an environment. Perl-5 is not the most elegantly designed or implemented compiler ... certainly not the most elegantly designed language ... that I have ever used in my quarter-century at doing this. But what it does, it does very well. And through the CPAN library, it allows a designer to leverage a large suite of existing function.
Perl also shows the intrinsic benefit of open-source: for all the stock Chevys that are running down the street on Saturday night, now and then one rolls by with something totally-cool stuck onto it ... “Pragmatic Perl” ... and a while a few hundred folks are oohing-and-aahing at what they see, another guy's got a scowl on his face and a scrap of paper in his hand and an idea. Which sooner-or-sooner winds up in Perl.
And so, I would argue, a lot of what we see and use and take for granted is a product of synergy. The Detroit designers are working on the Chevrolet from one point of view, and the Saturday-night street-rodders are simultaneously working on the same thing from a different point of view, and ... lo! ... what shows up downtown (and in a very remarkably-short amount of time) is actually a hybrid of both.
It takes a lot of synergy, and a certain amount of chance, for that to “happen.” As we can plainly see by comparing the richness of Unix/Linux development environments to the stark paucity of Windows, “money can't buy you love.”
| |
Re: On the Evolution of Languages
by amarquis (Curate) on Apr 18, 2008 at 13:12 UTC
|
I've not read anything from/about him since reading his C++ text years ago, but the following (about dynamic vs. static):
Not really. I think people are comparing apples and oranges too often. I don't think we have a choice between static and dynamic languages in general and furthermore I don't think languages cleanly fit into those two categories: most if not all dynamic languages have aspects that are statically determined, and all the major static languages can do things that require run-time determination of the meaning of values. There are fashions, of course, and I can't guess about those, but I think that many real-world language choices are rationally made based on the requirements of an application, an application area, and/or the skills of the available developers.
... marks him as a pretty cool fellow. I don't like it when people try to stuff languages in little boxes (like, for example, 'scripting language') into which they do not fit.
Also, I imagine that most, when confronted with a question like "dynamic vs. static languages" would feel compelled to say something profound over something pithy. Or even just plug the virtues of their own language. Instead he tells the truth, that language choice is a really complex space with many factors. Not a sexy sound bite, but true.
| [reply] |
|
| [reply] |
|
I agree with this. I also enjoyed Bjarne Stroustrup's comments on the evolution of C++ vs Java (in : Evolving a language...), technically and - not the least - in the marketplace (the “genes” of C++ and Java) ...
Bjarne Stroustrup goes on to describe the early .NET
platform with C++/CLI extensions (the precursor to C#) and also mentions some major MS applications based on C++ :
• Windows XP
• Office
• Internet explorer
• Visual Studio
• .Net
• C# compiler
Best regards,
Allan Dystrup
| [reply] |
|
|