Slashdot Mirror


The State of Scripting Languages

Esther Schindler writes to tell us that Lynn Greiner has another look at the state of the scripting universe as a follow on to the same topic three years ago. Greiner talks to major players from each of the main scripting languages (PHP, Perl, Tcl, Python, Ruby, and Javascript) to find out the current status and where they are headed in the future. "The biggest change since 2005 has been the growth of richer Web applications that perform more of their computations in the browser using JavaScript. The demand for these applications has forced developers to learn and use JavaScript much more than before. There's also been a lot of interest in Ruby, another dynamic language, spurred by the release and growth of Ruby on Rails. As a result of these changes, many developers are becoming more comfortable with dynamic languages."

14 of 415 comments (clear)

  1. Re:What about a Comparison Matrix by grahamd0 · · Score: 4, Informative

    Note: I only know PHP and Ruby.

    Learn javascript. It's by far the most valuable language on that list if you already know PHP and IMHO, the most fun regardless.

    Pros:

    • Functions are objects
    • Objects are functions
    • Cross-platorm
    • Easy to learn
    • Will blow your mind when you finally gaze upon it's vast majesty

    Cons:

    • Slowish
    • Client-side only
  2. Major players? by Peter+Cooper · · Score: 3, Informative

    John Lam leads the IronRuby team at Microsoft.

    Okay, John Lam is doing amazing work and IronRuby will likely be of some importance in the Ruby world one day, but "major player"? Microsoft's a major player generally, but in the Ruby world they are not. There are 1001 more notable people in the Ruby community who probably would have been up for this article - Chad Fowler, Dave Thomas, David Heinemeier Hansson, Matz himself.. They seem to have picked senior figures for all of the other languages (except PHP). CIO.com is not that poorly connected, surely?

    1. Re:Major players? by Esther+Schindler · · Score: 5, Informative

      That was a pretty reasonable guess, except it isn't correct. :-)

      Lynn understandably went back to the same people, initially, since it would be easiest to say, "Hey, three years ago you said this... change you mind on anything?" Some of the guys didn't have the time (for example, Guido's a little busy with the next version of Python), so she asked who they'd recommend she speak with instead. To my understanding, Dave Thomas suggested Lam. Though he might have suggested someone else who suggested Lam.

      IOW it had nothing to do with Microsoft. Though, come to think of it, it could be a good idea to ask all the Scripting Dudes and Dudettes from Microsoft for their opinions on stuff. Hmmmmmm.

  3. Osborne by XanC · · Score: 4, Informative

    You're recalling the Osborne Effect. I sure hope that doesn't befall Perl.

    1. Re:Osborne by chromatic · · Score: 3, Informative

      Is it just me or does Perl 6 feel an awful lot like VB.NET?

      I can't answer that directly, having never written VB.NET, but I've written Perl 5 code, Perl 6 code, and VB code, and Perl 6 is a tremendous improvement over Perl 5 in many ways. I say that admitting that I've written a lot of Perl 5 code and I like Perl 5. You should try Perl 6; it's very nice.

      Taking a language that's good enough for what it was used for, making just enough arbitrary syntax changes that you need to re-learn it, and requiring a VM to run it.

      I don't believe any of the syntax changes are arbitrary; they're all documented with their motivations. Besides that, if Perl 6 is only as good as Perl 5 was, there's no reason to work on Perl 6. Again, having written code in both languages, I believe Perl 6 is much better than Perl 5 is, and will be more appropriate for many new types of problems. As well, Perl 5 has a VM too.

      Of course, why you'd need Perl 6 to run Perl 5 code seeing as Perl 5 runs Perl 5 code perfectly well...

      When one of the features of Perl 6 is grammar mutability (such that you can parse Perl 5 code) and one of the main implementations of Perl 6 is a VM that can run Perl 5 code as well as Perl 6 code, it seems silly to require people to rewrite all of their existing Perl 5 code at once before they can use any Perl 6 code.

  4. Re:Glaring Omission: Groovy by Esther+Schindler · · Score: 5, Informative

    It was a conscious omission... or perhaps semi-conscious. Lynn and I thought that if we were going to revisit the topic we should look at the same languages we did before.

    I do want to cover Groovy at CIO.com, honest. Just haven't had a good hook for it yet. I feel like there's an opportunity for "&number; programming languages your developers wish you'd let them use" aimed at CIOs and IT managers, with Groovy probably top on the list. But I don't know what else ought to be on the list, so I haven't done anything with this idea. Suggestions always welcome.—Esther

  5. Re:Things haven't improved much. by Bogtha · · Score: 3, Informative

    They all still suck for about the same reasons they sucked three years ago.

    Python is a nice language, but it still suffers from the limitations of the CPython implementation. It's slow, and integration with standard C modules is troublesome.

    Three years ago, ctypes wasn't part of the standard library. It is now, and it's great, not troublesome at all.

    Python has distro packaging problems - the Python maintainers don't coordinate with the maintainers of key modules, like the ones for talking to databases, and as a result Linux distros don't consistently ship with a CPython and a set of modules that play well together.

    Can you give an example? The DB-API seems like good coordination to me and easy_install psycopg2 and similar have never let me down.

    --
    Bogtha Bogtha Bogtha
  6. Re:Things haven't improved much. by Abcd1234 · · Score: 4, Informative

    There's a Perl 6 effort, with a major language redesign, expected to ship shortly after Duke Nukem Forever.

    Only someone who hasn't been paying attention would believe that. Perl 6, the language, is largely completely specified at this point. Meanwhile, Pugs has gone a long, long way to a working Perl 6 implementation, and the vast strides in Parrot mean Rakudo, the Perl6-on-Parrot implementation, has made immense progress in the last six months.

    Does that means Perl 6 will be out this year? No. There's still plenty of work to do. But the idea that Perl 6 has anything at all in common with DNF (which, unlike Perl 6, has suffered from constantly changing specs, engines, etc) is incredibly insulting to all those who are working to make Perl 6 a reality.

  7. Re:future of perl? by Tassach · · Score: 4, Informative
    Neither Python nor Ruby have a code repository with the depth and breadth of CPAN. Rubygems has promise, but CPAN has at least a 10 year head start on it.

    Perl is a language for getting work done in. Plain and simple. It's not as cool and trendy as Python or Ruby, but it is more mature and IMHO more productive.

    The "write only" complaint of Perl is easily addressed by adhering to some basic coding standards and (gasp!) commenting your code. A little self-discipline goes a long way.

    I work with 4 other Perl programmers. Because we all follow a simple set of coding standards and design patterns, no one has any problems understanding anyone else's code.

    --
    Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
  8. Re:Things haven't improved much. by chromatic · · Score: 3, Informative

    Only someone who hasn't been paying attention would believe that.

    We also release a new version of Rakudo with the monthly stable release of Parrot, as we've done every month for the past 20 months.

  9. Re:future of perl? by Abcd1234 · · Score: 3, Informative

    Can Perl 6 access Perl 5 modules while in Perl 6 mode?

    Yes, Perl 6 will be able to use Perl 5 packages.

  10. Re:Glaring Omission: Groovy by LynnG · · Score: 3, Informative

    As Esther said, there are tons of languages I'd have loved to include, had allotted word count been infinite, but we finally decided to go with the ones we talked about last time, and only add JavaScript because Ajax is so prominent these days.

    I contacted all of the guys from the original article, BTW, but some couldn't participate this time and suggested others who could speak for their language communities.

    Lynn

  11. Re:Caught in a crossfire by xero314 · · Score: 4, Informative

    The primary flaws in javascript are its lack of namespaces, true OO, and, most of all, its lack of types and type safety.

    The primary flaws in javascript are developers that do not understand the fundamentals of the JS language (and I don't mean to be attacking anyone particular, this is just a really common problem).

    JS is 100% Object Oriented. Just because it contains Functions as first class objects and Closures does not mean it is not Object Oriented. Everything in JS is and object, everything. There are no classes because it's a prototypical system not a classical system. The fact that all things are objects and that JS contains closures means that Namespacing does exist, if you have some specific reason to use, just by creating an object to represent the name space and keep all namespace protected objects in that objects scope.

    Also JS is completely type safe. You can not cast an object to a type that it is not (something you can do in none type safe languages like C). What you meant to say is Strongly Static typed, which is found in only a few languages and is a huge hinderance in those languages. Duck Typing, as implemented in JS and few other languages, is far more flexible and just as robust as you still can't screw with memory arbitrarily.

    The only thing I would give you is that it would be interesting if JS variables could be typed (as the objects already are). This would allow the runtime environment to determine type conflicts and for an IDE to be able to have additional autocompletion options. But sadly this would just lead to other problems just as difficult.

  12. Re:Glaring Omission: Groovy by Esther+Schindler · · Score: 3, Informative

    The original title was "State of the Scripting Universe Revisited." It was too long for the ./ subject line. And the CIO.com one had to be written for search engines as well as humans (for reasons that are probably obvious but annoying nonetheless).

    Still, the article's deck does say that it's a follow-up. As you'll see elsewhere in this thread, I'm happy to write about Groovy et al.