To Rev or not to Rev

Brian Yennie briany at qldlearning.com
Wed May 4 19:04:16 EDT 2005


Xavier,

It's true, you can implement object-oriented concepts in Transcript, 
but that doesn't make it an object-oriented language.
You can write OO code in C - just implement C++ first and go from 
there, but that doesn't make C an OO environment.

The argument that you can get many of the benefits (and take some of 
the same tactics) in Rev as with true OO environments has merit, IMO, 
but saying that Revolution is OO is just taking liberty with the 
definition of Object-Oriented. Sure if you reinterpret the term based 
on what you think it should mean, you end up in one place- but if you 
associate "OO" with it's strict definition you're up a creek.

- Brian

> Im sick of this non-sense - no offense to you Mickey...
>
> Object oriented "technology" is just any way to refer semantically via 
> a
> programming language to operate on "generic" objects or objects 
> derived from
> those.
>
> RR doesn't have a memory model but it's possible to create it with easy
> commands.
>
> And I'll quote Grady Booch "it is therefore the task of the developer 
> to
> distribute such behaviors so that they may be combined in interesting 
> ways,
> giving rise to the 'self-maintaining fire' that is the mark of a 
> profound oo
> architecture." Pg 167 The Best of Booch (Sigs Reference Library - 
> Cambridge
> Univ. Press)
>
> Patterns, templates, polymorph*, abstraction, classes and all the rest 
> are
> just a matter of imagination or interpretation. If the "engine" doesn't
> support the abstraction, you write it. If they dont support 
> polimorph*, you
> branch it. ez!
>
> In Forth, it's like in C, you add a layer ++. Java, and others have 
> it...
> RunRev - doesn't have the abstraction? They do, but they is literally 
> no
> array handling to speak of compared to other mainstream languages. 
> It's nice
> to keep things easy but it makes the use and adaptability very weak 
> IMOHO.
> Sorry, it's reality...
>
> In forth or c you could develop libraries to handle arrays with little
> performance hits. In RunRev, it's another story...
>
> With one exception... If a background behavior group is considered a 
> class,
> and a card in this group is an object then you jump one step ahead of 
> any
> other environment.
>
> So... That's the TAOO object model base for data storage. It also 
> works in
> SQL or any other classic memory storage (arrays, folder/files, FMP 
> layouts,
> etc...)
>
> My 2 TAOOcentric cents...
>
> Critiques are welcome naturally!
>
> Cheers
> Xav
> http://monsieurx.com/taoo
>
>> -----Original Message-----
>> From: use-revolution-bounces at lists.runrev.com
>> [mailto:use-revolution-bounces at lists.runrev.com] On Behalf Of
>> Geoff Canyon
>> Sent: Wednesday, May 04, 2005 16:44
>> To: How to use Revolution
>> Subject: Re: To Rev or not to Rev
>>
>> On May 2, 2005, at 8:02 AM, Dennis Brown wrote:
>>
>>> On May 2, 2005, at 10:25 AM, Geoff Canyon wrote:
>>>
>>>
>>>> I'm not sure how to catalog Forth, but it's not OO (inherently --
>>>> there are OO implementations). It's procedural, certainly, but the
>>>> inherent stack gives it a definite functional feel.
>>>>
>>>
>>> Forth is not really a high level language any more than assembler
>>> is.  It is an alternative machine language based on a double stack
>>> architecture.   There have been hardware implementations of Forth
>>> as the native machine instruction set.  When emulated, the "Code"
>>> just consists of a list of addresses to the actual machine
>> code for
>>> the native functions, or addresses of  "higher level" defined
>>> function (uses a flag bit to tell which).  This makes it execute
>>> much faster than "byte code".  You can implement a higher level
>>> language within the syntax of Forth because of its extensible
>>> nature.  "Words" are defined from other words in an interpretive
>>> environment.  Because of the double stack architecture, data
>>> arguments are passed and returned on one stack and return
>> addresses
>>> are in the other stack.  It makes a very efficient and powerful
>>> architecture for developing real time machine controllers with a
>>> tiny amount of memory.  You are free to define "words" that
>>> implement an OO environment if you choose.  You could even create
>>> Rev using this as the lower level "P code", or an operating system
>>> for that matter.
>>
>> I understand how Forth works. I'm just not sure how I would
>> categorize it. On further reflection, I would say that Forth is
>> functional in about the same way that Revolution is Object-Oriented.
>> In other words, loosely. ;-)
>>
>> I disagree that Forth is no more high-level than assembler is. The
>> built-in extensibility of Forth syntax makes it much more
>> than just a
>> convenient way of handling machine language.
>>
>> gc
>> _______________________________________________
>> use-revolution mailing list
>> use-revolution at lists.runrev.com
>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/use-revolution
>
>



More information about the use-livecode mailing list