Top Ten Programming Things of 2006

Interestingly, everyone have their top ten, e.g., Blognone, Bangkok Post, GameSpot, IGN and many more. I would like to add some more specific topic regarding programming.

1. Python 2.5

It has been so long approximately 2 years since Python 2.4. This year we have Python 2.5. There are so many interesting changes such as conditional expressions, partial function application, absolute and relative imports, unified try/except/finally, new generator features and many more.

2. Ruby on Rails

Ruby on Rails or RoR is one of the most popular and attractive web framework with built-in AJAX mechanism. The most attractive feature, IMHO, is the way RoR providing support for AJAX. You don't need to write JavaScript. The JavaScripts are usually generated from Ruby code.

3. Django

Well, my favorite scripting language is Python so RoR is not the right one for me. Django was designed for pythonian like me which provides the full stack such as data modelling, template and controller. The most attractive thing in Django is its powerful URL dispatching.

4. Google Web Toolkit

has been released to show us the secret behide Google applications. The idea is very cool! Generally, AJAX means to develop some part of web application in JavaScript. In some case with ready-to-use widgets, you don't need to write JavaScript as long as the widget serving your imagination. The worst thing of JavaScript is standard. Most browsers do not conform to the standard so it is very difficult to develop cross-browser web application without a big reference. GWT solves this problem by letting us to develop user interfaces in Java just like we did in desktop applications and then compiles the Java sources into JavaScript. As a result, you will get the benefits of type safety language, the code is as small as you need since there is no code didn't use and most of all, it is runnable on all recent browser. The best news about GWT is that it has been opened under Apache 2.0 license.

And again, Java is not my preferable language. Fortunately, GWT has been reversed engineer into Python in the name pyjamas. It is not ready for production yet but very soon.

5. Drupal 4.7

I had never developed production application in pure PHP since this year. The reason is that PHP code usually is so messy. However, PHP is cheap and available everywhere so I tried Drupal on my site. Its UI is not impressive as I get in WordPress but the code I saw was very flexible, extensible, powerful, clean and clear.

One of secret behide Drupal is its Forms API and PHPTemplate. Using Forms API, developers are allowed to write web form in constructive approach with customizable user interface through PHPTemplate. PHPTemplate also allows us to customize look-and-feel of each part indenpendently without any patchs to the core code.

6. OpenCARE

I has been interesting in Message-Oriented Middleware for so long. Anyway, I have never tried MOM because it is usually used in enterprise system with Java or .Net. The recent project I found called OpenCARE highly relied on MOM. It is a promising project as a generic core of any kind of large-scale application. Anyway, the core system is again written in Java but supports various protocol including XMPP which is generally available in many languages including Python. Hopefully OpenCARE could be a powerful and extensible building block next year.

7. Google Data APIs, Google AJAX Search API and Google Code Search

SOAP APIs has been from Google recently. They are fully heading to promote and or GData. Almost Google applications come with programmatical interface through GData. Sooner or later all Google applications will support GData while Google AJAX Search API now supports most search services. Here is a way to develop your own web application based on Google-powered APIs. Anyway, my favorite API is XML-RPC.

One more thing about Google is . It is very useful for searching snippet in open source projects to see how to implement similar function in other context.

8. Virtualization

As of now, the processor is going to increase its core from one to two and to four very soon. It is an era of virtualization to efficiently utilize all cores. This year we have VMware available for free as well as Xen. The programming model may be changed to support multi-core architecture; however, running virtual machine is easier without modifying current code. In addition, virtualization helps me a lot to test code in clean system or to prepare closed environment for testing.

9. Eclipse 3.1

Even though Java is not my favorite language, sometimes I have to use it as request. Developing Java application without IDE is just a hell so I use Eclipse. The most recent version is very powerful for developing web application. Anyway, there is no support for add-on components like struts in open source license yet.

10. Bazaar-NG

I have never used distributed version control system before this year. My favorite one is a centralized Subversion. Since I used Ubuntu for a year, Bazaar-NG is also in my todo list. The first time I tried is the first time I found the missing thing in my life to solve lots of problems.

At least, Bazaar-NG helps me to write anything in anytime and anywhere because I don't need to have on-line network to access the latest code or to commit. Instead, I committed in my laptop for later merging when I go on-line next time.

Tags: ,

Post new comment