Hacker News new | past | comments | ask | show | jobs | submit login

>> ...about polymorphism, and Rebol doesn't AFAIK have anything like it - Carl shunned OO when creating Rebol.

Rebol does have objects, that's what the O in Rebol refers to. Their prototypal objects influenced by the Self language.

And it also has polymorphism "built-in" [1] via its datatypes. However there doesn't seem to be a mechanism to extend or add your own. I guess the plan was probably to make use of the utype! datatype [2] penned for Rebol 3.

I think Carl Sassenrath is fine with OO but just doesn't like how most OO languages work [3].

[1] action! datatype - http://www.rebol.com/r3/docs/datatypes/action.html

[2] utype! - http://stackoverflow.com/questions/26780398/whats-known-abou...

[3] The problem with OOL is not the OO - http://www.rebol.com/article/0425.html




Well, when I talk about polymorphism I of course mean the ability in the language to create first class polymorphic constructs. Hardwired things like [1] doesn't count :)

Further, I had read the article [3] and it seems to me that he indeed "rejected" OO in large parts after having worked with Smalltalk. That's quite intriguing (or astounding!) to me - since I agree that most so called OOP languages misses a lot of the story when compared to Smalltalk.

Personally I find polymorphism and encapsulation together with strong abilities of abstraction to be the key aspects of OO and I have never found any language that captures these things better than Smalltalk.

At the same time I also find Rebol's focus on DSLs to be very interesting - and as many may know this was also a big part of Alan Kay's FONC project.

In Spry I want to combine both. In contrast to Carl I embrace the original ideas of OO as manifested in Smalltalk. However, I couldn't care less of a lot of the overcomplicated mess that so called other OOP languages have created since then, and I also think the beauty of Smalltalk can be captured differently, for example without classes.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: