What are Computer Programming Languages?

Computer programming languages allow us to give instructions to a computer in a language the computer understands. Just as many human-based languages exist, there are an array of computer programming languages that programmers can use to communicate with a computer. The portion of the language that a computer can understand is called a “binary.” Translating programming language into binary is known as “compiling.” Each language, from C Language to Python, has its own distinct features, though many times there are commonalities between programming languages.
These languages allow computers to quickly and efficiently process large and complex swaths of information. For example, if a person is given a list of randomized numbers ranging from one to ten thousand and is asked to place them in ascending order, chances are that it will take a sizable amount of time and include some errors.
There are dozens of programming languages used in the industry today. We've compiled overviews of the 12 most important, relevant and in-demand of these languages below.

Python

Python_small
Python is an advanced programming language that is interpreted, object-oriented and built on flexible and robust semantics.

WHO USES IT?

  • Professions and Industries: 
    • Python developers, software engineers, back end developers, Python programmers
    • Used by employers in information technology, engineering, professional services and design
  • Major Organizations: Google, Pinterest, Instagram, YouTube, DropBox, NASA, ESRI
  • Specializations and Industries: Web and Internet development (frameworks, micro-frameworks and advanced content management systems); scientific and numeric computing; desktop graphical user interfaces (GUIs)

WHAT MAKES LEARNING IT IMPORTANT?

Python lets you work quickly to integrate systems as a scripting or glue language. It’s also suited for Rapid Application Develop (RAD).
  • The game Civilization 4 has all its inner logic, including AI, implemented in Python.
  • NASA uses Python in its Integrated Planning System as a standard scripting language.
  • Features:
    • Simple to learn and easily read
    • Associated web frameworks for developing web-based applications
    • Free interpreter and standard library available in source or binary on major platforms

WHERE DID IT START?

Python was developed in the late 1980s at CWI in the Netherlands and first released to the public in 1991.

FORUMS

TRY IT OUT!

Java

Java_logo_small
Java is a general-purpose, object-oriented, high-level programming language with several features that make it ideal for web-based development.

WHO USES IT?

  • Professions and Industries:
    • Software engineers, Java developers
    • Used by employers in communications, education, finance, health sciences, hospitality, retail and utilities
  • Major Organizations: V2COM, Eclipse Information Technologies, eBay, Eurotech
  • Specializations and Industries: Internet of Things (IoT), Enterprise Architecture, Cloud Computing

WHAT MAKES LEARNING IT IMPORTANT?

Java is used to develop enterprise-level applications for video games and mobile apps, as well as to create web-based applications with JSP (Java Server Pages). When used online, Java allows applets to be downloaded and used through a browser, which can then perform a function not normally available.
  • Programs that use or are written in Java include Adobe Creative Suite, Eclipse, Lotus Notes, Minecraft and OpenOffice.
  • Java is the core foundation for developing Android apps.
  • Features:
    • Application portability
    • Robust and interpreted language
    • Extensive network library

WHERE DID IT START?

Originally known as Oak, Java was developed in 1990 at Sun Microsystems to add capabilities to the C++ language. Java was developed according to the principle of WORA (Write Once Run Anywhere). The language was introduced to the public in 1995 and is now owned by Oracle.
Forums

TRY IT OUT!

Ruby/Ruby on Rails

ruby-logo
Ruby is an open-sourced, object-oriented scripting language that can be used independently or as part of the Ruby on Rails web framework.

WHO USES IT?

  • Professions and Industries:
    • Ruby on Rails developers, software engineers, data science engineers
    • Used by employers in technology, engineering, professional services, design, science and quality control
  • Major Organizations: Github, Scribd, Groupon, NASA Langley Research Center, Blue Sequence (part of Toyota Motor Manufacturing), Motorola, Google (SketchUp)
  • Specializations and Industries: Web App Development, Robotics, Networking, System Administration and Security

WHAT MAKES LEARNING IT IMPORTANT?

Ruby is used for simulations, 3D modeling, and to manage and track information.
  • Basecamp, Amazon, Twitter and Groupon were all created using Ruby on Rails.
  • NASA uses Ruby to conduct simulations.
  • Features:
    • Free to use, copy, modify and distribute
    • Intuitive and flexible language
    • Completely object-oriented (ability to use method chaining)

WHERE DID IT START?

Designed in 1995, Ruby’s creator described it as “simple in appearance, but it is very complex inside, just like our human body.”

FORUMS

TRY IT OUT!

HTML (HyperText Markup Language)

HTML5_logo
HTML is the standard markup language used to create web pages; it ensures proper formatting of text and images (using tags) so that Internet browsers can display them in the ways they were intended to look.

WHO USES IT?

  • Professions and Industries:
    • Web developers, technical editors, email designers, software engineers
    • Used by employers in Information Technology, Engineering, Design, Professional Services, Management, Marketing, Customer Services and Sales
  • Major Organizations: Apple, CyberCoders, Apex Systems, CareerBuilder
  • Specializations and Industries Where HTML is Used Most: Web Development, Email Programming

WHAT MAKES LEARNING IT IMPORTANT?

HTML is used to create electronic documents (pages) displayed online. Visit any page and you will see an example of HTML in action.
  • The diversity and complexity in the structure and appearance of today’s sites is made possible with HTML.
  • Features:
    • Easy to use and learn the basics of HTML
    • Free and accessible
    • Multiple versions available

WHERE DID IT START?

HTML was created by physicist Tim Berners-Lee in 1990 to allow scientists to share documents online. Before then, all communication was sent using plain text. HTML made “rich” text possible (i.e. text formatting and visual images).

FORUMS

TRY IT OUT!

JavaScript

js_logo
JavaScript is a client-side programming language that runs inside a client browser and processes commands on a computer rather than a server. It is commonly placed into an HTML or ASP file. Despite its name, JavaScript is not related to Java.

WHO USES IT?

  • Professions and Industries:
    • JavaScript developers, Web developers, software engineers
    • Used by employers in Information Technology, Engineering, Design, Marketing, Finance and Healthcare
  • Major Organizations: WordPress, Soundcloud, Khan Academy, Linkedin, Groupon, Yahoo and many others
  • Specializations and Industries Where JavaScript is Used Most: Front End Website Development, Gaming Development

WHAT MAKES LEARNING IT IMPORTANT?

JavaScript is used primarily in Web development to manipulate various page elements and make them more dynamic, including scrolling abilities, printing the time and date, creating a calendar and other tasks not possible through plain HTML. It can also be used to create games and APIs.
  • The agency Cyber-Duck in Britain uses public APIs, created with JavaScript, to pull in data about crime and enables users to review a local area.
  • Tweetmap, created by Pete Smart and Rob Hawkes using JavaScript, represents a world map that is proportionally sized according to the number of tweets.
  • Features:
    • Basic features are easy to learn
    • Multiple frameworks
    • Users can reference JQuery, a comprehensive Javascript library

WHERE DID IT START?

JavaScript was designed by Netscape and originally known as LiveScript, before becoming JavaScript in 1995.

FORUMS

TRY IT OUT!

C Language

The_C_Programming_Language_logo.svg
C Language is a structure-oriented, middle-level programming language mostly used to develop low-level applications.

WHO USES IT?

  • Professions and Industries:
    • Software developers, computer engineers, business and systems analysts, IT and Web content administrators, embedded software engineers
    • Used by employers in Information Technology, Engineering, Management, Healthcare and Professional Services
  • Major Organizations: Microsoft, Apple, Oracle, Cisco, Raytheon
  • Specializations and Industries Where C Language is Used Most: Embedded Systems, Systems Programming, Artificial Intelligence, Industrial Automation, Computer Graphics, Space Research, Image Processing and Game Programming

WHAT MAKES LEARNING IT IMPORTANT?

C Language is used to develop systems applications that are integrated into operating systems such as Windows, UNIX and Linux, as well as embedded softwares. Applications include graphics packages, word processors, spreadsheets, operating system development, database systems, compilers and assemblers, network drivers and interpreters.
  • Facebook’s TAO systems is programmed mostly using C language.
  • Most device drivers are still developed using C Language.
  • Features:
    • Simple to learn; there are only 32 keywords to master
    • Easy to write systems programs such as compilers and interpreters
    • Foundational language for beginners

WHERE DID IT START?

