Which programming language is best for beginners in 2016?

I don't think any language with type inference is that great for teaching, as it allows people to short circuit the degree to which they have to understand concepts.

This is part of the issue with Visual Basic, especially in default configuration. Option Explicit is Off and Option Infer is On. Option Strict is Off.

So the language is set up, by default to allow you to use a variable before it's declared. The Variable type is inferred by the compiler, and all sorts of type conversions the person learning to program goes on behind the scenes that they aren't aware of.

For example, you can pass a string "12" to a function that has an Int argument and the compiler will convert the string to an Integer. That's very convenient, and it's very good from an EASE OF USE standpoint, but the point of learning how to program shouldn't always be about ease of use.

A stricter, more structured language is superior from that respect.

Pascal will make sure your code is structured well. It will make sure your variables are declared, and it won't do any of this compiler magic that people are raving about these days.

While that's nice to people who just want to play around with programming as a soft hobby, and it's great for professionals who understand all of this stuff and can actually safely develop software in these languages that are extremely non-strict; it's very bad for someone learning to program because they do not learn to think about these things properly and they can later run across issues that pop up that will confuse them - issues that would have been completely avoided since day one with a language like Pascal because the compiler would have never allowed them to ever compile code like that, to begin with.

Lisp would completely throw off most beginners. Scheme as well.

C is a smaller language, but Pascal's syntax is more digestible to beginners, and a lot more self documenting.

It's very helpful to use a language that is type safe, relatively strict, nicely structured, and with a more verbose syntax with learning to develop. It means that people can learn proper programming and also read other code in that language decently well, accelerating the rate at which they can explore and learn the concepts.

/r/cpp Thread Parent Link - goo.gl