These aren’t all programming languages and this list doesn’t have every web programming language possible on it but this is generally (in no particular order) what you will encounter in the world of web design, development, programming, or whatever else you want to call making things online. This list is more like what you’d see in a job description or on a resume as opposed to purely being a list of programming languages. So here are the languages we will cover:
HTML
http://www.w3.org/wiki/HTML
Type: A markup language, not a programming language.
HTML (HyperText Markup Language) is what websites are made of. When you view the source of a webpage you are seeing html. It is structured as an xml document which means that it’s easy for a person to read and understand. If you are going to do anything on the internet then you need to at least gain a basic understanding of html. The best beginning place for this (and almost any web technology) is the W3 Schools website. While it doesn’t delve deeply into them this resource will start you off on the right path with all of the basic web technologies and it is made and maintained by the same group that develops the web standards so you can be sure the instruction is up to date and reflects good practices.
PHP
http://www.php.net/
Type: Server side interpreted, scripting, language (not compiled)
PHP (PHP: Hypertext Preprocessor) is a language that can be interspersed into html code. You will find there are also many pure php files for frameworks and libraries. In an html file with php in it you can use special tags to change into the php language mode. The commands you then write allow the manipulation of the page before it is delivered to the user and displayed in the browser. The before part is important because once someone is viewing the page php scripts are finished running and will not resume until the user makes another request. That is how all of the server side languages we will cover operate.
Php is a good language for a beginning web developer to learn because it is easy to understand and start with but it is also useful in the job market. Many very big and noteworthy sites and pieces of software are developed in php like WordPress (which this site uses), Facebook, and the MediaWiki engine that powers Wikipedia.
ASP.net
http://www.asp.net/
Type: Server side interpreted, scripting, language (not compiled)
ASP (Active Server Pages) is a language in the Microsoft .net suite of programming languages. Its syntax and its capabilities are similar to php with the primary difference being that ASP runs on a windows server and not on anything else. Advanced users will find more differences because ASP has a rather unique feature of letting you change languages. By default you are going to be writing VBScript but you can use special features of the language to change it to JScript or several other syntax types.
Javascript
http://en.wikipedia.org/wiki/JavaScript
Type: Client side script language
Javascript is the only language embedded in all web browsers. It allows a huge number of the “web 2.0” features we’ve all become comfortable with such as animated menus, dynamic content, user behavior tracking, context sensitive inserts (ads) and many many more things.
Javascript is a client side programming language which means that after the page has loaded on a users (clients) device the javascript runs there, on their computer, as part of the web page. This can be confusing to a new web developer trying to make their server side language (such as php) talk to javascript or vice versa. The confusion is because the two languages never run at the same time. Your php runs on the server and delivers the webpage, then your javascript runs on that page. The two can communicate but it happens much differently and is covered at the end of this article.
Users can disable javascript but that has become so rare that it’s barely a concern anymore since you can scarcely navigate today’s internet without javascript turned on.
CSS
http://www.w3.org/Style/CSS/
Type: Not a programming language. Adds visual description to html.
CSS (Cascading Style Sheets) can be considered part of html, it can be used in an html document or written in its own file to be included to an html doc later. Css exists to give style, visual description of how things should look and be placed, to the elements of an html document. These properties used to be integrated into the writing of html code but they became separated as coders realized they were having to write repetitive code and make changes in too many places. Now pages of a whole website can be written with no styles and all include the same css file. This means changes to fonts, colors and backgrounds can be made in one place. This also has allowed web development to follow the concepts of MVC (Model View Controller) design which is outside the scope of this article but a very important part of designing good software and good interfaces.
Java
http://www.java.com/en/
Type: Server side compiled language using a virtual machine.
Java was developed by Sun Microsystems which has since been incorporated into Oracle. It is similar in many ways to C++ but it’s primary goal was to be totally platform agnostic meaning it can run on anything anywhere. It is not only object oriented but strictly operates in objects. You can’t write java code without it being in an object. Unlike the script languages we’ve seen so far java is compiled into bytecode before it can be run. This adds performance speed at the cost of more overhead in development time and effort. Generally java is harder to understand use and implement than script languages meaning you need higher level talent to program for it (it’s more expensive). Java is not javascript, they are in no way connected in technology, implementation or use. They only share similar names and nothing else and cannot be used interchangeably.
Using java for web development means using a servlet class to process requests and responses through a web server. This is only one of many ways the java language can be used. Notable sites powered by java include Ebay and Amazon and it is widely regarded as one of the best platforms for large scale collaborative enterprise level web work. Small shops are not well served by developing in java because of its complexity and the difficulty and expense of hiring capable developers.
Python
http://www.python.org/
Type: Server side interpreted, scripting, language (not compiled)
Python is a server side language that is unique in its attention to whitespace. In python you do not have brackets. Instead code blocks are defined by indentation and lines are ended with linebreaks and not a special character. While it can be used on its own python is only really worth talking about as a web language in relation to the django framework. This is used to power many newspaper sites as well as other projects and it is the basis of the ellington cms.
The django framework is a tool that helps do many common tasks for you. Namely it lets a developer decide on how the data should be structured and stored and have database tables and basic user interfaces to the data built automatically. It also handles users, profiles, registration and cookies with built in tools.
Actionscript
http://en.wikipedia.org/wiki/ActionScript
Type: Compiled proprietary plugin language.
Actionscript is the programming language of flash. It has had three major iterations over the years that are now referred to as actionscript 1 2 and 3. It is important, especially if you are making advertisements, to know how to develop in actionscript 2 or 3. This is because many ad networks only accept files that have been coded in actionscript 2 (because they are compatible with older systems).
One key difference in actionscript 3 is the ability to compile a flash file outside of the flash program using the free Flex SDK. Flex is another application of the actionscript language that can be used to make desktop applications. The most well known of these is probably Tweetdeck. Whatever you use it for actionscript is a pretty solid language for media. It is easy to pull in videos, images, vector graphics and sound files and use them all dynamically. The disadvantage to working in flash however is that users have to have the flash runtime installed to see your content. On iOS devices like the ipod, iphone and ipad this is impossible (without jailbreaking) meaning your audience is limited. It is expected by many that advances in browsers and html5 media will make javascript fully replace actionscript.
Ruby
http://www.ruby-lang.org/en/
Type: Server side interpreted, scripting, language (not compiled)
Ruby is Japanese in origin and has no official specification. I personally have never written ruby code and so I can’t speak as well on it as other languages but I am including it because of the prominent use of ruby on rails. Rails as it is often called is a rapid development framework like django is for python. In many ways rails is further along than django being that it has built in javascript and ajax support and it can handle on the fly data structure manipulations that are much harder in django. In the end both are good tools. This article shows more details on the differences between the two.
SQL
http://en.wikipedia.org/wiki/SQL
Type: Not a programming language. Interface to relational databases.
SQL (Structured Query Language) is not a programming language or a markup language. It is the standard interface used to move information in and out of databases, manipulate that data, and generate reports and other information based on data. Sql isn’t the only way to use a database but it is the most common way. MySql is the most widely used relational database and is a good starting point to learn from as a web developer.
There is also a type of database now that does not use sql at all to avoid the overhead needed to process every feature of the language. MongoDB is the leading example of this concept.
Ajax
http://en.wikipedia.org/wiki/Ajax_%28programming%29
Type: A method of using several languages in conjunction.
Ajax (asynchronous JavaScript and XML) is really just a concept. By smartly using javascript in the browser to communicate with the server in the background and then change the page it is possible for the user to send and recieve information without reloading the page. This is used very very extensively today. Any in browser chat is ajax based, the gmail interface is all ajax, facebook uses it extensively now for photos and chat. A good place to learn the basic concepts of ajax is through the w3schools lessons.
That’s all for now. This is just the beginning if you want to be a web developer but I hope this is useful information for the less technical people that need to communicate with developers too. I know I’ve left things out. If you want to add anything please do. I am happy to incorporate more information or modify my explanations if it seems necessary.
Pingback: Programming Languages for the Internet | JonathanMcCarver.com | Neorack Tutorials
Objective C for iOS mobile development? Pretty relevant to the web, if not an “internet language.”
It is very relevant to the current culture of where programming and development is going but it isn’t an internet language at all. I talked about java but I didn’t mention it’s ability to be used to develop android apps or it’s history as the language for games and programs on phones before the smartphone market emerged.
I cover these languages well in my earlier article “What’s an app?”
http://www.jonathanmccarver.com/whats-an-app/
If more people want it covered here I can add it but I don’t think it applies to learning to code for the web. Objective C is actually a parallel to C++ and has been the language for macintosh software for many years.
HTML & CSS are not programming languages as they are not turing complete. They have more in common with Word documents than other programming languages.
You are very correct. You may have noticed the the first 5 words of the first sentence of the first paragraph are “These aren’t all programming languages…”. Also in the descriptions of each of those I state that they are not programming languages. It is odd that you didn’t mention ajax as it isn’t a language at all. Markup, programming or otherwise.
To be honest I can’t blame you for reading the title and jumping strait to the list. I wonder would it be better to call this web development languages? Technologies? It all gets a bit muddled as there are so many aspects of the internet and it’s technology.
Cool blog!
There isn’t any one particular lagugane that is more friendly than another, it really depends upon the way you choose to use the one you select.The thing to consider is this Search engines spider web sites and they index the *static results* of the pages they vist So, if you are using a server-side script to generate a page, the search engine will index the resulting HTML, *not* the script that generated it.Depending upon what you’re using the script to do, this can cause interesting indexing results, especially if you’re depending upon user inputs to generate page content.Again though, the choice of scripting lagugane is up to the programmer and their comfort level. I personally recommend PHP, simply because it’s open-source, very wide spread, and easy to use.