Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

The State of Scripting Languages

ScuttleMonkey posted more than 6 years ago | from the coming-along-nicely dept.

Programming 415

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

cancel ×

415 comments

Sorry! There are no comments related to the filter you selected.

Under the table (-1, Troll)

Anonymous Coward | more than 6 years ago | (#24801429)

It's a game sailors play.

You need a few drinking buddies, a long banquet table with a long, heavy tablecloth, and one prostitute.

The idea is to sit at the table while the hooker(who is under the table) will chose one of the men at random and begin sucking his dick.

The object of the game is to receive fellatio and come without making it known to the other guys. For example, if the hooker chooses you and you squirm or grunt whilst having your dick sucked, and one of the guys calls you on it, then you lose and you have to buy the next round of beers before the hooker chooses another man at random.

Java != Javascript (2, Funny)

Anonymous Coward | more than 6 years ago | (#24801445)

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

Struck out (1)

clang_jangle (975789) | more than 6 years ago | (#24801813)

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

No-one said otherwise. The only thing in TFA I could see to which you might be erroneously referring is the Mozilla Rhino, a javascipt implementation for Java -- which is exactly what it is. Maybe someone's in a bit too much of a rush to use the word "moron"?

Re:Struck out (2, Funny)

75th Trombone (581309) | more than 6 years ago | (#24801881)

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

Re:Struck out (0, Offtopic)

clang_jangle (975789) | more than 6 years ago | (#24802081)

No, I know what it means -- just neglected to catch the AC's intent. It's been a loooong week of having to second guess semi-literate types. I knew working with these idiots would corrode my brain, but they threw so much money a me!

Schindler's List? (5, Funny)

PunkOfLinux (870955) | more than 6 years ago | (#24801465)

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

Re:Schindler's List? (-1, Troll)

Profane MuthaFucka (574406) | more than 6 years ago | (#24801847)

Moby Dick is neat. You could stick it in your vagina sometime.

mod alert (0)

moderatorrater (1095745) | more than 6 years ago | (#24802255)

the above post was a pun. He wasn't insulting jews or anything. Last time I checked, puns weren't classified as a troll.

Re:mod alert (-1, Troll)

Anonymous Coward | more than 6 years ago | (#24803009)

Mother fuck all jews, all Capulets, and all Linux lusers, you fucking dorks.

future of perl? (0, Offtopic)

larry bagina (561269) | more than 6 years ago | (#24801593)

serious question --- is perl 6 Open Source's answer to Vista? Some of the new features are added to perl 5, but is perl 6 is a wasted effort?

Re:future of perl? (-1, Flamebait)

Anonymous Coward | more than 6 years ago | (#24801859)

No one uses PERL anymore, just the old crusty admins that couldn't develop real applications to save their careers. When the mind-share moved to Python and Ruby, there's not a lot of real enthusiasm left for PERL and fixing it. Good riddance really. Fsck off with COBOL and BASIC. Your time has passed, thanks for all the fish etc.

Re:future of perl? (2, Informative)

khellendros1984 (792761) | more than 6 years ago | (#24802299)

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.

Re:future of perl? (2, Funny)

SanityInAnarchy (655584) | more than 6 years ago | (#24802491)

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

Unfortunately for Perl, so is Python. [xkcd.com]

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

Re:future of perl? (0)

Anonymous Coward | more than 6 years ago | (#24802847)

I have a fair amount of Perl experience but I am strongly inclined to agree about Ruby. With the speed improvements being made recently and likely to continue (for the short term anyways) the one remaining possible issue between the two (for me) is quickly disappearing.

Re:future of perl? (0)

Anonymous Coward | more than 6 years ago | (#24802865)

Yeah, but if you want to get things done, use perl. [xkcd.com]

Re:future of perl? (3, Insightful)

Just Some Guy (3352) | more than 6 years ago | (#24801887)

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.

Osborne (4, Informative)

XanC (644172) | more than 6 years ago | (#24802453)

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

Re:Osborne (1)

Just Some Guy (3352) | more than 6 years ago | (#24802681)

That's it! I couldn't think of the name for the life of me.

I'm kind of afraid that's exactly what's happening to Perl. It promises to be so much better than Perl 5 that people are unwilling to commit to Perl 5 development for new projects.

Re:future of perl? (2, Interesting)

DragonWriter (970822) | more than 6 years ago | (#24802715)

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.

Caught in a crossfire (3, Interesting)

ilovesymbian (1341639) | more than 6 years ago | (#24801623)

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.

Re:Caught in a crossfire (5, Insightful)

MightyMartian (840721) | more than 6 years ago | (#24801651)

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.

Re:Caught in a crossfire (2, Insightful)

clang_jangle (975789) | more than 6 years ago | (#24802207)

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

It's really just a problem... (3, Interesting)

an.echte.trilingue (1063180) | more than 6 years ago | (#24802849)

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.

What about a Comparison Matrix (1)

bogaboga (793279) | more than 6 years ago | (#24801639)

Can someone point me to a comparison matrix for PHP, Perl, Tcl, Python, Ruby, and Javascript detailing advantages and disadvantages, pros and cons for each? I hope someone will do precisely that and I will be glad.

Note: I only know PHP and Ruby.

Re:What about a Comparison Matrix (5, Funny)

Surt (22457) | more than 6 years ago | (#24801709)

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

Re:What about a Comparison Matrix (5, Funny)

El_Muerte_TDS (592157) | more than 6 years ago | (#24801747)

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

Re:What about a Comparison Matrix (0)

Anonymous Coward | more than 6 years ago | (#24802051)

I think you mean redundant rather than Offtopic mod

Forgot some important ones (1)

vlad_petric (94134) | more than 6 years ago | (#24802523)

Brainf*k | yes

LOLCode | yes

Turing machine descriptions | yes

Re:What about a Comparison Matrix (2, Funny)

Bromskloss (750445) | more than 6 years ago | (#24802693)

Javascript | yes

Are you really sure?

Re:What about a Comparison Matrix (-1, Flamebait)

MightyMartian (840721) | more than 6 years ago | (#24801741)

It's easy, they all suck. Untyped languages are evil evil evil evil evil evil evil evil evil. They're designed by lazy-ass programmers for other lazy ass programmers. If you want to change variable type, then you should be forced to explicitly cast, not have the dumb-ass interpreter do it for you.

Re:What about a Comparison Matrix (1)

arcanumas (646807) | more than 6 years ago | (#24801917)

You are wrong. There are scripting languages with dynamic but strong typing like Python for example.
You cannot change types in Python variables implicitly. You have to do type conversions.
you can't do:

print "some string" + some_integer

You have to convert it:

print "some string" + str(some_integer)

Nice troll though...

Re:What about a Comparison Matrix (1)

MightyMartian (840721) | more than 6 years ago | (#24802049)

You are quite right. But it still applies to evil creatures like PHP.

Re:What about a Comparison Matrix (1)

arodland (127775) | more than 6 years ago | (#24803021)

And then there's perl, where + is reserved for addition, and . is concatenation, and you don't need casts or stupid crap like "" + foo. Ah, the wonders of making different things different.

Re:What about a Comparison Matrix (1)

abigor (540274) | more than 6 years ago | (#24801943)

Actually, most (all? Not that familiar with Tcl) of those languages are strongly typed. The typing is just dynamic, that's all.

And I hope you were joking about them being evil. That is just silly, considering the history of their featuresets, derived as they are from Lisp.

Re:What about a Comparison Matrix (5, Funny)

serviscope_minor (664417) | more than 6 years ago | (#24802039)

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

Re:What about a Comparison Matrix (1)

abigor (540274) | more than 6 years ago | (#24802469)

Haha, excellent, thanks for the info.

Re:What about a Comparison Matrix (1)

Tony Hoyle (11698) | more than 6 years ago | (#24802591)

Javascript certainly isn't - everything is treated as a string most (but not all) of the time, which is a pain in the bleeding neck when suddenly 1+1 == 11.

Re:What about a Comparison Matrix (1)

MightyMartian (840721) | more than 6 years ago | (#24802685)

I simply don't understand the whole breed of scripted languages that tossed out any kind of strong typing. I guess I can understand some quick-and-dirty batch language, and maybe that's where it comes from. Maybe they're all just descendants of csh.

Re:What about a Comparison Matrix (1)

meuhlavache (1101089) | more than 6 years ago | (#24802083)

Damn, mIRC Scripting don't make me a real programmer? You killed me!

Re:What about a Comparison Matrix (4, Informative)

grahamd0 (1129971) | more than 6 years ago | (#24801815)

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

Re:What about a Comparison Matrix (1)

Darkness404 (1287218) | more than 6 years ago | (#24801929)

Cross-platorm

Yes, but the problem is, most JavaScript has to be tested on Firefox, IE, Safari, Opera, Konqueror, etc. And most likely you will be rewriting code or removing features to make it work on IE or older versions of Safari, Opera, Konqueror, etc.

Jaxer (2, Informative)

m3rr (669531) | more than 6 years ago | (#24802605)

  • Client-side only

Clearly you haven't heard of Jaxer [aptana.com] .

Re:What about a Comparison Matrix (4, Funny)

serviscope_minor (664417) | more than 6 years ago | (#24801993)

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.

Re:What about a Comparison Matrix (4, Insightful)

Foofoobar (318279) | more than 6 years ago | (#24802079)

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.

Scripting language. What is it? (4, Interesting)

serviscope_minor (664417) | more than 6 years ago | (#24801721)

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

Re:Scripting language. What is it? (2, Insightful)

BitterOldGUy (1330491) | more than 6 years ago | (#24801827)

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!

Re:Scripting language. What is it? (0)

Anonymous Coward | more than 6 years ago | (#24801829)

They started out as interpreted. Is that vaguely amorphous enough for you?

Re:Scripting language. What is it? (2, Informative)

Thought1 (1132989) | more than 6 years ago | (#24801911)

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 [wikipedia.org] , which isn't too bad.

Re:Scripting language. What is it? (4, Insightful)

abigor (540274) | more than 6 years ago | (#24802003)

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.

Re:Scripting language. What is it? (2, Informative)

broken_chaos (1188549) | more than 6 years ago | (#24802519)

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.

Re:Scripting language. What is it? (1)

DragonWriter (970822) | more than 6 years ago | (#24802667)

JavaScript is web browser-only, client-side scripting.

No, its not, though Web browsers are the most well-known JavaScript environments.

Re:Scripting language. What is it? (1)

broken_chaos (1188549) | more than 6 years ago | (#24802709)

I was referring to the most common usage (though I had a feeling someone was going to decide to pick at that...). 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 (though I have seen semi-standalone JavaScript interpreters, they're mostly intended for working out bugs without using a full browser).

Or if you want to look at it the other way, I've never seen Python/Perl/Ruby scripting capabilities embedded in a browser, setting them apart in the same way.

Re:Scripting language. What is it? (2, Interesting)

chromatic (9471) | more than 6 years ago | (#24802805)

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.

Re:Scripting language. What is it? (1)

broken_chaos (1188549) | more than 6 years ago | (#24803057)

Hm, good point. I usually forget about Mozilla-style UIs, since I'm not a huge fan of... Chrome, is it, that they call it? Applying web rendering principles and styles to a browser UI just seems sloppy to me, not to mention all the troubles with integrating into various OSes and not looking horridly out of place. (Gecko, on the other hand, I don't mind. I do have a problem with the huge bloat, though. Part of that is (notably the compile time) probably attributed to it being in C++.)

Well, that just goes back to square one then, about trying to figure out how they're defining scripting languages...

Re:Scripting language. What is it? (1)

ericlondaits (32714) | more than 6 years ago | (#24803145)

Flash is scripted through ActionScript, which is (at least was, before ActionScript 3.0) basically JavaScript (or a slight variation of it). The Mozilla Platform (used for Firefox, Thunderbird, Songbird, Komodo IDE, etc.) is integrated and can be extended with Javascript. VXML (Voice XML) which is a language for specification of interactive telephony applications uses Javascript in a similar way to webpages. AFAIK HD-DVD uses javascript as well.

If you have Windows chances are you have the Windows Scripting Shell (WSH) installed, which includes two programs (WScript.exe and cscript.exe) which can be used to execute Javascript and VBScript files in the shell for various tasks).

I myself have programmed many systems which host Microsoft's JS parser (ActiveScript) allowing me to control various low-level objects through js scripts, in the same way that scripts in web pages allow you to control objects in the DOM, ActiveX objects, etc. Just hours ago I made a js script which accesses a database and sends an e-mail with some tabulated data. Once, in a robotics class at my university, we had to write a program that would control a robot (Khepera) from the computer... I did a full COM wrapper to the robot's API, which allowed me to program the behavior through Javascript... at first I got a few laughs and snickers from my choice of language, but I was the only one that could test changes without recompiling my program.

Re:Scripting language. What is it? (1)

serviscope_minor (664417) | more than 6 years ago | (#24802873)

C can be, if you have the tcc compiler installed.

Re:Scripting language. What is it? (1)

DragonWriter (970822) | more than 6 years ago | (#24802619)

Agreed, as Python, Ruby, etc. are compiled to byte code which run on virtual machines, just like Java...

That's not true of the main, stable version of Ruby (MRI 1.8.x), though its true of Ruby 1.9 and some alternative implementations.

yet no one calls Java a scripting language.

If it were more dynamic, and newer, they might; the distinction does seem pretty arbitrary and not all that useful.

Re:Scripting language. What is it? (1)

abigor (540274) | more than 6 years ago | (#24802763)

That's not true of the main, stable version of Ruby (MRI 1.8.x), though its true of Ruby 1.9 and some alternative implementations.

Thanks, I wasn't aware of that. Of the languages listed, the only ones I have extensive experience in are Python and Perl.

Agreed about the uselessness of the distinction, too.

Re:Scripting language. What is it? (0)

Anonymous Coward | more than 6 years ago | (#24802777)

Java must be script.

I need to bring up Netscape. Java must have an interface. I think that the OS comes up with the interface first. The interaction is first, not the Java.

--O--

Re:Scripting language. What is it? (1)

Anonymous Brave Guy (457657) | more than 6 years ago | (#24802065)

"Scripting language" is certainly ill-defined, but I'd suggest that the concept is an interpreted language with minimal overheads in the syntax. The latter tends to mean dynamic typing, but that's not really the important thing IMHO.

Re:Scripting language. What is it? (1)

Tweenk (1274968) | more than 6 years ago | (#24802717)

My understanding of scripting language:

1. Has lots of bindings to libraries and tools which are written in other languages, usually compiled ones.
2. Is used for gluing third-party code and external programs and for high-level logic as opposed to grunt work and computations.
3. The source file is the presumed redistribution form of the program, and is directly runnable.
4. Features aimed at programmer convenience rather than preventing errors or improving performance, which includes dynamic typing.

This makes PHP, Perl, Bash script (and to some extent Python, since there are many pure Python libs) canonical scripting languages, and Java and C++ canonical non-scripting languages.

Syntax argument. (3, Insightful)

BitterOldGUy (1330491) | more than 6 years ago | (#24801753)

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.

Re:Syntax argument. (4, Insightful)

belmolis (702863) | more than 6 years ago | (#24801893)

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.

Re:Syntax argument. (0)

BitterOldGUy (1330491) | more than 6 years ago | (#24802399)

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.

I'm old, what do yo expect. And as far as productivity is concerned (which I gather you implied): that is a concern of the CIO and you sir, are correct. But, anyone who's proficient in any language can be just as productive as another programmer whose just as proficient in another language. If you get good people with good design skills, the language and subsequent coding is a small part of the development process thereby making the choice of language a small factor.

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.

In this day and age, every language has a library that's just as good as another language. Albeit, one language may have a strength in one small particular area. I'm very impressed with how little code is required by Ruby to implement a web site as apposed to PHP. But then again, an expert in PHP will be just as productive as someone with experience in Ruby.

Does it sound like I'm hedging? I don't mean to; these are the things the a PHB has to consider when he has his own PHB riding his ass and telling him he's got to come in on budget or under and on time and hit performance goals.

Re:Syntax argument. (0)

Anonymous Coward | more than 6 years ago | (#24802829)

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

Bullshit. Productivity can vary significantly based on the level of abstraction provided by both the language and its' libraries.

Re:Syntax argument. (1, Insightful)

Anonymous Coward | more than 6 years ago | (#24802977)

Productivity metrics keep showing that a line of code is a line of code. If you can write the same program in language X in 1000 LOC and language Y takes 2000, then you will be finished with language X program much sooner and have fewer bugs.

Perl, PHP, and the other languages discussed here are essentially interchangeable, but each is a big improvement over C++ or Java, in terms of verbosity. Therefore, that's what the CIOs care about.

Re:Syntax argument. (1, Flamebait)

Thiez (1281866) | more than 6 years ago | (#24803151)

> If you can write the same program in language X in 1000 LOC and language Y takes 2000, then you will be finished with language X program much sooner and have fewer bugs.

Clearly you have never seen perl.

Re:Syntax argument. (2, Insightful)

Just Some Guy (3352) | more than 6 years ago | (#24802785)

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.

Major players? (3, Informative)

Peter Cooper (660482) | more than 6 years ago | (#24801849)

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?

Re:Major players? (1)

belmolis (702863) | more than 6 years ago | (#24802101)

I'm guessing they wanted to include Microsoft and since Microsoft isn't a significant player in the scripting language area, they picked Microsoft's best scripting project, even though it isn't particularly important within the Ruby community.

Re:Major players? (5, Informative)

Esther Schindler (16185) | more than 6 years ago | (#24802433)

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.

Re:Major players? (1)

belmolis (702863) | more than 6 years ago | (#24803115)

What! Introducing actual facts on /.?

quality and libraries, but quality of libraries? (5, Insightful)

bcrowell (177657) | more than 6 years ago | (#24801967)

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

Re:quality and libraries, but quality of libraries (1)

belmolis (702863) | more than 6 years ago | (#24802251)

I've had the same experience with CPAN: the code is often not very good, or the library doesn't really do what you expect it to do - a lot of contributions seem to be half-baked. In contrast, I have had a good experience with Tcl libraries. Perhaps one reason is that people put the half-baked stuff on the wiki (http://wiki.tcl.tk [wiki.tcl.tk] ), where it is labeled as such, and don't present a full package until it is reasonably mature.

Re:quality and libraries, but quality of libraries (1)

Abcd1234 (188840) | more than 6 years ago | (#24802853)

Perhaps. I suspect CPAN ironcailly also suffers from it's own ubiquity and ease of access. Any highschool student can whip together a quick Perl module, and I suspect more than a few do. The result is that poorly written or only half-baked projects end up there.

By contrast, the only people writing Tcl modules are those serious about using the language, and that immediately introduces a selection bias.

Re:quality and libraries, but quality of libraries (1)

arodland (127775) | more than 6 years ago | (#24803085)

Of course there's a lot of crap on CPAN. But there's also a lot of really good stuff, and there are tools to help you find the best of the good stuff. Besides which, having someone else's complete and utter crap to work with can still give you a head start compared to doing everything from scratch. Not to mention, in one-off projects you can sometimes just use the utter crap, get the job done, and not have to tell anyone.

After Many years .... (0)

Anonymous Coward | more than 6 years ago | (#24801983)

  Shell scripting is alive and kicking.

Python (0, Redundant)

ilovegeorgebush (923173) | more than 6 years ago | (#24802013)

Python isn't a scripting language. It's a fully featured object oriented language. It just so happens that it's awesome and flexible enough to be used for scripting.

PHP And Perl (1)

MattW (97290) | more than 6 years ago | (#24802967)

PHP and Perl don't really deserve to be labeled "scripting languages" in my head either any more. PHP has had growing object oriented capabilities for ages - PHP 5.3a1 even got lambdas w/ closures. PHP is a fairly great language; it got a bad rap due to the way it enabled horrible security practices so well in the PHP3 days. I think I prefer Python/Django due to the more expressive syntax and superior templating, but PHP is good and getting better. Is it dynamically interpreted? Sure, but you can use bytecode caching to save compiled copies. Likewise, Perl may be suitable for use as a scripting language, but it has obviously become a lot more.

Re:Python (1)

Tweenk (1274968) | more than 6 years ago | (#24802989)

I think it's the other way around. It has a lot of bindings, programs are shipped as source, and it has many conveniences, which makes it a scripting language - which incidentally is powerful enough to do application development.

There are few languages in modern use that are not object-oriented (I can only think of C and Fortran in their respective niches), so it's not a sign of not being a scripting language.

I've been using VMS-DCL since 1988 (0)

Anonymous Coward | more than 6 years ago | (#24802037)

I've been using VMS-DCL http://en.wikipedia.org/wiki/DIGITAL_Command_Language as my scripting language of choice since 1988. Of course it only runs on VMS/OpenVMS which is problematic....but I've got 20-year old scripts that are still running just fine today.
(I've even written a Tiny-Basic interpreter in DCL!)

Things haven't improved much. (5, Interesting)

Animats (122034) | more than 6 years ago | (#24802219)

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.

Re:Things haven't improved much. (1)

belmolis (702863) | more than 6 years ago | (#24802755)

What's your beef with Tcl? Perhaps the changes aren't in the features you don't like, but Tcl has seen major changes over the years and is still actively developed.

Re:Things haven't improved much. (3, Informative)

Bogtha (906264) | more than 6 years ago | (#24802953)

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 [python.org] 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 [python.org] seems like good coordination to me and easy_install psycopg2 and similar have never let me down.

Re:Things haven't improved much. (1)

magus_melchior (262681) | more than 6 years ago | (#24802955)

In my experience, Ruby syntax tends to be easy to read and maintain compared to Javascript or Perl, although you are still free to obfuscate it to your heart's content-- its rather libertarian syntax allows Java coders and shell scripters to continue using their respective styles, which is nice if they want to try it out. Many of the language features that Ruby proponents bring up are often found in some way or another in Python, Lisp, or Perl. Being relatively new to the scene, it has fewer well-developed libraries, which may change with more developers using Rails.

I don't know if that helped much, I just code in it; I haven't really delved into how the language works.

Wikipedia [wikipedia.org] should have more info than I do.

Re:Things haven't improved much. (4, Informative)

Abcd1234 (188840) | more than 6 years ago | (#24802961)

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.

Future of scripting langauges (2, Funny)

xpuppykickerx (1290760) | more than 6 years ago | (#24802293)

What did they use to code the Matrix?

Re:Future of scripting langauges (1)

Creepy Crawler (680178) | more than 6 years ago | (#24802535)

Shaper [netspace.net.au] .

Specifically designed to create a digital consciousness from a seed value of 700MB (the amount of data held within our human DNA).

Re:Future of scripting langauges (1)

Tweenk (1274968) | more than 6 years ago | (#24802861)

Machine code - why would machines need English-like dialects instead of using their mother tongue?

What about real languages? (0)

Anonymous Coward | more than 6 years ago | (#24802297)

To hell with scripting languages.

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

As a game engine developer, I'm hella-sick of C++. But there just isn't anything else out there that can get the job done. Everyone is focused on these dynamic languages with JITs and bloated runtimes and garbage collectors. They may give decent performance if you can arrange a suitably ideal environment for them to run in. We can't use them for game engines, though.

objC? (1)

MattW (97290) | more than 6 years ago | (#24803017)

I'm not sure what you're sick of with C++, but I've been writing objC lately for the iphone, and I'm definitely enjoying it a lot more than I ever enjoyed c++. (Although that may be just because I like Apple's nextstep object hierarchy more that I ever liked the c++ libs)

Scripting language performance (2, Interesting)

tcopeland (32225) | more than 6 years ago | (#24802313)

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 [blogs.com] to prevent rcov segfaults. It doesn't fix the root problem, but it's a start.

Glaring Omission: Groovy (5, Interesting)

kimanaw (795600) | more than 6 years ago | (#24802417)

I was surprised that Groovy [codehaus.org] 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.

Re:Glaring Omission: Groovy (5, Informative)

Esther Schindler (16185) | more than 6 years ago | (#24802549)

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

Good timing (2, Interesting)

adpe (805723) | more than 6 years ago | (#24802427)

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.

Re:Good timing (1)

Ragzouken (943900) | more than 6 years ago | (#24802543)

Have you tried Psyco? If Psyco doesn't work, rewrite the intensive parts in C.

Languages as APIs to Bytecode (0)

Doc Ruby (173196) | more than 6 years ago | (#24802599)

I really wish that I didn't have to learn different languages that all do basically the same thing with different syntaxes and styles. Especially since they all get compiled into highly optimized code that is basically the same for the same jobs, data structures and algorithms, regardless of the different language in which the source is written. I'd like to write in whatever language I want, see it compiled into corresponding bytecode, and then later reconstruct it into source in a different language that's functionally identical.

The really hard part is not so much getting all the different source codes in the different language into the same bytecode. It's getting that bytecode into readable source in different source languages.

Perl's Parrot VM is supposed to execute bytecodes in all these different languages. I wonder whether we'll see anytime soon a decompiler that can let us use any related language we want, and de/recompile automatically into fairly clear and simple source in different languages, so other programmers can collaborate with us, each in our own favorite idiom. Or even better, import code in any language (of a limited set of closely functionally related ones), not just the one we're actually programming in, and see it converted. Not just link to a library, but actually convert and merge the source code files together.

Javascript Works Well for Telephony Too (1)

anthm (894202) | more than 6 years ago | (#24802889)

Several years ago I wrote a javascript module for Asterisk open source PBX
More recently I added it for my own project FreeSWITCH ( http://www.freeswitch.org/ [freeswitch.org] )

We actually also support LUA, Python, Perl, JAVA and MONO as ways to script telephony apps.

It's quickly becoming a great new way to prototype and deploy audio driven apps for your phone system.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?