27 December 2009

Tags: ruby |


UPD: This post was written long time ago. I have decided to re-publish it for historical reason

There are a lot of scripting languages: Perl, Python, Lua, Tcl, Ruby, JavaScript, Scala, Groovy, Erlang, Lisp, Scheme and Bash/Awk(as shell scripting).

There are criteria I’ve tried to match for my scripting language of choice:

  • Easy to learn

  • Active and big community

  • Amount of books and tutorials which are available

  • How many screencasts, conference videos are on-line?

  • Can replace shell scripting?

  • Number of text editors which support selected language

  • Code for fun? Is it suitable for selected language

  • Amount of useful frameworks and libraries

Let’s discuss each of them.

  • JavaScript. I like this language, but it doesn’t have standard serve-side API. There are a lot of implementation, but community have to work a lot to get valuable result. Check CommonJS to get more info

  • Perl. I’ve never tried to dig deeply into this and code style doesn’t suitable for me. I can’t code for fun. Number of tutorials/books are huge. Community is big. But, it’s not my language of choice.

  • Lua. There are no killer features, as for me. In general language are cool and fast. Easy to learn.

  • Tcl. I just don’t like Tcl language. It’s main stopper for me. Community not so big in comparison with other languages. Amount the books is limited.

  • Lisp/Scheme. Great languages, but not for shell oriented scripting (It will be awkward to write shell scripts)

  • Erlang. Interesting language, but it’s not general purpose. Good for concurrency domain. I have to skip it.

  • Scala/Groovy. Yet another scripting languages. I can see hype near these languages, especially Scala in Java community. I can predict, that the next year will have got another hype language(s).

  • Bash/Awk. I’d like to learn these two, but I’m windows user and I don’t have a possibility to use these during my work. I can use Cygwin/MSYS, but it will be strange, awkward. It will be unnatural. I’m sure I need to get additional experience in Bash scripting, but not now. Time is my enemy.

Python vs Ruby. These two are very similar. Both have big and active community. Both are general purpose languages. Both are great. But I falling in love with Ruby blocks. I love http://railscasts.com/. I’m not web-developer, but Rails concept is super-productive. I just love Ruby community.

But, there is one drawback. There is a ton of libraries and frameworks which are doing the same thing. Community super productive and it’s in developing. There is no consistency. So, I have to be aware of any big changes in my favorite libraries/frameworks. I know it sounds strange but it’s IMHO.

Shell scripting and task automation is one of the main direction to be productive. From time to time I have to work on different OS’s (Windows, Linux, OS X) and environment. But my primary work station is Windows based. I’d like to have consistent scripting and automation tools for all these OS/environments. We can automate everything with Bash, etc. But what about Windows? So, choosing scripting language was good decision to create multi-platform toolbox. So, I can use my knowledge on any machine with minimal rework (if required).

Any developer should have some scripting language in his arsenal. The right tool for the job. Keep follow this idea and you will be productive.

comments powered by Disqus