| Well, I apologize. I did not appreciate your mock translation of what I said as it really was way out there and not at all in line with the reality and motives for my choosing C, Forth, Java and Python. In other words, what you said is not what I said. And then you sarcastically expressed incredulity for my choices. Really, saying that these are "the most horrible to learn languages" is beyond my comprehension. There's nothing "horrible" or, for that matter, difficult about any of them. C is easy as pie. It's the most fundamental language. Forth is a super-cool game. My kid already rocks on an HP-41 calculator (RPN). When I introduced him to Forth he literally said: "Wow! I can program in RPN!". Java, was a short stepping stone as I wanted to give him a quick taste of OO but not drown him in the details. He actually wrote a dozen little games with graphical interfaces and all. Great fun. Now with Python we are going through the Project Euler site problem by problem implementing solutions mostly in Python but then looking at C and Forth where it makes sense. It's hard work. At the same time I like it because it keeps me on my toes. At one point I'll have to choose whether to move him towards developing, say, iOS apps or web apps. In other words, there's at least one fork in the road ahead. However, the principles are all the same. The constructs are fundamentally equal. A state-machine driven website is no different than a state-machine driven iPhone app. Same concepts, you just "say" them differently in code. And so I fail to see or agree with people who make categorical statements such as "C is horrible" or "C is hard to learn". I don't get it. Yeah, from the vantage point of someone with no frame of reference whatsoever even basket-weaving is horrible and hard to learn. At one point you start taking steps towards learning and, if a good foundation is built, nothing is really horrible, difficult or impossible to learn. To me, C is the foundation of nearly all you'd want to understand in programming. Only assembler would give you more perspective. I have written plenty of software with complex data structures in assembler. Not for the weak of heart, but you do learn a lot. With a solid foundation in C you can undertake just about anything in any domain, from embedded to web and mobile programming. So, yes, I felt that taking what I said so far out of context and then expressing surprise for your own made-up statement had to come from ignorance. Perhaps I shouldn't have said it the way I did. So, again, I apologize. |
C is fundamental, but calling it “easy as pie”? 90% of C consists of undefined behaviour, just waiting to screw you over.
Forth ... why not some Lisp instead? I don't like Lisps in general, but they are at least not as completely obscure as Forth.
The designers of Java had some good ideas, but the execution of the language itself is terrible. Java is what gives OO a bad name, why not pick a language which is good at OO?
Python, well sounds sort of OK, at least no PHP or JavaScript.
====
I guess my choice would have been something like that:
- Assembler - ML/OCaml/ATS/Rust - Scala - Haskell