altre destinazioni

ultimi post

ultimi commenti

tag principali

categorie

archivi

powered by

  • WPFrontman + WP

friends

copyright

  • © 2004-2011
    Ludovico Magnocavallo
    tutti i diritti riservati

Rapid Development

2 dicembre 2003

0 commenti

categorie

I don’t usually post entries on news items I read on other sites, as I don’t like repeaters blogs too much. I will make an exception tonight, since the article I’m writing about summarizes well a few important things I like about Python.

The article is titled Rapid Development Using Python and appeared today on Linux Journal. I learned about it from a Google News Alert agent, which is usually not very interesting (so this entry is a double exception).

A few key points from the article, which is a good read if you like Python, and of course an even better one if you have never used it.

The interactive interpreter

We anticipated making changes frequently on a remote device, with a customer representative viewing the interface and providing instant feedback.
Python allowed us to achieve this environment primarily because it is easy to use interactively. Prototyping through an interactive interpreter is an effective mechanism for exploring different approaches to solving a problem.

Introspection

We wanted to dispatch Web requests to code in a very direct fashion. An architecture based on a central controller that used introspection to determine where to route requests seemed a clean and simple choice.
[...]
an inspectable run-time is nearly equivalent to running an application under a debugger while making changes.

String Manipulation and File I/O

Iterating over the content of a file takes two lines of Python. In comparison, Java requires five or five instantiations followed by two or three lines to read. Once read into memory, content must be tokenized before iteration. While iterating, casting is required.

Development experience

Because it supports import-on-demand and module reloading through introspection, Python allowed us to change logic within external modules and have the changes be accessible immediately by the central controller.
Instead of wasting time fighting with the language, we spent time fulfilling customer requirements. Our rapid development environment blazed to life fueled by Python.
We found that looking at problems from a Pythonic standpoint often led to simple and elegant solutions that addressed both functionality and portability.

I completely agree with all of the points above. My experience with Python, though short (I came to Python pretty late) and not very broad (I haven’t been able to use it at work as much as I would have liked to) is very similar to the one outlined in this article.