Mar 12, 2010

6 Most Important Technologies for Next-Generation Web Computing

  1. HTML 5
  2. JavaScript
  3. PHP
  4. Memcached
  5. Objective-C
  6. Android
Pl don't get me wrong- there are lot's of technologies that are important for Web Computing. No question. This list is about "most" important technologies that will shape the next generation web. Pl feel free to agree/disagree.

[1] Why HTML 5?

The commercial web was a surprise.(ping me for who even got it wrong!) There was a technical rush to make it work, not necessarily better. I used to say that Java is the English language of the web. But actually Java also was not invented for Web(Oak, firstperson, etc). It's just coincidence and luck- call it perfect timing. Remember Applet, HotJava browsers? If Applet was a fantastic failure and Servlet was fantastic success for Java. Servlet showed the power of server side Java along with rest of the J2EE stack. No need to say anything about the spectacular success of J2EE.(It changed the business-web computing for ever!)

Ok, enough. Why HTML 5?

Basically text is the primary native content in web browsers. We need plug-ins for audio, video, etc. The time has come to think beyond text in browsers. We need native multimedia inside the browsers. Now we have enough horse power(cpu,memory,io) in the end nodes(pc,laptop,smart phones,other devices) + broadband to push bits and more importantly enough content in the cloud. No reason for NOT-TO-THINK of native multimedia in browsers.

Apple & Google engineers are the HTML 5 spec authors in W3C. I am sure they will get it correct(along with the community). It may take some time. HTML 5 is already available in browsers(Safari).

By end of this decade, HTML 5 will/should be ubiquitous.

[2] Why JavaScript?
"dynamic web"

Netscape realized from the beginning about the importance of programing language for browsers. It came out with Javascript. There are many criticisms about this language. But the fact is that JavaScript succeeded while Java failed(miserably) in the browser environment. JavaScript is not going to go away. It's the bridge between Web 1.0 & Web 2.0. We need more of AJAX. Its already a core component in web and replacing is not an easy task.

If you have any doubt, ask yourself why Google built a new JavaScript engine called "V8". The tools are not good enough and language needs to be simplified. It's safe to say that this is the only language today that touches not millions but billions of people on the web!

It's a double edge sword and be careful. Do yourself a favor- study the language before coding it.

[3]Why PHP?

My heart says, why don't you say Java/JSP? But my brain says, you can't! The reason is that the 3-tier web architecture(web-app-db layer) is changing/collapsing. The high performance web sites are moving towards a single web layer backed by memcached for storage. It's for speed, scale and performance.

Apache Web Server + PHP = Good Match. Jetty can come close. But Apache+PHP model is proven and has a very big community.

If you are like me from Java land, excuse yourself to buy a PHP book. No harm. PHP is a key web component.

[4] Why memcached?

Memcached is either deployed on top of databases OR parallel to the databases. It doesn't matter whether it's NOSQL or SQL, web applications need performance. It can't go to disk for every request. The cost of memory is going down and it makes (perfect) sense to deploy more memcached servers attached directly to Apache-PHP engine at the front. Just check how many memcached servers are running in Facebook!

[5] Why Objective-C?

It's simple. Just take a look at the earnings or cash balance, if you (still)have question about the success of Apple products. Objective-C is the native programing language for Mac-OS. You need to know this language for any serious work on top of Apple products.

Objective-C has a bit of history and its for another blog.

[6] Why Android?

Google can't do 'china' with mobile computing. (in/out game) Apple success in the devices will put huge pressure on them to start owning end nodes- desktop os, browser and mobile. Android should be a key component for Google and for rest of the industry. I do expect to see many Android devices(not just smart phones) for consumers. The good news here is that it's based on open standards- Java, SQL and Linux.

As I said, there are many languages/frameworks that are important for web computing. IMO, these 6 are the primary technologies that will shape/influence the next generation web. (if not already)

Long Live Web!


Post a Comment

<< Home