<div dir="ltr">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 machines.  <div><br></div><div>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. <div><br></div><div><div>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.</div></div><div><br></div><div>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. </div><div><br></div><div><div>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.</div><div><br></div><div>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:</div><div><br></div><div><br></div><div><a href="https://www.fpcomplete.com/user/agocorona/EDSL-for-hard-working-IT-programmers#the-oop-non-solution-half-solution">https://www.fpcomplete.com/user/agocorona/EDSL-for-hard-working-IT-programmers#the-oop-non-solution-half-solution</a><br></div><div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-05-20 17:42 GMT+02:00 David Kraeutmann <span dir="ltr"><<a href="mailto:kane@kane.cx" target="_blank">kane@kane.cx</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">OO is OOver.</p>
<p dir="ltr">...SCNR</p><div class="HOEnZb"><div class="h5">
<div class="gmail_quote">On May 20, 2015 4:48 PM, "Aaron Levin" <<a href="mailto:vilevin@gmail.com" target="_blank">vilevin@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">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.<div><div><br></div><div><div>Anyway, it was just a comment / observation I've had. As Ben said, we should steer clear of anything "Nooooooooooooo" related.</div><div><br></div><div>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 reason.</div></div><div><br></div><div>Best,<br><br></div><div>Aaron Levin</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 20, 2015 at 10:30 AM, Bardur Arantsson <span dir="ltr"><<a href="mailto:spam@scientician.net" target="_blank">spam@scientician.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On 05/20/2015 04:17 PM, Alois Cochard wrote:<br>
> Well, I'm not sure to see how the "Reactive" marketing campaign would<br>
> related to one about NoOO.<br>
><br>
> If you look at akka source code (or even usage example), it's imo very far<br>
> from the values you can read on the manifesto linked by Lars.<br>
><br>
<br>
</span>I think it's akka-streams[1] that's supposed to be following the<br>
Reactive hype-train.<br>
<br>
[1] Which is currently at 1.0-RC2, I think.<br>
<br>
Regards,<br>
<div><div><br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Aaron Levin / Weird Canada<div><a href="http://www.aaronlevin.ca" target="_blank">www.aaronlevin.ca</a> / <a href="http://www.weirdcanada.com" target="_blank">www.weirdcanada.com</a></div></div>
</div></div></div>
<br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div>
</div></div><br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Alberto.</div>
</div>