Just-in-time compilers, browser wars, and developer enthusiasm are just a few of the trends separating today’s hot scripting languages from the pack. InfoWorld’s Peter Wayner surveys programmers, commit logs, search engine traffic, and book sales data to provide a barometer of scripting languages — JavaScript, ActionScript, Perl, Python, Ruby, Scala, R, and PHP — providing a best-guess forecast of which languages are rising and falling in scripting hipness.
And rely on all the well tested tools like find, grep, awk, sed, etc to push data around. I almost write daily little scripts to get things done, mostly in minutes.
I admit I’m dinosaur, cause I still use c for my application writing, mostly commandline applications. I use php and javascript for my webbuilding, but I only use the web for creating GUI’s to use my scripts and applications.
Left GUI toolkits behind me years ago. To much hassle and people who rely on me wanted to stick to their OS of choise (OSX and windows mostly). This way I can use Linux to do the grunt work. Nothing more satisfying then a webpage as frontend and a cluster of 48 cores and 30 TB of glusterfs data-storage to make things fly.
But my work, facilitating MRI research, fMRI and DTI. lends itself for my style of working. The toolkits, like FSL, freesurfer, mrtrix, air, dcmtk, I rely on are also composed of commandline-tools.
Bash is it for me…
Edited 2011-10-17 18:12 UTC
Ever considered rc from Plan 9 instead of bash?
http://en.wikipedia.org/wiki/rc
As an addendum, another thing to consider is Common Lisp. Not so much because of the “Lisp” part, but because of the REPL, Read, Eval, Print Loop. The command line of a Lisp system. Either straight from a terminal, or in an Emacs buffer. The Emacs integration helps, but a straight CL listener is pretty nice in it’s raw form.
It’s just nice because it lets you play with your work like clay. Other languages have listeners, but they’re not as nice as Lisps.
It’s not quite to the level of Bash, it doesn’t support the piping mechanism that make Bash/Unix so capable. And I never really got use to SCSH (Scheme Shell) which tried to bring those facilities in to a Scheme environment.
But for just playing with code, it’s really nice.
I’m no web programmer, but given the fact that people are writing languages/frameworks such as Coffeescript and Pyjamas (and recently Google’s DART language) which compile down to Javascript so that they don’t have to program in it seems to indicate that Javascript must really suck
Hopefully, we can come up with some sort of language-agnostic VM that browsers can use in the future (independent of the OS), so that you can program in whatever you want.
Edited 2011-10-17 18:21 UTC
Actually it mostly shows how that many, many more people use Javascript now than just the webdevelopers.
Many people don’t really know Javascript well so they want to used what they are used to.
Up until recently(2-3 years), there really were not any good javascript books. All of them just presented it as a glue language for manipulating dom & calling ajax, with a ” pay no attention to the functions behind the curtain” approach. Plus so many just use javascript frameworks, that there aren’t many developers that know the full breadth of javascript. Although, the persuasiveness of the frameworks suggests that the core language is lacking in some respects.
The frameworks mostly bring 2 things:
compatibility with older browsers and easier ways to work with the DOM.
Nothing of that has anything to do with the core language.
That are obviously things wrong with the language. But I doubt you can find a language without problems.
The best way to work with Javascript is to only use the “good parts”. There is a book with the title “Javascript the good parts” that describes it.
“Ironically” it was Microsoft that made sure all the bad things remained in the language. Just have a look at:
http://www.livestream.com/etsy/video?clipId=pla_1463e546-47ed-4a93-…
Minute: 13:37
Also obviously with their long time between releases between IE6 and IE9 they made sure nothing much changed on the web.
So it was really hard to evolve the language.
Edited 2011-10-17 19:21 UTC
The browser quirks workarounds is a good point, I over looked that one. But, working with the dom was never difficult by any stretch of the imagination. Take a look at your favourite framework and see how many features are really dom shortcuts and how many are really language modifiers/ improved browser controls.
“easier ways to work with the DOM”
“dom shortcuts”
That is the same thing in my eyes. 🙂
Actually, the frameworks port part of the CSS specification to Javascript to allow for behaviour (Javascript) to be easily attached to elements.
Edited 2011-10-17 19:58 UTC
Yes, my eyes as well. I don’t think you understood my post. I think the frameworks do just as much language modification and html controls as dom short-cuts.
Some frameworks do that. Take a look at something like Mootools’s make up
http://en.wikipedia.org/wiki/MooTools#Components
Core, More, Class, and Natives are all signs that JS isn’t the greatest. The other half is Dom Improvements, browser compatibility,ect.
Those are usually just stupid hacks for people who don’t know how what Javascript strengths are or don’t understand prototypal inheritance.
But as I mention before is that the reason the language hasn’t evolved is because of compatibility. That seems to finally getting solved.
Where are seeing lots and lots of browser updates these days.
I think that was a point I was trying to make at some point in this thread. Right about here:
http://www.osnews.com/permalink?493257
“Core, More, Class, and Natives are all signs that JS isn’t the greatest.”
Agreed.
I very much see Coffeescript and Javascript in the way that a high-level language relates to bytecode or assembly. I think people will increasingly be using Coffeescript, and they won’t care about the Javascript that it compiles to (just as people who use Python don’t care about Python’s bytecode).
Not really, any more than the existence of any other language proves that all the others suck. Javascript isn’t a bad language (ignoring it’s early reputation), but languages like Coffeescript provide features that either aren’t present in Javascript at all, or which can be expressed more simply in a different syntax.
Most of those features tend to be borrowed from “functional” languages, things like filtering and mapping of lists, or the very compact syntax for defining functions. To some degree it’s just a matter of preference, but having a dedicated syntax for some of those things makes for much cleaner code.
right… just like it does not suck to build and maintain a complex application in assembly.
Yes, but Javascript isn’t in the slightest bit like assembly – it’s a high-level language intended, perfectly usable for developing web apps, and increasingly popular for server-side use too.
Except that is not very good for use with very complex web applications. There is a reason Google used GWT to compile Java to Javascript, and the coffeeScript project was started, and PyJamas exists…… Large Scale projects developed in Javascript is a bad tool to use and does not allow for use of Software Engineering principles to be applied.
I think that those VMs already exist in all browsers and they run a byte code called Javascript.
It is because most developers try to code JavaScript as if it were Java, C# or whatever their language of choice.
It does shitty things if you aren’t careful. Good coding conventions and practice eliminate most of these problems.
A good language should not change performance and safty based on coding conventions.
Sooo… are you trying to say there are virtually no good languages around?
conventions are rules for coders based on policies set by management… not parts of the language.
Irrelevant, they can change performance and safety (and what parent poster was saying is rarely “set by management” anyway – too many people simply try, on their own will, to code in js like in other C-lineage languages they know / unfortunately, the deliberate trick of outward similarity to C-lineage doesn’t help / but js is also quite Lisp-y; Scheme at least)
Edited 2011-10-24 23:27 UTC
You can write bad code in any language … I seen some very nasty things done in C#, VB.NET, Java etc. … Which apparently are “better” languages than JavaScript.
TBH I like JS … It is a fun language to work with.
Edited 2011-10-19 05:22 UTC
True, but some langauges (…perl…maybe JS) seems to almost actively encourage bad practices.
Bad code is not the same thing as using coding conventions to get something to work right.
perhaps something other than coding conventions was meant .
And now Clojure has ClojureScript which also compiles to javascript
I’d say Coffeescript is looking promising. A very nice, clean front-end to Javascript. It’s like Javascript should have been from the start.
I think if CoffeeScript isn’t careful, it might just replace Javascript because browser makers will start including the runtime… not that it is necessary since you can just compile to Javascript.
I personally use Ruby (IRONRUBY) to add scripting capabilities to my software, it is a scripting languaje I enjoy a lot.
I’m digging clojure a lot. It’s dynamically typed, but you can give type hint metadata to enforce a type (and vastly increase performance). Clojure looks like it’s interpreted though it actually generates java bytecode on the fly. If need be, you can AOT compile to interop with Java better, or for a performance gain, or even just to obfuscate your code. And there is major work being done by the core dev team to produce ClojureScript…which generates javascript code.
I know what people are thinking…uggh….lisp…for the JVM (double ugh). I remember back in college trying to understand lisp for some AI programming, and I just couldn’t get past all those parens. But clojure is not nearly as overloaded with parens as most lisps, thanks to [] vectors, {} maps, #{} sets, and #”” regexes. Just as once upon a time I thought “white space matters” was stupid in python (I don’t even think about it anymore), I think the same way about the syntax for clojure.
The only hard part of clojure is the functional paradigm aspect. But once you wrap your head around closures, recursion or lazy sequences instead of loops, anonymous functions, immutable data, and STM for concurrency instead of locks…you’ll wonder what the big deal is about OOP. I even started writing my python code in a functional style after learning clojure.
And really, don’t let the fact that it’s a lisp relative deter you.
Of the seven languages mentioned, I use Scala and R on a daily basis. The article is quite bizarre:
1) It’s possible to write scripts in Scala and call them using the Scala REPL. Howver, if you find yourself using Scala instead of, say, Python as a scripting language, you’re utterly missing the point. Scala is a poor scripting language but a terrific language to handle complex abstractions that you can then apply across existing Java codebases. Scripting really is an infinitessimal part of what makes Scala so great.
2) In a similar vein, R isn’t a scripting language in any serious sense. In fact, its scripting capabilities really extend only so far as to be provide scripting for the language itself. If you need to do any serious scripting in your statistical analysis, you’ll end up doing it with, say, Python and hooking into these scripts from R using something like R’s system2() command. Moreover, R has little (if anything) to do with Lisp beyond a similar approach to scoping, and its primary data structure is the data.frame not matrices, as the article claims.