What is your favorite scripting language?

Which language reigns supreme? This is the question that seemed to create the most controversy in our Readers' Choice poll this year so we thought we'd have some fun and open it up to the public to discuss. (This is better than a vi vs. emacs war!) Cast your vote.

Update: Phil Hughes writes Is Lua Really Wonderful. Make sure to check it out.

32% (1244 votes)
19% (757 votes)
13% (506 votes)
2% (76 votes)
9% (370 votes)
2% (71 votes)
15% (580 votes)
Other (comment below)
8% (297 votes)
Total votes: 3901


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Tcl is just amazing

Bernard's picture

I've been programming in Java, VB, python, ruby, hypertalk for the best part of 10 years. Foolishly I dismissed Tcl a long time ago. Finally after feeling that I wanted to have more control over my core language features, I started looking at Smalltalk and Dylan. Then, quite by accident I stumbled on something that made me revisit Tcl. What a fool I've been. When I first looked at Tcl 10 years ago I must have been too inexperienced to appreciate the power and beauty of it.

TCL/TK, i wonder why TCL is

LostOne's picture

TCL/TK, i wonder why TCL is not on that list.. who's ever heard of awk?... and.. all those other scripting languages use TK from TCL...:d

Tcl all the way

Anonymous's picture

Tcl/Tk of course! Tcl/Tk has to be the most under rated programming/scripting language out there - huge potential, but very little spotlight.


Leke's picture

REBOL because its fun and easy to get started with. It also runs on many platforms and has a command line (bash style) environment.
I also like Lua because its concepts are so minimalistic, yet applicable to many situations.

miss leading survey

Anonymous's picture

for people who simply want to see the result of the survey there's no button to press so you're forced to press "other" in a little effort not to ruin the survey results.

Next time try to put in a button so people can see the results without voting (since not everybody scripts).

favorite scripting language

Anonymous's picture


Favorite Scripting Languages

Blue_Bullet's picture

Regina REXX runs on almost any platform. No need to learn a different language for each platform. It is robust and integrates nicely with other packages.

My scripting needs are

Anonymous's picture

My scripting needs are simple, and bash serves those needs quite well. I do dip into awk and python occaisionally but I haven't spent much concentrated effort on learning scripting in those languages.

Bash and PHP

Alan's picture

I voted for Bash because it is my all purpose scripting language, but I do use PHP for my web work.

J from jsoftware.com

Devon McCormick's picture

This is a fantastic language for doing the quick little one-off tasks that seem to crop up during the day. It also has powerful, built-in analytic capabilities as well as a useful set of addons including interfaces to packages like LAPACK.


jaf's picture

It is a pity you didn't include Tcl/Tk in the list.
Both powerful & readily available on lots of platforms.
I use Tcl and Tk for all tasks that need scripting.

Vote for Favorite Scripting Language

Nicholas's picture

Groovy +1

Tcl / Tk

Mark Burrito's picture

Easy, and powerful. The only language I can really 'love'.

groovy scripting

Anonymous's picture

I think groovy should have made the list. I'm biased because I'm comfortable with Java, but groovy is an excellent scripting tool.


Anonymous's picture

WML is my favorite scripting language. I am learning it now and am enjoying it.

UNFORTUNATELY, i have to learn it on an XP computer but will be on LINUX in JUNE! :)


dizzy's picture

Simple, flexible, powerful and fun!


TclFan's picture

For day-to-day scripting, Tcl is still my #1 choice after 10 years. Recently started using PHP for web work, and like the OOP model, but it's overkill for 90% of what I do on a daily basis. Tcl is short, sweet, and works. My company still uses it today for commercial GUI applications.


eMBee's picture

the best compromise on

object oriented purism (unlike python, the basic types (int, float, string, array, mapping, multiset) are not classes to make them easier to optimize)

syntax (c syntax may not be for everyone, but it is used quite a lot, so having the same syntax in a runtime compiled (or scripting) language is nice, even though i prefer pythons indenting)

