On Sunday 10 March 2002 04:16 am, Tanner Lovelace wrote: > On Sat, 2002-03-09 at 01:52, Tom Bryan wrote: > > P.S. And I still haven't complained that to get any sort of generic > > container in C++, you'll also need to understand templates. Not a bad > > thing, but just one more hurdle to cross before you can effectively write > > OO in C++. > > And it's a good thing you didn't complain about it, because generics > are not OO.
No, but it's difficult to write a Java application without eventually using a Collection, and it's difficult to write a C++ application without eventually using a vector, map, or some other templatized class. With Java, I'm still in the OO world when I do that. With C++, I also need to learn templates well enough to use them. > That C++ is hard to learn is a common misconception. I'm not sure that I said that C++ is hard to learn. I just think that it can be harder to learn OO using C++ as a language. That is, if one already knows C, then it can be difficult to escape old C habits when using C++. If one doesn't know C, then C++ is probably a more difficult language to learn than Java or Python, for example. > C++ is pretty much unlike any language out there. It's not a pure > object oriented langauge. Right. I appreciate what C++ is, but if one's focus is "I want to learn about OO programming," then all of these paradigms supported by C++ can make focusing on OO difficult. Not that OO design is some sort of Holy Grail of programming, but it is significant and important in many areas these days. If someone came to me and said, "I know Fortran, C, and assembler, and I'd like to teach myself OO. What do you suggest?" I would honestly recommend learning Java or Python. The language itself (grammar, etc.) is pretty small and easy to learn. The libraries both have an OO focus, and programming using OO techniques is easy and well-supported by both languages. > The point is, however, that C++ is a fairly misunderstood language. > It supports more than just OO and to use it effectively you really > should learn it on its own merits, not as a superset of C, or as > an OO language, but as C++. C++ is a powerful language, much more > so than any other language out there right now. If I grant you that, then I would probably still recommend that someone take a detour into a language like Java where it's easy and natural to focus on OO. Once the developer has an OO mindset, then the OO part of C++ will be much easier to learn. > Unfortunately, most people don't understand it well enough to make > good use of it. In my opinion, that's not necessarily a problem with the > language but rather a problem with education. That was part of my point: "most people don't understand it well enough to make good use of it." Given that, it seems like a poor choice to use as an implementation language while teaching yourself OO. It is also difficult to make a business case to use C++ if most people who know the language won't be able to make good use of it. Then again, one could probably make the same argument about most languages. :) trying-hard-not-to-start-a-language-war-ly y'rs, ---Tom _______________________________________________ Dev mailing list [EMAIL PROTECTED] http://www.trilug.org/mailman/listinfo/dev