The C Language was developed in 1972 at Bell Labs specifically for implementing the UNIX system. It eventually gave rise to many advanced programming languages, including C++, Java C#, JavaScript and Pearl.

FORUMS

TRY IT OUT!

C++

cplusplus
C++ is a general purpose, object-oriented, middle-level programming language and is an extension of C language, which makes it possible to code C++ in a “C style”. In some situations, coding can be done in either format, making C++ an example of a hybrid language.

WHO USES IT?

  • Professions and Industries:
    • C++ software engineers, C++ software developers, embedded engineers, programmer analysts
    • Used by employers in Information Technology, Engineering, Professional Services, Design, Quality Control and Management
  • Major Company and Organization Users: Google, Mozilla, Firefox, Winamp, Adobe Software, Amazon, Lockheed Martin
  • Specializations: System/Application Software, Drivers, Client-Server Applications, Embedded Firmware

WHAT MAKES LEARNING IT IMPORTANT?

The C++ language is used to create computer programs and packaged software, such as games, office applications, graphics and video editors and operating systems.
  • The Blackberry OS is developed using C++.
  • The newest Microsoft Office suite was developed using C++.
  • Features:
    • Often the first programming language taught at college level
    • Quick processing and compilation mechanism
    • Robust standard library (STL)

WHERE DID IT START?

Released in 1983 and often considered an object-oriented version of C language, C++ was created to compile lean, efficient code, while providing high-level abstractions to better manage large development projects.

FORUMS

TRY IT OUT!

C#

csharp
Pronounced C-sharp (not C-hashtag), C# is a multi-paradigm programming language that features strong typing, imperative, declarative, functional, generic, object-oriented and component-oriented disciplines.

WHO USES IT?

  • Professions and Industries:
    • C# developers, automation test engineers, software engineers, senior .net Web developers
    • Used by employers in Information Technology, Engineering, Design, Professional Services, Management and Quality Control
  • Major Organizations: Microsoft Intel, Hewlett Packard
  • Specializations: Windows-based platforms

WHAT MAKES LEARNING IT IMPORTANT?

C# helps developers create XML web services and Microsoft .NET-connected applications for Windows operating systems and the internet.
  • Used to develop a wide range of software applications that accompany Visual Studio IDE.
  • The only language used by the Windows Presentation Foundation (WPF).
  • Features:
    • Similar to Java in capabilities
    • Ideal for beginners
    • The go-to for working on Microsoft apps

WHERE DID IT START?

C# was developed in 2000 as part of Microsoft’s release of .NET framework; in 2003 it became an ISO standard. C# was based off of C, C++, and Java languages.

FORUMS

TRY IT OUT!

Objective-C

iOS_Objective_C
Objective-C is a simple, general-purpose and object-oriented language. It uses a system of message passing borrowed from the language Smalltalk; when an object in Objective-C is sent a message, it can choose to ignore or forward to another object, rather than return a value.

WHO USES IT?

  • Professions and Industries:
    • IT and Web content administrators, iOS and Android mobile developers, software engineers
    • Used by employers in Information Technology, Engineering, Management, Healthcare and Design
  • Major Organizations: Apple, CyberCoders
  • Specializations: Software development

WHAT MAKES LEARNING IT IMPORTANT?

Objective-C is primarily used by developers to create apps for iOS and OS X.
  • From everything to Twitter and Facebook to Wells Fargo and Mint, objective-C is the most commonly used language to write programs for apple products.
  • Features
    • Increased flexibility with dynamic typing
    • Often used alongside a framework such as Cocoa or Cocoa Touch
    • Great first language for beginning programmers

WHERE DID IT START?

Objective-C was developed at Apple in 1983 to address deficiencies (specifically lack of object-orientation) in C language. It was licensed by NeXT in 1988.

FORUMS

TRY IT OUT!

PHP (Hypertext Preprocessor)

PHP_logo
PHP is an open-source scripting language designed for creating dynamic web pages that effectively work with databases. It is also used as a general-purpose programming language.

WHO USES IT?

  • Professions and Industries:
    • PHP developers, PHP software engineers
    • Used across industries, to include Information Technology, Engineering, Design, Professional Services, Healthcare, Management and Finance
  • Major Organizations: Facebook, Yahoo, CyberCoders, NextGen
  • Specializations Where PHP is Used Most: Web Application Development, Server-Side Scripting, Command Line Scripting

WHAT MAKES LEARNING IT IMPORTANT?

PHP is primarily used alongside dynamic data-heavy websites to collect form data. It's also used in app development to generate dynamic page content.
  • PHP is part of the LAMP platform used by Facebook and Yahoo.
  • Platforms such as Joomla, WordPress and Drupal use the PHP language.
  • Features:
    • Easy to learn (as simple as embedding code inside HTML)
    • Free and opensource
    • Can be used on all major operating systems and web servers

WHERE DID IT START?

PHP was released in 1995 as a server-side scripting language, which is processed on a server to become a website in plain HTML.

FORUMS

TRY IT OUT!

SQL (Structured Query Language)

SQL
SQL is a database query language (not a development language) that allows for adding, accessing and managing content in a database. It is the language that allows programmers to perform the common acronym CRUD (Create; Read; Update; Delete) within a database.

WHO USES IT?

  • Professions and Industries:
    • SQL server developers, database testers, software developers, database administrators
    • Used across industries like Information Technology, Engineering, Design, Management, Professional Servers, Business and Finance
  • Major Organizations: SQL is used by most companies and organizations that gather data. Examples include Robert Half Technology, Nigel Frank, CyberCoders and UnitedHealthCare.
  • Specializations Where SQL is Used Most: Data Analysis and Big Data Mining

WHAT MAKES LEARNING IT IMPORTANT?

SQL interacts with the backend database of web application. It is the “de facto standard” database language, always used in conjunction with another programming language. SQL programs are implemented as a way for businesses and organizations to access and manipulate information stored in their databases.
  • Relational database management systems that use SQL include MySQL (by Oracle), Sybase, Microsoft SQL Server and others.
  • Features:
    • Simple syntax
    • Free and easily accessible

WHERE DID IT START?

SQL was developed at the IBM Research Center in 1974 and originally known as SEQUEL. The first commercial version was introduced in 1979 by ORACLE.

FORUMS

TRY IT OUT!

Swift

Swift_logo.svg
Swift is Apple’s newest open-source, multi-paradigm programming language for iOS and OS X apps. Swift integrates Objective-C’s named parameters and object-oriented model, while including an advanced compiler, debugger and framework infrastructure.

WHO USES IT?

  • Professions and Industries:
    • Swift Platform Developers, iOS Mobile Application Developers, Software Developers, Senior Programmers, Data Engineers
    • Information Technology, Engineering, Design, Management and Professional Services
  • Major Organizations: Apple, Getty Images, Slack, Dow Jones, Playlist Media
  • Specializations Where Swift is Used Most: Software development

WHAT MAKES LEARNING IT IMPORTANT?

Swift is primarily used by developers to create apps for iOS and OS X.
  • Dow Jones is rewriting sections of its mobile Wall Street Journal app using Swift.
  • Getty Images built its consumer-facing app, Stream, using Swift.
  • Features:
    • Supports ‘playgrounds,’ a feature that lets programmers experiment and see immediate results
    • Easy to understand syntax
    • Ideal for writing production-ready code

WHERE DID IT START?

Swift, which is based off of the Objective-C programming language, was introduced at Apple’s 2014 Worldwide Developers Conference (WWDC). The newest version, Swift 2, was released as an open-source language in 2015.

FORUMS

TRY IT OUT!



Computer programs are often described as “sets of instructions”,and computer languages are thought of by many as merely the syntax and vocabulary for providing these instructions.
From this point of view, different programming languages may have different grammars, or different vocabularies. Each may treat semi-colons a particular way, or require capitalization — but they are sort of the same underneath all that.
The reality of programming is much more complicated than that.

Programming Today