speed (pike tries to produce machinecode where possible and thus has non-portable compiled/bytecode, compared to pythons bytecode which is portable, but who needs that when it is easy to recompile code anyways?)

greetings, eMBee.


El Yaqui Grande's picture

I muddle my way through Perl for my work scripts.
I gave PHP a try and was very happy.
Tcl/Tk was the first scripting language I was ever exposed to in detail (the staff programmer at my job at the time did everything with Tcl/Tk)


Andrzej's picture

These days I mainly script REST-based processes, so I prefer to use XQuery as my scripting language of choice. The combo of XQuery, REST and XForms (XRX) is a killer.

Tcl/Tk and Tile

Bob Techentin's picture

Tcl/Tk, of course. For applications, web stuff, and the themed widget toolkit gives you native look-n-feel on Windows and Linux. Very happy!


Wiwat's picture

Definitely Tcl. I use Tcl as my main scripting language. Combined with EXPECT and TK make Tcl the best choice for me to produce a modularized software testing suite.


Anonymous's picture

Tcl is very intuituve and can be learned easily in stages.
It very powerful and has lots of available extensions and packages. Its easy to share code. I'm never at a loss of finding functionality that was already coded by someone else when really needed.

Scripting language

Anonymous's picture

I voted for AWK, but actually use igawk - it's advanced awk (gawk) with includes -- makes for a really clean way to write code.

I do quite a bit of data conversion/transformation work with patient data. It's great for that kind of work, although I'd never want to do CGI-BIN stuff with it.

Scripting language: other aka APL

Geneva Anonymous's picture

I use APL because it is old and doesn't appear inferior to more recent notations. Very flexible and terse. Enough products on the market. (In some case, Unix programs or commands are the tools of choice.)


markr's picture

APL ... Absolutely the best scripting language developed. Question is where can you still get the APL interpreter? I think a new generation can be turned onto APL with a little exposure.

Where to get (an) APL

Anonymous's picture

I'm a big APL fan but have been enjoying J (jsoftware.com) for the past several years as it has many of the advantages and lacks some of the drawbacks of APL.

You also can get a cheap, non-commercial copy of Dyalog APL from http://www.dyalog.com/ . As much as I like J, Dyalog has a much slicker IDE. However, I can code and run J from within emacs, so I'm very happy with this.

Scripting language: bash

Geneva Anonymous's picture

Considering bash as an entry point to Unix, I wish to add awk and grep and so on. For some tasks of file manipulation, I use APL in its APLX avatar with multiple parallel sessions. What is a "scripting language", is it the Opposit or the complement of an "oral" or "voicing language" ?


g-man's picture

What did you EXPECT?


oldcola's picture

Seems that I'm the first one to give this answer :-(

And I have no doubt that you

Anonymous's picture

And I have no doubt that you will be the last.

TCL left out?

Anonymous's picture

AWK is on the list but TCL is kept out? Tsk. Tsk.


Tim's picture

tcl is still an improvement over it's would-be successors. Simple, industrial-strength, and a new version just came out!

Scripting language

Hans Bezemer's picture

My favorite scripting language is 4tH, a Forth derivate. No wonder, I wrote it myself ;-)

Kudos on your 4tH!

Cesar U's picture

Hi Hans,

I'm actually a tcl advocate myself, but I was took a look at 4tH about a week back to see about using it for writing 2d graphic games on low end mobile hardware such as the GP2X from Game Park Holdings.
Given it took me a few days to port tcl over to the GP2X arm processor, I was blown away that it took me only one minute to cross compile 4tH for the GP2X.
I sincerely think 4HT has alot of potential. Keep up the good work.

BASH or Ruby

remi's picture

BASH for simple things ... Ruby when it gets complicated, or too hard to read.

If I ever want to be able to read the script again, I use Ruby.

