** Reply to message from "Lan Barnes" <[EMAIL PROTECTED]> on Fri, 2 May 2008 10:02:55 -0700 (PDT)
Sorry, way too wordy of a response.... > First of all, one of the reasons I break into hives when OO comes up is > because I was introduced to it through C++, which I am told by OO people > is like learning BASIC as a first language -- a cause of drain bamage. (My > other hurdle was actually trying to read Codd and Date. GMWAS.) I don't see how it could be said that 'learning OO using C++' can be like 'learning BASIC as a first language'. But if you tried to learn OO concepts by doing database coding then yup, you're going to get drain bamaged trying to figure out how OO data structures can be layed out in relational datebases while you are still managing the relational database the old way. OO concepts are not going to sink in when you're mixing it all up. I turned down jobs because I was told the projects were C/C++ and after the interviews found out the developers were doing C with the C++ compiler. This was very common and finding a C/linear programmer willing to spend the time learning OOP was like finding the proverbial needle in the haystack. > Secondly, I will point out that GUI/widget event-driven programming is by > its very nature object oriented. You'rs just using objects developed for > you by someone a lot smarter. That's because you "see" GUI object as an object but don't see non-visual software as being objects. A good class library goes along way at providing wrapped data structures, communications, and even hardware access so that what's behind the scenes are ojects too. Borland had an OK class library, IBM had a very nice one, Microsofts sucked because they say OO as making Win32 obsolete. Why some like Java is because it comes with such a rich class library, Smalltalk is the same but more "pure" OO thru and thru. > And I will say again, C is a systems language, and a lovely one at that; > C++ is C that's been all fracked up; and it baffles me that people don't > develop more apps in scripting languages. Why make life harder for > yourself? You see C as a systems language because you have alot of other options. In the 80's, there wasn't much else which could give you the needed performance given the hardware at the time. Why Stroustrup came up with C++, I don't know but seeing how systems apps where throwing parts of code all across the file system, just the one feature of wrapping data with methods seemed like an incredible advantage. Sure one could do that with C but mostly coders did not and having the language require this forced policy on the dev for the good of maintaining the code. Abstraction is nice so you don't have to retest code you are only adding a small bit to. But the problem was that C++ let you code in C. Lazy devs will fall to C and all that brings. But C++ was/is pretty darn fast unless you get way overboard with abstraction and object design. You can thank Moore's Law for the ability to now use interpreted code for full blown applications and it is happening from what I've seen on Linux. You can also thank Moore's Law for the ability to run virtual machines for somewhat-interpreted languages like Smalltalk, Java, and yuk, C-pound for use in applications not "compiled' to native code. Unfortunately, what gets popular has alot to do with what 'runtime' gets pre-installed on PCs when they get shipped to customers. Windows is a big issue because marketing pressure by Microsoft dictates what become popular while on Linux, it's more what developers decide is popular. FYI, looking at a new Ubuntu 8.04 install for apps using or running interpreted Python code, I see: totem, gimp, zulrunner, openoffice, deskbar-applets, gedit, rythmbox, hplip, launchpad-integration, obviously Sugar, guidence, games, hwtests, numeric, amarok, system-config-printer, and there are others I found on my workstation system like gazpacho, subversion, pida, trac, graphviz, DeVeDe, and rat all use python for either scripting or are built as python applications. It's getting there but unfortunately for the 'old languages' they are going to be using mostly 'newer languages' and they will likely all support OOP. Doug -- [email protected] http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list