It’s weird to think of, but most of the really “big” ideas in computer programming were developed in the 1950s and 60s. Many new languages have developed since then, but none of them represent a truly novel approach to logic and computation.
The development of new programming languages in the last few decades has focused a lot on developer experience. This may mean trying to enable code that is easier to write (the driving force behind Ruby) or easier to read (Python), or making certain types of logical structures and modes of problem-solving more intuitive.
Some languages have been developed to solve particular problems in programming (PHP and SASS, for example), to manipulate certain types of systems (SQL), or to run in a particular environment or platform (Java and JavaScript). A number of languages have been developed for the purpose of helping newcomers learn programming (BASIC and Scratch are classic examples).
Since theories and practices around language design have (mostly) settled into a widely recognized orthodoxy, much of the new and interesting work in the development of programming practice currently centers around system architecture.
Relatively recent developments include concepts like SOA (Service Oriented Architecture) and MVC (Model-View-Controller), and frameworks like Ruby on Rails that enable programmers to easily work within these paradigms.

List of Coding Languages

A growing list of popular programming languages, markups, and protocols. Follow the links for in-depth guides on each.

ABAP

Advanced Business Application Programming, or ABAP, is one of the two languages that are used to create SAP applications. SAP is one of the biggest enterprise resource planning systems in use today, and so is very important in the business community. Find out more: ABAP Introduction and Resources.

ActionScript

ActionScript is the programming language used to create Adobe Flash applications. Although Flash may be less important than it once was because of HTML5, it is still an exciting development system for creating graphics, animations, and games. Learn all about it and Flash: Actionscript and Flash Developer Quick Start Guide.

Ada

Ada is a programming language developed for the US Department of Defense for creating mission-critical applications. Although it isn’t widely used, it is the language of choice when safety is critically important like in air traffic control applications. Find out more: Ada Lovelace.

ALGOL

ALGOL was one of the earliest high-level languages. But unlike Fortran and COBOL, it isn’t much used. Just the same, it has been very important as a model for languages that came later. See: ALGOL Introduction and Resources.

Alice

Alice is a visual programming language, used to teach students basic computer science concepts. It uses 3D objects and a point-and-click interface to provide an easy way for students to get started with traditional programming. Learn more: Alice Programming Resources.

APL

APL is short for A Programming Language, and it is indeed that. Although it was created in the early 1960s, it is still in use because of its power. Just the same, it is a very strange language. Find out all about it: APL Introduction and Resources.

ASP / ASP.NET

ASP is short for Active Server Pages. It was the first server-side scripting language for Microsoft’s IIS web server. ASP was replaced by ASP.NET, an open-source server-side framework. See: ASP Primer and our guide to ASP hosting.

Assembly Language

Assembly language is the most fundamental kind of software development where the coder has complete access to the CPU. Whether used directly or as a way to better understand computers at the hardware level, assembly language programming is a powerful skill to have. Find out more: Assembly Language Introduction.

Awk

Awk is an enormously powerful text processing programming language that allows you to extract the data that you need from a file or other source and output it in any format you want. It is an old tool, but still as useful as ever. Find out all about it: Awk Resources.

BBC Basic

It might seem hard to believe but in the early 1980s, the television broadcaster BBC had a computer and programming language developed simply for the purpose of producing an educational series, The Computer Programme. And it was successful! Now its an amazing bit of computer history, but you can still get and use the language. Find out more about this amazing chapter of computer history: BBC Basic Introduction and Resources.

C

If you include its two derivatives, no language has had more use and more impact than C. It is especially important for the development of Operating Systems and other foundational software. Many compilers and interpreters for other languages are written in C. See: C Developer Resources.

C++

Originally “C with Classes,” C++ is, in many ways, simply a more advanced successor to C (though the situation is a lot more complicated than that). C++ was developed to add high-level programming paradigms to C, while retaining the low-level hardware-manipulation capabilities. Many of these additions have been added to C over the years, and the languages are more like two dialects of a single language. See: C++ Developer Resources.

C#

Used as the primary language for .NET programming, and much like C++, it is an extension of the C programming language with the major addition being object-oriented capabilities. See C# Resources.

COBOL

COBOL is one of the oldest high-level programming languages. And many people think it is dead. But it is still in use throughout business and government doing mission-critical tasks. And that code still needs to be maintained and expanded. It offers an unusual opportunity for young software developers. Learn more: COBOL Introduction and Resources.

Cascading Style Sheets

Cascading Style Sheets (CSS) allow you to change the look of web pages. It’s usually the first thing you learn after HTML. CSS isn’t a traditional language, but it is an incredibly useful one. This article provides a complete introduction to CSS along with a section on writing efficient code and dealing with the very big subject of colors. It also includes a complete list of CSS color names. See: Getting Started With Cascading Style Sheets.

D

Just as the C programming language came about because of deficiencies in the B programming language, D was designed to fix C. In particular, D makes C object-oriented. But unlike C++, which did the same thing, D is not backward compatible, and so doesn’t contain some of the weaknesses of C++. Learn all about it: D Programming Language Primer.

Delphi

Delphi is an object-oriented version of the Pascal programming language. It’s been around for over 20 years and more popular than ever. Learn the basics here: Delphi Programming Introduction and Resources.

Dreamweaver

Dreamweaver is a powerful website building tool that allows the user to create visually without losing the complete control of hand coding. Find out more: Dreamweaver Introduction and Resources. See also our Dreamweaver hosting primer.

Erlang and Elixir

Erlang is an old programming language, first designed to address telecommunications problems. But its emphasis on concurrent design has made it increasingly popular for the development of distributed applications like games and e-commerce applications.
Elixir is a functional computer language designed for creating large-scale concurrent and distributed applications such as social networks. Want to create the next Facebook? Elixir may be the language to use. Learn all about the language, its basis on Erlang, and functional programming generally.
Learn all about both: Erlang & Elixir.

F#

F# is a general-purpose programming language, designed to be extremely efficient. At first only a Microsoft language, it is now open-source and used on all platforms. Learn more on our F# Resources page.

FORTH

Work began on Forth in 1968, and is commonly used on hardware that doesn’t have a traditional operating system. It is also widely used to control machinery. See: FORTH Resources.

FORTRAN

Fortran first appeared in 1957 and is still used today to solve some of the most complicated problems in modern science and engineering. See: Fortran Resources.

Functional Programming

Functional programming describes certain kinds of languages and an approach to programming. Get introduced to this system and find out how to learn more. See: Functional Programming Introduction and Resources.

Go

The Go programming language, or golang, was released by Google in 2007. It was based on C and designed to remove some of the complexities out of C++. Although originally created as a systems programming language, it is now even used to create smartphone apps. Learn all about it: Go Programming Introduction and Resources.

Haskell

Haskell is one of the most popular functional programming languages, in addition to being the basis for about a dozen others. It is widely used in business and academia and is a great language to get started with functional programming. For more, see our Haskell Resources.

HTML

HTML is not a programming language, it is a markup language — a language for adding semantic and stylistic annotations to content. It is the primary language for web content, and is a fundamental skill for web designers and web developers, as well as for anyone (writers, editors) who produces content for the web. Learn all about it here. And we do mean all about it: from basic HTML to XHTML, HTML5, and DHTML. We also discuss good coding style and how to use validation tools. Check it out: HTML for Beginners — And More.

IDL

IDL, or Interactive Data Language, is a computer programming language used primarily for data analysis and visualization. It is still widely used in aerospace and astronomy. See our IDL Resources.

INTERCAL

INTERCAL is a parody computer language designed in the early 1970s. It was meant to make fun of the tendencies for programming languages to be overly technical and difficult to understand. But it’s still a real language that you can download and maybe even get to do things for you. This is assuming you are nice enough — but not too nice, because INTERCAL doesn’t like that either. Check out our cheeky INTERCAL Introduction and Resources for more information.

Java

Java is a high-level language designed to be used by the Java Virtual Machine. It has very few external dependencies, and was intended to be able to run on any physical machine. It is used a lot in network architecture and also in embedded devices, kiosks, and other in situ computing applications. See our detailed guide to Java. Also, see Java Servlet Tutorial for setting up your first Tomcat environment and running your first Java Servlet. Finally, we have introductions on hosting for Java and JSP.

Javascript

JavaScript (which has no actual relation to Java), is a scripting language developed originally for use in web browsers. Because of that, it has a built-in facility for dealing with the Document Object Model, the in-memory representation of the content of a webpage. It is the primary programming language for front-end web development. This article provides a great introduction to the language, including major discussions of Functional JavaScript, JavaScript Style, and various JavaScript Libraries like Backbone.js. Start your adventure here: JavaScript. See also our Ajax hosting guide.

Node.js

Node.js is a runtime environment that allows JavaScript to be used to create server-side applications. Find out more: Node.js.

Bootstrap

Bootstrap is a popular front-end development framework that is JavaScript heavy. Learn more: Bootstrap Resources.

jQuery

jQuery is a JavaScript library that makes writing code much easier and faster. Find out more about it with this introduction and design tutorial: Get Started With jQuery.

LabVIEW

LabVIEW is a graphical programming language especially designed to help scientists and engineers solve the problems they face. It is particularly focused on creating applications that interface with and control hardware. Learn more about it: LabVIEW Programming Introduction and Resources.

Lisp

Lisp is one of the earliest high-level programming languages and is still actively use. It is a general-purpose language, but is most associated with work in artificial intelligence. There are a number of popular dialects of it. We’ve put together an introduction to it and its most popular implementations — both as standalone languages and as addons to applications: Lisp Programming.
Logo was one of the earliest teaching programming languages, and still probably the best known. It was famous for its turtle that children would cause to move around with computer commands. It is a fun way for kids to become familiar with programming. Find out all about it: Logo Programming Resources .

MetaQuotes Language

The MetaQuotes language was developed for use with MetaTrader Software. It allows developers to create trading robots. But there are two competing, and rather different versions: MQL4 and MQL5. But if you want to get into financial trading programming, you needn’t worry. We have all the resources you need to figure it out. Find out more: MetaQuotes Programming Resources.

ML

ML was originally designed as a meta-programming language: a language to be used to create other languages. But over time, it has come to be a general-purpose language, widely used in education as well as math, science, and even finance. Find out all about it and get started working with it using our ML Resource and Introduction.

Modula-3

Although Modula-3 is not used much anymore, it is incredibly important in the development of programming languages. What’s more, there’s still plenty of Modula-3 code out there needing to be maintained. Learn more: Modula-3 Introduction and Resources.

MS Access

MS Access is a database system. Although it isn’t used that much anymore, it is still a great tool for small projects. And there is a huge number of legacy systems that depend upon MS Access. It can be critical to know: MS Access Introduction and Resources. Also, see our MS Access hosting introduction.

MySQL

MySQL is one of the most popular database systems in the world. It is especially important as the basis of content management systems like WordPress. Find out about it and get the resources to learn more: MySQL Introduction and Resources. Our MySQL hosting primer is essential reading.

NXT-G

The NXT-G programming language was designed to create and control robots using the LEGO MINDSTORMS NXT robotics kit. It is intended to introduce children to programming and robotics, but a lot of adults use the system too because it’s fun and interesting. Learn more: NXT-G Programming Resources.

Object-Oriented Programming

This article provides you a good introduction to object-oriented concepts and then goes on to discuss the most popular object-oriented programming languages. See: Object-Oriented Programming.

Objective-C

Another version of C, created in the 1980s to provide a fully Object-Oriented implementation of C. Its primary use now is on the Mac OSX and iOS operating systems. Until recently, iOS apps had to be written in Objective-C, but now Swift is an option as well. More on Objective-C.

OCaml

OCaml is an object-oriented functional computer language. In the tradition of ML, it is used a great deal for writing other programming languages and development frameworks. Find out more: OCaml Introduction and Resources.

Pascal

Pascal is a language much loved by programming purists. But that doesn’t mean it hasn’t kept up with the times and isn’t still used. Find out more: Pascal Introduction, Tutorials, and Resources.

Perl

A very useful tool for almost any programmer. As an interpreted language it does not need to compile, and is sometimes referred to as the “swiss army knife” of scripting languages. Learn more: Perl Resources. Also: learn about Perl hosting.

PHP

PHP is the most popular server-side language on the internet today. It is incredibly powerful yet easy to learn. Get started today: PHP Introduction and Resources. See also: our hosting guides for general PHP as well as PHP 5 and PHP 7.

PL/I

PL/I — or “Programming Language One” — dates back to the 1960s. Although never as popular as Fortran and COBOL, there is still PL/I code in use that needs maintaining and converting. See: PL/I Developer Resources.

PL/SQL

PL/SQL is a procedural language build on top of SQL for programming for Oracle databases. Learn all about it: PL/SQL Introduction and Resources.

PostgreSQL

PostgreSQL is an advanced relational database system — the biggest open-source competitor to MySQL. Although not as popular as MySQL, PostgreSQL is generally more powerful. Find out more: PostgreSQL Introduction and Resources. See also our PostgreSQL hosting primer.

PostScript

PostScript is a specialized programming language used primarily for describing graphics and page layouts. It is incredibly powerful. Find out about its history and how to learn more: PostScript Introduction and Resources. We also have a Ghostscript hosting guide.

PROLOG

Prolog is a logic programming language, designed to do natural language processing. Learn more: Prolog Intro and Resources.

Pure Data

Pure Data is a unique visual programming language. It was created especially to allow users to create video, audio, and graphic works. Learn about it and where to find out more in our Pure Data Resource Page.

Python

Python is a high-level programming language. It is an interpreted (not compiled) language, also known as a “scripting language.” It is mostly used as a tool for performing ad hoc programming tasks such as task automation and data analysis. It has a strong set of tools for mathematical and scientific computing, and is frequently used by researchers. Learn more: Python Resources. Also check out our Python hosting introduction.

R

R is a free and open-source programming language for statistical analysis and the creation of great looking data visualizations. Find out more: R Programming Language Introduction and Resources.

RapidWeaver

RapidWeaver is a website building tool. Written for the Mac, it has a number of advantages over online website building tools. See: RapidWeaver Primer and Resources. Our RapidWeaver hosting guide is also worth checking out.

RavenDB

RavenDB is a NoSQL document-oriented database written especially for the .NET framework. Learn more here: RavenDB Introduction and Resources.

Rexx

Rexx is a scripting language written by IBM for its mainframe computers. But it became much more widely used. Learn more: Rexx Introduction, Tutorials, and Resources.

Ruby on Rails

Ruby is a popular programming language. It is particularly associated with Rails, a web development framework for the Ruby programming language. It provides an MVC (Model View Controller) architecture, a database abstraction layer, and a lot of tools to speed the process of web application programming. Find out more: Ruby on Rails. Also, see our Ruby on Rails hosting primer.

S-PLUS

S-PLUS is a commercial version of the powerful programming language S, designed for doing statistical analysis. The GNU project has its own version of S called R. We provide all the resources you need to learn S with an emphasis on S-PLUS. Find out more in our S-PLUS Programming Resources Page.

SAS

SAS is a specialized language designed to analyze statistical data. It is widely used in government, academia, and business. For people who have a lot of data they need to make sense of, SAS is an obvious choice. Learn more: SAS Programming Resources.

Scala

Scala is a relatively new language — more or less a new and better Java. It’s a great language for Java programmers who want to be more efficient, or people just starting out who want to learn a powerful language that won’t limit them in the future. Learn all about it: Scala Resources.

Sed

Sed is a powerful text processing tool and simple programming language that allows you to edit text files (or streams) using regular expressions. Find out all about it: Sed Introduction and Resources.

SGML

Standard Generalized Markup Language (SGML) is the granddaddy of markup languages and the basis of HTML. Learn more about it here: Standard Generalized Markup Language Introduction.

Simula

Simula is a very important language historically, as it was the first language to introduce the concepts which became the basis for Object-Oriented Programming. More on Simula’s interesting history.

Smalltalk

Smalltalk is a hugely influential object-oriented programming language. Over the years, it has become less widely used. But with the release of the development framework Seaside, Smalltalk has seen a resurgence in use, because it makes just about any Smalltalk implementation easy to use to create web applications. Our article gives a full introduction and discusses the many versions of the language: Smalltalk Implementations and Tutorials.

SMIL

SMIL (Synchronized Multimedia Integration Language) is a tool for people who want to create and distribute presentations. It is especially useful if you want to create presentations that need to be updated from time to time. See SMIL Guide.

SNOBOL

SNOBOL is a family of programming languages created in the 1960s especially for the purpose of processing text. Since then, more powerful tools have been developed, but it is still quite interesting, especially within the history of natural language processing and chatbots. Find out more: SNOBOL Text Processing and Programming Language.

SQL

SQL is the Structured Query Language, a language used to communicate with Relational Database Management Systems (RDBMS). SQL allows a programmer to create data structures, insert and edit data, and query data. See SQL Guide and ANSI-Compliant SQL Databases.

