For a (brief) while, I was learning F#. It proved an interesting excursion. If you into mathematical correctness F# and OCaml maybe just the languages for you. Myself? Well I'm looking for something with a little more to offer in the functionality department. I want a language where I can do most anything. I'm willing to sacrifice mathematical niceties.
Python seems to be that language. Python is one of the languages I knew I would love when I tried it, so I've held off diving into it until I had gone through almost every other one. I've journeyed through Lisp, Scheme, C++, C#, Java, Ruby, F#/OCaml and dabbled in a few less known like Factor and Cat.
Python Advantages:
- Available and almost every platform (every platform I'm interested in)
- Terse clear syntax
- Whitespace (yes, I do enjoy the whitespace!)
- Easy to learn, easy to teach (I taught C++ to undergrads during my time in Hell)
- More complete than Ruby
- Better documented than Ruby
- Good riddance to the Edit/Compile/Wait/Debug loop (hello Edit/Test, Edit/Test, Edit/Test...)
- Python is available on the CLR as Iron Python and on Java as Jython.
Disadvantages
- It's not C# (heh)
- It's not Java (heh, heh)
- Performance (slower than the above)
I believe that Gabriel is correct and that worse is better. Worse as in Python is not Lisp. Even Dr Norvig, chief brain in a jar at Google, thinks Python is good for something.
Note that Python is one of the four languages in use at Google. Google has, in fact, hired the Frost Giant.
Python is used in game scripting. My favorite game series of all time uses Python as the scripting engine.
I've also found one of the best Web Frameworks to date to use with Python. I'll detail that it a future post.
Right now Project X is moving forward on rockets fueled by Python. This is the most complete proof of concept I've completed in an alternate language (not C#) and I'm LOVING it.