Romancing Python : Part I

Even though you are free to pick a language (and a third party NLP library written in the same) of your choice to attempt a solution to the online programming event, Echelon, at Robotix 2012, there are certain reasons we recommend Python (and Python - NLTK) to beginners. Let us have a look at the general picture.

If you do much work on computers, there’s bound to be some task you’d like to manipulate and automate further. Case in point, you may wish to perform a search-and-replace over a large number of text files, or rename and rearrange a bunch of photo files in a preferred manner. Perhaps you’d like to write a small custom database, or a specialized GUI application, or a simple game. At the same time, you don’t want to delve deep into the programmers’ realm. If that is who you are, Python might be the answer for you.

Python is simple to use, but it is a real programming language, offering much more structure and support for large programs than shell scripts or batch files can offer. On the other hand, Python also offers much more error checking than C, and, being a very-high-level language, it has high-level data types built in, such as flexible arrays and dictionaries. Because of its more general data types, Python is applicable to a much larger problem domain than Awk or even Perl, yet many things are at least as easy in Python as in those languages.

Its elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms.

The Python interpreter is easily extended with new functions and data types implemented in C or C++ (or other languages callable from C). Python is also suitable as an extension language for customizable applications.

Python allows you to split your program into modules that can be reused in other Python programs. It comes with a large collection of standard modules that you can use as the basis of your programs – or as examples to start learning to program in Python. Some of these modules provide things like file I/O, system calls, sockets, and even interfaces to graphical user interface toolkits like Tk.

Python enables programs to be written compactly and readably. Programs written in Python are typically much shorter than equivalent C, C++, or Java programs, for several reasons:

the high-level data types allow you to express complex operations in a single statement;

statement grouping is done by indentation instead of beginning and ending brackets;

no variable or argument declarations are necessary.

Often, programmers fall in love with Python because of the increased productivity it provides. Since there is no compilation step, the edit-test-debug cycle is incredibly fast. Debugging Python programs is easy: a bug or bad input will never cause a segmentation fault. Instead, when the interpreter discovers an error, it raises an exception. Once you are really hooked, you can link the Python interpreter into an application written in C and use it as an extension or command language for that application.

The Python interpreter and the extensive standard library are freely available in source or binary form for all major platforms from the Python Web site, http://www.python.org/, and may be freely distributed. The same site also contains distributions of and pointers to many free third party Python modules, programs and tools, and additional documentation.

COMING UP : Python is often compared to other interpreted languages such as Java, JavaScript, Perl, Tcl, or Smalltalk. Comparisons to C++, Common Lisp and Scheme can also be enlightening. In coming articles, we will see briefly the comparison between Python and each of these languages.