[Haskell-cafe] NoOO languages
Alberto G. Corona
agocorona at gmail.com
Wed May 20 19:09:33 UTC 2015
OOP is a kind of low level programming. At the heart, OOP is a
sophisticated way to integrate state machines. The problem that OOP tried
to solve was event handling (SIMULA and Smalltalk) The inversion of control
aka. "state machine" is the standard solution for this problem. It is the
model that drive web frameworks and GUIs. Whenever there are asynchronous
things like HTTP requests, interruptions , mouse events, there are state
OOP just split the state machine in smaller states machines, encapsulating
each small piece of state together with the methods that serve them. So OOP
is a more controlled way to deal with the problem of inversion of control.
But OOP is like integrating chips without a serial bus. the data is in the
form of state embedded in each component. This state must be extracted with
explicit calls from one element to another ,with one-to-one
connections. With a serial bus the data flows and each element get its
data on the fly. If a component need it he just catches it from the bus.
Without a serial bus each element must explicitly connect to each other in
precise ways, There is no composability. With a serial bus the hardware
component can be plugged in a single socket.
OOP is like creating custom hardware everytime for every problem. since
there is no composability, everything must be done from scratch. there are
no reusable objects beyond basic containers encapsulated in objects.
The reactive concept is basically an state machine with a single method
handler: the reactive expression, which is pure more or less. This
expression is called to respond every asynchronous event. This single
handler is preceded by an event preprocessor, that is called before
calling the reactive expression.
But by taming continuations, Monadic programming with the asynchronous
effect can provide the software equivalent of the serial bus connector, and
can let the programmer to express the flow of an entire application with
asynchronous things happening all along the expression, not only on the
top, like interruptions or events, that may trigger with multiple threads,
all of this within in a single, seamless, monadic expression. And moreover,
this application may be composable with others:
2015-05-20 17:42 GMT+02:00 David Kraeutmann <kane at kane.cx>:
> OO is OOver.
> On May 20, 2015 4:48 PM, "Aaron Levin" <vilevin at gmail.com> wrote:
>> Marketing is rarely about truth. While you are correct that "Reactive"
>> programming is not specific to Functional Programming, I believe it is
>> being conflated with it by industry and non-FPers.
>> Anyway, it was just a comment / observation I've had. As Ben said, we
>> should steer clear of anything "Nooooooooooooo" related.
>> Marketing is hard. People are confusing. Sloganeering is an art. NoOO is
>> doomed to produce too many memes. NotOnlyOO makes me think of YOLO for some
>> Aaron Levin
>> On Wed, May 20, 2015 at 10:30 AM, Bardur Arantsson <spam at scientician.net>
>>> On 05/20/2015 04:17 PM, Alois Cochard wrote:
>>> > Well, I'm not sure to see how the "Reactive" marketing campaign would
>>> > related to one about NoOO.
>>> > If you look at akka source code (or even usage example), it's imo very
>>> > from the values you can read on the manifesto linked by Lars.
>>> I think it's akka-streams that's supposed to be following the
>>> Reactive hype-train.
>>>  Which is currently at 1.0-RC2, I think.
>>> Haskell-Cafe mailing list
>>> Haskell-Cafe at haskell.org
>> Aaron Levin / Weird Canada
>> www.aaronlevin.ca / www.weirdcanada.com
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe