What would be a good first programming language to learn?

All the infocom text adventures were don in lisp!
 
I think it depends largely on what your expectations are going in. Most of the people I know that had trouble learning C++ tended to be hoping for something that would let them jump in and quickly do fairly complex things (at least in terms of GUIs and so on), rather than taking the time to learn the "boring" details of a complex language like C++.
The problem with learning C++ is nothing to do with GUIs. When it comes to object oriented programming, there's an awful lot of gotchas in C++, and an awful lot of different ways of doing things, which give different results (e.g., virtual vs. non-virtual).

I found Java a much easier language for learning OO - in fact, learning that meant that I then picked up C++ much quicker.

I use C++ now, but I would never recommend it as a beginner language.

And if people are worried about marketable skills, then you should also value how long it takes to learn these skills. After learning C, I struggled with C++. But then I picked up Java in a few weeks (well, days really), then finally realised what OO was all about, and got the hang of C++. End result is that I had marketable skills in C++ - but I did it by learning Java first.
 
The problem with learning C++ is nothing to do with GUIs. When it comes to object oriented programming, there's an awful lot of gotchas in C++, and an awful lot of different ways of doing things, which give different results (e.g., virtual vs. non-virtual).

I found Java a much easier language for learning OO - in fact, learning that meant that I then picked up C++ much quicker.

I use C++ now, but I would never recommend it as a beginner language.

And if people are worried about marketable skills, then you should also value how long it takes to learn these skills. After learning C, I struggled with C++. But then I picked up Java in a few weeks (well, days really), then finally realised what OO was all about, and got the hang of C++. End result is that I had marketable skills in C++ - but I did it by learning Java first.

The guy that coined the term object oriented(Alan Kay) has said

Actually I made up the term "object-oriented", and I can tell you I did not have C++ in mind.

I think java is a much better object oriented language than c++ especially for new programmers.

Though I think python probably has the easiest syntax I've ever seen. However I find that it seems to be much easier to write poorly designed code as well.
 
The problem with learning C++ is nothing to do with GUIs. When it comes to object oriented programming, there's an awful lot of gotchas in C++, and an awful lot of different ways of doing things, which give different results (e.g., virtual vs. non-virtual).

I found Java a much easier language for learning OO - in fact, learning that meant that I then picked up C++ much quicker.

I use C++ now, but I would never recommend it as a beginner language.

And if people are worried about marketable skills, then you should also value how long it takes to learn these skills. After learning C, I struggled with C++. But then I picked up Java in a few weeks (well, days really), then finally realised what OO was all about, and got the hang of C++. End result is that I had marketable skills in C++ - but I did it by learning Java first.

That's an interesting way to view it. Java has it's own set of gotchas. but it is slightly more forgiving. It's incredibly difficult to crash a system with Java, usually you just crash the VM instead.

All programmers have to begin somewhere and as you advance you learn to deal with complexity. Learning object-oriented design is a good way to start.
 
That's an interesting way to view it. Java has it's own set of gotchas. but it is slightly more forgiving. It's incredibly difficult to crash a system with Java, usually you just crash the VM instead.

All programmers have to begin somewhere and as you advance you learn to deal with complexity. Learning object-oriented design is a good way to start.


Eheh, guess I did the very difficult then :mischief:

I don't remember what I did exactly, although I think it had more to do with the IDE I was using rather than Java per se. I think I did something like an infinite loop with an increasingly complex calculation upon each iteration of the loop. First it just made the computer run slow, then it forced a cold reboot to get it to respond at all.
 
Eheh, guess I did the very difficult then :mischief:

I don't remember what I did exactly, although I think it had more to do with the IDE I was using rather than Java per se. I think I did something like an infinite loop with an increasingly complex calculation upon each iteration of the loop. First it just made the computer run slow, then it forced a cold reboot to get it to respond at all.

It's possible to max out memory and processor usage with java. Usually, the VM crashes before that point is reached unless you're doing something strange.
 
Eheh, guess I did the very difficult then :mischief:

I don't remember what I did exactly, although I think it had more to do with the IDE I was using rather than Java per se. I think I did something like an infinite loop with an increasingly complex calculation upon each iteration of the loop. First it just made the computer run slow, then it forced a cold reboot to get it to respond at all.

typically the vm will crash and give an outOfMemory error, unless of course you didn't consume any extra memory in which case it will just hog your processor until you kill the process. The eclipse IDE has a stop button next to the console to stop a running program.
 
Even that button wasnt responding. Nothing was responding. Then again, the Windows installs at school aint the most stable or safe.
 
Even that button wasnt responding. Nothing was responding. Then again, the Windows installs at school aint the most stable or safe.

hmm maybe since I only do development in linux I don't know much about how it affects Windows. Of course that's not a failure of java anyway, any language that gets put into a heavily computational infinite loop is going to run your system into the ground. Your only hope is to kill it before it kills you:p

or just be careful and make sure your loop doesn't have the ability to loop forever.
 
Even that button wasnt responding. Nothing was responding. Then again, the Windows installs at school aint the most stable or safe.

If you max out the memory and processor on a slow system, it will appear to be locked when it's really just busy. If you wait until the VM crashes, the system would probably recover, but a reboot would still be a good idea.

It would be considered malicious code, but if you wrote a Java program to continually write to disk and allocate memory in an infinite loop, it could cause system stability issues. Most beginners wouldn't know how to do that though.
 
If you max out the memory and processor on a slow system, it will appear to be locked when it's really just busy. If you wait until the VM crashes, the system would probably recover, but a reboot would still be a good idea.

It would be considered malicious code, but if you wrote a Java program to continually write to disk and allocate memory in an infinite loop, it could cause system stability issues. Most beginners wouldn't know how to do that though.

30 minutes should have been enough to make the VM crash, yet it didnt.

Anyways, we are derailing this thread.
 
Back
Top Bottom