I am currently working on a large project and will relatively soon need a scripting language for utility scripts, like deploying the project in full from source, checking and fixing the database, building a ready to deploy bundle, and so on. The project is written in PHP and I thought about using it, but I dismissed that as not suitable for the task.
What I would mainly require would be, ordered by improtance:
That's all I can think of for now. I have reviewed Python and Ruby; Python satisfies all the requirements, and Ruby seems to as well, though I am not sure about ease of deployment on Windows and the availability of libraries. However, I am also looking for your experiences with using this sort of scripts written in the language of your choice.
You said it: Python meets all the requirements. That's my "vote" though I may be somewhat biased.
Edit: (on my first hand experience, in the context of tasks described in question)
A the risk of seeming either cocky or inexperienced, with regards to scripting-type activities, I've never painted myself in corner that Python didn't allow me to get out of.
A possible "critique" of Python however is, somewhat paradoxically, its extensive package library (in addition to its generous standard library); while it's nice to have all theses "3rd party" libraries, it can be sometimes difficult to gage the maturity, and effectiveness of some of these packages, and one sometimes wastes some time selecting these (or deciding whether to write "from scratch"). Yet, such evaluations can be fast enough however, thanks to the interactive nature of the interpreter.
Ruby is decent, but python is excellent. Python comes with great documentation, is easy to learn, has a large community, sports a very useful standard library, will be pre-installed on most unix-like systems, and is not too painful to install on Windows.
Python is a great scripting language and very portable. It's my choice when portability of my scripts is the main issue.
But portability is seldom my main issue. Most of my scripts deal rather intimately with OS issues. So when I know I'm running on Windows and may not have python available, I use JScript under Windows Script Host.
http://ant.apache.org/
I use it for both Java and PHP projects. And to answer to your points:
Python, without a doubt. It meets all of your objectives and has the benefits of being concise and easy to learn.
iconiK,
This answer is only peripherally related to your question, but you're gathering more information than you need to solve this problem. Your analysis and preliminary research are pretty impressive, and the cost of postponing your decision is higher than the marginal value of Python over Ruby or vice versa.
I am also looking for your experiences
My experience is that there's a limit to the amount you can learn about a technology through research, and my gut tells me you've already reached that limit. You'll be better off if you stop researching and get on with your project. If you can do a small pilot project, that will be great, but if not, you are at the point where you will learn more by just diving in than you can possibly learn by asking questions.
Probably my most recent salient experience is that in 1999 I had to decide whether a major compiler project would be written in Objective Caml or Haskell. We choose Caml, and there have been many times I wished I had chosen Haskell, but in fact in 1999 Caml was probably the better choice, and certainly we did a lot of good work with that compiler. The worst choice of all would have been to wait to gather more information.
I think the other lesson here is that because no technology is perfect, whatever technology you choose, you will have regrets. Just because you have regrets does not mean you made the "wrong" choice.
Code in good health!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With