What are the best programming languages to learn first?

[edit][3comments]

Why did you vote for 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...

Language fragmentation

[edit][comments]
A large subset of the Python community still uses / relies upon Python 2, which is considered a legacy implementation by the Python authors. Some li...

[edit][6comments]

Why did you vote for JavaScript?

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

Required for web development

[edit][1comments]
If you are looking to create web projects you will have to learn Javascript in order to develop the client side code. If you learn the foundations of...

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][4comments]

Why did you vote for C?

C is a general-purpose programming language.

Industry standard

[edit][comments]
C is the industry standard programming language, moreover, it is the most popular programming language to use. C is the language used for most Window...

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 did you vote for 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...

No cons added yet

[edit][comments]

Why did you vote for 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 did you vote for 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][comments]
.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 did you vote for 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 did you vote for Scala?

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

Type inference

[edit][comments]
Scala offers type inference, which, while giving the same safety as Java's type system, allows programmers to focus on the code itself, rather th...

No cons added yet

[edit][2comments]

Why did you vote for 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 did you vote for 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...

No cons added yet

[edit][comments]

Why did you vote for 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 did you vote for LiveCode?

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

Cross-platform

[edit][comments]
Inside LiveCode's IDE you can build for OSX, Linux and Windows, and (making use of Xcode and the Android SDK) for iOS and Android too

Not a mainstream language

[edit][comments]

[edit][comments]

Why did you vote for 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 did you vote for 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 did you vote for scratch?

Scratch from MIT, is a free programming language and online community where you can create your own interactive stories, games, and animations.

You can create game using it

[edit][comments]
Easy to create game as a beginner

Won't get you a job

[edit][comments]

[edit][comments]

Why did you vote for 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 no more in real life

[edit][comments]

Are we missing something?

Help make this question more complete.