What programming language should I use


FWIW, If you just want to learn 'coding' and don't care about the intricacies of compiling, linking, and explicit variable scope, you could do a lot worse than learning Python. Algorithms and objects are still the same, so you can learn those and transport them to anything that's imperative like BCPL/B/C/C++/D/Perl/Java down the line as and when you need to.
 
c is an excellent choice if your objective is to learn about computers at a low level.
Mostly this, but I thought we were talking about what is best to start programming with on the Pyra (which I now see you mentioned a few posts later, so I will take it that c is ok for me in your opinion). I don't actually expect to make anything anyone else will care about (well, maybe, I have a couple game ideas and some other things I throw together for myself might accidentally get used by others).

Oh, and based on many suggestions from all sorts of people, and my own research, python will be my second choice if my plans change it I find C too much for me.
 
@rygD if I wanted to start coding simply for the sake of learning programming, I would start with python: People say it's easy to learn, there is a big community, (so getting help should be easy), and there are many libraries out there. I think t's a good programming language where you gain quick success in solving problems (here I mean solving not just academical, but also practical problems - like batch editing of pictures, transforming music, file transformation etc.).
If I wanted to learn more about low-level computer stuff I would start to learn C (as somebody mentioned before). This language teaches you a lot about the architecture of computers and memory usage (Getting the idea of pointers is paramount in my opinion).

As a disclaimer I should mention, that I haven't written any python programs yet, but this is only because I'm to lazy to learn the language. Everything I need to code quickly I program in Java. Not because it's easier in Java, it's because I speak Java fluently. I also want to mention here, that I really like to work with Java: Tooling is great and written code is easy to read. In my opinion it's a great language to develop medium- to large-scaled business applications (50.000 lines of code++).
 
FWIW re the Python community, I've never needed to do anything more than google for help. The number of python answers, on stackoverflow especially means anything I want to ask has thus far already been asked and answered by other people.
 
@levi This post seems to prove your claim about the Python community :)

growth_major_languages-1-1024x878.png
 
Interesting graph @tarator.

Does it suggest that real programmers read the manual and don't frequent fashionable sites where the signal-to-noise ratio can be so poor? :p The flat C++ curve possibly suggests that.

And look at that periodicity! Especially with Java. Does this suggest that the people using these "languages" are mostly students forced to use them for their coursework? :p

[To be fair, for languages that I do not use, and for other software that I use rarely, I have found good quick answers at Stack Overflow from time to time. But for anything I use as an everyday tool, if I don't know something I'll spend the time to find a definitive answer rather than take someone else's opinion on it, and request (or submit) a doc fix if needed.]
 
Interesting graph @tarator.

Does it suggest that real programmers read the manual and don't frequent fashionable sites where the signal-to-noise ratio can be so poor? :p The flat C++ curve possibly suggests that.

And look at that periodicity! Especially with Java. Does this suggest that the people using these "languages" are mostly students forced to use them for their coursework? :p

[To be fair, for languages that I do not use, and for other software that I use rarely, I have found good quick answers at Stack Overflow from time to time. But for anything I use as an everyday tool, if I don't know something I'll spend the time to find a definitive answer rather than take someone else's opinion on it, and request (or submit) a doc fix if needed.]
Yeah, and c++ also has a similar periodicity, as java, and probably also caused by student.
What is fun, is that there is an inverse periodicty on JavaScript, where students are probably building their personal website during time off :)
 
Does it suggest that real programmers read the manual and don't frequent fashionable sites where the signal-to-noise ratio can be so poor?
I was also thinking something like that, and also why a language that I figured was popular/widely used isn't on there. (Honestly, though, I don't know what is really used outside of what I am familiar with...and most of the people doing those things probably either don't/can't turn to SO, and probably have other people they know that they can get help from if their knowledge, experience and resources fail them. Edit: But you already said that right there in the quote...)
 
The periodicity is really clear. And it looks like people are introduced to python at the same time as java and c++ but they don't abandon python.

Personally I'm coding in D.
 
I feel the need for a small word of caution on this one. Whilst I like Python and it's fast becoming the language of choice in many areas (data processing and machine learning being two of the big ones) I wouldn't necessarily recommend it to anyone as a first language. It's just a bit too loose in what it asks the programmer to do (non-static typing etc) that the step up to a language after Python seems tricky. Certainly I'd recommended it as a second language to anyone, if you are learning for the first time I'd personally recommend either C for procedural (C++ is just too big to start with) or Java for Object Oriented (or C# if you aren't Microsoft opposed but I don't think this board is the place for that sort of recommendation ;) ), can't recommend a functional language yet as I'm still trying to force Scala into my brain. There is a reason those are still the languages of choice for teaching in HE.

Disclaimer : I earn my living teaching Engineers (of the Electronic and Robotic variety) how to code (after many years of teaching CS grads to code).

Alternative viewpoint : Bah! all you kids should learn to code properly like I did with Pascal and Prolog (and a bit of COBOL if you didn't behave).
 
If you want to just play around with code, then I would also recommend you to start with an interpreted language.
Lua for example is a really small language that doesn't limit you much (apart from a few small issues, like indexes starting at 1, but if you try it for a bit then it won't bother you as much).

And if you want to make a 2D game that runs well on even android devices, then Love2D (which also uses Lua) is a really nice engine. It uses a weird JustInTime compiled version of lua, which makes it run comparable to C++ with minimal compile times and binary sizes.

I had Java as my first language, but I just can't see myself using it for games and a fellow computer science student introduced me to Lua.
 
Back
Top