Web 2.0: Hype or Future?

I recently applied for a web designer job, and among the requirements was a knowledge of Javascript and this new thing, AJAX. Truth be told, I never loved (or love) Javascript and never really enjoyed most client-side based web gimmicks (applets, Flash, etc.). In a few cases, these technologies were beneficial to the site deployed. For the most part I just found them to be irritating and in the way. Not to mention browser incompatibilities (Heck, they can’t handle a simple idea like CSS correctly why should they a full blown scripting language).

Needless to say, I avoided Javascript through most of my career, and mostly used it to “authenticate” on the client side (if there is such a thing as security on the client). When I heard of AJAX, I thought oh know… another gimmick and now it wants to “grope” my precious server with its “XMLHttpRequests”. Then my good friend Dima mentioned Bindows. Interesting a full desktop-like application in a browser. Today at a web seminar by MySQL, they showcased Zimbra. An open source full communications suite in AJAX. Impressive.

So what is this Web 2.0? The idea is to get more interactive applications on the web. The goal is to integrate all the information floating on the web, condense it and present in a dynamic manner. Hence the use of AJAX (or Javascript) as the underlying front end for web browsers. Yet the idea is broader than that. Not only are computers with web browsers involved, but also the myriad of different network-capable handheld devices. An interesting and lofty goal but can it be achieved?

Technology wise, the extensive use of Javascript and XML is produces impressive results. The idea of finally separating the presentation layer from the business logic and data is commendable. Before anyone starts waving the flag of revolution and buys stocks for the Web 2.0 boom, here are a few thoughts. The use of Javascript is SO intensive there is a need for whole UI and layout toolkits. In the open source community there are around 30 right now. In the desktop realm there is maybe 10 UI development kits: Swing/AWT, Gtk, Qt, along with the native Mac and Windows widgets being the most popular. Some standards exist for linking the many parts together but they vary widely. As with any standard, every vendor has their own perspective of how it should be implemented. Microsoft who is the founder of this entire paradigm, is shifting their attention to .net, which will mean locking in the client to the platform. And a swift kick to the head for the community effort. Finally even what to expect from a Web 2.0 application is not set in stone.

My analysis is this: the current situation is a messy free-for-all. The standards will almost certainly be abused, and you can look to the usual suspects for that one. The toolkits are all over the place. Finally a known fact is that a project without a rigorous specification is going to go off on a tangent. Tangents like these cause what is called in my part of the woods “development hell”.

A case in point is CSS. The W3C has done in my opinion an amazing job of nailing down the idea of what a stylesheet should do, and how. The details are there, and the theory is beautiful. Now lets look at the vendors or what-my-web-browser-really-does side. The specification is rarely ever held to, and thanks to Microsoft’s Vader-like grasp on the browser market is abused terribly. The folks at Netscape and the Mozilla Foundation do a much better job but its not perfect. Just ask any web designer who wrote an aesthetic layout in CSS how many hoops they had to jump through to get it work on the majority of browsers. If we can not get something as simple as CSS right, then I fear other more complex technologies will simply break.

In the end, I think AJAX will benefit a few large companies. Web developers and designers will still groan and will dream of a better, simpler web. Web 2.0 will not finally get everyone on the same page. Then again, I might be completely wrong.

Why Open Source Projects Make Sense Career Wise

Greetings Earthlings! (OK enough silliness for one day, back into the pocket you go Martian.) Once again I have to bring up the sort of lame excuse of being too busy to blog earlier. Well yes, it was lame too much work. Actually I killed my “1337” Gentoo box doing an update. So I basically installed the new Ubuntu 6.06, and I am in the process of setting things up. More on the new Ubuntu tomorrow.

Today’s rant is why open source projects make sense. At least from a university student’s point of view. Undergrad in CS to be exact. All other information from me will have to be extracted via torture, slyness or greasing of palm. 😉

Back to the topic, I am in the process of finding an internship position for the next 12-16 months. So far my own personal experience has mostly unsuccessful. The interesting part is that for the two interviews I have received, my interviewers were most interested in my open source projects. They glossed over my “work” experience, if you can call it that in my case. University courses were not even mentioned. Nope, the thing that stood out were the two projects I am currently actively involved in. For those in the unawares, I actually have 3 open source projects in the works. While initially I thought that working on these projects would be fun and simply educational, it turns out that they mean more than that.

There are three main reasons why I believe employers are interested. These being experience, portfolio and marketing. When you work on a project you have to not only have a grasp on the technology but also on the subtilties of team relationships, and organization. Any open source project will showcase your performance as a developer and/or project leader. The final product is interesting in itself. A look into your source code will reveal your work ethic, organization, knowledge, talent and creativity. Finally comes marketing, which applies mostly to the employer and sometimes to yourself. The words “open source” currently flow with the hype and buzzwords of the business world. By hiring an open source developer, the company gains a zen and almost messanic reputation of by part of what the business world sees as the future. Personally I think open source means plain old fashioned politeness and embraces the ethics of old (the “new” standard of “Western” ethics is quite dissettling). In some rare cases if the project is successful enough, the product becomes a brand onto itself. Any developer of said project also gains a certain amount of worth and can use this to his or her advantage when looking for work.

Well that is all great and everything but how can one gain these advantages. Simply put start a project for something that you need or want. Treat if it were a real life product to sell not just a “pet” project. This is how many open source companies themselves started out. Show your professionalism throughout the process. Try new things, and over time maybe that project will pay off in hard, cold cash.

Till tomorrow,
Dorian