3 ms·
Ruby is very similar to "traditional" OO languages such as Smalltalk. C++ and Java are not OO -- they are simply procedural, with a bit of pretty syntax and som
by jmillikin 17y ago
Ruby is very similar to "traditional" OO languages such as Smalltalk. C++ and Java are not OO -- they are simply procedural, with a bit of pretty syntax and some renamed concepts ("procedure" => MARKETING DEPARTMENT => "method").
- alttab 17y agoI will admit I haven't had experience with Smalltalk, and by "traditional" as you correctly pointed out, I am probably referring merely to my background. In any case your insight makes me ask - is mainstream OO just a poor outfit for procedural programmers trying to stay relevant? I can say that C++ was used as a gimmick at least once instead of C on a professional project and everyone hated the code.
- jmillikin 17y ago> In any case your insight makes me ask - is mainstream OO just a poor outfit for procedural programmers trying to stay relevant? Essentially, yes. C++ was invented because large companies wanted to add the "object-oriented" buzzword to their products. Needless to say, the language is a disaster. Java was an attempt to fix some of the problems with C++ -- primarily, the complete incompatibility of manual memory management and exceptions. Java was a success because any C or C++ developer can sit down with a library reference and begin working, and the resulting programs usually worked better than if the same developer had used C++. Next came C#, which is an incremental improvement over Java in the same way Java is an improvement over C++. It adds a few useful features from more advanced languages (closures, true generics, properties) and restores some C++ features removed from Java (unsigned integers, operator overloading, preprocessing). Again, its most important feature is that it's not very differing -- a C++ or Java developer can be up and running with C# in a matter of hours.