4 ms·
I would say that python isn't a perfect tool for tackling large problems on their own, but for largely different reasons. You'll notice that Ruby implements ob
by alttab 17y ago
I would say that python isn't a perfect tool for tackling large problems on their own, but for largely different reasons.
You'll notice that Ruby implements objects in a very nontraditional OO way, seemingly similar to python on some levels. But typical OO restrictions create anti-patterns (excuse me, 'design' patterns), instead of direct access or on the fly coding.
The consenting adult argument is compelling for nontraditional semi-encapsulated object implementations, and simply requires a different type of programmer or team to do successfully.
I've been spoon-fed OO since 13 (C++/Java) but am now seeing the good in taking away the boilerplate. Just as OO replaced procedural and (Temporarily) functional paradigms, we will see hybrid languages replacing traditional OO as time comes along (Ruby seems to be a mix of OO, functional, and imperative).
- jmillikin 17y agoRuby 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.