Here is an interesting subject which I would love to bring up and share with everyone. This article is not meant to compare Python with any other language, and in fact I will not be mentioning any language in this article but Python. As Everyone reading this might know by now, Python is a very diverse language. It can be used for tasks such as web development to the development of a Geographical Information System, to even computational biology and bioinformatics. Python has a vast array of fully supported GUI and web frameworks. This makes it a snap to apply the Model-View-Controller programming methodology to an entire application's ecosystem of software. The same code that is used to generate data for a GTK or Windows-based GUI application can also be applied to displaying the same data in a web application on the Internet. It is absolutely astonishing on what Python is really capable of when it comes to full-stack development. A developer really only need to know Python, and then the possibilities of what she or he can do is limitless.
That is only the introduction to this article, and by now, regardless if you know or use Python or not, you should be at least somewhat impressed on it's capabilities. Python is so much more than a diverse language with limitless possibilities. Python is a vast community of developers from many backgrounds, ranging from computer science, to biology, to mathematicians, to even engineering. Python for many in the science community is the go-to language because of packages such as SciPy and Biopython.
Python is normally installed by default on most Linux distributions, if not all. Python is also pre-installed on Mac OS X, making it a very universal language in terms of install base. This makes it easy to share your programs with other developers and colleagues. Due to this type of default install base on these platforms, some of the operating system specific scripts are also made in Python, and thus there are more bindings to operating system specific services that work right out of the box. This makes Python ideal for system automation and a general shell scripting replacement.
If a developer knows Python, they are able to develop a wide array of applications, ranging from system automation, GUI applications, embedded development, web development, to even 3D modeling with Blender, all with a single language. This enables a developer to be extremely proficient in one language alone, as the developer doesn't need to worry about learning any additional languages to take on additional development tasks for their project. I personally distribute my Python knowledge throughout the Python ecosystem, I know how to build GUI applications, console application, system automation applications, network servers, and even web development. With Python, I am hardly limited to a single task, as just like Linux, Python is a general purpose. As with Linux, you aren't limited to just servers, you can deploy Linux on workstations, and embedded devices to even smartphones, as seen with Android. Knowing how to operate Linux in this day and age is starting to become critical due to the wide array of embedded devices and servers on the market today. Linux is only growing, and I believe it will play a vital role in the future of computing as we gravitate away from traditional PCs into the more mobile and embedded world. If Google and Apple have their way, PCs of the future will only be used for software development and PC gaming. I don't PC gaming dying, at least anytime soon.
Python in the future will have a similar role to that of Linux, it will be that universal language that every computer science major will know and understand. With the Raspberry Pi, and children learning Python at a young age because of it, Python will be everywhere in our next generation of offspring. When I was a kid, BASIC was all the rage, where every home computer manufacturer had to ship with BASIC in ROM or the unit wouldn't sell as good. Python is like the new BASIC. When I grew into my teens and early adulthood, guess what was one of the more popular and widespread development kits for desktop development? If you said VisualBasic, then you would be correct. VisualBasic was huge in the late 90s and early 2000s, it was everywhere in the media and lots of organizations used it for development of internal software tools. As a result, ASP/ASP.NET used VisualBasic at the primary language at first, and is still used in .NET programming today.
I believe Python is very critical for any developer to know and understand, or they will risk being left behind like FORTH and COBOL developers of the generation before BASIC. There are still some careers out there that require FORTH and COBOL, but for very old companies which have been around since the 70s and find it difficult to migrate away from their current solutions. If you understand how technology trends and have done research of how technology has trended since the 70s, it is difficult to not determine that Python is turning into the next hugely trending language and is only still growing. It is the language which our current offspring is learning that will be the next COBOL or BASIC in our technological world. Depending where some children grow up, you can also agree that Linux is also trending, especially in some European countries, and especially in communist countries where monopoly rule is banned. With the advent of Android, Ubuntu, Raspberry Pi, and the One-Laptop-per-Child project, children are seeing and using UNIX-like operating systems at a very young age. Also, the language shipped with the OLPC project is Python, with the entire Sugar desktop environment being made in Python. Another popular software product that teens and young adults are getting their hands on which uses Python is the Blender 3D modeling and animation software. One of my cousins has been learning Blender for her college degree as a 3D designer. In order to automate aspects of the 3D rendering software, and to enable game development, one can use Python. Python is literally everywhere, and in heavy use on popular software projects for the aspect of scripting and automation.
In conclusion, to why to use Python should be a simple answer for any developer now. It enables a single language and code-base to be used across multiple projects easily, and it might very well be the next big language of our technological future. It is always best to be ahead of the curve and to not be left behind.