Views
- State: published
Has Google's AppEngine Annointed Python as the New Web Standard?
|
|
If one were to look around beyond mainstream development languages (i.e. Java, C#, C++ etc) one would discover that the Python community as active and innovative wellspring of ideas. However, in recent years, a lot of attention has been directed towards Ruby. The Rails web framework with its promise of higher productivity has exponentially increased Ruby's popularity.
Rails was developed by a web developer that just needed to get the job done. It follows a very opinionated and streamlined approach. Rails unfortunately is mostly of patchwork of meta-programming with very little overarching design. Meta-programming, like aspect oriented oriented programming, can easily easy introduce system wide cross cutting concerns. These cross-cutting concerns, to the uninitiated, make patches, or rather monkey patches, appear to be more like well thought out architectural decisions. Furthermore, many Rails components (i.e. ActiveRecord) are feature poor cousins of what's available elsewhere (i.e. Hibernate, iBatis etc).
As a matter of fact, the Ruby community in response to more recent attacks have taken a rather elitist attitude. Rails developers who aren't successful are just those who simply don't grok it. Pressed with further criticism, the ultimate and final argument has been 'I enjoy it'. Unfortunately, don't we all prefer playing with shiny new object rather than having to maintain legacy code. The hidden truth is that Rails is magical because it's made mostly made out of magic patches.
That is, all the ease of use that one finds with Rails is a consequence of the metaprogramming that went into it. It is very good at optimizing the main use cases of web development. However once you step out of the happy path, then reality immediately sets in. It's an intractable ball of mud! At the periphery is where you find the steepest drop in productivity. It's where the 80/20 rule rears its head, that is 20% of the features will require 80% of the work. Rails does make for impressive development demonstrations, however like Visual Basic of the previous decade, walking out the well paved path quickly places you in a densely inextricable meta-magical jungle. Certainly a lucrative situation if you're a consultant.
Unfortunately, hype is the possibly greatest catalyst to growth engine for technology. The number of books about Ruby and Rails has exploded to dizzying heights. Now contrast with Python, and it becomes all too obvious that there are a dearth of new books. There appears to be only 3 new books that were published in 2007 (i.e. Django, Python Frameworks, CherryPy). Now compare that to just Rails books and you'll see that Python despite it's innovation has become the ignored step-child.
With Google's employment of Python and Django as a first class citizen in its a AppEngine infrastructure. The Python community is much more mature than the Ruby community. Having eschewed monkey patching rather than exhibiting a constant fascination of 'open classes'. This development has the potential of trusting Python into the limelight.
Python's current lack of popularity however should not dissuade one from seeking some inspiration. Here are some really intriguing Python projects that are worth a peek:
SqlAlchemy - SQLAlchemy is a front end to SQL databases that allows a developer to work on three different levels: As an object-relational mapper that lets you interact with the database via objects, as SQL expression language and at a low level that accepts literal SQL strings Picalo - Picalo is a data analysis application, with a focus in fraud detection and corruption detection.It is an open framework that could actually be used for many different types of data analysis: network logs, scientific data, any type of database-oriented data, and data mining. ERP5 - ERP5 distinguishes itself from other ERP systems by basing itself on a coherent abstract model of business management that is based on just 5 classes. The ERP5 abstract model has been found to reduce development costs by an order of magnitude when compared to traditional ERP architectures. Logix - Logix is multi-language programming system which allows each part of your program can be developed in a language that is finely tuned to the task. It features a procedural macro facility, dynamic syntax extension, and multi-language parsing. Mercurial - Mercurial is a fast, reliable distributed revision control that happens to be used by the OpenJDK project. Twisted - Twisted is an asynchronous networking framework that boasts a massive set of integrated libraries for handling common protocols and network programming tasks. Trac - Trac integrates a wiki engine, a job/bug ticketing engine, a scheduling engine and an interface to subversion into a single web application.
The natural instinct of bucking the trends are all too important for Mavericks. The Python community is certainly populated with a whole lot of Mavericks. Innovation happens when people don't take the beaten path. That is why it so important not to ignore this fledging community. After all, innovation always tends to happen elsewhere.
Last modified 2008-04-14 09:55 AM
Rails vs. Python?
I am disappointed that you chose simply to take shots at Rails (whether deserved or not). If you wanted to rip on Rails as a web framework, the least you could have done is mention other web frameworks in comparison, whether Python (Django, Pylons) or other Ruby frameworks (Merb, Ramaze, Sinatra)
What was the point? Were you just keen on hyping Python and slamming the Rails framework?
-- MilesZS
Replies to this comment
Oh come on...walk a mile before you sling
Really? Interesting...I've been doing ruby/rails developing for 3 years and have yet to find it an intractable ball of mud. On the contrary, it's a beautiful and extremely flexible language. I've built some very cool things in it so far, and cut development costs for our company (we used to be solely Java) tremendously.
I also used to enjoy your blog very much, but I find statements like that above very distasteful. It would be one thing if you had actually worked on any professional Ruby/Rails projects. Remember, those who live in glass houses shouldn't throw stones.
Python is Popular
The only mystery with Ruby is 'why all the hype?', and as usual with crowd/hype systems, the reasons aren't solid, undebatable or even all that good. Ruby programmers make out that its so different to Perl and Python, but really it sits somewhere between the two. That's nice but nothing to write home about.
Replies to this comment
Blog - A PureMVC Python / Google App Engine Demo
logix is dead ?
i tried to find any contact/help/maillist, but i could not find.
is Logix dead ?
any idea ?
bvidinli@gmail.com



But certainly Google continues to give much love to Python, more than the hype-following masses do.
Replies to this comment