Mature, Good OO
written over 6 years ago
Python is an excellent language for getting all kinds of work done. For OO programmers it offers a dynamic object model.
It's not difficult to find good reviews of Python on the Internet, so I'll focus on it's weaknesses.
Out-of-the box Python lacks popular high-level concurrency support. There is no high level interprocess communication library, no lightweight processes, no transactional memory etc.
To address this one can either "roll-their-own" or look into Twisted or Stackless Python. In the case of Twisted one must commit to an "unnatural" programming model. Stackless requires recompiling python.
One this commitment is made there are significant communities behind both projects, however, these communities are tiny in comparison to the mainstream python community.
Python also lacks a macro or similar facility. The official position of the Python maintainer is that python will never had such a facility.
Python also lacks out of the box support for "freezing" apps into bundles which can be run on machines lacking an os provided python interpreter, or an older version of one than desired. Assembling these bundles for the big three major desktop operating systems, Windows, OS X, and Linux, requires tracking down a lot of software all over the web and doing a lot of scripting if the app in questions is non-trivial.
Currently, popular python libraries for doing this are py2exe for Windows, py2app for OS X, and cx_freeze for Posix.
Buildbot (a twisted application, see above) is popular for running build farms and automating testing and app bundle building.
Despite these flaws, python is an practical language for getting work done in a timely manner and having a maintainable codebase when finished.
17 out of 18 users found the following review helpful.
Did this review help you?