** Reply to message from "Lan Barnes" <***@falleagle.net> on Fri, 2 May 2008
10:02:55 -0700 (PDT)
Sorry, way too wordy of a response....
Post by Lan BarnesFirst 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.
Post by Lan BarnesSecondly, 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.
Post by Lan BarnesAnd 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