Wednesday, 16 December 2015

Python as a Software Language - Does Sexy ever go out of Style?

Python’s lineage in science defines its past, but does it define future direction? Is Python 3.4 here to stay?



There has being allot of talk coming from certain quarters about Python being a dying language, which of course is not true. Python’s adoption is increasing and since finishing my last course in Software and Cloud Technology, I have heard that Python technology, community and jobs becoming more plentiful, which is great news indeed (...if you like groovy software!).


All computer science or software students will tell you that Python is a dynamic language that is learnt after learning strongly typed languages like C# or Java. For instance, I learned Object Orientated Programming (OOP) through C# at college and a little over 6 months later am programming in Java and Python alongside other languages at entry level. This “newbie” first impression of Python (compared let’s say to C# and Java, which are similar to each other) has led me to to consider it a sexy language for the following reasons:
a.              Syntax is concise, you literally can do more with less. You don’t have to programmatically write a novel to make a programmatically correct point!
b.              Don’t have to worry about excessive {wrapping of methods} making methods more readable
c.              Function nesting is actually fun
d.              Dynamic typing of data types allows you to move through variable declarations much easier and variable typing is smooth allowing good data typing to take place dynamically. E.g. int x = 12; in C#/Java is x = 12 in Python.
e.              Mathematical and Scientific libraries are awesome which is a clear advantage over general purpose languages like Java or C#. Am only scratching the surface of libraries like numpy and scipy but intend with time to get more immersed in them.
Downside for me compared to Java and C# is the following:
  1. Interpreter language so you need to run it to see a programming mistake. Don’t run your program regularly and use good development techniques, you could be forever debugging your code. Compiler warns you when typing of certain problems in Java and C#
  2. For those like myself who are not gurus yet in the language, we code heavy using the libraries and intelisense. Better IDEs for little to no cost to compete with Java and C# would bring more new (and poor) programmers like myself to the language.
  3. Python’s original use case is scientific but it’s very good for example in web development. Wider adoption due to its “science/numbers” reputation may be slower in my view than it should be.
  4. Python 2.7 (established and awesome) V 3.4 (why are we all not using it?). Transitioning to Python 3 is a very long process with 2020 as the cut off date for supporting Python 2 according to Thomas Robitaille’s article reporting on his Python adoption survey.
So, on the primary use of Python 3, Thomas’s survey 2012 (313 respondents) saw Python 3 uptake at 0% rise to 17% in 2015 (781 validated respondents) for primary use, which is a note that its slowly rising in adoption. There is a myriad of reasons why it is such a long process and a slow rising number on Python 3. Some of those reasons are as follows:
a.        Scientific libraries are fully compatible with Python 3 raising that number from 0%.
b.              Some use-cases are apparently not supported yet in Python 3
c.              Python 2 is still being used in training for the language (online & classroom)
d.              Company migration is not as fast as it could be from Python 2 to Python 3 restricting what version developers use
e.              Windows use of Python (originally on Linux/Mac) is up-to 10% thanks to continuous integration testing from developments such as AppVeyor giving Python further penetration power into Enterprise.


Here’s the kicker, when an open source language has two stable versions that are popular and is strongly supported by the community, it delivers a ‘slow burn’ transition possibility to Version 3 by 2020, when it just may outclass all others in areas that would not normally consider Python as an option. Even now, Python’s use cases has expanded from its core scientific beginnings to do things like web development to calculating the distance between stars in other galaxies, so it’s not hard to why one may term it as sexy language. Why not leave your opinion. Is Python a language worth learning?

Sources/Credits:
Pics;
Credits;
http://astrofrog.github.io/blog/2015/05/09/2015-survey-results/

No comments:

Post a Comment