It is the Year of the Snake, and here at ActiveState, the snake in question has always been Python. The Year of the Snake heralds a great year ahead for the Python community. Third blog of a series celebrating the Year of the Python.
The year of the dragon ended in 2012, but when dragon meets snake, a remarkable combat of giants takes place. As the world’s largest lizard, the Komodo dragon is an extraordinary creature. A powerful predator, it can reach ten feet in length, and it can take down almost any animal, including carrion, deer, pigs, smaller dragons, and even large water buffalo and humans.
A python would be quite a match for the Komodo dragon, and I wonder what the outcome of such an encounter would be in the wild.
At ActiveState, when dragon meets snake, the result is a killer product: Komodo IDE, a multi-language integrated development environment.
“Python is the language we chose to build the foundation of the Komodo IDE,” says Jeff Hobbs, ActiveState’s VP of Engineering.
Komodo And Python: A Long History
As one of the first IDEs with Python support, Komodo has a long Python history, both in terms of supporting the development of the language and for using Python itself, as it is embedded in the IDE.
Komodo IDE started as an idea in 1999, and was implemented in 2000. From the beginning, ActiveState aimed to use Mozilla's XulRunner platform for the product, but also wanted to have Python incorporated into that environment. PyXPCOM was developed by ActiveState in 2000 as a way for Python to tightly integrate with the XulRunner platform. This meant ActiveState could write much of the Komodo IDE code base using Python. It also enabled a much faster development process by removing the need to compile any files. The PyXPCOM code base was made open source by ActiveState in 2001.
Komodo IDE 1.0 was first released in 2001, which included support for Python and Perl development. “Since then, Komodo IDE has continued to better its Python support, adding many features useful for Python development, including debugging, code intelligence, code profiling, unit testing, and framework support like Django,” says Todd Whiteman, ActiveState’s development lead for Komodo IDE.
ActiveState open-sourced Komodo Edit in 2007, which became known as the OpenKomodo project, and since then, many developers have been reusing Komodo’s open source Python components in other software applications.
Feeding Komodo with Python
Komodo loves Python food, and consumes the language in many different ways. Not only much of the Komodo build system is written in Python, but the code base is also mostly developed in Python. And there’s more. The development team uses Buildbots to create Komodo releases, runs Python unit tests to validate Komodo builds, and maintains websites written in Python/Django for Komodo services. It is also possible to interact with the IDE using real Python code, through Komodo macros.
Komodo also makes use of many open-source Python modules, which has helped ActiveState support particular Komodo features, such as paramiko for working with SFTP remote files, watchdog to detect file system changes, and html5lib to work with HTML files.
Python Love by the Numbers
There is a lot of Python meat on those Komodo bones, as some statistics show:
- Komodo supports eight different versions of Python, from 2.4 to 3.3
- Komodo contains 15 open source Python modules
- Komodo includes 1,400 Python files
- Komodo has over 400,000 lines of Python code
In March of this year, ActiveState released Komodo IDE 8.0, which sports a new interface, as well as new editing and code navigation features for OS X, Windows, and Linux.
With 88 releases so far, Komodo certainly keeps the ActiveState team busy.
Looking to the Future
Meanwhile, seven Komodo dragons were born in March of this year in a zoo located in Indonesia’s East Java province, as part of an effort to boost chances of survival of the species in the wild. The Komodo dragon, only found in Indonesia, is an endangered species, with an estimated 3,000 remaining in the wild. The animals have the most restricted geographic range of any large predator, and are faced with multiple threats including hunting and habitat loss.
ActiveState supports the recovery of the Komodo dragon, and donated 20 percent of Komodo IDE sales to the LA Zoo’s Komodo dragon captive breeding program in 2010. In this year of the snake, ActiveState will be involved in more conservation initiatives to support this beautiful dragon that continues to inspire all activators.