SQLite

SQLite is the most popular database system in the world because of its widespread use in smartphone apps. Unlike MySQL, it is not a client/server but an embedded system, making it simple and fast for most applications. Learn more: SQLite Introduction and Resources. Learn the tricks to using it the best way possible: Optimizing SQLite. And check out our SQLite hosting guide.

SSI

Server Side Includes (SSI) is a simple language for adding dynamic elements to otherwise static websites. It also allows you to create easy uniformity and maintainability on your site. Learn about it: Server Side Includes Primer. And find the right hosting for SSI.

Stata

Stata is a development environment and programming language for solving serious statistical problems. Although it’s been around a long time, it is still widely used by a very active community. If you do statistical work, Stata is a great tool to know. Find out more: Stata Programming Resources.

Swift

Swift is a programming language developed by Apple for iOS, OS X, watchOS, tvOS, and Linux development. It is the language of the future for developers of programs and apps for Apple devices. Find out more at our Swift Resourcespage.

Tcl/Tk

Tcl is a powerful scripting language and Tk is the toolkit that allows programmers to create graphical user interfaces for their Tcl applications. Learn all about it: Tcl and Tk Introduction and Resources.

TeX and LaTeX

TeX and LaTeX are languages that allow coders to typeset documents. Using them is quite different from using a word processor, but far more powerful and easier for typesetting long documents like books. Learn all about them: TeX and LaTeX Introduction and Resources.

Unified Modeling Language

Unified Modeling Language (UML) is a graphical modeling language used to design and visualize large computer systems. It is generally used before a project is started so that it can be better managed. Find out more: Unified Modeling Language Introduction.

Unix Shells

This guides you through the major Unix (GNU/Linux) shells and shows you why you need one and which one you should use. Essential reading: What Unix Shell Should I Use?

Verilog

Verilog is a hardware description language — like a programming language, but for designing (and increasingly building) hardware. If you want to get into the computer chip design business, Verilog is one of the first places to start. Find out more: Verilog Programming Introduction and Resources.

VHDL

VHDL is the other popular hardware description language. In fact, most professionals who know VHDL also know Verilog. Learn more about it: VHDL Primer and Resources.

Visual Basic

Visual Basic is still one of the most popular languages for use with the Microsoft .NET framework. This article also discusses VBScript, still highly useful for scripting inside applications. Get started: Visual Basic and Visual Studio. See also our VB.NET and Visual Studio hosting guides.

Visual FoxPro

Although no longer actively developed by Microsoft, Visual FoxPro is still a very popular database application development environment and programming language. There is a huge installed base of business applications that still need to be maintained, so programming professionals still use it. Find out more about it: Visual FoxPro Primer.

VRML

Virtual Reality Markup Language (VRML) was created in the late 1990s as a way of describing virtual worlds. It created a lot of excitement for a time, but never really took off. Learn more: VRML Tutorials, Resources, and Books.

WAP/WML

WAP (Wireless Application Protocol) and WML (Wireless Markup Language) were two early technologies used to deliver and render webpages on mobile devices. Technology has made then unnecessary, but they are an important part of the history of today’s smartphones. Learn all about it: WAP/WML Introduction and Resources. We also have a WAP/WML hosting introduction.

XML

XML is a highly structured markup language that is designed to be both human and machine readable. Learn the basics of XML and get access to other tools and resources. In addition, learn about the XML DOM and Microsoft’s XML implementation (MSXML). And it ends with discussions of See XML Guide and Validators.

XSL

Find out how to transform and render XML files with XSLT, XSL-FO, and XPath. Learn more: XSL: Render Your XML Documents With These Critical Tools.
More than advances in technology and manufacturing, the history of computer science is really about the development of programming and programming languages. It is more about advances in math and logic than about processors and megabytes.

List of Programming Tools and Libraries

Here is our growing list of in-depth guides to programming tools and libraries.

ADO.NET

If you develop database-driven applications using the .NET framework, then you need ADO.NET. It allows you to access data in a database-independent way. Find out more: Introduction to ADO.NET.

AI Programming

Although not a specific library or tool, artificial intelligence (AI) is a special way of coding computers that is more and more common. Learn all about it: AI Programming Introduction and Resources.

ASCII Encoding

Character encoding is one of the most basic aspects of computers and the internet. ASCII was the first widely used character encoding system. It has been superseded by UTF-8, but ASCII is still the basis for the vast majority of the internet today, and understanding it is critical for programmers. This guide also covers ISO-8859-1 and Unicode. Read all about it: The Ultimate Guide to ASCII Encoding.

Backbone.js

Backbone.js is a flexible JavaScript library for creating single page web applications. Learn more: Backbone.js Introduction and Resources.

Books

There are thousands of great programming books. But we’ve put together 101 essential books that every programmer should have in their libraries. Read all about them: Ultimate List of Programming Books.

CakePHP

CakePHP is a rapid-development framework for PHP. It is easy to use, even for PHP novices. What’s more, it uses MVC architecture to make maintaining code easier. Find out more: CakePHP Introduction, Tutorials, and Resources. Also: our CakePHP hosting guide.

CGI

The Common Gateway Interface (CGI) is a way to run programs via the web. It isn’t a popular coding choice these days with alternatives like PHP. But it still has its uses. Learn more: CGI Tutorials and Resources. See also: CGI Primer and CGI Environment Variables Reference. Finally, check out our CGI hosting primer.

Cocoa

Cocoa is an API for Mac OS X, and Cocoa Touch is the same thing for Apple iOS. Closely tied to the Objective-C and Swift programming languages, they are important parts of developing applications for Apple products. Find out more: Cocoa and Cocoa Touch Introduction.

CodeIgniter

CodeIgniter is a lightweight and easy-to-use PHP framework. There is a bit of wrinkle in that version 3 is not compatible with version 2. Get all the details: CodeIgniter Intro, Tutorials, and Resources. We also have a CodeIgniter hosting guide.

Cookies

Cookies are a critical part of web programming. Find out what you need to know here: The Ultimate Guide to Cookies.

CORBA

CORBA is a system for creating distributed applications that are language, OS, and hardware independent. Learn all about it: CORBA Introduction and Resources.

CVS

The Concurrent Version System (CVS) is a version control system. Although not as popular as it once was, it is still widely used. Learn more: CVS Introduction and Resources. And find a host in our CVS introduction.

DOM

The Document Object Model (DOM) is the tree-link structure of web pages. It is critical to understand in creating dynamic web pages. Find out more: DOM Introduction and Resources.

Extreme Programming

Extreme Programming (XP) is an approach to coding that improves productivity at the same time that it creates better code. Learn more here: Extreme Programming Resources.

FFmpeg

FFmpeg is a set of audio and video tools for creating multimedia content. It supports most media formats and codecs. Learn all about it here: FFmpeg Introduction and Resources and FFmpeg hosting guide.

GATE

General Architecture for Text Engineering (GATE) is a suite of tools for the Java programming language that can be used for human language processing, analysis, and information extraction. Learn all about it: GATE Introduction and Resources.

Git

Git is a popular distributed version control system. We’ve put together an introduction for it as well as simple command list. Find out all: Git Primer, Resources, and Cheat Sheet. See also our Git hosting primer.

GNUstep

GNUstep is a free, open-source application platform — very similar to Apple’s Cocoa platform. It allows programmers to develop applications for multiple computing platforms without much extra work. Find out all about it: GNUstep Application Development Platform.

ImageMagick

ImageMagick is a collection of command-line tools for doing graphics manipulation. But more important, it has an API with hooks into various programming languages. This allows languages like C++, Perl, and PHP to use its graphics algorithms in applications written with them. Find out more: ImageMagick Introduction and Resources and ImageMagick hosting guide.

JSON

JSON is short for JavaScript Object Notation, but it is used by most languages to transport data between browser and web server. Find out more: JSON Introduction and Resources.

Laravel

Laravel is one of the most popular PHP frameworks on the internet. It is built with the MVC paradigm, so that not only is application development fast, but maintenance and upgrading are easy. Learn more about it: Laravel Introduction, Tutorials, and Resources. Also, see our Laravel hosting introduction.

Linked Lists

