I have a bit of a question...I'm just sitting down to learn Python right now and I'm finding it a bit too C/C++ like for my liking. What strikes me about Python is it's claim of "object orientation"--and yet, it has atomic types like 'int' and 'char' that are not objects (shades of C++ and Java).
I've read the quote on smalltalk.org from Alan that (roughly paraphrased) says "I invented the term object-oriented, and C++ was not what I had in mind."
Is it safe to say that something like Python is not truly object-oriented? Or rather--if it's not objective right down to the smallest particle, can it be called object-oriented? I realize this could be a somewhat flameworthy question...but I don't mean it to incite flames.
(and then there's the other question about why all new languages go out of their way to be so C-like...a personal beef of mine. :)
Kevin Fisher wrote:
I have a bit of a question...I'm just sitting down to learn Python right now and I'm finding it a bit too C/C++ like for my liking. What strikes me about Python is it's claim of "object orientation"--and yet, it has atomic types like 'int' and 'char' that are not objects (shades of C++ and Java).
I've read the quote on smalltalk.org from Alan that (roughly paraphrased) says "I invented the term object-oriented, and C++ was not what I had in mind."
Is it safe to say that something like Python is not truly object-oriented? Or rather--if it's not objective right down to the smallest particle, can it be called object-oriented? I realize this could be a somewhat flameworthy question...but I don't mean it to incite flames.
(and then there's the other question about why all new languages go out of their way to be so C-like...a personal beef of mine. :)
Non-objects (such as the native types in Python, Java, Objective-C, et al.) are just that: "non-objects".
But, having some non-objects (i.e., native types) in a system doesn't stop you from also having objects in that same system. It just gives the language a schizophrenic personality, that's all. And, of course, that kind of language schizophrenia typically introduces other problems as well, but that's another topic. :-)
Nevin
I think the key to remember is object-ORIENTED not [all: objects all: theTime] :)
=jason
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev-admin@lists.squeakfoundation.org] On Behalf Of Nevin Pratt Sent: Friday, April 26, 2002 2:59 PM To: squeak-dev@lists.squeakfoundation.org Subject: Re: How do you define "object-oriented"?
Kevin Fisher wrote:
I have a bit of a question...I'm just sitting down to learn Python
right
now and I'm finding it a bit too C/C++ like for my liking. What
strikes
me about Python is it's claim of "object orientation"--and yet, it has atomic types like 'int' and 'char' that are not objects (shades of C++ and Java).
I've read the quote on smalltalk.org from Alan that (roughly
paraphrased)
says "I invented the term object-oriented, and C++ was not what I had
in
mind."
Is it safe to say that something like Python is not truly
object-oriented?
Or rather--if it's not objective right down to the smallest particle, can it be called object-oriented? I realize this could be a somewhat flameworthy question...but I don't mean it to incite flames.
(and then there's the other question about why all new languages go out
of
their way to be so C-like...a personal beef of mine. :)
Non-objects (such as the native types in Python, Java, Objective-C, et al.) are just that: "non-objects".
But, having some non-objects (i.e., native types) in a system doesn't stop you from also having objects in that same system. It just gives the language a schizophrenic personality, that's all. And, of course, that kind of language schizophrenia typically introduces other problems as well, but that's another topic. :-)
Nevin
Kevin Fisher kgf@golden.net said:
I've read the quote on smalltalk.org from Alan that (roughly paraphrased) says "I invented the term object-oriented, and C++ was not what I had in mind."
I think, apart from all the computer science stuff that has been invented to talk about object orientation, it basically comes down to the fact that OO was meant to make things simpler. C++ is a horrible complex mess - QED.
Is it safe to say that something like Python is not truly object-oriented? Or rather--if it's not objective right down to the smallest particle, can it be called object-oriented? I realize this could be a somewhat flameworthy question...but I don't mean it to incite flames.
It's a flameworthy question. Personally, I think that Python is object oriented; and it is certainly striving to be more complete in that respect, with Python 2.whateveristhelatestdotrelease you can inherit from the built-in types. OO is not black-and-white, I claim to have written OO software in VAX/Pascal. However, on the "OO-ness" scale, Smalltalk is a top scorer (as is, I think CLOS), Python less so, Java a whole lot less, and C++ waits until the language has been enhanced with an OO-ness scale position operator.
On Fri, Apr 26, 2002 at 09:03:40PM +0200, Cees de Groot wrote:
Kevin Fisher kgf@golden.net said:
I've read the quote on smalltalk.org from Alan that (roughly paraphrased) says "I invented the term object-oriented, and C++ was not what I had in mind."
I think, apart from all the computer science stuff that has been invented to talk about object orientation, it basically comes down to the fact that OO was meant to make things simpler. C++ is a horrible complex mess - QED.
This is true. Wasn't Bjarn's original goal just to provide a new "style" of programming to C (ie to bolt a new concept onto the hull of the old)? What it's become...well, we don't need to go there...
Is it safe to say that something like Python is not truly object-oriented? Or rather--if it's not objective right down to the smallest particle, can it be called object-oriented? I realize this could be a somewhat flameworthy question...but I don't mean it to incite flames.
It's a flameworthy question. Personally, I think that Python is object oriented; and it is certainly striving to be more complete in that respect, with Python 2.whateveristhelatestdotrelease you can inherit from the built-in types. OO is not black-and-white, I claim to have written OO software in VAX/Pascal. However, on the "OO-ness" scale, Smalltalk is a top scorer (as is, I think CLOS), Python less so, Java a whole lot less, and C++ waits until the language has been enhanced with an OO-ness scale position operator.
Ah, I see what you're saying.
I seem to remember a discussion on slashdot about how you can do OO with straight C if you code it a certain way.... sort of "OO programming: it's a way of life", not so much the language you use, but rather how you think and organize things.
With Squeak, for example, I guess you can truly "live the concept" a lot easier than you can in other languages.
Oh and I certainly didn't mean to come off as bashing Python at all. I think I was just expecting something else when I started looking at it. :)
-- Cees de Groot http://www.cdegroot.com cg@cdegroot.com GnuPG 1024D/E0989E8B 0016 F679 F38D 5946 4ECD 1986 F303 937F E098 9E8B
Kevin Fisher kgf@golden.net said:
meant to make things simpler. C++ is a horrible complex mess - QED.
This is true. Wasn't Bjarn's original goal just to provide a new "style" of programming to C (ie to bolt a new concept onto the hull of the old)? What it's become...well, we don't need to go there...
In all fairness: I remember being quite excited as a C programmer about C++; however, that was quite early in the process (let's say that my first C++ compiler was a port with a couple of mates from a bootleg CFront source tape to Xenix ;-)). The idea, to give C-programmers object extensions but at the same time leave them with full control over what's happening, was valid and not implemented all that bad.
However, the mistake that has been made with C and has been made over and over again with C++ is to abuse it as an application-level programming language. That's where it all started to go wrong. If there is one thing Bjarne is to be blamed for, I think it is sailing along with this madness, not with coming up with C++ in the first place.
I did some low-level work with C++ (v1), and that usually resulted in extremely clean code - compared with C. For me, that was mission accomplished. However, somehow any attempt to write higher-level stuff failed.
I seem to remember a discussion on slashdot about how you can do OO with straight C if you code it a certain way.... sort of "OO programming: it's a way of life", not so much the language you use, but rather how you think and organize things.
Yup. Right on. I've even heard people claim they applied OO-approaches to their assembler code, and I believe them.
Well, the meanings of terms change over time, and as my old friend Rich Gold likes to say, terms are also "colonized" for political and fad reasons. Personally, I started to regret having coined this phrase almost immediately, in part because "object-oriented" seemed too static. Simula-I used the term "process" to cover both what we mean by "object" and "instance" (since classes were not themselves objects). But this use of "process" was a little different from the already in use definition in the US.
To me, in the beginning, what seemed most important were the encapsulation, only message passing (which allows the algebraic properties of polymorphism), everything made from the basic building block, etc. Doing this right allows some of the other useful abstraction mechanisms to be built. But the abstraction ideas have always been a problem, in that nothing as "clearly sweet" as objects has yet emerged. This has led to quite a profusion of half good ideas about classes or prototypes, inheritance or not or multiple or single, etc.
Finally, my original biology inspired ideas were completely intertwined with late-binding (where I had LISP as a beautiful model of how to generally go about things).
Cheers,
Alan
P.S. Real pioneers have the arrows in their chests!
-------
At 2:10 PM -0400 4/26/02, Kevin Fisher wrote:
I have a bit of a question...I'm just sitting down to learn Python right now and I'm finding it a bit too C/C++ like for my liking. What strikes me about Python is it's claim of "object orientation"--and yet, it has atomic types like 'int' and 'char' that are not objects (shades of C++ and Java).
I've read the quote on smalltalk.org from Alan that (roughly paraphrased) says "I invented the term object-oriented, and C++ was not what I had in mind."
Is it safe to say that something like Python is not truly object-oriented? Or rather--if it's not objective right down to the smallest particle, can it be called object-oriented? I realize this could be a somewhat flameworthy question...but I don't mean it to incite flames.
(and then there's the other question about why all new languages go out of their way to be so C-like...a personal beef of mine. :)
--
On Fri, 26 Apr 2002, Alan Kay wrote:
Finally, my original biology inspired ideas were completely intertwined with late-binding (where I had LISP as a beautiful model of how to generally go about things).
Do you have many other references to your inspiration from biology? Evolutionary algorithms/programs and biomimicry in general is very fascinating to me.
Regards, Aaron
Aaron Reichow :: UMD ACM Pres :: http://www.d.umn.edu/~reic0024/ "life, probably the biggest word i've ever said, that says a lot, because there's a whole lot of words inside my head.." :: atmosphere
Thanks, Alan!
What started for me today as a simple definition has blossomed into something much deeper that I need to ponder. This is quite fascinating!
On Fri, Apr 26, 2002 at 02:28:33PM -0800, Alan Kay wrote:
Well, the meanings of terms change over time, and as my old friend Rich Gold likes to say, terms are also "colonized" for political and fad reasons. Personally, I started to regret having coined this phrase almost immediately, in part because "object-oriented" seemed too static. Simula-I used the term "process" to cover both what we mean by "object" and "instance" (since classes were not themselves objects). But this use of "process" was a little different from the already in use definition in the US.
To me, in the beginning, what seemed most important were the encapsulation, only message passing (which allows the algebraic properties of polymorphism), everything made from the basic building block, etc. Doing this right allows some of the other useful abstraction mechanisms to be built. But the abstraction ideas have always been a problem, in that nothing as "clearly sweet" as objects has yet emerged. This has led to quite a profusion of half good ideas about classes or prototypes, inheritance or not or multiple or single, etc.
Finally, my original biology inspired ideas were completely intertwined with late-binding (where I had LISP as a beautiful model of how to generally go about things).
Cheers,
Alan
P.S. Real pioneers have the arrows in their chests!
At 2:10 PM -0400 4/26/02, Kevin Fisher wrote:
I have a bit of a question...I'm just sitting down to learn Python right now and I'm finding it a bit too C/C++ like for my liking. What strikes me about Python is it's claim of "object orientation"--and yet, it has atomic types like 'int' and 'char' that are not objects (shades of C++ and Java).
I've read the quote on smalltalk.org from Alan that (roughly paraphrased) says "I invented the term object-oriented, and C++ was not what I had in mind."
Is it safe to say that something like Python is not truly object-oriented? Or rather--if it's not objective right down to the smallest particle, can it be called object-oriented? I realize this could be a somewhat flameworthy question...but I don't mean it to incite flames.
(and then there's the other question about why all new languages go out of their way to be so C-like...a personal beef of mine. :)
--
Alan
P.S. Real pioneers have the arrows in their chests!
And, nevertheless, the smiles on their faces.
That is truly admired.
Cheers,
PhiHo.
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev-admin@lists.squeakfoundation.org] On Behalf Of Alan Kay Sent: Friday, April 26, 2002 6:29 PM To: squeak-dev@lists.squeakfoundation.org Subject: Re: How do you define "object-oriented"?
Well, the meanings of terms change over time, and as my old friend Rich Gold likes to say, terms are also "colonized" for political and fad reasons. Personally, I started to regret having coined this phrase almost immediately, in part because "object-oriented" seemed too static. Simula-I used the term "process" to cover both what we mean by "object" and "instance" (since classes were not themselves objects). But this use of "process" was a little different from the already in use definition in the US.
To me, in the beginning, what seemed most important were the encapsulation, only message passing (which allows the algebraic properties of polymorphism), everything made from the basic building block, etc. Doing this right allows some of the other useful abstraction mechanisms to be built. But the abstraction ideas have always been a problem, in that nothing as "clearly sweet" as objects has yet emerged. This has led to quite a profusion of half good ideas about classes or prototypes, inheritance or not or multiple or single, etc.
Finally, my original biology inspired ideas were completely intertwined with late-binding (where I had LISP as a beautiful model of how to generally go about things).
Cheers,
Alan
P.S. Real pioneers have the arrows in their chests!
-------
At 2:10 PM -0400 4/26/02, Kevin Fisher wrote:
I have a bit of a question...I'm just sitting down to learn Python right now and I'm finding it a bit too C/C++ like for my liking. What strikes me about Python is it's claim of "object orientation"--and yet,
it has atomic types like 'int' and 'char' that are not objects (shades
of C++ and Java).
I've read the quote on smalltalk.org from Alan that (roughly paraphrased) says "I invented the term object-oriented, and C++ was not
what I had in mind."
Is it safe to say that something like Python is not truly object-oriented? Or rather--if it's not objective right down to the smallest particle, can it be called object-oriented? I realize this could be a somewhat flameworthy question...but I don't mean it to incite flames.
(and then there's the other question about why all new languages go out
of their way to be so C-like...a personal beef of mine. :)
If you spend enough time developing in languages like C and C++, BASIC, Pascal, FORTRAN, and COBOL, it changes the way you think. Instead of thinking about the real-world entities that you're trying to represent, you end up jamming these notions into whatever language structure will hold them. After a while, instead of seeing real-world objects when you look out your window, you start seeing data structures and pointers. Your thought processes begin to revolve around the language and its constructs rather than the objects you're trying to model. You spend an inordinate amount of time re-engineering things that are very simple in real life.
The term "object-oriented" is so simple, it amazes me how it's become so complicated to explain! I guess like so many other terms: the more it gets used, the more it gets abused. Pretty soon it's cliché. Anyway, my understanding of an object-oriented language is one where the central focus is the objects themselves, *not* the compiler or interpreter and all of its syntactic rules. Each object should define its own communication protocol. The development environment should merely facilitate your communication with these objects; it shouldn't force you to use a uniform or restrictive protocol. With true object-orientation, writing a program should merely be telling your objects what to do.
If you find yourself spending a lot of time converting your ideas into constructs that the language can work with, or if you have to buy books just to learn the syntax of the language itself, then the language isn't object-oriented. It's language-oriented! :-P :-)
Chris Becker
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev-admin@lists.squeakfoundation.org] On Behalf Of Kevin Fisher Sent: Friday, April 26, 2002 1:10 PM To: squeak-dev Subject: How do you define "object-oriented"?
I have a bit of a question...I'm just sitting down to learn Python right now and I'm finding it a bit too C/C++ like for my liking. What strikes me about Python is it's claim of "object orientation"--and yet, it has atomic types like 'int' and 'char' that are not objects (shades of C++ and Java).
I've read the quote on smalltalk.org from Alan that (roughly paraphrased) says "I invented the term object-oriented, and C++ was not what I had in mind."
Is it safe to say that something like Python is not truly object-oriented? Or rather--if it's not objective right down to the smallest particle, can it be called object-oriented? I realize this could be a somewhat flameworthy question...but I don't mean it to incite flames.
(and then there's the other question about why all new languages go out of their way to be so C-like...a personal beef of mine. :)
Very interesting analogy!
I've always looked at it like this: Programming is like painting...you have an idea in your head of what you want to paint, and the computer is like a canvas.
The programming language is your paintbrush. The thing that bothers me about some "modern" languages (like C, especially) is that the paintbrush is so complex, you spend more time learning how to use it than you do actually painting your masterpiece.
Squeak certainly lets me get to the painting right away!
On Fri, Apr 26, 2002 at 07:17:03PM -0400, Chris Becker wrote:
If you spend enough time developing in languages like C and C++, BASIC, Pascal, FORTRAN, and COBOL, it changes the way you think. Instead of thinking about the real-world entities that you're trying to represent, you end up jamming these notions into whatever language structure will hold them. After a while, instead of seeing real-world objects when you look out your window, you start seeing data structures and pointers. Your thought processes begin to revolve around the language and its constructs rather than the objects you're trying to model. You spend an inordinate amount of time re-engineering things that are very simple in real life.
The term "object-oriented" is so simple, it amazes me how it's become so complicated to explain! I guess like so many other terms: the more it gets used, the more it gets abused. Pretty soon it's clich?. Anyway, my understanding of an object-oriented language is one where the central focus is the objects themselves, *not* the compiler or interpreter and all of its syntactic rules. Each object should define its own communication protocol. The development environment should merely facilitate your communication with these objects; it shouldn't force you to use a uniform or restrictive protocol. With true object-orientation, writing a program should merely be telling your objects what to do.
If you find yourself spending a lot of time converting your ideas into constructs that the language can work with, or if you have to buy books just to learn the syntax of the language itself, then the language isn't object-oriented. It's language-oriented! :-P :-)
Chris Becker
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev-admin@lists.squeakfoundation.org] On Behalf Of Kevin Fisher Sent: Friday, April 26, 2002 1:10 PM To: squeak-dev Subject: How do you define "object-oriented"?
I have a bit of a question...I'm just sitting down to learn Python right now and I'm finding it a bit too C/C++ like for my liking. What strikes me about Python is it's claim of "object orientation"--and yet, it has atomic types like 'int' and 'char' that are not objects (shades of C++ and Java).
I've read the quote on smalltalk.org from Alan that (roughly paraphrased) says "I invented the term object-oriented, and C++ was not what I had in mind."
Is it safe to say that something like Python is not truly object-oriented? Or rather--if it's not objective right down to the smallest particle, can it be called object-oriented? I realize this could be a somewhat flameworthy question...but I don't mean it to incite flames.
(and then there's the other question about why all new languages go out of their way to be so C-like...a personal beef of mine. :)
Am Samstag, 27. April 2002 01:17 schrieben Sie:
If you spend enough time developing in languages like C and C++, BASIC, Pascal, FORTRAN, and COBOL, it changes the way you think. Instead of thinking about the real-world entities that you're trying to represent, you end up jamming these notions into whatever language structure will hold them.
Object oriented programming is not a matter of the language, it's a matter of the programmers brain. Look at GTK+ to see, how you could program a "object oriented" windowing toolkit in C...
Regards, Markus
Markus Fritsche marbusse@t-online.de said:
Object oriented programming is not a matter of the language, it's a matter of the programmers brain. Look at GTK+ to see, how you could program a "object oriented" windowing toolkit in C...
Going back further, the X interfaces are very much object-oriented as well. That's probably why nobody understood them ;-)
I think Xt/Motif is quasi-OO as well...but that doesn't help it one bit. Xt and Motif still make my skin crawl. :)
On Sun, Apr 28, 2002 at 09:52:19PM +0200, Cees de Groot wrote:
Markus Fritsche marbusse@t-online.de said:
Object oriented programming is not a matter of the language, it's a matter of the programmers brain. Look at GTK+ to see, how you could program a "object oriented" windowing toolkit in C...
Going back further, the X interfaces are very much object-oriented as well. That's probably why nobody understood them ;-)
-- Cees de Groot http://www.cdegroot.com cg@cdegroot.com GnuPG 1024D/E0989E8B 0016 F679 F38D 5946 4ECD 1986 F303 937F E098 9E8B
The discussion is about what constitutes an object-oriented *language*. C is not object-oriented. C was created as a high-level assembly language, and that's what it's best for.
As someone already mentioned in this thread, you could write "object-oriented" code in assembly language too. But languages that are not *inherently* object-oriented are a nightmare to do this kind of work in, especially on the maintenance end.
Ultimately, it doesn't matter what's in your brain if you can't express it in an understandable way. Have you ever talked to a brain? Neither has the computer.
Chris
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev-admin@lists.squeakfoundation.org] On Behalf Of Markus Fritsche Sent: Sunday, April 28, 2002 12:57 AM To: squeak-dev@lists.squeakfoundation.org Subject: Re: How do you define "object-oriented"?
Am Samstag, 27. April 2002 01:17 schrieben Sie:
If you spend enough time developing in languages like C and C++, BASIC, Pascal, FORTRAN, and COBOL, it changes the way you think. Instead of thinking about the real-world entities that you're trying to represent,
you
end up jamming these notions into whatever language structure will hold them.
Object oriented programming is not a matter of the language, it's a matter of the programmers brain. Look at GTK+ to see, how you could program a "object oriented" windowing toolkit in C...
Regards, Markus
Hi Kevin,
I think that VisualBasic, C++, Python, Java are all Object Oriented Languages (OOL), but Smalltalk is not a language and not only Object Oriented. Let me explain...
When you use a Language (OOL), you must "imagine" the objects (you really do not have them). An object system is a powerful product of the work you do in your mind. You formalize the expertise in the destination domain building knowledge structures with the form of objects. The objects are the product of your work and a powerful specification of your system (a closed/defined system). If you work IN an Object Environment (like Smalltalk), the objects contained in the environment are the sources of your work. The environment is the space where you build your system, not its definition. The objects are NOT in your mind, they are in the virtual environment (and can be shared with full precision in abstract and concrete instances).
Why Object Orientation is powerful and very interesting for people with instruction in science? Object Orientation is widely accepted because let people apply all the methods they learned in science and formal training. Most of scientific methods are based on reductionism techniques that treat any "problem" as an object of interest. The reduction of the problem let you define the laws of nature of the problem.
Any system can be treated/defined as an object. (See Bertalanffy laws of information systems) All the techniques related with reductionism and modularization can be applied to OO Systems.
But. You can have more than Object Orientation. More than Object Orientation? What can we have if not an object?
Most people try to mark the differences of Smalltalk saying that smalltalk is "pure objects", and that ALL in smalltalk are objects. I think that when we use these arguments we are not focusing on the most powerful attributes of smalltalk.
Smalltalk is more than Object Oriented. Smalltalk is: 1. - A place full of objects (then you can apply all the reductionism techniques) 2. - It is an ENVIRONMENT.
What I want to say with an "environment"? An environment (as in biology and ecology) is NOT an object; it can not be "solved" with reductionism techniques. An environment is not a container (not an object, not aCollection), because an environment is an open system.
Remember the first law of Information Systems: "A system is more than it parts"
The law enounces that a system are not only its parts, then it is not only objects.
Using an evolving environment as an open medium to develop information systems let's you work with reductionism (with objects) and in a holistic way (with non-objects, or. not only with objects).
Object Oriented Languages let you work only with objects, and when the system is DEFINED it will not evolve. It can change, but not evolve, because it defines a closed system. It is the product of formalism.
Object Environments (OE) like smalltalk have a syntax (language) because we use text panes. (but they are not just the syntax, each object have a language) OE have "classes", but they are really species. See paper "Who put the class into classification" J. Wilkins or an email of smalltalking mailing list [http://groups.yahoo.com/group/smalltalking] of topic "[objetos] Conjuntos - Clases - Especies - etc." if you can read Spanish L They have objects but the instances can change shape and behavior at any time, because they are not fixed to formalization laws (some Smalltalks lets you attach methods to objects -not only to classes-).
Building a system in an open environment is not the same as defining a system with reductionism techniques (cut the real system in parts and look for "relations"). When you work with reductionism you must be formal, strict, and define all the alternatives you can see (learn the domain first, then talk in the language to express the rules). When you use an environment, your main activities are in the building of the system. While building you will work on the undefined/unknown part of the system, you build the system using it. Your activities are different and are not only based on reductionism and formalization.
Using Smalltalk you work in an environment. The main goal is to maintain the environment stable (system correctness is not necessary). As in ecology, your activities are guided by the open parts of the system. All actions done in a reductionism way may produce lateral effects and indeterminism. Accidental emergence can be used to know more on the system while it works. The building of object engines (and in its abstract form: a framework) are emergencies of the advances in the destination domain. As a product of instantiating experience, you build classes (prototypes evolves to a more formal specification in the form of classification schema) and objects. As classes changes with time, they are not "classes" like in OOL. When you work in an evolving environments classes are formalizations (abstractions) but with the possibility to change (more like species in nature).
You can find more on this topics on www.smalltalking.net (sorry but most material is in Spanish and our email list is in Spanish also) and http://smalltalking.swiki.net
I find that focusing on this topics more people are interested in learn and use Smalltalk, and let us learn to work in an environment (open system) and use more than formal methods.
cheers, Ale.
----- Original Message ----- From: "Kevin Fisher" kgf@golden.net To: "squeak-dev" squeak-dev@lists.squeakfoundation.org Sent: Friday, April 26, 2002 3:10 PM Subject: How do you define "object-oriented"?
I have a bit of a question...I'm just sitting down to learn Python right now and I'm finding it a bit too C/C++ like for my liking. What strikes me about Python is it's claim of "object orientation"--and yet, it has atomic types like 'int' and 'char' that are not objects (shades of C++ and Java).
I've read the quote on smalltalk.org from Alan that (roughly paraphrased) says "I invented the term object-oriented, and C++ was not what I had in mind."
Is it safe to say that something like Python is not truly object-oriented? Or rather--if it's not objective right down to the smallest particle, can it be called object-oriented? I realize this could be a somewhat flameworthy question...but I don't mean it to incite flames.
(and then there's the other question about why all new languages go out of their way to be so C-like...a personal beef of mine. :)
squeak-dev@lists.squeakfoundation.org