Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

The Year in Scripting Languages

Posted by michael on Tue Jan 14, 2003 04:32 PM
from the fun-for-the-whole-family dept.
Mitchell writes "People from several language communities came together to create a joint year-in-review for Lua, Perl, Python, Ruby, and Tcl."
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • by dildatron (611498) on Tuesday January 14 2003, @04:36PM (#5083415)
    I can't believe all the biased articles on this place! I can't believe the would cover Perl, tcl, etc, and leave out the Windows Batch file scripting language! This is dispicable! It's so powerful, no wonder it's #1.
    • and PHP?
      • The "what about PHP" question is a serious one, I think. The release of a stable command-line version of PHP (which I think happened in 2002, IIRC) is major news in the scripting-language world.
    • That's because MSFT have replaced it with the more functional Windows Scripting Host. Haven't you been paying attention to all the WSH security issues?
    • I can't believe the would cover Perl, tcl, etc, and leave out the Windows Batch file scripting language! This is dispicable! It's so powerful, no wonder it's #1.

      DOS scripting is no longer Microsoft's preferred scripting feature.

      Windows batch files are a holdover from DOS. DOS as we know it originally ran on IBM PCs and early descendants, which were cheap, slow, 16-bit, underfeatured toy computers. At that same time, Unix was running on expensive, fast, 32-bit, featurful computers. Before that, Unix did run on 16-bit computers (various submodels of PDP-11), but PDP-11s were certainly more expensive and more featureful than 8086- and 80286-based PCs, and PDPs were most definitely not toys.

      The point? Unix scripting was better than DOS scripting. Windows evolved from DOS, and as a result it got DOS's scripting capabilities. That evolution is only now reaching the stage where it can be said with any regularity that Windows is evolving from itself rather than from DOS. Win2K and (maybe) WinNT4 were the first incarnations of Windows with this property. It is a very slow process.

      What we see now is Windows evolving its own scripting engines. I'm not savvy about some of these things, but I do know that there are VBScript or Windows Scripting Host for automating things in the OS, and VBA for scripting inside individual apps like Excel or Access. Granted, these are all based on VB, which is lacking when compared to Java or C++, but these are quite well-suited for scripting in a Windows environment.

      Just yesterday, for example, I wrote a simple Windows script that renames files in a directory tree by doing regular expression search and replace. This clearly represents an improvement over the legacy DOS scripting capabilities.

  • by Anonymous Coward on Tuesday January 14 2003, @04:38PM (#5083437)
    It does have a large market share, ya know.
  • by TokyoBoy (217214) on Tuesday January 14 2003, @04:42PM (#5083458) Homepage
    A release of a new PerlQT was made. http://perlqt.sourceforge.net/ [sourceforge.net]
    From the website: "PerlQt-3 is Ashley Winters' full featured object oriented interface to Trolltech's C++ Qt toolkit v3.0. It is based on the SMOKE library, a language independent low-level wrapper generated from Qt headers by Richard Dale's kalyptus thanks to David Faure's module".

    Another thing that's nice is that "All Qt classes are accessed through the prefix Qt::, which replaces the initial Q of Qt classes. When browsing the Qt documentation, you simply need to change the name of classes so that QFoo reads Qt::Foo". So, essentialy the API is similar to QT with reduces the learning curve quite a bit.

  • Missing (Score:4, Interesting)

    by The Bungi (221687) <thebungi@gmail.com> on Tuesday January 14 2003, @04:42PM (#5083465) Homepage
    No mention of ActiveState's plugins for Perl [activestate.com] and Python [activestate.com] to Visual Studio.NET?

    Not really ports to the platform itself, but great productivity boosters regardless. I've used VisualPython with VS.NET 1.0 and it rocks.

  • Where is my... (Score:3, Interesting)

    by 216pi (461752) on Tuesday January 14 2003, @04:47PM (#5083493) Homepage
    ... PHP [php.net]?

    This [php.net] report shows how it is growing.
    • Re:Where is my... (Score:5, Insightful)

      by JanusFury (452699) <kevin.gadd@nOsPaM.gmail.com> on Tuesday January 14 2003, @04:55PM (#5083543) Homepage Journal
      Unlike Ruby, Python, Lua, Perl, and Tcl, PHP doesn't have any real uses other than websites, and it could be disputed that it doesn't even do websites all that well ;) PHP isn't really a scripting language in the same sense that those others are. ASP/ASP.net and Java Server Pages aren't on there either, you might notice.
      • you are so right... I missed this point...

        But as far I can see, they are trying hard [php.net] to make it usable [php.net] as scripting language.
        • Interesting. Sounds a lot like the equivalent of trying to change HTML into a programming language, though... it's just not designed for it. Almost everything about PHP is designed for webpages.
          • HTML is not a programming language because it has no branch and control and looping constructs.

            PHP now has a batch mode intended for preprocessing. That is, periodically generating static HTML from PHP pages.

              • Re:Where is my... (Score:5, Informative)

                by shiflett (151538) on Tuesday January 14 2003, @06:42PM (#5084307) Homepage
                As a C programmer myself, I think it is pretty evident that you are not. That's not meant to be offensive, but you should not attempt to speak from inexperience as a general rule. Try to be more open minded, or at least only form an opinion after you have educated yourself on a particular topic.

                For example, after your attempt to say that PHP only slightly resembles C, you try to point out weaknesses in PHP by mentioning functions that are direct equivalents of C functions (strlen, strchr, sprintf, etc.). Make up your mind. :-)

                Also, since it seems you suggest otherwise, there is a good reason why not every string manipulating function begins with str_. Do you think C should have used str_printf() and str_sprintf()? How about PHP's functions crypt(), echo(), explode(), md5(), trim(), soundex(), etc. Should these all be renamed? Bill Gates may agree with you, but I doubt you will find many open source developers who do.

                In case it is helpful, strchr() and split() do not do the same thing. It sounds like you're heading for trouble there. :-)

                I guess my point is that your inexperience is not a valid complaint against PHP. Yes, it is not the perfect language, but it happens to work well for a lot of people. If you want to bash it, at least use valid reasons (which there are plenty) such as how mod_php is a content generation module and therefore unable to interact with other request phases within Apache (though I think this is being remedied in the apache_hooks API). Or, point to a benchmark showing how Perl parses large text files 20% faster in some cases. Or, show how Python's OO model is more advanced.

                Sorry if this post comes off a bit strong, but I tire of seeing hollow rhetoric.
    • PHP 2003 year-in-review [derickrethans.nl] (or go to http://php.net/ [php.net] and click on "PHP Look Back 2002."

      BTW, PHP news is available in RDF format as a Slashbox. Go to your Slashdot "preferences" to add.

      As for Language wars, no language is better, it's just a better tool for a particular job.

  • by MarkWatson (189759) on Tuesday January 14 2003, @04:52PM (#5083525) Homepage
    As much as I am able, I try to limit my use of scripting languages to just Python and PHP.

    The reason is simple: I need to use several non-scripting languages (Java, Smalltalk, etc.) and remembering the language syntax and class libraries for more than 4 or 5 programming languages is a hassle.

    BTW, scripting languages are not necessarily horribly inefficient anymore.

    A little off topic, but I compared the resources used for a small web app on the following platforms:

    • Java servlets/JSPs - minimum memory footprint is about 75 megabytes
    • Smalltalk servlets - mimimum memory footprint is about 20 megabytes
    • Python Zope - minimum memory foortprint is about 11 megabytes
    In all three cases, the server processes use negligible CPU time after startup (mostly waiting with select).

    Anyway, for lots of applications, Python is fast enough - no need for high performance compilers like Common Lisp, C++, Smalltalk, etc.

    -Mark

    • Python is an amazing scripting language--I'm just wondering when gcc will be able to compile it! :) (Yes, I know about psyco.) For the next year, one thing I would like to see is either Python switching to wxPython for GUI stuff, or improving tkinter so that it isn't so...1996ish. (On the other hand, wxPython isn't quite as intuitive as pyQT, but isn't hampered by the licensing issue on the Windows side of things.) Also, what are the plans for Python 3+? Is there any site listing future plans, apart from the 2.3 release?

      :Peter
    • My results:
      • Java servlets/JSP (Tomcat) - 8 MB
      • Python Zope - 5 MB
    • by pnatural (59329) on Tuesday January 14 2003, @05:23PM (#5083685)
      These are exiting times for Python programmers.

      Just a few days ago, the "Minimalist Python" project was announced. Its goal is to two fold: reduce the distribution to a central core and to re-write as much of it as possible in Python. By doing so, and by including Psyco the Python specializing compiler [sourceforge.net] , the folks working on the Minimalist distribution hope to have a Python that outperforms C (initial tests show that Python+Psyco does outperform C code in many cases). I've used Psyco a bit, and it is a marvel. The idea of a Python compiler, written in Python, becomes possible, and has recently been discussed quite actively on comp.lang.python.

      Even with the speed improvements, the Real Benefit(tm) of Python is in not saving machine time, it's in saving my time as a developer, because I'm far, far more expensive to employ than a server.

  • by Anonymous Coward on Tuesday January 14 2003, @04:56PM (#5083557)
    scripts are for kids!

    Script reviews and naked girls [google.com].

    Or try Pajonet.com [pajonet.com]
  • I hope Python integrates wxPython. With Python + wxPython, it can take on things like Java, Mono, and .Net.

    • by Anonymous Coward
      As a wxPython user I can say that, for a good reason, wxPython should not be part of Python.
      It's a complete bitch to debug your programs when the wxWindows library goes berserk, and it does, way too often.
      Btw, I think there should be no GUI toolkit at all in Python as default.
  • Tcl? (Score:2, Insightful)

    by Anonymous Coward
    Honestly, is there any poor soul out there who codes new projects in Tcl?

    What a hideous language that is.. "Expect" is pretty cool but it gets lost under tcl sillyness.

    Has anybody fixed the whitespace/quoting bogosity in that language? Can you say x++ instead of [incr x] yet?

    Perl or Ruby or death!
    • Re:Tcl? (Score:3, Interesting)

      I do! a very large project, btw.
      and please do not put your own opionion as the opinion of the masses.
      People who think in commands and strings choose TCL!
  • No Bourne? (Score:5, Insightful)

    by Dan Ost (415913) on Tuesday January 14 2003, @05:20PM (#5083669)
    What? Bourne isn't interesting because it's not
    being developed anymore?

    I'm a big fan of Python, but for every Python
    script I write, I write dozens that start out
    #!/bin/sh.

    It may not be sexy, but it's maintainable (every
    admin knows it), portable (any system that has
    sh or bash), and dirt simple to write.
  • We all know that the porn industry is always the first adopter of the latest and greatest technologies:
    • php [google.com] - 1.1 million hits
    • perl [google.com] - 56,200 hits
    • lua [google.com] - 478 hits
    • python [google.com] - 27,800
    • ruby [google.com] - 54,400 hits
    • tcl [google.com] - 4,680 hits
    And the winner is: PHP by a landslide!

    --naked [slashdot.org]

  • Perl really has come a long way from its scripting roots -- by itself, it's useful for "small to midsize" computing tasks (says the documentation) but the value of "midsize" keeps shifting to larger and larger things.

    Perl Data Language (http://pdl.perl.org [perl.org]) is a set of C and FORTRAN bindings that make perl into a complete vectorized scientific-computing language that's useful for big tasks like inverting 1000x1000 matrices or fluid-dynamic simulation, but that can also be used interactively to work with image and spectral data.

    That's neat because interactive data analysis is a pretty small niche market with a few proprietary (and, IMHO, seriously broken) languages dominating. With PDL, I can give fresh science data to high school students, straight from the spacecraft. Their L337 gaming machines are plenty powerful enough to run the tools they need, and perl is pretty much universal.

      • I've looked at numpy briefly. I believe that, starting from scratch, it might be easier to learn -- perl is a write-only language at first.

        PDL has really excellent dimensional manipulation and slicing; and the PGPLOT output is very nice. For me, the main advantage over python is that, well, it's just perl -- so you have access to the whole CPAN library for (e.g.) database I/O, units conversion, uu{en|de}coding, and whatnot.

  • by vga_init (589198) on Tuesday January 14 2003, @06:46PM (#5084323) Journal
    Earlier this year I had to use LUA in a project that I was working on, and I must admit that it was a pretty interesting language. I had to use it primarly for scipting: writing generic function calls and tailoring formatted "pages" of code to be submitted into a database (one might think of this as being similar to web pages, though it a little bit different than that). To me the language seemed to be very versatile, and it had some nifty features as well as very simplistic syntax. To someone familiar with other languages like Perl or Python, I guess it might not seem so nifty, but I appreciated its simplicity because it took me less than an hour to learn as much of the language as I needed for the project.
  • by Jayson (2343) on Tuesday January 14 2003, @07:19PM (#5084529) Homepage
    BWK wrote a paper on this: Timing Trials, or, the Trials of Timing: Experiments with Scripting and User-Interface Languages [bell-labs.com]. It compared C, Awk, Perl, Tcl, Java, Visual Basic, Limbo, and Scheme. It tested various areas of the language, such as graphics, text processing, and array manipulation.

    Although K [kx.com] really isn't a scripting langauge (neither is C), results [kx.com] were done for it, too (being faster and having less code). There is also a shallow introduction [kuro5hin.org] to K on Kuro5hin.org.

  • by Wargames (91725) on Tuesday January 14 2003, @07:51PM (#5084707) Journal
    For scripting, there are not equals to Rexx the king of scripting languages.

    The programming language Rexx runs great as Regina on Linux/UNIX/NT, or Rexx under OS2 Warp or NT is cross platform with minimal changes.

    Rexx http://www2.hursley.ibm.com/rexx/
    Regina http://regina-rexx.sourceforge.net/

    Can your scripting language do this out of the box:

    -Wargames

    Powers of 2:

    say 2**100
    1267650600228229401496703205376

    say 2**150
    142724769270595988105828596944949513638274 6624
    • Can Rexx do:
      2**1000 :
      10715086071862673209484250490600018105614048117 055 33607443750388370351051124936122493198378815695858 12759467291755314682518714528569231404359845775746 98574803934567774824230985421074605062371141877954 18215304647498358194126739876755916554394607706291 45711964776865421676604298316526243868372056680693 76 ...but really, how does being able to do this mean that a scripting language 'has no equal'...

      Or when you say that 'Rexx has no equal' do you mean that you can't check for equality in Rexx? ...must be pretty tough...

  • by bahwi (43111) <incomingNO@SPAMjosephguhlin.com> on Tuesday January 14 2003, @08:26PM (#5084882) Homepage
    Parrot [parrotcode.org] isn't the VM for Perl6. Parrot is a "new language from the creators of Perl and Python." Duh. There's even an O'Reilly book on it [perl.com].

    Seriously though. They barely mentioned Parrot and Parrot is coming along very nicely I think. Even with a Java to Parrot Bytecode program, Brainfuck, Jako, Befunge-93, cola, forth, miniperl, ook, (non-final) perl6 interpreters/compilers, as well as python, ruby and scheme interpreters/compilers coming. Of course it's not finished, so not all of the languages are either, but hey, it's getting there, and damn fast. There's even a Parrot Assembly Lange.

    Parrot is definately not Perl6. It's much more. It's like java, but open source, and independent of Languages. They're hoping to have it compile on as many platforms as perl does now, unlike Java which is Windows, Mac, Linux, and some PDAs, end of story.

    So everyone check it out and throw some patches in too! Of course, the only support I've given so far is moral support. :/
  • VBScript (Score:3, Informative)

    by unfortunateson (527551) on Tuesday January 14 2003, @08:36PM (#5084931) Journal
    The real missing item is VBScript. Sure, it's 99% Windoze (1% Macintosh -- who probably don't realize they have it). It's the engine behind ASP -- which isn't a language in its own right. It's the replacement for DOS Shell scripts/batch files. It's the preferred platform for management scripts on Win2K/WinXP (see WMI) It's the preferred platform for trojan horse programs... maybe I shouldn't claim that as a positive, huh? Probably Javascript should have been mentioned too, but it's rarely used as shell-style scripting. Why do I use VBScript when I've got Perl and Python on the same machine? Frobbable code at Microsoft's website. If nothing else, I prototype it there, then acces the same COM objects through Python or Perl.
    • Re:TCL????? (Score:4, Interesting)

      by pogle (71293) on Tuesday January 14 2003, @04:59PM (#5083576) Homepage
      I originally learned Tcl/Tk about 4 years ago, but stopped using it once my job no longer required it. I took a joke course on scripting languages last fall, and the professor was in love with Tcl/Tk, but seeing as how no one cared, we learned Perl/Tk instead. The Tk widgets are the more useful part of it...Tcl was OK, but it frankly shocked me that it was still being developed actively. Anyone used the new version and can vouch for the speed boost? It was so gawd awful slow before that I couldn't bear it.
      • Re:TCL????? (Score:5, Informative)

        by js7a (579872) <james@nOSPAM.bovik.org> on Tuesday January 14 2003, @06:01PM (#5083994) Homepage Journal
        Tcl was OK, but it frankly shocked me that it was still being developed actively.

        TCLs claim to fame is its small memory use. TCL can be included as a command interpreter in other programs easily and without much bloat. There are more embedded TCL applications than any one person knows about; both in hardware and software. TCL was also first with UTF-8 support in strings, around 1998 or before, way before Perl, so there are probably more TCL CGI scripts overseas than most English users think.

        As for benchmarks, TCL is getting faster [mini.net], with a huge jump from v7 to v8 and about a 25% improvement from 8.0 to 8.4a3 (scroll down to bottom of linked page.)

    • I never understood why anyone would use TCL ever, even when it first showed up. It's just condusive to cryptic and hard-to-read code, and dealing with everything as lists of lists of lists was a bit to wrap my head around at first.

      I guess if I used it more it'd come easier, but I just never had the need nor desire to learn beyond what was required to get an A in the course I was taking.

      Of course, there are those who believe that the more cryptic and confusing their code is, the more adept a coder it makes them; "credibility through obscurity". I never bought into that.
      • Because people are different! And they
        think different!
        It's much easier for me to think in terms
        of commands , their arguments and strings
        than in terms of functions and procedures.
        I cannot really understand Perl code,
        but TCL is easy for me.

        Cryptic things like $_ in perl and enormous contexts are also really confusing.

        In python I was astonished by the
        requrement of strict tabbing. I am not a precious person and I found this requirement hard. But in other ways Python is great language, having a lot of libraries.

      • One word: Scotty (Score:2, Insightful)

        by Anonymous Coward
        being the best SNMP library in existance.
        No other comes close.

        Seriously, tcl isn't that bad a language once
        you get used to it. You get lists and associative
        arrays and namespaces and pretty high-level libraries (one line TCP socket server setup).
        Plus doing event-driven stuff is **REALLY* easy.
        The event-handling is built in.

        Having to do math in expr is a pain.

        Plus pretty good cross-platform capability.

        -- ac at work
      • Because when Tcl first came out, it was pretty darn original. Sure, there were languages like Common Lisp and Smalltalk, but Tcl is embeddeble and works pretty well as a part of a larger system. Now a days, Smalltalks and Lisps can do that as well, and there are at least a hundred embeddeble scripting languages. But when it came out, it was original and pretty easy to write.

        I mean, going from "function(param1, param2)" to "function param1 param2" can't be all *that* hard. :)
    • And it never ocurred to you that in 5 years, Tcl might have made some progress as well?

      Incidentally, for those 5 years, NBC has been using Tcl in mission critical, real time applications to stream video [usenix.org] to affiliates across the country.

      I've been using tDOM [mini.net] lately, a Tcl interface to the DOM. It is, quite simply, the fastest XML parser I have found.

    • by Anonymous Coward
      The
      scripts review YOU!

      Nice try, but as I understand the form, you need to avoid the article "the" [insovietrussia.com] or Smirnoff will never option your screenplay. For example:

      In Soviet Russia, article omits you!

      Moderators: I am not trying to encourage the form, other than trying to bring it to a bearable levels of authenticity.

    • A few replies (Score:4, Informative)

      by jbolden (176878) on Tuesday January 14 2003, @06:22PM (#5084172)
      Since most of this is about your experience there is not much anyone else can say but...

      After about a day I had an excellent understanding of both PHP and SQL.

      I don't know PHP but you don't have an excellent understanding of SQL in one day. Its not a that hard but ain't that easy either. Rather what is probably true is that you have an excellent understanding of how to write SQL to get information from the types of simple database with simple underlying business rules.

      The modern SQL spec runs 2000 pages you don't have an excellent understanding of 2% of that in one day.

      This is because Perl isn't OO (so you can't create Node classes, for example, usefull in a linked list) and because it lacks pointers.

      I don't know what you are talking about. If X is a type of object then X's are passed around as pointers (see bless). Arrays in Perl are linked lists so an array of X's is a linked list, that's why you use things like push, pop, shift, etc... on arrays in Perl.

      As for graphics Perl libraries support a wide range of graphics formats.

      There are some other things like your comments about the regex engine that I highly doubt. No regex engine has had the time, attention and work of Perl's, Its not Perl's strong suit because of some sort of myth, for example Perl's grep has outperformed the native grep on Solaris. My guess is that the failure lies with you on this one.

    • Although I can't say anything new, the other comments are only at +1, so I'll add mine: I've been doing some experimenting with Lua for a little while now, and have been impressed with the ease that it interfaces with C, and with the speed.

      My biggest complaints are with the pascal-style syntax: using begin ... end for blocks and things being 1-based rather than 0-based are minor sources of irritation for me. Oh, I'm not too impressed with the lack of block comments, though you can hack around it. However, I suppose that for people that enjoy using Pascal, they'll feel right at home.
    • by Col. Klink (retired) (11632) on Tuesday January 14 2003, @08:59PM (#5085012)
      You do realize that the "everything is a string" model has been gone for nearly 5 years... It's also been using a byte-code compiler for just as long, so no, it's not the slowest thing out there. In fact, the tDOM XML parser/XSLT engine [ibm.com] is extremely fast. Quoting the link:
      The final results? Ade summarizes: "Under Linux tDOM SAX is 4 times faster than Java, under Windows 3 times. tDOM DOM is around 4 times faster than the fastest Java solution under both platforms." Memory tests confirmed Ade's own intensive experience over 18 months of working with DOM commercially: "the tDOM DOM tree needs typically between 2 and 3.5 times memory of the XML file size ..." Common DOM parsing engines in commercial use bound to C and Java frequently require five to 30 (!) times as much memory as the base document.