Linked lists are about the most basic form of dynamic data storage. They are really helpful to know in their own right. Additionally, they will make you much better at using pointers in your programs. Find out more: Linked List Basics.

Machine Learning

Machine learning is a field of computer science researching a computer’s ability to learn autonomously. Get started learning about it here: Machine Learning Resources.

MantisBT

Mantis Bug Tracker (MantisBT) is a free, open-source bug tracking system. Being web-based, it is a particularly compelling choice for a distributed group of developers. Learn more: MantisBT Introduction and Resources and MantisBT hosting primer.

MDN

The Mozilla Developer Network (MDN) is a collection of people, tools, and documents that help to maintain and improve the open internet. Find out more: Mozilla Developer Network Introduction and Resources.

Mercurial

Mercurial is a distributed version control system, similar to Git. Find out all about it: Mercurial Introduction and Resources Also, see our Mercurial hosting guide.

MPI

Message Passing Interface is a standard messaging protocol for passing messages between processes or programs. It has been implemented in a number of programming languages, including C, C++, Java, and Python. MPI has helped enable the rise of parallel computing. See our Guide to MPI.

MSXML

MSXML is a set of development tools for the Microsoft development environment for creating XML applications. It is not, however, consistent with the .NET framework and so is used less and less. Find our more: MSXML Introduction and Resources.

Ncurses

Ncurses is a library that allows text-based user-interfaces to be created that will be terminal independent. It’s still useful for lightweight applications and is used in many of the hacker’s favorite applications. Learn more: Ncurses Introduction and Resources.

.NET

The .NET Framework is the base system for created applications for the Windows environment. Learn all about it: .NET Introduction and Resources. And check out our Visual Studio .NET hosting introduction.

Network Programming

Network programming is the process of connecting computers together into networks, and building software systems that run across that network. A socket is a data endpoint for that connection, providing an interface (API) for communicating with the system from outside it. Most network sockets are internet sockets, which means that they use the Internet Protocol for communication. More about network programming and sockets.

NetCDF

Network Common Data Form, NetCDF, is a format for storing scientific data and libraries for manipulating and using it. Although quite old, it has kept pace with the times and is still widely used. Find out all about it: NetCDF Introduction and Resources.

OAuth

You have doubtless used this system many times, but you may not know it. For example, some commenting systems let you log in with your Facebook or Google+ account. This is done with OAuth. More on OAuth.

OpenCL

OpenCL is a C/C++ framework designed for creating applications that will run on various platforms. So the same code can create an application on Windows 10, Android 6, and (potentially) the Apple Watch. Find out more: OpenCL Programming Introduction.

OpenID

OpenID is a free system for letting users and applications authenticate with each other in a secure way. Learn all about it: OpenID Introduction and Resources.

OpenSSL

OpenSSL is a software library for creating secure websites using SSL/TLS. Find out about it and alternatives here: OpenSSL Introduction, Tutorials, and Resources.

OS Development

The Mount Everest of programming challenges is operating system development. If you want to prove to yourself that you can code anything, there is nothing better than writing your own operating system kernel and related tools. We provide you with an introduction and the resources to start you on your way. But beware: this is a journey for only the bravest and truest of programmers! Find out more: Operating System Development Resources.

PHProjekt

Although no longer actively developed, PHProjekt is still widely used to manage projects. In this article, you will learn all about it and find the tools you need to master it. Perhaps even more important, you will learn about alternatives if you would rather go with an actively developed project management system: PHProjekt: Learn the Free Tool That Helps You Manage Complex Projects.

Project Management

Creating software is about a lot more than just programming. This extensive resource will show you all you need to know to get started. Find out here: Project Management Tutorials and Resources.

RegEx

Regular expressions, or regex, is a powerful system for text searching built into many programming languages and text editors. It’s a good system to know: Regular Expressions Primer and Resource.

Robots

If you do website programming, eventually you will find yourself trying to control robots. There are two ways to do this. You can deal with them on a site-wide basis with the robots.txt file. Learn all you need to know: Robots.txt Ultimate Guide. If you want to control how robots interact with your site on a page-by-page basis, you will need to use the robots meta tag. Check out: The Ultimate Guide to the Robots Meta Tag for Developers.

Sorting Algorithms

Sorting is one of the most basic things that computers do. In this resource, we go over five of the most popular sorting algorithms and provide information on learning more. Find out all about it: Sorting Algorithms Introduction and Resources.

SSH

SSH, or Secure Shell, is a protocol that allows users to communicate with remote computers in a secure way. This article discusses the Putty implementation and alternatives to it. Find out more: Secure Shell and SSH hosting guide.

SOAP

SOAP is a messaging protocol that allows computer programs to exchange data with each other. It is language-independent and allows web applications to use and present data to other websites or applications. Get started now: SOAP Introduction and Resources.

Subversion

Subversion is a free and open-source version control system. It is web-based with the repository centrally located so as to keep resource usage on coders’ computers to a minimum. Find out more: Subversion (SVN) Introduction and Resources. And check out our hosting primer for Subversion.

URL

The Uniform Resource Locator (URL) is a critical part of the web and something that coders need to fully understand. Find out all about it: What is a URL?

Vi

Vi is an old text editor that is still very popular among programmers — especially those working with Unix systems. Learn more about it: Learn the Vi Editor.

WCF

Windows Communication Foundation (WCF) is a Microsoft technology for creating service-oriented, connected applications. See: WCF Primer.

WebKit Web Inspector

WebKit Web Inspector allows developers to remotely debug JavaScript on Safari and other WebKit-compliant browsers. It’s a great tool for dealing with tablets and phones. Find out more: WebKit Web Inspector Introduction and Resources.

Web Standards

The web wouldn’t work if we weren’t all speaking the same “language.” Web standards allow the same web page to display properly on a desktop computer, a tablet, a phone, and more. Learn all about it: Introduction to Web Standards.

WSDL

Web Services Description Language (WSDL) is an old XML-based system for describing web services. But it is still very popular and useful. Get started now: Web Services Description Language.

WSGI

The Web Server Gateway Interface (WSGI) is a specification that allows Python frameworks to work correctly with all web servers. It is built into modern frameworks, but critically important for people developing new frameworks. Learn more: Web Server Gateway Interface Primer.

YUI

The Yahoo! User Interface (YUI) library allows JavaScript programmers to more efficiently develop dynamic webpages. But it is no longer being developed. Learn more about it: YUI Introduction, Tutorials, and Resources.

Zikula

Zikula is a PHP framework for creating dynamic and maintainable websites and applications. Find out more: Zikula Introduction and Resources.

List of Programming Environments

A lot of programming is hardware specific. Check out our growing list of in-depth guides to operating systems and other environments.

Chyrp

Chyrp is a micro-blogging platform written in PHP. Although not a development platform, it is an excellent system to code for. Learn more: Chyrp Micro-Blogging and Alternatives.

Drupal Coding Standards

If you want to become part of the Drupal coding team, you need to learn its coding standards. Get started here: Drupal Coding Standards. See also: Drupal hosting primer.

Linux Programming

Linux programming involves everything from shell scripting through applications development all the way to kernel development. You can find out everything we know in our Linux Resource.

Mandriva Linux

Mandriva is a now-defunct Linux distribution. But there are a number of forks of it that live on. Find out more: Mandriva Linux Introduction and Resources.

MS-DOS

MS-DOS was the original Microsoft operating system for the IBM PC. It is no longer supported, but it is still around and used more than you might think. Learn all about it: The History and Impact of MS-DOS.

MS-Windows

MS-Windows is still the most popular operating system in the world. Learn more about it: MS-Windows Introduction and Resources. Also, see our MS-Windows hosting guide.

Raspberry Pi

The Raspberry Pi offers a great environment to get started creating specific hardware applications like MP3 players and drone controllers. Find out more: Raspberry Pi Introduction and Resources.

Ubuntu

Ubuntu is one of the most popular Linux distributions. It is designed to be especially easy to install and use. If you’d like to get started with Linux, Ubuntu is a good choice. Learn more: Ubuntu Primer and Ubuntu hosting introduction.

Umbraco

Umbraco is a .NET-based content management system written in C#. Find out all about using it and developing for it. See: Umbraco Introduction and Resources. Also: our Umbraco hosting guide.

UNIX Programming

The breadth of Unix programming is great. It spans a range from administrative scripting to text-based coding to X Window development. More: UNIX Programming Resources.

