Reflection about the next main scripting language¶
| python | ruby | groovy |
I differentiate normal programming language and scripting programming language.
Scripting language must be used for quick prototyping, automation, has a nice integration with shell, etc. Also, it should be very quick at startup time.
So, any automation task can have the next implementations evolution, e.g.:
bash
script- then any scripting language (
Python
,Ruby
,Groovy
,Perl
, etc.) - CLI application
I have been using several languages which have such characteristics (or similar): Ruby and Groovy.
Ruby¶
I started using Ruby (as a scripting language) in 2008. It was cool. In that time Ruby community was “bashing” Java. The community was and is Ruby on Rails centric, mainly non-Windows. Almost nothing has happen outside of Rails (Vagrant, Chef and Puppet are exceptions), and it’s sad. But this language has a “soul”. I could not explain, but I feel happiness while I am writing something in Ruby :-)
Groovy¶
Groovy is nice JVM language which has own pros & cons. But now, this language has some problems with popularity (see link:{2016-groovy-post}[The state of Groovy and other JVM Languages]). And for me it’s a very important point. Also, due to JVM nature, the script startup is very slow (I do not count GroovyServ).
Groovy language syntax is much better for me than Ruby. I like Groovy packages and hate Ruby Modules and Namespaces. Again, it just a matter of taste.
Thoughts¶
If we compare different scripting languages they are almost the same in terms of what can be implement using them. But, some of them have community problems, some - ecosystem problems, some - is just not well suited to your development approaches (e.g Perl, Lua, Js/Node.js).
And as always there must be some shift or motivation to look around and try something new and hopefully better. The time invested in learning new “tool” must be rewarded in future.
If we look around the decision of picking another better scripting language is very simple - it’s Python. And by “better” I don’t mean syntax.
Python¶
I have never used Python because Ruby (or Groovy) had the similar language features and I have not seen any benefits in switching to another language. On the another hand, Python has huge ecosystem, it has library for almost everything, it is not a framework-centric language (see Ruby on Rails, Groovy: Grails or Gradle). And the most important it has a momentum in terms of Data Science, Machine Learning and Artificial Intelligence (where I have big interests as the other people). Unfortunately, Ruby has lost this fight.
For several month, I have been using a lot of Python-based tools (AWS CLI, ZMON, Stups) during my work day and this is another big motivation for me to look into the Python as my potential next scripting language.
There is a very interesting moment. I do not like Python syntax (I am not dogmatic). For some reason Python syntax (and language features) is very ugly for me. And I would pick Python only because of pragmatism and not because I like it. But, I am not sure whether Python will be my main scripting language since Python is not equal to “happiness” :-(
Python is very popular right now (check the numbers below) and it’s a very good time to start using it if you don’t have biases like I have.
Languages Popularity Statistics¶
RedMonk¶
The RedMonk Programming Language Rankings: June 2017
TIOBE Index¶
TIOBE Index for October 2017
PYPL¶
PYPL PopularitY of Programming Language
IEEE Spectrum¶
Interactive: The Top Programming Languages 2017
Stack Overflow¶
Growth of major programming languages
Github¶
The fifteen most popular languages on GitHub (2017) by opened pull request
References¶
- The RedMonk Programming Language Rankings: June 2017
- TIOBE Index
- PYPL PopularitY of Programming Language
- Interactive: The Top Programming Languages 2017
- The Incredible Growth of Python, published September 6, 2017
- The State of the Octoverse 2017, Github statistics
- GitHut 2.0. A small place to discover languages in Github