Several up-and-coming scripting languages–some open-source–are gaining popularity among software developers. These dynamic programming languages, including Groovy, Scala, Lua, F#, Clojure and Boo, deserve more attention for your enterprise software development, even if your shop is dedicated to Java or .NET. Here’s why.
Only two of the languages featured in that article are scripting languages: Groovy and Lua. The rest are general purpose programming languages, even the bonus languages at the end.
Otherwise an interesting article.
Depends on how you define a scripting language, doesn’t it? Personally, I think the distinction is somewhat pointless – that a scripting language is simply a language well suited to scripting, regardless of what else it might be suited to. Python is certainly a good language for scripting, and also for larger-scale development.
At least three of the languages mentioned (scala, F# and boo) have a static type system. If you call them scripting languages you might as well call java and c++ scripting languages…
I’ve heard C test code referred to as “test scripts”. Really, the difference between a scripting language and a programming language is nil. The distinction is purely in how you use the language, and even then I’m not sure there is a description.
[QUOTE]Really, the difference between a scripting language and a programming language is nil.[/QUOTE]
Agree. The only thing which then can be labeled as a “real” programming language would be coding in binary, which is silly.
Definition of a scripting lang from wikipedia:
[QUOTE en.wikipedia.org/wiki/Scripting_language ]
“Scripts” are often treated as distinct from “programs”, which execute independently from any other application. At the same time they are distinct from the core code of the application, which is usually written in a different language, and by being accessible to the end user they enable the behavior of the application to be adapted to the user’s needs.
[/QUOTE]
I wouldn’t call Scala a scripting language.
Most people wouldn’t call C a scripting language, yet people clearly write “scripts” with it.
Note that Scala, Boo and F# have local type inference, so this blur a little bit the difference between ‘scripting’ language and those language.
Of course C++200x will have local type inference, but C++ won’t ever be confused with a scripting language due to its “early optimisation” focus..
I could be wrong, but I disagree with the quote in the article which postulates that Groovy could replace Python and Ruby in the next few years.
While Ruby definitely has it’s gotchas, Python is a relatively clean and easy to use language. Groovy certainly has better syntax than Java, but it is still closely tied to Java and therefore has some gotchas which I think will always keep it from overtaking Python in popularity; at least with non-Java programmers.
For example, semicolons are optional in Groovy; but not always. There are times where leaving off a semicolon will cause your code to throw exceptions (like when a missing semicolon causes Groovy to think your class initializer is a closure instead).
I think the JVM is great and have always lamented that it has such a wordy and obtuse language tied so closely to it.
I think Groovy is more pleasurable to write in than Java, but I think Python is better than Groovy and will continue to be my preferred language.
Academically speaking, in my opinion anyway, Ruby is just a lot of fun, so I think it will be around for quite a while too.
Edited 2008-10-14 08:11 UTC
Maybe it’s just me… probably is just me , but why is it that scripting languages think it is easier to leave out structure like semicolons, parenthesis, braces…
To me, it just makes it more confusing and easier to make mistakes. I mean, it’s been a while since I used VB, but remember at times having to NOT include parenthesis when calling a procedure.
like: MyProc arg1, arg2
when it C, it would look like: MyProc(arg1,arg2).
Then there’s things like makefiles and their use of tabs… I don’t know. To me, the value in scripting languages are their libraries. I don’t find their syntax any better than c/java like languages.
Anyone else know why scripting languages don’t just use c-like syntax… as much as possible at least?
I completely agree with you on using parenthesis to signify a function with arguments being passed.
I can live with or without the semicolon at the end of a statement, but whichever way a language chooses to go, they need to be consistent.