Introduction
I would suggest that the future will be enlightened with the development in Python. Python is a large heavily bodied nonvenomous constructor snake where java is a coffee. Seriously, even though I have been using Java for a long time on just started putting my hands on python, I found python really easy and interesting programming language.
Python vs. Java
Python is more productive language than Java. Python is an interpreted language with elegant syntax and makes it a very good option for scripting and rapid application development in many areas.
Python is a dynamically typed programming language where there is no necessity of declaring variables whereas java is a statically typed programming language wherein variables are to be explicitly declared.
Python code is much shorter, even though some Java “class shell” is not listed. This might be one reason why Python can be more productive.
EXAMPLE:
Let us try the most famous first step programming as an example -“The Hello World”
Hello World in Java
Java
public class HelloWorld { public static void main(String[] args) { // Prints "Hello, World" to the terminal window. System.out.println("Hello World"); } } |
Hello World in Python
Python3
print ( "Hello World" ) |
First of all, whatever we do in Java, we need start with writing a class, and then put our desired method(s) inside. This is sometimes very annoying and it does waste time. In Python, you can simply start writing your code, and then run it.
String Operations
There are a lot of string related functions in Python which is as good as or better than Java, for example, lstrip(), rstrip(), etc.
Constructors
In python, when you extend a base class, there is no requirement such as defining an explicit constructor for implicit super constructor.
File I/O
There are a lot of classes we need to import to simply read a file and we have to handle the exception thrown by some methods. In Python, it is just two lines.
Python-The King Maker
Python’s real strengths have long been server side technology, software development by non-programmers and as an embedded scripting engine for trusted plugins and in those areas, it’s still powering ahead.
Python Distribution
In linux distribution like Debian or Fedora, the dynamic language interpreters will be Python and Perl.
Apple has expressed their support for Python by building tools that rely on it. Python being the only dynamic language interpreter shipped as part of Mac OS X. Microsoft ship their Python Tools for Visual Studio bundle.
Google, of course, famously chose Python as the only dynamic language supported on their App Engine platform (and they employed Guido van Rossum and a number of other Python core developers).
gcc and gdb both let you write plugins, and your language choices are C/C++ or Python (plus Lisp in the gcc case). Many other infrastructure level tools are going the same way. Fedora’s infrastructure is almost entirely written in Python, as is OpenStack.
In multimedia development, Python will be a core part of your toolset, and Python is the key open source competitor to proprietary toolsets in the scientific community. The Natural Language Toolkit is a hugely powerful resource for many data mining applications, and Python is entwined deeply into the core of the financial sector as well.
Python Development
Many years ago a lot of formal education program switched from C and C++ (or Pascal or Ada, etc) to Java for introductory programming courses. Now switching to Python, pushing Java into the role of an enterprise language used only for large and complex applications where the development overhead can be justified to some degree.
Informal education programs are also favoring Python as the first “real world” application language that people are introduced to. OLPC chose Python, as did RaspberryPI which is the most Readability one.
Role of few Python Tools
The popularity of GREENLETS and GEVENT in the Python world, which permit the use of asynchronous IO capabilities with a threading-like programming style. The ongoing efforts around tweaking generator syntax and capabilities in Python core development could legitimately be summarized as “make it possible to write Twisted code in a way that doesn’t hurt people’s brains quite so much and without relying on the magical stack-switching assembly code needed for greenlets”.
Tools like Kivy, which aim to make it easier to write mobile applications in Python.
Python’s strength really lies in its ability to step away from traditional web technologies. Want to talk over a serial port to a piece of lab equipment or radio modem, Want to talk to telco gear through a custom C extension? We have a wide range of tools to support that in python, along with some great Asterisk bindings. Python also has many web framework options, like Pyramid and Flask, that let you be more easily be selective in your choice of components than Django does. We even get into the potential long term implications of verbal and tactile interfaces like Siri and Baxter.
Recent Release
The recent 3.3 release included several elements aimed at making things easier for beginners, including improved error messages, an option to modify PATH in the Windows installer and the Python launcher, while the entire Python 3 series is aimed at embracing Unicode as part of the core of the language, allowing it to better reach beyond its original audience of users whose native alphabets could be expressed within the constraints of ASCII or an 8-bit encoding.
Upcoming
Python 3.4 is likely to bring improvements in the ability to switch the encoding of a stream “mid-flight”, as well as restoring some convenience APIs for the non-Unicode related uses of the encoding and decoding methods in Python 2.
CONCLUSION
Python’s future is looking very, very bright from where we see and assume that its future is assured. Python is far from perfect, and the same can be said for the ecosystem around us. So yes, there are plenty of areas where Python should probably will, improve. But we shouldn’t lose sight of the fact that many of the problems with Python (like binary distribution, dependency management and concurrency) are problems with software development generally, so there’s nowhere for people to go that will magically make those issues disappear.
Note: These are my opinions towards the topic and may contradict with other neveropen.
This article is contributed by G.Saranya.