All popular programming languages, for each one the description and why to choose it, a link to a detailed card and another to a sample of code calculating the Fibonacci series. It will help you choose the language best suited to a project.
Complete list | Description | Why use it? |
---|---|---|
BASIC | This very old language (1964) was improved
by Microsoft, with a complete programming environment. Other portages
exist. More - Code |
Scripting Microsoft's software (Word etc...), dynamic web pages (ASP) on Windows servers, or apps with Visual Basic. |
C | C offers great freedom, and lot of debugging
challenge thanks to pointers and memory management. More - Code |
Suffering slow programming to make fast programs. For system programming. |
C++ | C++ is C plus objects, an extended library,
templates. More - Code |
System programming as C but allow larger project, or applications and games. |
C# | Concurrent to java, C Sharp runs on .NET or Portable NET, Mono. More - Code |
More modern than Java for desktop or web apps. May share resources with other languages under a common runtime. |
Eiffel, Sather | Object-oriented, with "programming per
contract" and other secure features. Sather is an open source implementation. More - Code |
Programming secured applications. Used by hospitals. |
Go | System language designed to be compiled quickly. It replaces C++ and Python thanks to its integrated garbage collector. More - Code |
Language deliberately simplified to make scripts and concurrent Web services, easy to maintain, quickly compiled, which scales. For servers mainly. |
Java | Was designed to be portable and to replace
C++. More - Code |
For cross-platform applications, web services and mobile phone apps under Android. |
JavaScript, ECMAScript |
JavaScript has been invented to build dynamic
client-side html pages, ECMAScript is the standardized version. More - Code |
For interactivity in web pages and applications, interfaces. Used with HTML 5 for immersive apps. Building an app server side with Node.js or local with Electron. |
Julia | Multi-purpose language with scientific capacities, a clear syntax, compatible with LLVM. More - Code |
Suitable for scientific calculations and cloud computing. |
Pascal | Old language (1970), improved with objects,
imposes a strictly structured programming. More - Code |
Teaching, or client/server apps with Delphi. |
PHP | Designed to be embedded inside HTML to build
dynamic Web pages or update them from databases. More - Code |
Server-side scripting, producing HTML pages from data. The version 5 targets Web services. |
Kotlin | Alternative to Java with less verbose syntax Kotlin |
Android mobile programming |
Python | A modern interpreted language with powerful
built-in features and a unique indentation feature to shorten coding. The Jython version compiles in Java bytecode. More - Code |
Easy to learn, to programm quickly. Powerful and easy
to learn. Making scripts of small web services, or scientific apps. Java scripting with Jython. |
Scala | Procedural, functional and object-oriented
programming language. More - Code |
Offers a more compact syntax than Java on the virtual machine, improves productivity. |
Swift | Inspired by simplified syntax of scripting languages, it replaces Objective C. More - Code |
Mobile applications for iPhone, Local and server on MacOS. |
TypeScript | Modernized version of JavaScript with classes, interfaces, modules. More - Code |
To make large JavaScript applications, and facilitate reusability of code for web applications. |
Ruby | Designed with simplicity in mind. It is interpreted,
and has a proprietary but extensible library. More - Code |
Writing scripts more easily. Using Ruby on Rails for Web applications. |
Rust | Created to overcome the disadvantages of C ++, mainly its insecurity. Obscure syntax. Uses LLVM. More - Code |
System programming with secure memory management, or production of WebAssembly code. |
Tcl | A scripting language, easy to learn and available
on any platform. More - Code |
Scripting of portable programs with GUI, and web programming by CGI. |
Dart | Language interpreted JIT running server side or converted to JavaScript. More - Code |
Building iOS and Android apps with the same language and framework. |
Objective C | Alternative to C++ on Apple computers mainly. Code |
Native applications on iPhone and iPad. |
Perl | A scripting interpreted language. Readabillity
and ease of use are not the goal. Perl - Code |
Mainly used by networks administrators and for small CGI scripts. |
ASP | Scripting language, server-side, for dynamic
web pages by Microsoft, same syntax as Basic. ASP - Code |
Producing HTML pages from data, but under Windows servers only. |
Erlang | Functional and concurrent language where the work is divided in processes. Erlang - Code |
Server-side processing for a site in expansion with massive requests. Whatsapp is made entirely with Erlang. |
Elixir | Erlang features with a syntax close to Ruby, it offers an alternative to the first. Elixir |
Replaces Erlang with a more readable syntax. |
Assembler | This is near the machine language and the fastest. You should never use it, as older programmers did. | Making graphic subroutines, drivers or industrial processing. |
Lua | Add-on or standalone language with extensible
semantic. Lua - Code |
Game programming, embedded scripting. |
Cobol | Business language still used on big computers. Code |
Maintaining old programs on mainframes. |
Fortran | One of the first languages, always used for
mathematical tasks. Fortran - Code |
Has huge library for scientific calculations. |
Lisp / Scheme / | Lisp is a very old language designed for artificial
intelligence, processes lists only.
Scheme is a modernized version of Lisp. Scheme - Code |
Artificial intelligence and scripting. |
Prolog | For logic programming, based on Horn's clauses. More - Code |
Artificial intelligence and problem solving. |
Haskell | Functional programming. Slow and memory consuming. Haskell - Code |
To try programming in a more mathematical way. |
Caml, Ocalm | Functional languages, Ocalm is object-oriented. Caml - Code |
Used by universities. Can help to build a compiler. |
CoffeeScript | Frontend to JavaScript. CoffeeScript - Code |
Applications on Node.js or web apps. Tends to be overshadowed by TypeScript. |
D | C modernized with objects and memory handling. D |
System programming. |
R | For statistics and analytical data processing. R |
Design of statistical software. A more general language like Julia may also be suitable. |
SQL | Language of data processing. MySQL |
For databases queries. |
WebAssembly | Intermediate language designed as a bytecode for web pages. More - Code |
To accelerate JavaScript or replace it with other languages, on the Web or locally. |
Languages implemented on the Java Virtual Machine (JVM):
- Python, Ruby, Scala, NetRexx, Groovy, JavaScript (Rhino and Nashorn), Prolog, Clojure.
Designed specifically to run on LLVM:
-
Julia, Rust, Swift.
These programming languages have a .NET implementation:
- Basic, C#, C++, Cobol, Pascal, Perl, Python (IronPython), Scala, Lisp (Clojure), Java and lot or others.
May be compiled to JavaScript:
- TypeScript, Dart, CoffeeScript, C# (DuoCode), Clojure, OCaml, F#, Lisp (Clojure), Java (GWT), Scala and Scriptol.
May be compiled to WebAssembly:
-
Asm.js, C, C++, Rust, Go, C#, Swift, Scala, TypeScript.
See also:
- Complete list in alphabetical order
- Hello world program for each language.
- Popularity on GitHub. You may compare the evolution by clicking on the angle brackets. This is specific to open source project and they are also other repositories like codeplex with different rankings.
List of evolutions:
January 9, 2013: Removed Boo, added Go.
May 14, 2013: Removed Modula, Oberon, Netrexx and added CoffeeScript, Dart.
February 13, 2014: Added Julia.
February 27, 2014: Removed Forth, a dded Erlang.
April 4, 2014. Added TypeScript.
February 5, 2014. Added Scala.js among languages compiled to JS.
January 22, 2020. Removed Rebol, Smalltalk and Clojure. Added Rust, Swift, WebAssembly, Kotlin, R and Elixir.