Xaraya

Xaraya is a content management system (CMS) and a PHP framework. It is still used but development on it has slowed. Find out more: Xaraya Introduction, Resources, and Alternatives.

Programming History and Timeline

Computer programming is, at heart, mechanical. The great challenge for early computing was figuring out how to mechanize logic and mathematical computation. Technological advancement — inventing new components and miniaturizing them — came much later. The first computer — Charles Babbage’s difference engine — was made out of gears, and powered by a hand crank.
But the problem with the difference engine is that it could only solve one kind of problem. In order to generalize the usefulness of this mechanical calculator, it needed to accept two kinds of input — data and programming. Babbage’s theoretical new machine, the Inference Engine, solved that problem.
Though Babbage’s Inference Engine was never built in his lifetime, the very first computer program was written to be run on it. Ada Lovelace, a Countess and hobbyist mathematician, wrote programs for Babbage’s computation device.

Modern Programming

In the 20th century, programming became a well-developed science — a branch of theoretical mathematics. This led to the development of modern programming languages.
There were several competing ideas about the nature of computer programming and how languages should be structured. The “winner” turned out to be a set of ideas promoted by John von Neumann — ideas which included logical control structures like IF and LOOP.
This so-called “von Neumann architecture” allowed for the advent of programming as we know it today, and the development of high-level computer languages. It has dominated the logic and structure of every major programming language since. Only a handful of non-von-Neumann languages (such Plankalkül) exist, and none of them have gotten any widespread use.

Timeline

1801

Punch cards used by Jacquard loom
Punch cards used by Jacquard loom
The Jacquard loom, which uses punch cards to store weaving designs, is invented. The idea of storing data on punched paper cards would later influence computer design. The first computers were programmed with punch cards, and punch cards continued to be used in some types of computing into the 1980s.

1842

Ada, Countess of Lovelace, develops an algorithm for Charles Babbage’s Analytical Engine. The algorithm computed Bernoulli numbers and made Ada the world’s first computer programmer.

1942

The Atanasoff-Berry Computer (ABC) was first tested. It was conceived in 1937 and then build by Iowa State University professor John Vincent Atanasoff and then graduate student Clifford Berry. It was arguably the first electronic digital computer. As with other early computers, it had many limitations. In particular, it could not be programmed.
The ENIAC computer was developed by the US Government. It could only be programmed by presetting switches and rewiring the system.

1943–1944

Plankalkul, a language designed for engineering a mathematical work, is developed by Konrad Zuse.

1945

John Von Neumann, working at the Institute for Advanced Study, conceived of two ideas which changed the course of computer programming. The first idea was that simple hardware should be controlled by complex instructions — that the “program” should be changeable without changing the hardware. The other idea was that computer programs should be broken down into small bits of conditionally executed code that could be jumped to from anywhere in the program. This allowed IFELSE and LOOP structures to be written into computer programs.
Bernoulli Numbers Program
Bernoulli numbers program

1949

Short Code, the first programming language, was developed, based on Von Neumann’s ideas. Unfortunately, it had to be “hand-compiled” — that is, someone had to translate the program in binary (1s and 0s) by hand.

1951

Grace Hopper, working for Remington Rand, begins development a compiler for Shortcode that automatically translates (“compiles”) code into binary.

1952

AUTOCODE, an early compiler, is developed by Alick E Glennie. He works on it in his spare time while attending the University of Manchester.

1954

The draft specification for FORTRAN, the first programming language to gain widespread use, is completed. The team that developed FORTRAN is headed up by John Backus, who later works on ALGOL and BNF. FORTRAN is still in use today, over six decades later.
People Working With the ENIAC Computer
People Working With the ENIAC Computer

1957

The first FORTRAN compiler is released.
The Short Code compiler developed by Grace Hopper is released by Remington Rand under the name MATH-MAGIC.

1958

Work begins on LISP, a language closely tied with the development of Artificial Intelligence. Versions of LISP are still in widespread use today.
The first specification for ALGOL is released.

1959

The Conference on Data Systems and Languages (CODASYL) creates COBOL.

1960

The first block-structured language, ALGOL 60, is made available.

1962

John von Neumann
John von Neumann
APL, a language with its own unique character set, requiring its own keyboard or input device, is released by Kenneth Iverson.
FORTRAN IV is released.

1964

APL60, a Terminal System for APL, is released.
BASIC, a programming language designed to help people learn how to write computer programs, was invented at Dartmouth University by John Kemeny and Thomas Kurtz.

1965

Fuzzy logic is introduced by Lotfi A Zadeh. This branch of logic and computation would later be used to control high-speed trains in Japan, naval helicopters, and auto-focusing cameras — among many other control systems.

1966

FORTRAN 66 is released.
LISP 2 is released.
Work begins on Logo .

1968

The ALGOL 68 is approved by the specifications committee that oversees the language, despite objections from several committee members. ALGOL 68 is much more complex than ALGOL 60, and turns out to be very difficult to implement.
ALTRAN, a FORTRAN variant, becomes a available.
ANSI, the American National Standards Institute, officially defines COBOL.
Work begins on Pascal.
Simula, the first language using object-oriented concepts, is developed.

Early 1970s

Work begins on a number of new programming languages, including ForthProlog, and Smalltalk. Development of Smalltalk leads to the codification of object-oriented programming concepts.

1972

Konrad Zuse’s manuscript describing Plankalkül is published, thirty years after he developed it.
C, the language that will come to dominate operating system development, is developed by Dennis Ritchie.
Prolog is implemented by Alain Colmerauer and Phillip Roussel.

1974

ANSI releases another COBOL specification.

1975

An implementation of BASIC, called “Tiny BASIC,” is developed which can run on 2 KB of RAM. This leaves 2 KB available for a program to run on a typical 4 KB microcomputer.
Bill Gates and Paul Allen begin selling their version of BASIC to MITS, for use on their Altair microcomputer.
LISP dialect Scheme is developed by GL Steele and GJ Sussman.
The definitive reference manual for Pascal, the Pascal User Manual and Report, is published.

1976

Design System Language is released. This language has a major impact on PostScript.

1977

The first ANSI specification for MUMPS, which would later be renamed M, is released. The language was designed to handle Medical Records data and only recognizes the string data-type.

1978

The text-processing language Awk is released. It is named after its developers: Aho, Weinberger, and Kernighan.
ANSI releases the specification for FORTRAN 77.

1980

Grace Hopper
Grace Hopper
Smalltalk-80, Modula-2, and Franz LISP are released.
The early version of what would become C++, called “C with Classes” is developed by Bjarne Stroustrup.

1981

Work begins on Common LISP and Prolog.

1982

ISO Pascal and PostScript are released.

1983

The DoD begins using Ada for all new “Mission Critical” applications. The language is named after Ada, Countess of Lovelace, the first computer programmer.
The first C compilers for microcomputers are released.
The first implementation of C++ appears.
Turbo Pascal is released.
Objective-C is released.

1984

A reference manual for APL2 is published.

1985

The wreck of the Titanic is found, using a submarine controlled by Forth.
Methods, a version of Smalltalk, is released.

1986

The first version of Smalltalk available for microcomputers, Smalltalk/V, is released.
Object Pascal for the Mac is released by Apple.
Turbo Prolog is released.
Actor and Eiffel, both object-oriented languages, are released.

1987

Perl is invented.

1988

The CLOS Specification (Common LISP Object System) is published.
Niklaus Wirth, who developed Modula-2, completes work on Oberon.

1989

ANSI publishes the C specification.
A draft reference C++ 2.0 is released. This version adds multiple inheritance, along with other features.

1990

The Annotated C++ Reference Manual, which details C++ 2.1, is published.
IBM Card Punch Station 029
IBM Card Punch Station 029
Fortran 90 is released. Besides several new features, this version also changes the spelling away from ALL-CAPS.

1991

Visual Basic is introduced.
HTML is described for the first time, by Tim Berners-Lee.
Work begins on Java.
Python is invented.

1992

Dylan is released by Apple.

1993

ANSI releases a draft-proposal for object-oriented COBOL. The standard was supposed to be released in 1997, but was not finalized until 2002.
The first public specification of HTML is made available.

1994

