What are the best programming languages to learn first?

[edit][3comments]

Why do you recommend Python?

Why do you not recommend Python?

Python is a widely used general-purpose, high-level programming language.

Easy to get started

[edit][comments]
On top of the wealth of tutorials and documentation, and the fact that it ships with a sizeable standard library, Python also ships with both an IDE...

Assignment

[edit][comments]
Heavily relies on assignment, with no distinction between defining the variable and assigning the value. This makes it necessary to introduce rather...

[edit][6comments]

Why do you recommend JavaScript?

Why do you not recommend JavaScript?

JavaScript (JS) is a dynamic computer programming language. It is most commonly used as part of web browsers, whose implementations allow client-side...

No installation required

[edit][1comments]
If you run a web browser you already have JavaScript installed and can get started right away. Modern browsers such as chrome also have very powerful...

Many errors pass silently

[edit][comments]
JavaScript looks for every possible way to treat the code you write as runnable and is very reluctant to point out likely errors. For example, you h...

[edit][comments]

Why do you recommend Ruby?

Why do you not recommend Ruby?

Ruby is a dynamic, open source programming language with a focus on simplicity and productivity.

Elegant syntax

[edit][comments]
Ruby has a very clean syntax that makes code easier to both read and write than more traditional Object Oriented languages, such as Java. For beginni...

Its ecosystem is limited outside of web development

[edit][comments]
If you're looking to host, generate, manipulate or secure a website, Ruby is your language. There's also some great support here for infrast...

[edit][4comments]

Why do you recommend C?

Why do you not recommend C?

C is a general-purpose programming language.

Understanding of computers

[edit][1comments]
Learning C forces you to grapple with the low-level workings of your computer (memory management, pointers, etc.) in ways that the other languages ab...

Steep learning curve

[edit][comments]
While the language compliments knowledge of computer components very well, and gives a deeper understanding, it is also quite difficult to learn, and...

[edit][comments]

Why do you recommend Scheme?

Why do you not recommend Scheme?

Scheme is a functional programming language and one of the two main dialects of the programming language Lisp.

No Magic - it's clear how everything works

[edit][comments]
Scheme has far less built into the language itself, helping students see that things like OOP are not magical: they are just patterns for organizing...

No cons added yet

[edit][1comments]

Why do you recommend C#?

Why do you not recommend C#?

C# is a managed language developed by Microsoft as a Java alternative, containing more syntactic sugar for features such as properties, events, async...

Great introduction to object-oriented programming

[edit][comments]
Object-oriented programming is the most widely-used paradigm. C# offers support for common OOP features such as classes, methods and fields, plus so...

Limited support on non-Windows platforms

[edit][1comments]
.NET has been ported to Linux and OS X thanks to a project named Mono. Most libraries are supported by Mono, but some aren't and will never be.Cr...

[edit][comments]

Why do you recommend Java?

Why do you not recommend Java?

Java is a computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dep...

Most commonly used language in industry

[edit][comments]
Java is the second most popular language in industry, resulting a lot of support for tools and plenty of computer science books, example projects and...

Some confusing elements for beginners

[edit][comments]
Some features in Java can be quite confusing for beginners. Java is an oriented-object language, but encapsulation is made more difficult because the...

[edit][comments]

Why do you recommend Scala?

Why do you not recommend Scala?

Scala is an object-functional programming and scripting language for general software applications, statically typed, designed to concisely express...

Multiparadigm

[edit][comments]
Scala supports both Functional and Object Oriented styles of programming. Beginners can learn both paradigms without having to learn a new language,...

No cons added yet

[edit][2comments]

Why do you recommend D?

Why do you not recommend D?

D provides a low overhead language to begin the learning process. The selection of features allow for an assortment of teaching styles and subjects....

Static with type inference

[edit][comments]
For a new user adding types can feel tedious, and takes focus off the meaning of the code, but they are also important for checking logic. D provides...

No cons added yet

[edit][comments]

Why do you recommend Assembly?

Why do you not recommend Assembly?

Assembly is a low-level programming language for a computer, or other programmable device, in which there is a very strong (generally one-to-one) cor...

Low Level - it's how the computer works

[edit][comments]
One of the best ways to learn how a computer actually works is to work your way up from lower level abstractions. Assembly, being only a level above...

Steep Learning Curve

[edit][comments]
Starting off as a beginner with assembly language could prove very daunting. I suggest learning a high level language first (e.g. C) to get a good gr...

[edit][comments]

Why do you recommend Smalltalk?

Why do you not recommend Smalltalk?

Smalltalk is an object-oriented, dynamically typed, reflective programming language. It was designed and created in part for educational use.

Easy to learn and experiment

[edit][comments]

No cons added yet

[edit][comments]

Why do you recommend scratch?

Why do you not recommend scratch?

Easy to learn

[edit][comments]
Even children can learn from it.

Won't get you a job

[edit][comments]

[edit][comments]

Why do you recommend LiveCode?

Why do you not recommend LiveCode?

LiveCode is both an open-source and proprietary cross-platform rapid application development language.

Fast to get results

[edit][comments]

Not a mainstream language

[edit][comments]

[edit][comments]

Why do you recommend PHP?

Why do you not recommend PHP?

Lots of tutorials online

[edit][comments]

No cons added yet

[edit][comments]

Why do you recommend Lua?

Why do you not recommend Lua?

A powerful, fast, lightweight, embeddable scripting language.

Straightforward and simple

[edit][comments]
Lua's syntax is considered to be one of the closest syntax to plain English. Lua's syntax is also very simple and straightforward. Because of...

No cons added yet

[edit][comments]

Why do you recommend APL?

Why do you not recommend APL?

Array-focused programming language

High-level

[edit][comments]
No complicated loop processing to apply a function to a array of arrays. Functions are defined in a way that they will typically operate the same way...

No cons added yet

[edit][comments]

Why do you recommend Erlang?

Why do you not recommend Erlang?

Used in high profile distributed systems

[edit][comments]
Erlang is a very popular choice in industry for distributed systems projects in particular, due to its emphasis on asynchronous message passing.Erla...

No cons added yet

[edit][comments]

Why do you recommend C++?

Why do you not recommend C++?

General Purpose Language with Object-Oriented Programming, and Powerful Data Structure and Algorithms

Teaches problem solving

[edit][1comments]
The great STL is the most powerful Data Structure and Algorithms Library. It would benefit you very much in problem solving, your main main way to l...

No Two Programmers Can Agree On Which 10% Subset of C++ to Implement

[edit][comments]

[edit][comments]

Why do you recommend Golang?

Why do you not recommend Golang?

Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.

Simplified C-like syntax that is as easy to read and write as Python, but is as fast as compiled languages like C.

[edit][comments]
The language is designed in a manner that seems logical. Syntax is simplified to reduce burden on the programmer and compiler developers.

No cons added yet

[edit][comments]

Why do you recommend Pascal?

Why do you not recommend Pascal?

Pascal is an influential imperative and procedural programming language, designed in 1968–1969 and published in 1970 by Niklaus Wirth as a small and...

Clear syntax

[edit][comments]

Not usable anymore in real life

[edit][1comments]

Are we missing something?

Help make this question more complete.