What this article is about
If you are looking to be, or already are a developer, then I’d think it likely that you have a good idea of what programming is and probably an idea of some of the different languages on offer. If however you are a designer, writer, artist or marketer then you probably don’t. Worse still, you will probably at some point have to work with somebody does. Thus follows a list of the languages that you may need to know exist and have a rough idea of how they work, that way when a developer says to you “lets use a combination of C# and PHP” you can tell him that maybe he needs to think this through a little more.
I’ve split the languages into three different sections: server side, client/user side and data definition. Data definition languages will not come with tutorial links as they’re best used in combination with something else and often covered there.
These languages run on the server that’s “on the internet”. The user never sees any of the code and in most cases probably won’t even be aware that something complicated is happening. Server side languages are used for creating forums, contact forms and blogs to name 3 common examples. The upside is that you have exactly the same environment for everything (so no worrying about different browsers) and also a central store of information such as a database.
These cause things to happen on the user’s computer. The user sees the code and if they want can edit it, therefore you cannot use these languages to connect to your database or perform secure actions such as logging in. They do however allow your page to become “interactive”.
Essentially these languages don’t quite fit into either of the above, yet are something it’s worth knowing about because some of them are very popular. These languages basically store information, that’s it.
Server side languages
It’s free, and it’s supported by most hosting providers on the internet. It’s used for wordpress, phpBB, and on Scrunchup to name just a few. Aside from being free and widely supported, it also has extensive documentation, many tutorials and also connects easily to MySQL databases (covered later under data definition). The best tutorial site I have found for it is Practical PHP Programming.
The reputation of this language is one of boredom, bloat and general ickyness. It is not as “fun” as Ruby, it is more bloated than Python and is a lot stricter than PHP. These are not bad things, Java has an incredible range of features, is very well developed and secure. Sun know what they are doing and if I were to write a large scale application for something such as a local government, I would consider Java. Tutorials are not hard to come by, but the Sun website is a good starting point.
It is developed by Microsoft and thus requires a Windows server to run on. Microsoft have many tools for C# developers which makes developing with the language much easier and faster. It also connects with MsSQL very easily and has no shortage of online tutorials and help sites. It is an industry standard comparable to Java in the corporate world. Examples of where it is used are StackOverflow, Microsoft, and MSN. I have not learnt C# but the tutorial at csharp-station seems to cover the key points to get started.
You’ve probably heard of “Ruby on Rails”, it’s the cool new language that everybody is talking about. This is not quite correct. Rails is a framework for Ruby, Ruby itself is the language. Ruby is not nearly as well supported as PHP but is gaining popularity fast for its clean writing style and easy to read nature. It also connects to MySQL very easily, has a thriving community and is free. Some examples of sites that use it are Basecamp, Penny Arcade, and A List Apart. Tutorial wise I suggest looking at the Ruby documentation page, it has links to several good tutorials.
Like Ruby is very easy to read and not as well supported as PHP is in terms of web hosts. Python was not designed as a website language and has uses far beyond making websites, its design philosophy is that there should be one way to do things and if you’re moving from writing code in PHP to writing code in Python, this can seem limiting at first. Having used both Python and PHP I much prefer Python for anything beyond a simple web-app. Python is used by NASA, Google App Engine, and EVE Online‘s game client. I recommend the official Python tutorial as a great way to start learning.
Flash can be good, Flash can be bad. Any time a site has a video playing on it (like YouTube), chances are it’s using Flash. Any time a website plays sound at you (last.fm) chances are it’s using Flash. Most internet games are written in Flash and a Flash plugin is available for all modern browsers. Flash can be bad because not all websites benefit from animations and music, it is also not readable by those that rely on screen-readers which can lead to accessibility issues. Flash is used by YouTube, Diablo 3, and Desktop tower defence. Entheosweb have a wide range of lessons in Flash to help you get started.
This looks a lot like HTML, indeed, some sites use XML combined with XSLT instead of HTML (starcraft2.com). Most languages have an “XML parser” that can read XML and then use the data it contains. XSLT is a set of commands that can be applied to the XML as a client side language that will transform the XML into something else such as HTML.
Like chocolate this comes in many variants: MySQL, PostgreSQL, MsSQL, Oracle and probably more. SQL is the language used to communicate with a database and add, find, remove and alter data in it. SQL is used on any site that has a database.
Following this up
In future editions of ScrunchUp I plan to follow this article up with a more in depth look at each language and include a small program in them to give a better idea of what a language is like and how good each it is at various things, you may even find that programming is not as daunting and complex as is often made out and that you’d like to have a go at it yourself!