Ok, I just have a small question, am I the only guy who started programming in C/C++ (as his first languages) that gets angry when he reads a book on Java, where they just love trashing C++? I mean some books spend so much time talking about how "Well C++ cannot do this, cannot do that, Java in better in this because of....." or something along those lines. Is like they fail to give credit to C++. Fail to inform the reader that Java is what it is today because of C++. Had it not been for people like Bjarne Stroustrup, java probably wouldn't be what it is today. Because as we all know a lot of it was sort of emulated into Java, and other things were just washed down and made easier, like polymorphism, etc. I mean Java is good and all, but give C++ at least SOME credit. I mean I like Java, don't get me wrong (I work using J2SE, J2EE and related technologies). A lot of what goes on behind the scenes in Java is sort of hidden to the programmer, so some people just program things without really knowing what goes on behind the curtains. Things that C/C++ clearly shows you and gives you, in my opinion a better understanding of how computers work. Which is why I think, that if you're going to be a Java programmer for example you should also learn at least C.
This is why I think learning a little bit of C/C++ and Assembly is important. You might not earn your living working in Assembly but you sure will have a better understanding of how things work, that's for sure. After all this is said and done, then comes C#. And basically they state "It is similar in syntax to both C++ and Java and is considered by Microsoft as the natural evolution of the C and C++ languages." --http://developer.com/net/asp/article.php/1756291 .
In my opinion, what I have seen so far, it's a really good language. And at least they give the creators of C++ SOME credit. What I really like about this language is that it retains most of the features that make C++ so good and borrows some of Java's theories. I feel like I am looking at a more modern C++, rather than a language that is claimed by some books to just be better than C++ and ignore how it came to be. A language that doesn't keep the programmer in a small box where he is limited as to what he can do. Let me clarify myself, for example Java says "You cannot use pointers, because they are hard and confusing". C# says "Here, if you want to use pointers go ahead, if not, I am giving you the means to produce all your code without the need of pointers". The same goes for polymorphism and virtual methods.
Whoa, I really needed to let that one out. Not all Java books are like this. But there are some out there, one in particular which I am not going to mention. And some Java programmers who forget how they came to be, who they are now. I love Java and in my opinion for Client/Server applications it's the best solution out there right now. BTW, it's also a shame that C# is so tied down to a particular vendor/OS. Hopefully this might change in the future. Anyhow I think having a combo of all these technologies is a great. The more programming languages you know the better, right? After all they are all just tools that have their own uses. Situations in which each of them excel accordingly. And that is all for now folks.