Tell me /prog/, why are you still using lisp and scheme when you can use C++ with Object Oriented and Imperative styles. How are you supposed to make a usable application if you can't use state?
>>9 but i don't know it.
The common misconception is that Haskell has no state. That's not true, state is just controlled and reduced to the minimum necessary. You can write everything with state, but that would be writing C in Haskell.
How is C++ not object oriented? It has polymorphism, encapsulation, inheritance (even multiple inheritance)... everything needed for object oriented programming. The only thing it doesn't have is bullshit like "Everything must be a pointer" (Objective-C, Ruby...) or "Everything must be inside a class" (Java, C#)
CL and Scheme have plenty of state, it's just not forced upon you.
Name:
Anonymous2011-12-25 16:37
>>13
As far as the OO ladder goes C++ is pretty low. Only a few languages are pure OO though. Multiple inheritance is actually a sepplesnism (which was supplanted by later languages as interfaces and mixins in most cases), that runs afoul of some concepts of OO which was derived from aristotelian classification which also follows a similar idea to biological speciation.
>>16
MI already existed in CLOS, which was not a problem because it's better designed than C++'s Object System. Also, there's no clear definition of what is OO.
Name:
Anonymous2011-12-25 19:10
Have you read your The Art of the Metaobject Protocol today?
Java isn't even pure OO. Objective-C isn't even pure OO, although it's probably about a step above C++... I really don't see though why you guys think C++ is pretty poor for an Object Oriented language.
by that definition javascript is def. not pure oo.
you can't set a property on a string (unless created with new String), you can't call stuff on null, numbers, etc.
Object.getPrototypeOf("fuck");
=> TypeError: Object.getPrototypeOf called on non-object
Name:
Anonymous2011-12-26 7:54
Let's settle this once and for all.
>OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I'm not aware of them.
>Actually I made up the term "object-oriented", and I can tell you I did not have C++ in mind.
Alan Kay, inventor of the object-oriented paradigm.
>>37
Actually it does. A big part of why Ruby is fucked up is that standard practice for virtually everything is to manipulate the prototypes. It's a language built on bad practice. The way Ruby does it is about as reasonable as boxing your results in exceptions instead of using return.
Name:
Anonymous2011-12-26 17:39
>>39
This. OO design and programming is all about self contained objects that pass messages to each other.
Name:
Anonymous2011-12-26 17:45
>>40
I BOX MY DICK IN YOUR MUM'S VAGINA INSTEAD OF USING RETURN