Sunday, June 24, 2007

So you want to be a web2.0 programmer



Ok, there's a little buzz around web2.0 now ;-) And you want to become a part of the new wave of transforming not only the Internet but also the way business is done.

You've got an idea, you know how to program, but are new to web2.0. I'll give you a crashcourse on what you need to learn and what tools to download to be a part of the new revolution.


What you should learn (or know):

  • DHTML / XML

  • Javascript

  • PHP

  • MySQL

  • Flash / Actionscript

  • C++


What you should use:

  • Apache

  • PHP / Zend Framework

  • MySQL

  • Prototype

  • Scriptaculous

  • Flash

  • OpenBSD

  • C++


So why did I choose that?

Well, first of all, you obviously need a web server. I choose Apache since it stable, has been around forever, and it's fast.


You should do most of the stuff in a scripting language because things on the web are changing at high speed, and you want to be flexible in that way. PHP is a really easy and fast scripting language, and there are plenty of good PHP-programmers out there. When your company expand, you don't want to be slowed down because all C# and Java programmers are hired by multinational companys and demand high salaries.



Since you want to be flexible, you build your code modular. Since you want to have code that are easy to maintain, you need to have a good structure from the start. By using Zend Framework you will get all that. But don't cheat!

All websites are dynamic nowadays, so you need a database. Use MySQL. It's free, is fast and it's stable.

Since you want fun things to happen on your site, with lots of web2.0 features like Ajax and animations and you do most of that in javascript. What you don't want is to do all the work from scratch. Prototype and Scriptaculous is the answer. With Prototype, you enhance javascript and makes programming easy, and it also have great Ajax features. With Scriptaculous, you'll get loads of animation and drag-and-drop-functionality added to your javascript. Prototype and Scriptaculous is the way to go.

But no web2.0 site with any big plans can live without Flash. It's with flash you embed video, so you need to learn that too. Flash is also great for making small games and nice animations, but it's the video part that is the essential reason for learning it.

OpenBSD. As long as your site have less than a million visitors a month, a simple standard Linux-PC is ok (Windows is never ok except when you use IIS, and even then I'm not sure. Mac is just weird). But when you get Slashdotted and Techcrunched, or your facebook widget is used by hundred of thousands of simultanious users, you will need to cluster, and for clustering, OpenBSD is the best choice.


You have to use C++ for the core of your project. PHP is nice and fast, but not fast enough for processing the input of all your visitors that wants the right content presented to them instantly. C++ modules for PHP is the answer and it's easy to use in clustered environments. (You need compiled programs when you need really good benchmarks).

Well that's that. Now you have everything you need for creating 2008's version of Facebook and Digg.


About this: Mattias Johansson have programmed since 1985, for the Internet since 1994 and holds a MSc in Engineering Physics. While programming he has tested loads of different programming environments.

The combination above might not be optimal in all cases, as in the case of you being an angry Java developer, but if you go that way you will have the Gods of Programming on your side.

No comments: