This should be the first question you ask yourself when choosing a language, because some languages are better at some things over others, and some language just plain can’t work in certain contexts. When you’re just starting, you hear all these acronyms and never know which technologies you need and which you don’t. Hopefully this will clear any of that up.

This should be the first question you ask yourself when choosing a language, because some languages are better at some things over others, and some language just plain can’t work in certain contexts. When you’re just starting, you hear all these acronyms and never know which technologies you need and which you don’t. Hopefully this will clear any of that up.

Display (front end) technologies


HTML is the bare bones of what it takes to show a web page. It consists of a number of “tags” that tell a web browser how to render a portion of the page (i.e. this part should be in bold, that part should be in a 4×8 table, etc.) HTML will allow you to create forms with radio buttons, checkboxes, etc., but doesn’t have any way to do anything with the values the user puts into them. You can’t do anything interactive with HTML alone (i.e. no guest books, chat rooms, forms, etc.) You need to use some of the other technologies.


HTML was originally intended to be pretty plain…As time went on; things were added to it to allow images, fonts, background colors etc. But eventually people started realizing that having all that display logic mixed in with your content made things very difficult to maintain. This is where CSS comes in. CSS allows you to define rules on how various HTML elements should be displayed, while letting you keep it separate from your entire HTML. For example, this site probably uses CSS to make the posts yellow. They may have a rule that essentially says ‘every part of the page whose HTML tag specifies that it is a post should have a 50 pixel margin and a yellow background.’ They define it once, and then all they have to do is specify which parts of each page are considered ‘posts.’ Then if they want to change the color, all they have to do is change the rule.


Once we had the basics of displaying things in web pages down, people wanted to get fancy. They wanted to start allowing things like drag and drop, moving and flashing images, pictures that change when your cursor moves over them, error messages that pop up when you miss a required field in a form, etc. That’s where JavaScript comes in. It is a very limited language that has access to the HTML elements on its page, and can do things to them like change their positions, colors, an image’s source, etc. It can even show error messages and prompt users for information. Sometimes JavaScript even writes cookies to the user’s hard drive, but other than that nothing a JavaScript can do lasts any longer than the page is displayed.

Client side programs

Java applets:

Java (which is absolutely no relation to JavaScript…Don’t use the terms interchangeably) has one major advantage on other languages…The same executable file runs on any platform with the java virtual machine installed. So things like Yahoo chat and games allow users on Macs, Linux, and windows PCs to run the same piece of software and gain a very high level of interactivity.

ActiveX controls:

The MS answer to Java applets, ActiveX controls perform essentially the same function except without the portability of Java.


Popular for animation and interactive stuff, Flash doesn’t have the power or require the free access to the user’s machine that ActiveX controls or Java applets do, so you can get some nice looking animations without all the security warnings.

State management

By its nature, the internet is ‘stateless’, meaning that what you did before has no impact on where you are now. Without state management, we would never be able to ‘login’ to a site, because it would forget us as soon as we logged in. These two technologies allow people to keep track of their users and know who is who.


Cookies are files on a user’s hard drive that store information about the user. Usually this is things like usernames, passwords, preferences (like the My settings), etc. The cookies are sent to the web server on each request so the web server can figure out where you’ve been and whatever other information the site chooses to store in your cookies. Cookies are written and read either by a server side script or by JavaScript (which is a client side script.)


The session is a special cookie that only maintains a unique session ID. Instead of storing information in a cookie, the web server stores a unique identifier for the browser, then stores the information in its own memory. Session cookies only last as long as the browser is open, and eventually the server will erase them from memory. This is a more secure, but more temporary, method of storing information about your users.

Web server

A web server runs on a computer and ‘listens’ for requests for web pages, pictures, files, etc. IIS comes with Windows (Server OS or XP Pro), and Apache is free. It handles all the communication between the browser and the web server.


Obviously databases have many applications outside of web development, but they’re so critical to web development that I have to mention them here. Databases are similar to excel spreadsheets…They have several tables, each with rows and columns. Today’s web developers store everything from content to statistics to pictures in databases because of how handy and easy it is to store and retrieve data.

Server side technologies

Server side technology is the glue that brings everything together. Basically they are programs written in a variety of languages that take as their inputs data the browser sends (including HTML form data and cookie data), and whose output is HTML, JavaScript, and CSS. In between input and output, a typical server side program will read in data about which user is requesting the page (cookie data), what they asked for (i.e. search parameters), what information they entered into the browser (i.e. search term). Next it will save user entered data into a database, or search a database for information the user requested. Finally it formats that data into HTML, JavaScript, and CSS and sends it out, via the web server, to the browser. It can also read in information from files, talk to other servers, etc.

You can write server side scripts in just about any language,


Perl wasn’t intended for server side programs, but when there wasn’t much else to choose from it was very popular. It’s super fast, very concise and easy to learn, and has loads of modules out there for people to use. Unfortunately, it’s difficult to maintain very large websites with Perl because it doesn’t scale to the tens of thousands of lines of code very well.


By far the most popular server side scripting language today, PHP was made for this stuff. It has a lot of syntax in common with Perl, and inherited some of its weaknesses. But its speed, smooth learning curve, rich functionality with lots of modules, and tight integration with the free database MySql has made it hugely popular with small to medium-sized websites.


Microsoft’s answer to PHP, ASP is a disaster. It’s hard to think of anything good to say about it. Why it is as popular as it is I simply don’t understand.


Thankfully different from classic ASP, ASP.NET is the best thing to hit web development since Perl. It scales EXTREMELY well to large, enterprise websites since it fully supports object oriented and event based architecture, as well as completely separates display logic from display logic (i.e. no HTML mixed in with your code like there is with these other languages.) It still has its flaws and isn’t the right technology for small projects, but it’s a big step in the right direction.

In short,

Desktop Application

C, C++, Visual Basic.

Web Application:

PHP, Ruby, Rails or Symphony.

System Programming:

C and C++ in GCC compiler (Linux platform)