in reply to More discipline or more freedom - in the context of OO

You put Java in the third group, but it actually belongs in the second group, because of the existence of primitive types that cannot be extended or subclassed and use distinct operators.

Perhaps you meant the third group to mean languages like Smalltalk or Ruby or Eiffel, where everything truly is an object.

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.

  • Comment on •Re: More discipline or more freedom - in the context of OO

Replies are listed 'Best First'.
Re: •Re: More discipline or more freedom - in the context of OO
by dragonchild (Archbishop) on Oct 14, 2003 at 20:13 UTC
    Or, maybe, all languages in the second category allow freedom of expression, but some freedoms are more expressive than others. (Or, is it some expressions are freer than others?)

    ------
    We are the carpenters and bricklayers of the Information Age.

    The idea is a little like C++ templates, except not quite so brain-meltingly complicated. -- TheDamian, Exegesis 6

    ... strings and arrays will suffice. As they are easily available as native data types in any sane language, ... - blokhead, speaking on evolutionary algorithms

    Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.

Re: •Re: More discipline or more freedom - in the context of OO
by danger (Priest) on Oct 14, 2003 at 20:45 UTC
    I don't think we can put Ruby in group 3 either --- while everything is indeed an object, the way Ruby is designed supports programming in a non--OO manner (even if there are objects behind the scenes).
Re: •Re: More discipline or more freedom - in the context of OO
by pg (Canon) on Oct 14, 2003 at 20:38 UTC
    This stands true, if you look at it from application programmer’s view. In Java, you are forced to put each line of your code inside some class.

        I'd rather say "bump down" ;-)

        The point is that packages in Perl do not have to have anything to do with objects. They can be just namespaces. Maybe it's a little hard to define the distinction between group 2) and 3), but as I understand it the distinction is "do you HAVE to use objects? Do even things that have no point whatsoever to ever be objects HAVE to be objects?"

        Jenda
        Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
           -- Rick Osborne

        Edit by castaway: Closed small tag in signature