Understanding the difference between, let alone actually learning, programming languages can be a big effort...this is coming from personal experience. So, in order to help geospatial newbies to the world of programming, this (far-from-comprehensive/authoritative) post will attempt to distinguish the popular programming languages in a slightly different manner.
NB. Thanks to Florin-Daniel Cioloboc for writing an excellent post on this topic.
HTML is the artistic director of programming languages. It is primarily concerned with the content which is presented to the viewer of a webpage. Composition and arrangement are of utmost importance to HTML and as a result, it spends a lot of time categorizing and describing information. HTML leads a minimalistic lifestyle and likes to spend time in arthouse cafes thinking about epistemological matters.
If HTML is about organising information on your website then CSS is about making it look good. This language has a flair for bringing life to features and text on the page through its ever-growing range of style sheets. CSS allows you to add much-needed space to a text box using some padding, to change a boring dot on a map into a bright coloured pin, and to convert a simple outline shape into a hatched semi-transparent boundary. Fabulous.
Python is a powerful programming language which is used for processing, analyzing and modelling spatial and non-spatial data. The library is commonly used in web mapping, GIS scripting and application development and it can be accessed through the Python console on most GIS software interfaces. Today, Python bench-presses large amounts of Big Data and it, therefore, is commonly used in machine-learning processes in the geospatial world.
Any programming language which calls itself by one alphabetic letter is bound to be pretty cool....and R is no exception. This scripting library is, like Python, used for processing, analysing and modelling both spatial and non-spatial data in GIS software applications. Due to its statistical origins, R has become increasingly popular among geospatialists who are trying to break into the business intelligence and data analytics circles.
C, C++, C#, Java, .NET
Every good application or software programme has been constructed using a heavy-weight foundational programming language. These languages are popular among back-end and full-stack developers who use them to build the many opensource and proprietary applications and plugins which we feel at home using.
Structured Query Language ensures that your requests to the geospatial database are properly...well...structured. Like most literate types, SQL can be fussy - but only for your own good. The language can be used in GIS software programmes to create, query and update attribute table data. If you enjoyed algebra at school then you will love writing SQL.A reflection on turning 100...in blogger terms that is. Read here.
Last but not least, PHP is a server-side language which can be considered as the 'wheelbarrow' of programming languages. Once it has ensured that requests to the server have been strapped in safely, PHP transports them to and from the backend server. PHP works closely with HTML and SQL in particular.