Replying to #15
I know what he meant by his exact words, but trust me, if you take into account of the categories of programming languages, you will see why in fact C++ is not considered hardest (or even "one of the hardest") programming languages.
First off, there are two types of programming languages. One type is called "high-level" programming language. Before I go on, it's important to know that the term "level" is used to refer to the coding structure, NOT the difficulty. High-level languages reflect more closely to English-language terms as you have a couple of instructions of code written understandably in English. C++ is one of these programming languages classified as a high-level language.
An example in C++:
If (x == 17) //this is checking if x = 17
total = x + y;
Else
total = 0;
^ Pretty clear and understandable, right?
The other type of programming languages is known as "low-level" languages. "Low-level" languages reflect more upon machine code (that is, the infamous binary 0s and 1s). Low-level languages use machine opcodes as keywords. More info can be found here: http://en.wikipedia.org/wiki/Low-level_programming_language . Low-level languages include Assembly and even the binary Machine Code itself.
Since I have not dealt with assembly in a while, I'm sure I am going to mess up translating my example code in C++ to its ASM equivalent. Rest assured however that the result will not be pretty with a lot of messy lines of code.
Here's an example of ASM code
.model small
.stack
.data
message db "Hello world, I'm learning Assembly !!!", "$"
.code
main proc
mov ax,seg message
mov ds,ax
mov ah,09
lea dx,message
int 21h
mov ax,4c00h
int 21h
main endp
end main
^ Good luck understanding that. All that code does is display a message while shifting values around in memory registers.
As for a comparison of high-level languages compared to low-level languages, high-level languages are obviously more easier to program and debug compared to low-level languages.
To make matters worse in regards of Assembly, the Assembly language has many different versions, each one for each hardware. Intel processors have their own assembly language as well as Athlon, Motorola, and many more!
Interesting fact: there are other custom languages just as bad (or worse than) Assembly. And yes, these are definitely categorized as low-level languages.
Brainfuck (yes, it's a Computer language!)
Archway
BitChanger
Unary
Malbrain