Microsoft adds Visual Basic into Excel.
Dave Wood and Moti Schneider present a proof-of-concept paper at the IEEE World Congress on Computational Intelligence, using the FEST Fuzzy Expert System Tools shell to model helicopter landing.
PHP is invented.

1995

Ada 95 is released, adding support for OOP and real-time systems.
HTML 2.0 is released.
The first public implementation of Java is released.
JavaScript is invented. It was developed in a period of only 10 days, by Brendan Eich.
Ruby is invented.

1997

HTML 4.0 is released.
PHP 3.0, the first version of the language recognizable to contemporary users, is released.
ECMA released the first JavaScript (ECMAScript) standard.

1998

ISO releases the first C++ standard.
HTML 4.0 is re-released without a version-number increment.

2002

Scratch, a visual programming language designed to teach programming concepts, is released.

2004

PHP 5, which is still in use, is released.
The Bizarre APL Coding Keyboard
The Bizarre APL Coding Keyboard

2007

The SOA Manifesto Working Group publishes the SOA Manifesto, detailing a set of objectives and principles for Service Oriented Architecture.
Clojure, a dialect of Lisp, is released.

2009

Google releases Go.
CoffeeScript, an expansion of JavaScript that adds concepts borrowed from Ruby and Python, is released.

2010

Rust, sponsored by Mozilla, is released.

2013

Google releases Dart.

2014

Apple releases Swift, based on Objective-C.
Facebook releases Hack, based on PHP.

Future of Programming

It’s hard to say just where programming is going. In the short-term, we can probably expect more acceleration of the trends we’re already experiencing:
  • Big data
  • Virtualization
  • “Internet of Things”
But long-term, it is notoriously difficult to make accurate predictions. Quantum computing may lead to a whole new paradigm of computer programming; computers may learn to program themselves, leading to the Singularity and the end of the human era; we may discover how to use programming to mimic biological intelligence, leading to transhumanism. Or we might just figure out how to make our phones smaller.
Whatever the future holds, it is more and more and clear that programming — being able to read and write code in a handful of common languages — is becoming the new business literacy. Familiarity with programming concepts and with the logic of computer systems and architecture is quickly becoming as important as basic business skills like sales, marketing, and design.

Further Reading and Resources

More programming guides, tutorials, and infographics related to coding and developer resources:

What Code Should You Learn?

Confused about what programming language you should learn to code in? Check out our infographic, What Code Should You Learn? It not only discusses different aspects of the languages, it answers important questions such as, 


Summer typically brings lots of vacation time for people. Instead of sitting around and being lazy, why not take the time to learn a new programming language? I am not recommending a specific language over others at this time, but providing a long list of languages based on GitHub and TIOBE. I have not tried to categorize or validate this list of languages in any way, so please do not complain about some ancient or useless technology being listed. If you think there is a language that should be added, please leave it in a comment along with a link with information about the language, preferably on Wikipedia or the actual language site. I give no guarantees that the links for these languages are what was meant by GitHub or TIOBE, but they do not link to an official site for the languages so I did my best in finding something.
  1. 4th Dimension/4D
  2. ABAP
  3. ABC
  4. ActionScript
  5. Ada
  6. Agilent VEE
  7. Algol
  8. Alice
  9. Angelscript
  10. Apex
  11. APL
  12. AppleScript
  13. Arc
  14. Arduino
  15. ASP
  16. AspectJ
  17. Assembly
  18. ATLAS
  19. Augeas
  20. AutoHotkey
  21. AutoIt
  22. AutoLISP
  23. Automator
  24. Avenue
  25. Awk
  26. Bash
  27. (Visual) Basic
  28. bc
  29. BCPL
  30. BETA
  31. BlitzMax
  32. Boo
  33. Bourne Shell
  34. Bro
  35. C
  36. C Shell
  37. C#
  38. C++
  39. C++/CLI
  40. C-Omega
  41. Caml
  42. Ceylon
  43. CFML
  44. cg
  45. Ch
  46. CHILL
  47. CIL
  48. CL (OS/400)
  49. Clarion
  50. Clean
  51. Clipper
  52. Clojure
  53. CLU
  54. COBOL
  55. Cobra
  56. CoffeeScript
  57. ColdFusion
  58. COMAL
  59. Common Lisp
  60. Coq
  61. cT
  62. Curl
  63. D
  64. Dart
  65. DCL
  66. DCPU-16 ASM
  67. Delphi/Object Pascal
  68. DiBOL
  69. Dylan
  70. E
  71. eC
  72. Ecl
  73. ECMAScript
  74. EGL
  75. Eiffel
  76. Elixir
  77. Emacs Lisp
  78. Erlang
  79. Etoys
  80. Euphoria
  81. EXEC
  82. F#
  83. Factor
  84. Falcon
  85. Fancy
  86. Fantom
  87. Felix
  88. Forth
  89. Fortran
  90. Fortress
  91. (Visual) FoxPro
  92. Gambas
  93. GNU Octave
  94. Go
  95. Google AppsScript
  96. Gosu
  97. Groovy
  98. Haskell
  99. haXe
  100. Heron
  101. HPL
  102. HyperTalk
  103. Icon
  104. IDL
  105. Inform
  106. Informix-4GL
  107. INTERCAL
  108. Io
  109. Ioke
  110. J
  111. J#
  112. JADE
  113. Java
  114. Java FX Script
  115. JavaScript
  116. JScript
  117. JScript.NET
  118. Julia
  119. Korn Shell
  120. Kotlin
  121. LabVIEW
  122. Ladder Logic
  123. Lasso
  124. Limbo
  125. Lingo
  126. Lisp
  127. Logo
  128. Logtalk
  129. LotusScript
  130. LPC
  131. Lua
  132. Lustre
  133. M4
  134. MAD
  135. Magic
  136. Magik
  137. Malbolge
  138. MANTIS
  139. Maple
  140. Mathematica
  141. MATLAB
  142. Max/MSP
  143. MAXScript
  144. MEL
  145. Mercury
  146. Mirah
  147. Miva
  148. ML
  149. Monkey
  150. Modula-2
  151. Modula-3
  152. MOO
  153. Moto
  154. MS-DOS Batch
  155. MUMPS
  156. NATURAL
  157. Nemerle
  158. Nimrod
  159. NQC
  160. NSIS
  161. Nu
  162. NXT-G
  163. Oberon
  164. Object Rexx
  165. Objective-C
  166. Objective-J
  167. OCaml
  168. Occam
  169. ooc
  170. Opa
  171. OpenCL
  172. OpenEdge ABL
  173. OPL
  174. Oz
  175. Paradox
  176. Parrot
  177. Pascal
  178. Perl
  179. PHP
  180. Pike
  181. PILOT
  182. PL/I
  183. PL/SQL
  184. Pliant
  185. PostScript
  186. POV-Ray
  187. PowerBasic
  188. PowerScript
  189. PowerShell
  190. Processing
  191. Prolog
  192. Puppet
  193. Pure Data
  194. Python
  195. Q
  196. R
  197. Racket
  198. REALBasic
  199. REBOL
  200. Revolution
  201. REXX
  202. RPG (OS/400)
  203. Ruby
  204. Rust
  205. S
  206. S-PLUS
  207. SAS
  208. Sather
  209. Scala
  210. Scheme
  211. Scilab
  212. Scratch
  213. sed
  214. Seed7
  215. Self
  216. Shell
  217. SIGNAL
  218. Simula
  219. Simulink
  220. Slate
  221. Smalltalk
  222. Smarty
  223. SPARK
  224. SPSS
  225. SQR
  226. Squeak
  227. Squirrel
  228. Standard ML
  229. Suneido
  230. SuperCollider
  231. TACL
  232. Tcl
  233. Tex
  234. thinBasic
  235. TOM
  236. Transact-SQL
  237. Turing
  238. TypeScript
  239. Vala/Genie
  240. VBScript
  241. Verilog
  242. VHDL
  243. VimL
  244. Visual Basic .NET
  245. WebDNA
  246. Whitespace
  247. X10
  248. xBase
  249. XBase++
  250. Xen
  251. XPL
  252. XSLT
  253. XQuery
  254. yacc
  255. Yorick
  256. Z shell
So, did you find one that you liked? Or did this stir up memories from long ago with languages you thought were dead and buried? Again, if there is a language you believe belongs in this list, please leave a comment and a wikipedia or official site link for the language.