Yesterday I attended Google Application Engine Hackathon in Atlanta. I guess it’s the kind of thing that one could call Geeky Weekend Fun, programming all day, with like-minded folks, trying to create something.
My application was a bit too ambitions, so it didn’t get finished, but I will get back to it in the coming days. Best app that did get finished, and someone in that group even snagged a domain name for it, was LangWar.com . The source code is here, and yes, it’s all in glorious (gore-ous?) Python.
My thoughts? I still love App Engine as a concept, but it still remains Love/Hate relationship because of Python. With all due respect to the language, it doesn’t feel like it is best suited for web development, even when using popular Django template framework. I am sure it will become Love/Love, if Java becomes supported by GAE! So, Googlers, grab OpenJDK and get right on it!
The whole Hackaton experience prompted my thinking again about the characteristics of “good” or “best” programming language. As always, the big thing about defining “best”, is identifying characteristics to rate on. So, I am going to try and put short list together:
Ease of Expression – How easy is it to put into “words” what is it you want computer to do for you
Speed – How fast can computer accomplish what you wanted from it
Integration – This one is an attempt for catch all category, from how well it works with other existing tools, to cross-platform / cross-OS compatibility, to Visual Editor integration
I am really trying to keep list to top 3, but many people will argue that best programming language is simply the one that you know. That’s fine when you developing something by yourself, in a Tundra, with no hope of survival or escape. In real world, however, software gets developed by many people, and usually goes through many cycles of corrections and improvements. You need other people to be able to locate piece of code that does “X”, and be able to easily read and modify it.
Turning into long post, so I will stop. The idea is mostly to provoke some thought. Some people will argue that in today’s world, the Speed factor is irrelevant, since computers are getting faster and faster. Others argue that “Ease of Expression” is overerrated and entirely relative. For them, code that says ‘ a = !regex(‘[dfqwer]x643DA*-’,*&x) ’ is easy to write and quick way to express what they mean… hmmm…