Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

On the Evolution of Languages

by ady (Deacon)
on Apr 18, 2008 at 06:19 UTC ( #681389=perlmeditation: print w/replies, xml ) Need Help??

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.

Replies are listed 'Best First'.
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.

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.

      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

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://681389]
Approved by ysth
Front-paged by mr_mischief
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (3)
As of 2022-10-07 06:54 GMT
Find Nodes?
    Voting Booth?
    My preferred way to holiday/vacation is:

    Results (29 votes). Check out past polls.