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."

87 of 415 comments (clear)

  1. Java != Javascript by Anonymous Coward · · Score: 2, Funny

    Preemptive strike! You're a moron, and Java != Javascript!

  2. Schindler's List? by PunkOfLinux · · Score: 5, Funny

    schindler's list looks neat. I'll go read it sometime.

  3. Caught in a crossfire by ilovesymbian · · Score: 3, Interesting

    Nah, I'm not really caught in a crossfire. I still prefer my trusty old Perl over these illegitimate kids and cousins - PHP, Ruby, Python, etc etc.

    1. Re:Caught in a crossfire by MightyMartian · · Score: 5, Insightful

      I am getting more comfortable with Javascript, though I still think DHTML and CSS are fundamentally fucked, and it really is time, if this web delivery of apps thing is for real, to find some more rational means of actually dealing with dynamic content.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    2. Re:Caught in a crossfire by clang_jangle · · Score: 2, Insightful

      CSS is only "fundamentally fucked" because hardly anyone can be bothered to code CSS compliant web pages. It's a shame, really.

      --
      Caveat Utilitor
    3. Re:Caught in a crossfire by FishWithAHammer · · Score: 2, Insightful

      Or write CSS-compliant browsers. Nobody implements CSS fully.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    4. Re:Caught in a crossfire by Crazy+Taco · · Score: 3, Interesting

      I am getting more comfortable with Javascript, though I still think DHTML and CSS are fundamentally f*****,

      I also agree with you on the Javascript side of things. I'm a professional web developer, and I'm writing very complicated applications these days that use almost no postbacks, doing everything in the browser with javascript. It's necessary for performance reasons a lot of times, but developing in javascript is slow and tedious.

      The primary flaws in javascript are its lack of namespaces, true OO, and, most of all, its lack of types and type safety. The types alone cause no end of headaches, because the compiler can't easilly find errors before runtime. We're back to the days of running the code, getting a disaster, and then trying to hunt through to figure out what went wrong. Additionally, it is impossible to have full intellisense in such language, so you have to remember large parts of the library, and even if you get pretty good at that (which I have), you still have to constantly go through javascript reference books as you code trying to remember the name of that one function you want to use and can't remember at the moment...

      and it really is time, if this web delivery of apps thing is for real, to find some more rational means of actually dealing with dynamic content.

      You are right, and such a way has appeared. It is silverlight 2.0. Now those of us who program in .Net can easilly use the .Net framework on the client and the server, and use the same (typesafe!) languages in both locations as well. Silverlight 2 is in beta but should be out by the end of the year, and as soon as it is, I quit javascript. I've trained and used the Silverlight beta already, and within an hour of it I vowed I wouldn't go back to the way things were.

      Note: There are still some advantages to DHTML, assuming browsers are standards compliant. Then you don't have to worry about actually drawing animations on the screen... you just go through the DOM, add or remove some elements, change some css here or there, and the browser handles all the drawing for you. I might have stuck with DHTML had the new version of ECMAScript (the official name of Javascript) actually passed, since it was going to have features like namespaces, true OO, etc. But it was foolishly killed, and with that I leave. I wouldn't be suprised if vast portions of the web migrate away from HTML over the next 10 years because of that. And the glacial slowness at moving to XHTML 2 doesn't help either. It's gotten so bad vendors are trying to start an HTML 5 in the meantime, and I'm not going back to a DOM not based on XML, either. I refuse to be stuck in the past with all the problems of the HTML line.

      --
      Beware of bugs in the above code; I have only proved it correct, not tried it.
    5. Re:Caught in a crossfire by FLEB · · Score: 2, Interesting

      I think CSS has been stretched a fair bit farther than it ever should have been. It's not a layout language-- primarily, it's a text style description language-- but in the absence of anything better, we just have to keep on trying to figure out how to wedge the float mechanism into giving a decent multi-column layout (unless you want to play pixel-perfect with absolute positioning).

      That, and I'd have to say-- and I'm someone who works in CSS every day-- parts of the box model would probably qualify as "fundamentally fucked". I hate to say it, but the flawed IE box model, where fundamental dimension declarations (width/height) include margin/padding/borders, makes a whole lot more sense and involves a whole lot less manual math when you're trying to align disparate parts together.

      --
      Information wants to be free.
      Entertainment wants to be paid.
      You just want to be cheap.
    6. 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.

    7. Re:Caught in a crossfire by IamTheRealMike · · Score: 3, Insightful

      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.

      Wow, that's a pretty extreme point of view. Static typing may be "found in only a few languages" but those languages happen to be the most popular languages by far. Just because every man and his dog has written an interpreted language without static type checking doesn't mean it's somehow a small irrelevant feature. In fact as code bases become larger it becomes nearly essential. I don't see how you can claim it's a "huge hindrance" - you sound like something of a cowboy programmer to be honest. Defining and declaring your types up front may seem inconvenient but it means your codebase can scale, more bugs are found ahead of time, future programmers can more easily comprehend your code and compilers can optimize your code much more easily.

      If there was some kind of efficient, statically typed language available for use in web browsers making it run fast wouldn't be a research problem, and we could replace the unintuitive CSS box model with something that actually worked for web apps. The reason you can't do this today is that JavaScript is just too damn slow to do real time GUI reflow, so you have to let the web browser do it in C++, so you're stuck with CSS.

      The OP doesn't have to wait for SilverLight to get the benefits of static typing however. GWT does the exact same thing today, for Java.

    8. Re:Caught in a crossfire by hobo+sapiens · · Score: 2, Interesting

      Some designs are hard to implement in CSS. Most aren't. The whole "holy grail" multi column layout thing *is* lame. It's not that hard. Just use some negative margins, floats, and one IE min-width hack and you're done.

      I think that many, not all, people who don't like CSS are more used to developing fat client apps. There's nothing wrong with that. Designing for the web is much different, you first have to grok the concept of fluid layouts. If you came from an environment of "put this widget at x and y" then, yes, this is harder.

      You could justifiably say that you shouldn't have to work so hard to design a layout. Fair enough, laying out some designs requires some clever CSS footwork. But that's where experience comes in.

      Maybe you've used CSS quite extensively. In my past experience (and I have been a professional web developer for many years now) when people complain about CSS being no good, it's only because they don't know how to do what they want to do. Maybe that's not you, I dunno.

      Oh, and while I see your point about how CSS is too kludgy, don't misplace the blame on the CSS spec. There is really only one browser anymore that doesn't adhere reasonably well to the spec. And that company also doesn't adhere to HTML specs, or many others. It took them ten years just to understand alpha-blended pngs. It's not the specs, it's the software company that shall remain nameless.

      --
      blah blah blah
  4. Re:What about a Comparison Matrix by Surt · · Score: 5, Funny

    Language | Turing Complete?
    PHP | yes
    Perl | yes
    Tcl | yes
    Python | yes
    Ruby | yes
    Javascript | yes

    --
    "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  5. Scripting language. What is it? by serviscope_minor · · Score: 4, Interesting

    Can anyone come up with a really good definition of a "scripting language"?

    As far as I can tell, it's a vaguly amorphous definition based on some notion of interpretedness, but C interpreters exist, for instance, and TCC can be used to run C "scripts".

    --
    SJW n. One who posts facts.
    1. Re:Scripting language. What is it? by BitterOldGUy · · Score: 2, Insightful

      Can anyone come up with a really good definition of a "scripting language"?

      As far as I can tell, it's a vaguly amorphous definition based on some notion of interpretedness, but C interpreters exist, for instance, and TCC can be used to run C "scripts".

      If it started out as a compiled programming language then it's not a scripting language.

      Scripting languages are for moving files around, administrative tasks and doing odd jobs.

      At least that's what it was in my day when we had to program in the snow uphill both ways and liked it!

    2. Re:Scripting language. What is it? by Thought1 · · Score: 2, Informative

      Generally, it's used to refer to a non-compiled, interpreted language that has some simple structure and has a set of discreet functions or environment objects that you can use to automate processes. Here's WikiPedia's definition, which isn't too bad.

    3. Re:Scripting language. What is it? by abigor · · Score: 4, Insightful

      Agreed, as Python, Ruby, etc. are compiled to byte code which run on virtual machines, just like Java...yet no one calls Java a scripting language. So I'm not sure either. Maybe it's "dynamically typed and either interpreted or runs on a virtual machine"?

      To be honest, Bash is one of the few 100% interpreted languages I know, and the only one I call a scripting language these days.

    4. Re:Scripting language. What is it? by broken_chaos · · Score: 2, Informative

      I think, judging by this list, is that a 'scripting language' is considered to be anything that can be/usually is run directly from the source code (for example, via a #!/usr/bin/interpreter under any Unix-like).

      I'm not sure why JavaScript is on this list, by that definition, though. The rest are system scripting languages (best term I could come up with - i.e. sysadmins writing scripts), or server-side. JavaScript is web browser-only, client-side scripting.

    5. Re:Scripting language. What is it? by chromatic · · Score: 2, Interesting

      I've never, ever seen JavaScript used for or run in such a way that it's not intended to be used with a webpage...

      How about Firefox? Thunderbird?

      I've never seen Python/Perl/Ruby scripting capabilities embedded in a browser, setting them apart in the same way.

      I have; Microsoft had something which did this several years ago.

    6. Re:Scripting language. What is it? by ToasterMonkey · · Score: 5, Interesting

      python - an interpreted, interactive, object-oriented programming language
      ruby - Interpreted object-oriented scripting language
      java - Java interpreter

      First of all, ruby's man page calls itself a scripting language, and secondly...
      #!/usr/bin/java
      println("Hello World!");

      Oh right...

      You can call all of these "interpreted" languages, but the ones with interactive prompts, or able to execute a source input file I throw at it, those are scripting languages. Java is nowhere NEAR a scripting language, it was not built for this. The other languages WERE built for this. It's an important distinction, and it doesn't make a perl/python/ruby developer any less of a man. Honestly, the interactive portion, and executing with #!/usr/bin/foo are the #1 and #2 indicators that it qualifies as "scripting".

      You almost sound like "scripting language" is derogatory. Well, it's not.
      Many people WANT scripting functionality for the Java platform, but it isn't here until I can run a one liner from the command line.

    7. Re:Scripting language. What is it? by zmooc · · Score: 2, Insightful

      One good reason Java isn't a scripting language: it's impossible to write a script in it:-)

      --
      0x or or snor perron?!
    8. Re:Scripting language. What is it? by ignavus · · Score: 2, Informative

      Scripting languages are stored as text files, and are (mostly) compiled into some kind of intermediate or binary form *only at runtime*. Examples are Javascript and PHP.

      Byte-code languages are stored in a platform-neutral ("virtual machine") binary code, and then this is interpreted - or else compiled into real machine code - at runtime. Examples are Java and ActionScript (in Adobe Flash).

      Compiled languages are stored as real machine binary code, formatted according to the specific platform they were compiled for (e.g. ELF, PE, etc). Examples are C++ and Fortran.

      --
      I am anarch of all I survey.
  6. Re:What about a Comparison Matrix by El_Muerte_TDS · · Score: 5, Funny

    Language | Has a "p" in it's name
    PHP | yes
    Perl | yes
    Tcl | no
    Python | yes
    Ruby | no
    Javascript | yes

  7. Syntax argument. by BitterOldGUy · · Score: 3, Insightful
    I started reading the article and then I got bored at page three.

    First of all, it was an argument about scripting languages - the only difference is syntax. Yeah, yeah, one language make it easier for the programmer to manipulate text or to develop some functionality for a particular task. But this jazz of "the right tool for the right job" is non-sense. We're talking about programming languages: not screwdrivers, drills and hammers. It's all going to be a processor's instruction set one way or another.

    Secondly, this article is in CIO. WTF does a CIO have to worry about languages for? That's the development manager's problem. The CIO's problem is the management of the organization and the technology big picture. How said technology is implemented isn't his problem: that's just minor details. I guess a micro manger would be concerned about a scripting language. If that's the case, he needs to quit and get a tech management job.

    Just my two cents.

    1. Re:Syntax argument. by belmolis · · Score: 4, Insightful

      Yeah, yeah, one language make it easier for the programmer to manipulate text or to develop some functionality for a particular task.

      This sounds like a comment from twenty years ago. These days, with fast hardware and lots of memory, for a great many purposes making things easier and faster for the programmer is the most important goal.

      Scripting languages also differ in more than syntax. They differ in the set of primitives and available library functions and in the efficiency of implementation of different components.

    2. Re:Syntax argument. by Just+Some+Guy · · Score: 2, Insightful

      Yeah, yeah, one language make it easier for the programmer to manipulate text or to develop some functionality for a particular task. But this jazz of "the right tool for the right job" is non-sense. We're talking about programming languages: not screwdrivers, drills and hammers. It's all going to be a processor's instruction set one way or another.

      Sure! So Python and COBOL are exactly equivalent and there's no real reason you'd pick one over the other.

      You know, there's more to a language than Turing completeness.

      --
      Dewey, what part of this looks like authorities should be involved?
    3. Re:Syntax argument. by Greenmoon · · Score: 2, Insightful

      Secondly, this article is in CIO. WTF does a CIO have to worry about languages for? That's the development manager's problem.

      OK. So just throwing out a wild guess: You're not a CIO, right?

      Look, if the code is doing anything in production, the CIO better have some idea of what it's written in and have some sort of an opinion on that. It is very much a strategic issue. Caring about those details (yes, without getting mired in them) is what a CIO should be doing.

      But, maybe we're thinking the same thing but in different environments. I'm thinking mid-sized companies, maybe you're thinking much bigger. As the organization gets bigger, sure the CIO can't have his fingers in everything.

    4. Re:Syntax argument. by francium+de+neobie · · Score: 2, Insightful

      But, anyone who's proficient in any language can be just as productive as another programmer whose just as proficient in another language.

      Really? If you have two programmers who both have the whole program perfectly in their heads, the programmer writing in a language that requires fewer keystrokes win.

  8. 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
  9. 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.

    2. Re:Major players? by coryking · · Score: 4, Funny

      but in the Ruby world they are not

      Of course they aren't. Ruby is for fashion programmers with iMacs, iTunes and iPhones. Ruby is for programmers who moonlight as bar tenders. Ruby is for companies with numbers in their name. Ruby is for minimalists who eschew corporate wisdom. Ruby is for those who use words like eschew.

      Ruby is hip. It is edgy. If you went into a bar and said "I use Ruby", you would get first game on the pool table. If you use Ruby, people call you by your initials, not your name.

      You dont use Ruby to just get work done. No sir. You use Ruby to make a statement about who you are.

      CF, DT, DHH and M himself are all cool beyond belief. They are the superstar hipsters of our modern programming world. C programmers, Java programmers and .NET programmers could never be as cool as DHH--not even on the best day of their lives.

      Go home you Microsoft Player. Go home you inbred C programmers and Billy-Joe-PHP'ers. You are the rednecks of the computing world. You are the fly-over programming languages that keep us busy wondering who uses your language as we our active records fly over your heads.

    3. Re:Major players? by Peter+Cooper · · Score: 2, Insightful

      I'd be extremely surprised if Dave Thomas had recommended John Lam as a prime representative of the Ruby community - he has lots of authoritative Rubyists as authors at his publishing company.

  10. Re:Struck out by 75th+Trombone · · Score: 2, Funny

    Maybe someone needs to look up the word "Preemptive"?

    --
    The United States of America: We do what we must because we can.
  11. Re:future of perl? by Just+Some+Guy · · Score: 3, Insightful

    Sorta. Was it Sinclair who announced how great their next computers would be, to the point that no one would buy their current offerings? I think Perl's going down that route, and the longer it takes, the fewer programmers there will be to try it when it comes available. I'm not a Perl hater by any means, but I jumped ship for Python a long time ago. I think most Perl hackers have done the same, or picked up Ruby. Perl 6 always sounded interesting, but not so much that I'd put up with Perl 5 until it was ready.

    --
    Dewey, what part of this looks like authorities should be involved?
  12. quality and libraries, but quality of libraries? by bcrowell · · Score: 5, Insightful

    [Perl] has the lowest defect rate of any open-source software product. [...] It has readily-accessible libraries for all types of programming tasks: Web application development, systems and network integration and management, end-user application development, middleware programming, REST and service-oriented architecture programming.

    This essentially summarizes the reasons I prefer to use Perl: the quality of the implementation, and the good libraries. However, there is a dark side that we Perl lovers don't talk about much, which is that although Perl has good quality and good libraries, many of the libraries are not of good quality. My purpose here isn't to name names and rip into individuals who have contributed open-source code to CPAN out of the goodness of their hearts, but honestly, some of the code on CPAN is of very low quality and/or very poorly maintained. Quite a few CPAN libraries are basically glue that interfaces to some C code, and when you look at some of that C code, it looks like examples of the worst coding practices of the 1980's, before the internet existed, and before it really registered on coders' consciousnesses that buffer overflows, etc., were not just bugs but security holes. I've had a couple of bad experiences where I hitched my wagon to a particular CPAN module, and later had serious problems because that module was not actively maintained. E.g., crippling bugs would go unfixed for a year at a time.

    On the other hand, I'm not sure that any of the other scripting languages come off any better. What the article says really is true: the base implementations of the other scripting languages are really not anywhere near as solid as Perl's is -- probably partly because Perl is so much older than the others, and therefore more mature. But this may change a lot in the future. Perl 6 is eventually going to be ready for prime time, and there will be a certain amount of chaos and confusion and bugginess at that point, as everyone adapts to the new environment. Also, Perl's head-start in terms of maturity will start to mean less and less as time goes on and the other scripting languages start to get more mature.

  13. Re:What about a Comparison Matrix by serviscope_minor · · Score: 4, Funny

    PHP | Annoying fanbois
    Perl | Annoying fanbois
    Tcl | No fanbois
    Python | Annoying fanbois
    Ruby | Annoying fanbois
    Javascript | Annoying fanbois
    * | rand()%2?"Annoying fanbois":"No fanbois"

    Actually, I think one can draw more useful conclusions about fanbois than languages. How about something more concete.

    Advantages:

    PHP | It's not perl, tcl python, ruby or Javascript
    Perl| It's not PHP, Tcl, Python, Ruby or Javascript
    Tcl | It's not PHP, perl, Python, Ruby or Javascript
    Python| It's not PHP, perl, Tcl, Ruby or Javascript
    Ruby| It's not PHP, perl, Tcl, Python or Javascript
    Javascript | It's not PHP, perl, Tcl, Python or Ruby

    Funnily enough the disadvantages are *exactly* the same.

    --
    SJW n. One who posts facts.
  14. Re:What about a Comparison Matrix by serviscope_minor · · Score: 5, Funny

    TCL is very strongly typed. Everythin is a string. That's a 100% unbreakable typesystem :-)

    --
    SJW n. One who posts facts.
  15. Re:What about a Comparison Matrix by Foofoobar · · Score: 4, Insightful

    One that is complete, impartial and fair? You won't find it. Each language has it's strengths. Some have larger libraries, have been better tested, are geared towards system administrators or the web, some scale better than others, etc.

    You would be asking for a flame war to list which is which but each has proven itself in it's own community. Usually, age, adoption, libraries and (mature)user applications is what makes the language mature and get better. Find those and you will find a decent language.

    --
    This is my sig. There are many like it but this one is mine.
  16. Things haven't improved much. by Animats · · Score: 5, Interesting

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

    The problems of Perl are well known, but it's probably the closest thing to "write once, run everywhere" that we have. Perl is essentially static at Perl 5. There's a Perl 6 effort, with a major language redesign, expected to ship shortly after Duke Nukem Forever.

    PHP is gaining because it's a simple way to do dynamic web site back ends. It's not a great language, and limited to its niche, but useful there.

    TCL was never a very good programming language, and it hasn't improved much.

    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. 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. That's why Python hasn't replaced Perl.

    Javascript is a moderately painful language, yet we all have to use it. The object model is ill-designed; borrowing from Self was a mistake. Too much use is made of "eval", creating the "JSON" security hole. (Memo to language designers: don't combine the primitives for reading a string into an internal representation and for executing the internal representation. LISP has the "reader" and "eval"; Javascript has one function that does both.) Variable scope, given that the language has "var", is badly thought out. (Python is one of the few languages that does implicit declarations well. Perl had to retrofit "my", and Javascript had to retrofit "var", and in both cases, implicit declarations stayed, confusing the issue.) Because of this, Javascript has scaling problems. Attempts are made to paper this over with "toolkits", usually a bad sign.

    I can't really say much about Ruby.

    It's interesting that nobody uses Java applets much any more. It's worth understanding why that failed. But that's another subject.

    1. 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
    2. 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.

    3. 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.

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

      Perl 6 has made huge strides since 2000. The question is whether progress of the project will ever catch up with the goal posts.

      Umm... the goalposts are set. The language spec is done. The test suite is being built. All that's left is to implement it, and that's being done as we speak. What else do you want?

      After eight years, the best you can say about the language specification is that it's "largely" complete?

      Last I checked, the C language spec was still being worked on. And yet, C compilers abound. So what's your point? The vast majority of the Perl 6 language is done. Period. As I understand it, there are a few places where work is still being done, but implementations can, and are, building on the existing spec, because it's *finished*.

      Besides, you took one small quote and asked "is that best best you can say?". Funny how you completely ignored the rest, such as the test suite, and the two ongoing implementations. But, I guess if you want to be an alarmist cynic, the best way is to distort the discussion to your advantage.

      Perl 6 is a much bigger disaster than DNF.

      Umm... why? Perl 5 continues to exist, the implementation continues to evolve (eg, Unicode support didn't exist in the original Perl 5), so who cares if Perl 6 takes a bit of time?

      Perl 6 keeps siphoning off mindshare and developers.

      Uhh... okay. I can't say I've seen that, but if you say it's true, I guess it must be... despite the fact that you contradict yourself in the very same sentence, pointing out, as I already have, that Perl 5 continues to move forward.

      Parrot threatened to throw other scripting languages into a similar state of confusion

      Because it'll provide a new platform to target, much like the .NET CLR or the JVM? Yes, I can see how that's such a terrible disaster. I know when the CLR came out, the scripting world was thrown into a state of chaos... ::rollseyes::

    5. Re:Things haven't improved much. by chromatic · · Score: 2, Insightful

      For all the "progress" and "huge strides", Perl 6 still seems to lack an authoritative voice (whether that of a single person or a small group) with a single minded focus on convergence and shipping, and until that voice emerges, I'm pessimistic about Perl 6 ever shipping.

      Would you care to give a list of name of people that group isn't? I can give you a list of names that group is. I'm curious if you've paid enough attention to cross off every name on my list.

  17. Future of scripting langauges by xpuppykickerx · · Score: 2, Funny

    What did they use to code the Matrix?

  18. Re:future of perl? by khellendros1984 · · Score: 2, Informative

    Pffft, Perl is perfectly good for anything that needs string manipulation and such. You shouldn't ignore new languages that come along, but neither should you ignore old ones that get the job done perfectly well.

    --
    It is pitch black. You are likely to be eaten by a grue.
  19. Scripting language performance by tcopeland · · Score: 2, Interesting

    I hear a lot about Ruby performance - specifically, "Ruby/Rails can't scale". The odd thing is that this is in the context of a web app, where the overhead of the interpreter opcode execution is dwarfed by the cost of going over a socket to pull data across a LAN from a database. Scaling a web app isn't about the language; it's about architecture, judicious SQL optimizations, and caching.

    Oh, and if you're using rcov to measure your Rails app's code coverage, try this patch to prevent rcov segfaults. It doesn't fix the root problem, but it's a start.

  20. Glaring Omission: Groovy by kimanaw · · Score: 5, Interesting

    I was surprised that Groovy didn't appear anywhere in the article. If there's a dynamic language poised to convert the enterprise crowd, its Groovy. Able to compile into Java bytecode, compile Java code, and directly exploit the huge base of Java, but without the cumbersome Java syntax. I wouldn't be surprised to see Python and Ruby supplanted by Groovy in a couple of years.

    --
    007: "Who are you?"
    Pussy: "My name is Pussy Galore."
    007: "I must be dreaming..."
    1. 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

    2. 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

    3. 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.

  21. Good timing by adpe · · Score: 2, Interesting

    Python has been my language for years. The pure beauty of the language together with the huge library did it for me. Plus, it's very easy to program python. Seriously. Just today, I've implemented an algorithm with a long, long loop and a lot of arithmetic operations. Python took 5:30 where Java took 10 secs. I'm serious, Python is SLOW, and last time I've checked, Ruby is even worse. (Interesting sidenote: C++ took 11 secs). I seriously love scipting languages, but the speed it horrifying. I'll stick to Java for a while.

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

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

    1. Re:Osborne by ThePhilips · · Score: 4, Insightful

      I do not understand all that stuff surrounding Perl 6.

      Perl 5 is near perfect: it does many things very efficiently, especially in coding effort department.

      Perl 6 is different beast. Perl 6 is a standard. Whatever implements standard can be called Perl 6. There are several implementations underway (mostly complete by now) but they are pretty much unknown to masses due to huge popularity of Perl 5.

      All this talks about Perl death remind me the talks about assembler programming death. My groupmate told me that in University about decade ago. Since then, like a curse, I have to deal with assembler regularly. Not that I have anything against it. But it bothers me that some people when see something new, fancy and shiny and quickly declare everything else old, uncool and boring.

      P.S. And, btw, ask the .Net crowd about scripting languages. M$ already brainwashed them. Will you see, C# is not scripting, CLR is not interpreter. Scripts sucks because they sucks and C# is better. Scripting languages are dead. End of topic. Move on.

      --
      All hope abandon ye who enter here.
    2. 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.

    3. Re:Osborne by SanityInAnarchy · · Score: 3, Interesting

      Perl 5 is near perfect: it does many things very efficiently, especially in coding effort department.

      As a former Perl hacker who's been converted to Ruby, I must politely disagree. Perl5 is nowhere near perfect.

      Perl 6 is a standard. Whatever implements standard can be called Perl 6.

      Since that's "nothing", so far, it's pretty much vaporware.

      CLR is not interpreter.

      Again, in short: Yes, CLR is an interpreter. At least, it's every bit as much an interpreter as Perl is -- and every bit as much an interpreter as the JVM is.

      There's another important difference: I can run Ruby and Python on .NET, and on the JVM. I can't run them on Parrot, which was supposed to be the one scripting VM to rule them all.

      --
      Don't thank God, thank a doctor!
  23. Re:future of perl? by SanityInAnarchy · · Score: 2, Funny

    Pffft, Perl is perfectly good for anything that needs string manipulation and such.

    Unfortunately for Perl, so is Python.

    (Well, and Ruby. I'm partial to Ruby, but there's no XKCD for me to link to.)

    --
    Don't thank God, thank a doctor!
  24. Jaxer by m3rr · · Score: 2, Informative

    • Client-side only

    Clearly you haven't heard of Jaxer.

  25. Re:What about a Comparison Matrix by Bromskloss · · Score: 2, Funny

    Javascript | yes

    Are you really sure?

    --
    Swedish plasma phys. PhD student; MSc EE; knows maths, programming, electronics; finance interest; seeks opportunities
  26. Re:future of perl? by DragonWriter · · Score: 2, Interesting

    I think Perl's going down that route, and the longer it takes, the fewer programmers there will be to try it when it comes available. I'm not a Perl hater by any means, but I jumped ship for Python a long time ago. I think most Perl hackers have done the same, or picked up Ruby.

    Ruby's going through its own somewhat painful transition right now, what with 1.8.7 and 1.9. Hopefully that'll work itself out fairly soon, though.

  27. It's really just a problem... by an.echte.trilingue · · Score: 3, Interesting

    I really like DHTML + JS + CSS for dynamic content. I downright love CSS; it takes time to learn, but it is just awsome. It's really just a problem of getting browser vendors to support a cross-platform standard for the DOM tree (I think we all know who I am talking about). Even with the mess that we have now, js libraries like prototype.js and mochikit have done a pretty good job of abstracting the browser quirks out of our code and given us a means to develop quality, working web applications quickly and easily.

    Or, you could scrap all this progress and start over on a new standard. Good luck with that.

    --
    weirdest thing I ever saw: scientology advertising on slashdot.
  28. Another Perspective on Dynamic Languages by kimanaw · · Score: 3, Insightful
    --
    007: "Who are you?"
    Pussy: "My name is Pussy Galore."
    007: "I must be dreaming..."
  29. 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"?
  30. Re:What about a Comparison Matrix by Tassach · · Score: 2, Interesting

    I prefer Perl's way of doing it:
    my ($i,$j) = (1,2);
    print $i + $j; # = 3
    print $i . $j; # = 12


    If you your string concatenation operator is distinct from your addition operator, it's simple to tell whether you are dealing with a string or a number from context. Plus it lets you do neat stuff like:

    my $filename = 'file0000';
    $filename++; # = file0001

    Why write more code than you have to? Unnecessary complexity makes your code harder to write, harder to maintain, and harder to understand.

    --
    Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
  31. Scripting on .NET by Tetsujin · · Score: 2, Interesting

    P.S. And, btw, ask the .Net crowd about scripting languages. M$ already brainwashed them. Will you see, C# is not scripting, CLR is not interpreter. Scripts sucks because they sucks and C# is better. Scripting languages are dead. End of topic. Move on.

    Really? Is that what the culture's like? I am not really a part of that so I don't know... My impression was that .NET had a lot to offer for users of Unix scripting languages - really good interaction with other languages and applications' scripting interfaces, good bindings to system facilities, and the ability to take advantage of the CLR for just-in-time compilation...

    --
    Bow-ties are cool.
  32. All of this was done in LISP in the 70s by Anonymous Coward · · Score: 3, Insightful

    It's amazing how much people forget. 'dynamic languages are gaining acceptance' - some of the first programming languages were dynamic. Almost all of the 'innovations' we have seen in 'scripting' languages in the past ... 20 years or so have been done before, in LISP, normally in the 70s.

    *sigh*

  33. Incrementing filenames... by Tetsujin · · Score: 2, Insightful

    If you your string concatenation operator is distinct from your addition operator, it's simple to tell whether you are dealing with a string or a number from context. Plus it lets you do neat stuff like:

    my $filename = 'file0000';

    $filename++; # = file0001

    Why write more code than you have to?

    And if you have more than 10000 files? Not to worry, your filename will advance from "file9999" to "filf0000" - the counter system is naturally extensible... ...There's something to be said for telling the language exactly what you want it to do, rather than trusting that the default behavior, whatever it may be, will do what you want... especially when you're dealing with a funky concept like "incrementing text"...

    --
    Bow-ties are cool.
  34. Re:future of perl? by init100 · · Score: 5, Insightful

    but I jumped ship for Python a long time ago. I think most Perl hackers have done the same, or picked up Ruby.

    I really don't get it. I know Perl inside and outside. Last year I learned Python, and currently I'm reading a book on Ruby. But that doesn't make me forget Perl, so why not use it when it fits the problem being solved. Additional languages are new tools to add to your toolbox, but they don't remove your old tools. Why stick with one language when you can use all of them as you see fit?

  35. Mumps - an often overlooked scripting language by kcokane · · Score: 2, Interesting

    An often overlooked scripting language is Mumps (Massachusetts General Hospital Utility Multi-Programming System), developed in the late 1960's.

    Mumps (also referred to as M) supports a multidimensional and hierarchical database facility implemented as string subscripted array references. It was widely used in clinical computing and remains to this day the basis of the U.S. Veterans Administration's computerized medical record system, the largest of its kind in the world.

    Its main features are: (1) its tree-structured (multi-dimensional) database; and (2) its flexible string handling facilities which now including PCRE functions.

    There are both compiler and interpreter versions available as open source/GPL packages. It supports many text processing functions, system shell integration, as well relational database access. There is also a compatible C++ library to integrate the tree structured data base access into C++ programs. The Mumps/II native hierarchical array database may range in size up to 256 terabytes.

    The package is available from:

    http://www.cs.uni.edu/~okane

    (see download link).

    --
    Kevin O'Kane http://www.cs.uni.edu/~okane/
  36. Re:What about real languages? by coren2000 · · Score: 2, Funny

    When are we going to get a new high-performance, clean, simple, meta-programmable, incrementally-compilable language to replace C++ with?

    Java?

    Going for a +5 funny IC.

  37. Re:future of perl? by Just+Some+Guy · · Score: 3, Interesting

    I did so because Python is a complete superset of Perl for me. Anything I'd previously wanted to do in Perl, I can more easily do in Python. I guess that I can't think of a problem where Perl would be the best solution anymore.

    --
    Dewey, what part of this looks like authorities should be involved?
  38. Re:future of perl? by SanityInAnarchy · · Score: 3, Interesting

    Ruby's going through its own somewhat painful transition right now, what with 1.8.7 and 1.9. Hopefully that'll work itself out fairly soon, though.

    The difference is, 1.8.6 doesn't suck. Most of the difference is that 1.8.6 is slower, due to being on a slower VM. Most of what breaks (now, anyway) in the transition to 1.9 are various native extensions.

    However, Perl5 does suck, compared to Ruby or Python. Perl6 looks very, very good -- but is nowhere near ready.

    I could reasonably expect to pick up Ruby 1.8.6 (or 1.8.7), and have most of my existing code and coding style still work in 1.9. Or I could pick up 1.9, and backport some features to 1.8.6 (which is what 1.8.7 is, mostly).

    I don't think I could reasonably expect to pick up Perl5, and know anything at all about Perl6. The best I could hope for is that most of my old code would still work in Ponie, which is Perl5 on the Perl6 engine -- implying that yes, they are completely different languages.

    --
    Don't thank God, thank a doctor!
  39. 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.

  40. What about Lua? by hh10k · · Score: 2, Insightful

    Lua's said to be the number 1 scripting language for making games. Surely it deserves a mention.

    Poor Lua never gets the respect it deserves.

    1. Re:What about Lua? by Abcd1234 · · Score: 2, Informative

      That's really a product of it's market. Lua has made it's name by being a light-weight, easily embeddable interpreter. The consequence is that no one really uses it for truly general-purpose programming (unlike the other languages in the list). That's not to say Lua couldn't be used for such a purpose, it's just that no one really bothers (at least, AFAIK, I could be wrong).

  41. Re:What about a Comparison Matrix by maxume · · Score: 2, Informative

    line = re.compile('old').sub('new',line) is equivalent to line=re.sub('old','new',line). (I don't think that the compile is your only gripe, but the second version is quite a bit closer to the perl)

    I would argue that the "=~" operator is only briefer than the equivalent python code, it isn't really any clearer (another difference is that the re.sub gives someone who isn't familiar with s/// something to search for; but that isn't something that matters a whole lot, it only happens once that a reader doesn't know s///).

    --
    Nerd rage is the funniest rage.
  42. Re:What about a Comparison Matrix by dash2 · · Score: 3, Funny

    Tcl and Ruby have a p in their name, but the p is silent... as in swimming.

  43. Ignoring the 800 pound gorilla... by Anonymous Coward · · Score: 2, Interesting

    So, no interview with Mike Cowlishaw, the developer of Rexx? Ignoring Rexx, Object Rexx and NetRexx?
    I thought this was about scripting languages.
    And NASA alone having MILLIONS of lines of Rexx code.
    I've coded Rexx on IBM CP/CMS, Amiga, and Linux.
    And the Amiga version is better than what is available for Linux.

    Rexx; everything is a string, and math is decimal based, with 15 digits of precision.

  44. Re:What about a Comparison Matrix by ignavus · · Score: 2, Funny

    Yeah? So what?

    In Javascript everything is a var.

    So it is strongly typed too.

    --
    I am anarch of all I survey.
  45. Script languages as glue by the_arrow · · Score: 4, Interesting

    This part from the old TFA cought my eye:

    Conway: Very simply, they're the glue that holds complex systems together. They allow developers to hook together commercial and open source software packages, and to coordinate the resulting systems.

    When reading this, I immediately thought of ARexx (and now also show my fondness of the Amiga and somewhat show my age, now git of my lawn!). The use of scripting languages as glue between different programs is somewhat forgotten these days I think. Also forgotten is the easy witch with you could embed ARexx, and how extremely easy it was to interface with programs using ARexx.
    I think these aspects could be better developed.

    --
    / The Arrow
    "How lovely you are. So lovely in my straightjacket..." - Nny
  46. Re:future of perl? by piojo · · Score: 2, Interesting

    Pffft, Perl is perfectly good for anything that needs string manipulation and such.

    Unfortunately for Perl, so is Python.

    I think string manipulation is an area where I've found that Python just doesn't compare to perl or ruby. It is so much more annoying to write this in python:
    if ($str =~ /(.*)@/) { print $1; }

    And no, I'm not afraid to write three more lines of code, but I hate moving logic away from the place where it's applied, just to support the limitations of a language.

    --
    A cat can't teach a dog to bark.
  47. Re:future of perl? by lpq · · Score: 2, Interesting

    Why was the above marked "offtopic", or is Perl somehow not considered a scripting language, and is Perl-6 somehow not giving similar-flavor 'warm-fuzzies' as Vista?

    Perl6 != Perl, Larry admits this -- he just took the perl name for recognition, but it's a new language.
    The question is -- will the community of perl5 users just let perl die?

    At least with Perl, there is an option. With XP vs. Vista, ... well, there *should* be an option, but...

  48. Re:What about a Comparison Matrix by rmelton · · Score: 2, Interesting

    You can create your own table with whatever weightings you want at the language shootout page: http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all

    Note that I linked the Gentoo/P4 platform since it has the most ranked entries.

  49. Re:future of perl? by kcelery · · Score: 2, Informative

    Perl 5 is a glue, perl 6 will be a super glue. Perl 6 can glue together much wider range of codes, which of course, including perl 5.

  50. Re:future of perl? by junklight · · Score: 2, Insightful

    I love the fact that Perl fans always mention regexes but never mention the fact that in a subroutine you have to unpack your own parameters with the really so blindingly obvious '@_' .

    Now I don't know about you but most of the things I write in Python are pretty damn big and regexes are a very small part compared to say *all the functions*

    So can I live with slightly more complex regex *syntax* in return for the rest of the language having a syntax I don't need to think about?

    (and yes there are perl dudes who know this stuff inside out - but *why* would a newcomer scale these ridiculous barriers to entry?)

  51. Re:future of perl? by owlstead · · Score: 2, Insightful

    "Why stick with one language when you can use all of them as you see fit?"

    Because there are only so many API's that fit into my tiny head.

  52. Re:future of perl? by julesh · · Score: 3, Interesting

    I guess that I can't think of a problem where Perl would be the best solution anymore.

    Any task that involves iterating over a bunch of lines, applying pattern matching to them. Perl is well optimized for this, and handles it substantially better than python. Although it's worth considering whether either sed or awk might be better -- they often are.