POV-Ray : Newsgroups : povray.general : Pov 4.00 question : Re: Pov 4.00 question Server Time
7 Aug 2024 01:26:36 EDT (-0400)
  Re: Pov 4.00 question  
From: Warp
Date: 30 Jan 2002 16:55:30
Message: <3c586bd2@news.povray.org>
Jan Walzer <jan### [at] lzernet> wrote:
: you mean, if it would something like the following, it wouldn't be OO ?

  Precisely. What you described is a typical modular language.
  Modular languages (eg. Modula 2) can have classes, member variables,
member functions, public and private parts, etc, but if they don't support
inheritance and dynamic binding, they are not OO.

  OO just happens to have been the hype the last 10-20 years and people call
almost anything "object-oriented". There was a joke in some OO forums that
if you want to sell your cat, you shouldn't praise how nice and clean etc
the cat is, but you should say that the cat is object-oriented.
  People have some misunderstandings about what is object-oriented and what
isn't. Most of the time you hear/read about people discussing
object-orientedness, they are actually speaking about modularity.
  It's of course true that modularity is a very essential part of OO
programming (OO is like modularity + some extra stuff).
  I'm sure that many of these people, if they saw a language like Modula 2,
they would call it an object-oriented language.

  As I said earlier, a modular language becomes object-oriented when it
implements at least the two requirements: Inheritance and dynamic binding
(mostly virtual functions). Some modular languages do even support some
kind of inheritance (I don't remember if some version of Modula does), but
they don't support the dynamic binding part.

-- 
#macro M(A,N,D,L)plane{-z,-9pigment{mandel L*9translate N color_map{[0rgb x]
[1rgb 9]}scale<D,D*3D>*1e3}rotate y*A*8}#end M(-3<1.206434.28623>70,7)M(
-1<.7438.1795>1,20)M(1<.77595.13699>30,20)M(3<.75923.07145>80,99)// - Warp -


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.