class-oriented rather than object-oriented?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • notnorwegian@yahoo.se

    #1

    class-oriented rather than object-oriented?

    i have some confusion over this.

    sure a class is basically a classification, like for example an animal
    or flower. and an object/instance of that class is then for example a
    cat.

    an object is an instance of a class. that i know, i also know how to
    program with classes etc.

    i am just confused about the term object-oriented.

    wouldnt class-oriented be more fitting? at least for java since what
    you do is divide everything into classes.

    in python i dont or at leats not as much.


    does object-oriented refer to that everything(stri ngs, ints etc) are
    all objects? so there is a class string somewhere in the
    implementation rather than a primitive or somehing?

    are python functions objects?

    can a functional language be object-oriented or an objectoriented
    language be functional?
    one definition of OO is a language that passes messages between
    objects. but not necessarily that is has to pass message sbetween
    classes?
  • Ben Finney

    #2
    Re: class-oriented rather than object-oriented?

    notnorwegian@ya hoo.se writes:
    does object-oriented refer to that everything(stri ngs, ints etc) are
    all objects? so there is a class string somewhere in the
    implementation rather than a primitive or somehing?
    The term is used (and abused) in different ways. The term "object
    oriented" is usually an abbreviation of "object-oriented programming",
    which contrasts with the older practice of "procedural programming".

    It refers to the shift in focus, away from programs that feed data
    through a mostly-linear procedural process, and toward programs that
    define how objects behave and change state, and interact with other
    objects.
    are python functions objects?
    Yes.
    can a functional language be object-oriented or an objectoriented
    language be functional?
    Yes. Again, it's m ore accurate to say that a language *enables* a
    particular style of programming. Python enables procedural
    programming, object-oriented programming, and functional programming.
    one definition of OO is a language that passes messages between
    objects. but not necessarily that is has to pass message sbetween
    classes?
    Classes only exist to define functionality, including the
    functionality of creating instances of themselves. It's those
    instances that contain state data, and that pass messages back and
    forth.

    Think of a class as a type definition (and, indeed, types and classes
    are now unified in Python since early in the 2.x series), and
    instances as specific values of that type. The type defines the
    behaviour of its instances, but the instances are what the program
    actually uses.

    --
    \ "Madness is rare in individuals, but in groups, parties, |
    `\ nations and ages it is the rule." -- Friedrich Nietzsche |
    _o__) |
    Ben Finney

    Comment

    • Michele Simionato

      #3
      Re: class-oriented rather than object-oriented?

      On May 25, 4:34 am, notnorweg...@ya hoo.se wrote:
      i have some confusion over this.
      >
      sure a class is basically a classification, like for example an animal
      or flower. and an object/instance of that class is then for example a
      cat.
      >
      an object is an instance of a class. that i know, i also know how to
      program with classes etc.
      >
      i am just confused about the term object-oriented.
      >
      wouldnt class-oriented be more fitting? at least for java since what
      you do is divide everything into classes.
      Unfortunately there is a lot of confusion in the terminology.
      Basically, everybody uses the term "object oriented" with
      a different meaning. So, it is not your fault and yes, a
      better name for Java would be class-oriented language.
      in python i dont or at leats not as much.
      >
      does object-oriented refer to that everything(stri ngs, ints etc) are
      all objects? so there is a class string somewhere in the
      implementation rather than a primitive or somehing?
      Yes, this is the common meaning of the sentence
      "everything is an object", in the sense that type(x)
      gives you the class of x for any x.
      are python functions objects?
      Yes.
      >>def f(x): pass
      >>type(f)
      <type 'function'>
      can a functional language be object-oriented or an objectoriented
      language be functional?
      Yes and not. A *pure* functional language has no mutation,
      whereas the basic tenet of object orientation is having
      something with a mutable state. In practice, most functional
      languages are not pure, and most object oriented language
      also allows functional construct.
      one definition of OO is a language that passes messages between
      objects. but not necessarily that is has to pass message sbetween
      classes?
      "Passing a message" is another way of saying "calling a
      method". In a language such as Python (or Smalltalk, or
      Ruby) classes as objects (in the sense that they are
      instances of some class, the so-called metaclass)
      so you can "pass a message" to the class.
      Notice that the message passing methaphor only works
      with languages with single dispatch; the Common Lisp
      Object System (CLOS), which is based on multiple
      dispatch, goes in an entirely different category
      (no message passing there). A generic function system
      is not an object system in the traditional sense (I
      mean the sense of Smalltalk) so it should have a
      different name, but the mistake has been made twenty
      years ago and there is nothing we can do now.

      Michele Simionato

      Comment

      • Bruno Desthuilliers

        #4
        Re: class-oriented rather than object-oriented?

        notnorwegian@ya hoo.se a écrit :
        i have some confusion over this.
        >
        sure a class is basically a classification, like for example an animal
        or flower. and an object/instance of that class is then for example a
        cat.
        >
        an object is an instance of a class.
        Depends on the language.
        that i know, i also know how to
        program with classes etc.
        >
        i am just confused about the term object-oriented.
        >
        wouldnt class-oriented be more fitting? at least for java since what
        you do is divide everything into classes.
        InMyArms(tm) !-)
        in python i dont or at leats not as much.
        Fact is that Python is more concerned about objects and less about
        classes. While you do have the concept of a class in Python, it's in
        some points closer to javascript's prototypes. Amongst other things, the
        object/class relationship is not necessarily static - you can
        dynamically rebind an object to another class (whether it's a good idea
        is another question), dynamicallt add/remove/replace attributes
        (including methods) on a per-instance or per-class basis, etc.
        >
        does object-oriented refer to that everything(stri ngs, ints etc) are
        all objects?
        The only commonly accepted definitions I know wrt/ OO are :

        1/ an OO program is composed of objects interacting thru messages
        2/ an object is defined by an identity, a state and a behaviour

        So to answer your question:

        Not necessarily, but having non-object "things" in an OO program somehow
        contradicts definition #1 IMHO.

        BTW, you'll notice that there's nowhere mention of "classes" here...
        so there is a class string somewhere in the
        implementation rather than a primitive or somehing?
        .... nor of "primitive types" !-)
        are python functions objects?
        Yes. As well as classes, modules, and even the function's code. From
        this POV, Python is 100% object. wrt/ to the "message passing" part,
        it's probably a bit more debatable, specially when compared to Smalltalk
        where messages are the only control structure.
        can a functional language be object-oriented or an objectoriented
        language be functional?
        Well... Depends on the definitions of "object-oriented" and
        "functional ". There are indeed some languages that try to support both
        approach, coming either from the OO side (Python, Ruby, Javascript...)
        or from the functional side (OCaml, Common Lisp, Scheme, ...).

        Now none of these languages are "pure" functional languages. The point
        is that OOP and FP are two different and more or less incompatible
        approach toward state management. OOP try to encapsulate state into
        objects, while FP try to simply get rid of any shared state.
        one definition of OO is a language that passes messages between
        objects. but not necessarily that is has to pass message sbetween
        classes?
        If your classes are objects, then what's the difference ?-) And if they
        are not, how are you going to pass messages between them ?

        But the fact is that the concept of "class" is by no mean central, nor
        even necessary, to OO. You might want to have a look at languages like
        Self, Io and Javascript, which are prototype-based instead of class-based.

        Comment

        Working...