Those of us who have become well seasoned to the dyslexia-inducing array of web languages often overlook the diversity and additional interactivity we can gain by learning another language or two.
Perhaps you are a beginner trying to understand what you need to spend time learning, or perhaps you’re an experienced individual looking for something new to play with.
Whichever situation applies to you, this article aims to underline the various languages at your disposal and where they fit in the puzzle.
It should be an interesting ride and seasoned experts may find languages they’ve not yet encountered!
Too Many Cooks
When it comes to the diversity of coding for the web, the well-known phrase "too many cooks spoil the broth" springs to mind. Not only in the way browsers support modern standards but the ever increasing range of competing formats that exist.
I wouldn’t blame anyone for getting confused at this point because the question itself often relies on personal preference — something you probably won’t have established until you understand the language and use it regularly.
This Catch-22 situation is usually only resolved when experienced people come together and educate each other on why their language is better the others (or as I like to call it, a flame war).
What Web Language Should You Learn?
So what is the answer you seek, to which languages you should learn? The simple answer is… it depends.
The deciding factor is not only reliant on the type of site you are trying to produce but also the depth of complexity you wish to delve into.
Therefore, before we can hope to determine which languages you should choose, we need to categorise all of the available options based on their purpose.
At first, this may seem like a complex task, but luckily for us, web languages are well-documented and each explains its purpose in context to the various existing layers of the web.
While documentation for each language exists, picking those worthy of your consideration and how they relate to each other in the function they undertake is something beginners regularly struggle with. You literally have to wade through the heavy number of choices and select one that you looks interesting and useful to you.
While I won’t even attempt to individually explain each language’s history (as this article will become encyclopedic in length at that point – instead, I’ll link up to their specifications) we shall coordinate the choices into easy-to-recognise segments, and from there, you can decide which choice best meets your needs.
Of course at this stage it’s worth pointing out that learning 15 languages to cover every possible layer isn’t going to be in your best interests as you’ll simply be spending all your time learning, but learning a new layer as you need the skill can be of genuine benefit to you.
Having the knowledge to experiment and implement the various independent layers will give you an advantage both in operating as a professional (that you will be able to cover a wider range of skills) and as a hobbyist or newbie (where you can jump for joy at the extended level of fun you can have while experimenting with the web’s offerings).
Of course, while these layers constitute endless possibilities of functionality which can be injected into your website, some people may simply require only a couple of these layers to produce a basic website (such as HTML and CSS).
There is absolutely nothing wrong with limiting or making a niche for your skills and become a master of either a single layer (and language choice).
This article simply acts as a starting point to which you can examine your current level of knowledge against the wider array of web languages (to determine what you can follow on from – if you know any, that is).
In the language layer diagram that you saw earlier, it became apparent that there’s a whole bunch of layers which comprise a website’s unique structure, but as it currently stands, it’s not much use to you as there’s no actual languages listed.
Well this is where all of those awesome abbreviations come in.
For each language layer that exists, you will find (below) a list of the languages which fit the category, their browser support levels, popularity status (useful for seeking help) and details such as the level of complexity involved, and some recommendations based on that information (highlighted from the other languages).
Note: Some languages are a subset of another language listed and some languages may be derived off of a certain implementation, but due to public awareness they have been referenced separately.
It’s also worth noting that recommendations are provided based on my own experience, and so there may be some contention on some points depending on who you talk to.
- META (Classic)
- Others: APML, FOAF, hSlice, OpenService Accelarators, P3P, PICS (Deprecated), SIOC and XFN
Stylesheet and Transform Languages
- AJAX (XHR)
- DOM Scripting
- Flex (ActionScript)
- Others: E4X, ECMAScript, JScript, JScript.NET and WMLScript (Deprecated)
- Ruby On Rails
- Others: Lasso, OpenLaszlo, Smalltalk, SMX, SSI and SSJS
Database Management Systems
Server-Side/Web Server Settings
Rich Internet Applications
Vector Modeling Languages
PostScript Format Languages
Data Formatting Languages
- Others: DOAC, DOAP, GML, GraphML, InkML, OpenMath, SISR, SRGS, SSML and XMLTV
Document Schema Languages
A Caveat about Comprehensiveness
While only languages that are well recognised and have a reasonable level of support are provided in this list, it’s worth pointing out that many others exist and could perhaps be worthy of inspection if you feel the need to dive into something a little more obscure and possibly interesting.
Now that you are aware of the sheer multitude of options at your fingertips, I’m sure you’ll want to run off and investigate these languages further and perhaps learn another skill that you can add to your resume (or further enhance the way you approach building a website).
Just Starting Out?
If you are a beginner to the whole web design/development scene, my general advice would be to stick to one of the languages I have highlighted as recommended in each category (if you feel that researching for yourself would just confuse you) and to follow through each layer in order as it’s been listed to give you a general roadmap to cover whatever you may wish to employ (HTML is a great starter language).
It’s worth making a note at this point that the order, breakdown and recommendations provided are simply my interpretation of how the task of finding a new language can be undertaken.
Factors That Can Affect Your Choice
It’s important (before we leave this discussion) to underscore the general point that your choices for each layer should be made upon a mixture of intended compatibility (so you know your choice will work for your visitors), relevancy (if the language is current or deprecated) and what you feel comfortable using.
Don’t Sweat It
Beginners to the world of web design/development should remember that even the most experienced gurus of the web started from the bottom and worked their way up one skill/language at a time.
If you feel that all the choice at your disposal is too much for you, simply follow my recommendations and you’ll not go far off course. While all of the considerations and lists may seem like a lot to take in, the great thing about coding for the web is that you only need a couple of languages to get started. The rest of your knowledge can evolve over time and evolve as you add more layers to your work.