It's never fun to come back to abunchof:
cat this | awk '{print $3}' | grep "18,000 escape characters" | ...

Also, Ruby's "magic" helps me be really, really productive and write DSLs and whatnot, making the code super yummy and easy on the eyes.

Tools like RSpec and Autotest help me quickly confirm that the script actually works and won't explode if given unexpected input, and also creates usage documentation.

PS ... why does this site's CAPTCHA have to suck so bad? I'm on attempt 4 to post this comment ... it's totally unreadable ...

Stop piping cats

cherwin's picture

Thats awful what you're doing here
cat this | awk '{print $3}' | grep "18,000 escape characters"
could easily be converted into
awk '/18,000 escape characters/{print $3}' this
People really do need to learn to stop piping cats.

J form jsoftware.com

a.frappe's picture

Is in the family of Array Processing Languages, it runs on Linux, Win, MacOS.
One line of J can do the same work as hundreds of lines of VBScript.
It's syntax is extremely simple and regular, maybe some thinks that this syntax is so cryptic, but Perl regex isn't it?

Take a look J at www.jsoftware.com and
http://www.jsoftware.com/jwiki/Scripts#head-458cc2df2b7015f67da15aacadab... - to see working examples of what I'm saying.


One more vote for TCL

Anonymous's picture

And I'm impressed by the number of comments for it.

I voted bash...

Anonymous's picture

First, let me comment on this. Lua is wonderful but both language and ABI break between language revisions. This is why it's only _really_ used as an embedded language.

The only relevant languages on that poll are bash and legacy awk. What matters from here on out is the runtime; parrot, tamarin, JVM, nekovm and Microsoft's patent trap. In fact the only relevant scripting language for the next 10 years is javascript; increasingly an output target for other languages (see Haxe, GWT).

scripting languages

herzeleid's picture

I use bash for lightweight scripting, but if things get hairy I go for perl.

TCL / Tk / Expect

Anonymous's picture

TCL with Tk and/or Expect. Especially great for automating interactive CLI applications. I still use it on a regular basis (along with bash). Even the new git uses it for a GUI (git-gui). Easy to code, comprehensible for maintenance, powerful and extensible.

Tcl/Tk - I've used it for

MartyBacke's picture

Tcl/Tk - I've used it for years and it's available for lots of platforms, including Mobile Windows.

J (jsoftware.com)

bathala's picture

J is so powerful that we've created a Domain-Specific Language out of it. :)

J (jprogramming.com)

Anonymous's picture

I am relatively new to J, but I am planning on doing a large percentage of my future work with this language. I have never used a language that is so powerful and concise.

Scripting language - J (from jsoftware.com), A+

Lorin Lund's picture

I use J for all kinds of things. Plan to use A+ when I finish porting it to Windows. I can't easily get away with using FreeBSD (my preference over Linux) very often so I need something that works on Windows. I'm toying with trying Tcl/Tk. I used to use PERL for a lot of ad hoc things before I learned J.


Marshall Nolan's picture

REXX is excellent although I have played with others: perl, bash, AWK, & python.

I should like to see also J

Lorenzo's picture

I should like to see also J in this list!

J = jsoftware.com

gosi's picture

J is the most advanced programming language around
Can be downloaded from


Right tool for the task

Krzysztof Kosiński's picture

If I had to:
- implement some kind of a parser - Perl
- create a dynamic website - PHP
- write a number-crunching program - C++
- write a simple install script - Bash
- write a really complex program - C++, or C++ libraries + scripting language binding
- add some fancy client-side functionality to a website - JavaScript (and I would rather drop the feature rather than use Flash or Java)

I didn't use Python, Lua, AWK or Ruby, but I think there are also some optimal uses for them. I heard that Ruby can be quite slow. I was scared away from Tcl because of the archaic look of its Tk widgets, though there probably is a GTK+ binding.

My point is that if you dictate your choice of language for a given task based on personal preference, you might simply lose time.