8

Right now, I use Python for my quick scripts and prototypes (e.g. algorithms, my pseudocode is very Python-like as well). The oher languages that I am familiar with include Java, C, x86 Assembly and Scheme, and Python is pretty much the best for this among these in my opinion.

Perl gets a lot of rep for this over and over again, and I have heard that Ruby isn't bad either, and the Python community praises Python for this too. What language (could be another one than these 3) do you think is the best programming language for:

  • Creating quick prototypes of applications or algorithms
  • Creating simple scripts for small, repetitive tasks

Important features for such languages include:

  • Little boilerplate code, not too verbose
  • (Very) high-level
  • Interpreted
  • Good and comprehensive standard library
5
  • To the closevoter, this is a language question with a specific requirement and thus valid for this site
    – Anto
    May 5, 2011 at 20:31
  • 2
    Which requirement is "specific"?
    – S.Lott
    May 5, 2011 at 20:50
  • 1
    Are you trying to validate your use of Python?
    – Apalala
    May 5, 2011 at 23:58
  • 1
    Voting to close, the question is only slightly better than: which is better, Perl, Python, or Ruby. May 6, 2011 at 1:14
  • I personally use Ruby but if you like Python there is not reason to stop.
    – Rig
    Dec 15, 2013 at 17:35

6 Answers 6

11

Stick to the Python. It has all the values, it just works and you already know it.
If you're having doubts read this: http://www.scientificcomputing.com/High-Performance-Development-with-Python.aspx - very good article covering prototyping in python.

1
  • 1
    +1 for “you already know it” given that it fits the profile. (I'd choose a different language for my own stuff, but in fact pretty much any scripting language with a REPL available will do for this sort of thing.) Dec 15, 2013 at 8:10
4

Perl

It

  • is interpreted.
  • is a high-level language.
  • is not verbose at all, see PGA.
  • has CPAN, it doesn't get any more comprehensive than that.
2

All three of those languages meet your criteria. I haven't personally used ruby, but between python and perl, I think python is a little easier to extend prototypes and scripts into long-term-use programs.

1

You could use JavaScript for simple UIs and tasks that do not fiddle with the operating system (file access, etc.). It is very easy to debug and analyze in Firefox + Firebug (or in Chrome).

I often write a very basic html file to startup my script and then "run"/open it in Firefox. Thereby I can easily set break points in the code, explore the data, etc. It is really cool for testing algorithms. You can post (temporary) results to the Firebug console using console.log(obj1,obj2,...);, where you can directly dive into these logged "objects" by clicking on them in the console.

I also started to write system scripts (incl. file handling) in Javascript, which is also very nice if you know Javascript well.

I am not sure about your desired "standard library" but I guess there are quite some libraries around in the rhino or node.js communities.

0

I would say it depends on the OS I am using and where the tool will run. If it is in a JVM, I will use Groovy. If I have control over the environment on Windows or it is a Linux flavor I will use Perl or Python. On Windows, when I do not know what is on computer I will use JScript through the WSH or Powershell (as you can use the COM interfaces or the .NET Library).

Ruby might move in to the mix as I get more comfortable with it.

(For Quick Prototyping and scripting in the JVM I really recommend Groovy)

Now I have added a bunch of stuff. Use the language you are most familiar with, Python as you will be the most productive.

0

My two cents for an almost 3 year old question:

Ruby is perfect for custom DSL, and prototyping is a task in need of those.

  1. you want a new efficient mini language for a very specific task

  2. you want contributions from someone with different skills than yours.

Not the answer you're looking for? Browse other questions tagged or ask your own question.