C# is nice and straightforward, though it's not necessarily the best in every case. The first language I learned was C# (well, I first learned NXT-G and then NXC, look them up if you're curious, but the first actual, real language I used was C#). As far as I'm aware it has significantly less gotchas than other similar languages.
I know a lot of people will sing hymns till sundown praising Python, but it has a few things I personally really hate - most notably significant whitespace (i.e. how your program is indented affects how it behaves). I guess it's supposed to be good for people learning to program, but... eh.
I have never used Java so cannot properly comment on it. My personal opinion, which is in no way fact and might be quite wrong, is that it's very comparable to C#; the differences are that Java is more portable, and more popular, but it also has some weird quirks which might be considered illogical. In this sense I would recommend C# more, you can always learn Java later if you want employability.
JavaScript... I am currently doing an internship as a JavaScript developer. Our product has some 180,000 lines of code. It's not a bad language, per se, but it was never designed to be used at such a scale. For instance, ES6 is the first version to add proper class and inheritance support; previously, you had to mess around with prototypes and use weird design patterns to be able to have an actual OO structure. As far as I know, there's still no way to properly declare private or protected members - you have to work around that manually, too.
C++ is perhaps one of the easiest mainstream languages to shoot yourself in the foot with. I know people who are in love with it and people who hate it. Like C, it is pretty low-level, and while I wouldn't say it's a bad language I don't think I would recommend it as a starting language.
C is like C++ but simpler. This means there's less stuff to shoot yourself in the foot with (though that doesn't mean that it's actually harder to do it - you just get less variety), but also less stuff to help you. The main difference is perhaps the fact that C is primarily procedural whereas C++ is primarily OO.
Visual Basic is kinda outdated in my opinion. It's not too bad, but there's better stuff out there and it's not popular enough to warrant learning nowadays, again in my opinion.
PHP is a plague that is spreading. I cannot wait until, after 75% of the population is infected, it finally stops spreading and then dies out.
I'm not going to mention niche or non-mainstream languages like Go, Typescript, etc. With one exception: Lisp is often considered one of the best languages, although nobody can be bothered to actually make anything with it. It's often used for educational purposes; to quote (and horribly butcher) somebody whose name I don't remember, "learning Lisp will make you a better programmer, even if you never write Lisp again". If you're interested in theoretical knowledge that can only be indirectly applied, it might be a great choice. If you want to code for fun, it's not a bad choice. If you want to get hired as a developer, learning it is a good idea but by itself it's not going to get you a job, and I'd recommend starting with something else.
TL;DR: C# or Python are my recommendations for starting languages (but Python is shit so don't learn it
). The best language depends on what, exactly, you're trying to do (I wrote a shell script for zsh the other day, and using zsh's native scripting was the best choice, because anything else would have been overkill and I would have wasted much more time doing it than I would have saved when writing the code itself). It also depends on your metric for "best", as well as on personal opinion: I know someone who actually likes PHP (quite sincerely too!).
I know a lot of people will sing hymns till sundown praising Python, but it has a few things I personally really hate - most notably significant whitespace (i.e. how your program is indented affects how it behaves). I guess it's supposed to be good for people learning to program, but... eh.
I have never used Java so cannot properly comment on it. My personal opinion, which is in no way fact and might be quite wrong, is that it's very comparable to C#; the differences are that Java is more portable, and more popular, but it also has some weird quirks which might be considered illogical. In this sense I would recommend C# more, you can always learn Java later if you want employability.
JavaScript... I am currently doing an internship as a JavaScript developer. Our product has some 180,000 lines of code. It's not a bad language, per se, but it was never designed to be used at such a scale. For instance, ES6 is the first version to add proper class and inheritance support; previously, you had to mess around with prototypes and use weird design patterns to be able to have an actual OO structure. As far as I know, there's still no way to properly declare private or protected members - you have to work around that manually, too.
C++ is perhaps one of the easiest mainstream languages to shoot yourself in the foot with. I know people who are in love with it and people who hate it. Like C, it is pretty low-level, and while I wouldn't say it's a bad language I don't think I would recommend it as a starting language.
C is like C++ but simpler. This means there's less stuff to shoot yourself in the foot with (though that doesn't mean that it's actually harder to do it - you just get less variety), but also less stuff to help you. The main difference is perhaps the fact that C is primarily procedural whereas C++ is primarily OO.
Visual Basic is kinda outdated in my opinion. It's not too bad, but there's better stuff out there and it's not popular enough to warrant learning nowadays, again in my opinion.
PHP is a plague that is spreading. I cannot wait until, after 75% of the population is infected, it finally stops spreading and then dies out.
I'm not going to mention niche or non-mainstream languages like Go, Typescript, etc. With one exception: Lisp is often considered one of the best languages, although nobody can be bothered to actually make anything with it. It's often used for educational purposes; to quote (and horribly butcher) somebody whose name I don't remember, "learning Lisp will make you a better programmer, even if you never write Lisp again". If you're interested in theoretical knowledge that can only be indirectly applied, it might be a great choice. If you want to code for fun, it's not a bad choice. If you want to get hired as a developer, learning it is a good idea but by itself it's not going to get you a job, and I'd recommend starting with something else.
TL;DR: C# or Python are my recommendations for starting languages (but Python is shit so don't learn it
). The best language depends on what, exactly, you're trying to do (I wrote a shell script for zsh the other day, and using zsh's native scripting was the best choice, because anything else would have been overkill and I would have wasted much more time doing it than I would have saved when writing the code itself). It also depends on your metric for "best", as well as on personal opinion: I know someone who actually likes PHP (quite sincerely too!).
>mfw I have no face
