Live data from Hacker News

Erik Meijer: Duality and the End of Reactive [video]

channel9.msdn.com

61–68 of 68 posts

Re: Erik Meijer: Duality and the End of Reactive [video]

#61
post #60
post #48

Earlier quoted context omitted.

One criticism is a lack of ability to express things like "back-pressure" where consumers indicate to producers to slow down, stop, etc..

That implies a two way dispatch which is not in the remit of reactive surely? A system that's closer to Haskell's pipes is probably what you'd want. I think ISubject has the interface for a pipe, with IObservable being a Producer equivalent, and IObserver being a Consumer equivalent. So there may be some cunning that could be done with your own implementations [to create an Effect]. (This is just wild brainstorming w…

Reactive = resilient + eventbased + responsive + scalable

I think it is relevant, what allows you to ignore the behavior of the system in favor of a component?

Dean wampler in a recent talk spoke of "Reactive Streams" which add this capability, but I have not seen it yet.

I have not seen anyone do this in Rx yet. Also ideally the back pressure is out of band to avoid starvation of that channel

Re: Erik Meijer: Duality and the End of Reactive [video]

#62
post #61
post #60

Earlier quoted context omitted.

That implies a two way dispatch which is not in the remit of reactive surely? A system that's closer to Haskell's pipes is probably what you'd want. I think ISubject has the interface for a pipe, with IObservable being a Producer equivalent, and IObserver being a Consumer equivalent. So there may be some cunning that could be done with your own implementations [to create an Effect]. (This is just wild brainstorming w…

Reactive = resilient + eventbased + responsive + scalable I think it is relevant, what allows you to ignore the behavior of the system in favor of a component? Dean wampler in a recent talk spoke of "Reactive Streams" which add this capability, but I have not seen it yet. I have not seen anyone do this in Rx yet. Also ideally the back pressure is out of band to avoid starvation of that channel

I guess have an 'out of band' observable? Each observer that needs to communicate instruction back to the original observable can drop messages into an OoB observable, the original observable can subscribe to the OoB observable and then react to those messages as it sees fit.

Or do you think it should be an inherent feature of the stream itself? Isn't the point of IObservable to be the dual of IEnumerable, so calling Select on IEnumerable is a projection from A -> B, calling Select on IObservable is also a projection from A -> B, I think having an additional effect breaks that duality. So an Observable that has a side-channel or out-of-band stream wouldn't be an Observable, it'd be another category (which is why I suggested Pipes).

I totally understand why you'd want something like that, I'm just not sure it's fair to suggest Rx has design mistakes because of this though.

Re: Erik Meijer: Duality and the End of Reactive [video]

#63

Earlier quoted context omitted.

And Kotlin, and I would dare say Rust.

I may be living under a rock, but is Kotlin really used in production a lot? And Rust? Does anyone dare basing production stuff on Rust like now? With breaking changes all the time?

There's only 3 production deployments of Rust that I know about. It's not recommended to use Rust in production atm.

Re: Erik Meijer: Duality and the End of Reactive [video]

#64
post #37
post #29

I'm confused as to why Erik would want anything to do with MSDN? He slates MS on a regular basis. Also, I suspect very few amongst the YC/HN developer community would touch Microsoft products.

Other than him having been employed by MS and making major contributions to .NET like LINQ and Reactive extensions? Yeah I wouldn't know why he would want to have to do anything with MSDN

He's not employed by MS. He left a few years back.

Re: Erik Meijer: Duality and the End of Reactive [video]

#65
post #62
post #61

Earlier quoted context omitted.

Reactive = resilient + eventbased + responsive + scalable I think it is relevant, what allows you to ignore the behavior of the system in favor of a component? Dean wampler in a recent talk spoke of "Reactive Streams" which add this capability, but I have not seen it yet. I have not seen anyone do this in Rx yet. Also ideally the back pressure is out of band to avoid starvation of that channel

I guess have an 'out of band' observable? Each observer that needs to communicate instruction back to the original observable can drop messages into an OoB observable, the original observable can subscribe to the OoB observable and then react to those messages as it sees fit. Or do you think it should be an inherent feature of the stream itself? Isn't the point of IObservable to be the dual of IEnumerable, so calling…

Well, speaking to the point of duality, I think Rx solves the problems it sets out to solve very nicely, and I would not say it has "design mistakes".

It certainly seems possible to use Rx primitives to build more functionality, yes.

Though everyone will have to build this themselves (if, of course, they even need it), and they'll probably all build it differently, where other lib's have this concept baked in (i.e. Pipes).

IMHO, libraries shouldn't try to do everything anyway, and to that end, Rx does it's thing and does it well (unix philosophy), as it's based on these mathematical abstractions.

Re: Erik Meijer: Duality and the End of Reactive [video]

#66
post #7

Earlier quoted context omitted.

Wow, I listened to the first six minutes on your recommendation and was pretty put off. The speaker mocks his audience of Microsoft engineers (like not in fun, he is really saying their culture sucks). He is dismissive of "reactive programming" as nonsense from architecture astronauts, without giving a remotely fair description of what it actually is. His straw-man of "var x = 10; println(x); x = 42; println(x)" is n…

When Erik mocks reactive programming I believe he is reacting to the Reactive Manifesto ( http://www.reactivemanifesto.org/ ) currently being pushed by Typesafe and others. My reading and feelings concerning the Manifesto mirror Erik's so I enjoyed listening to his mockery of it. I didn't really notice the MS bashing. The issue with the Reactive Manifesto is that it is largely waffle. There are styles of programming…

Erik is one of the original signatories of that manifesto.

Re: Erik Meijer: Duality and the End of Reactive [video]

#67

(Shameless self-promotion) I just finished by thesis on a new programming language called SolScript, which is reactive and based on "math". It's a hard real-time language for avionics software, BUT it has type inference and duck typing (everything is "symbolic"). SolScript is supposed to look familiar to anyone with a basic knowledge of mathematics. It's also a literate language, because every SolScript file is a Mar…

- real time - avionics - type inference - duck typing You like challenges don't you? ;) I like the literate component a lot, I can see why that would be a very big plus when you're building avionics software. Bookmarked your thesis. What was your reason for going for 'duck typed' and 'scripted' rather than strongly typed and compiled? (Which I would assume to be a whole lot more suited for the intended branch of indu…

SolScript really looks cool. I'm also writing something, it's a generic paper about FRP though. Gonna cite your paper :) Cool that you used duck-typing, although it's causing much more complexity, but it's great for Reactive Programming. Have a look at this paper, it might be of help for you http://lambda-the-ultimate.org/node/2438

My paper is in german, but I'll publish it on github and translate it (time given). I've also got a hypothesis on how FRP can be abstracted into a domain model using AI and non-axiomatic reasoning. But I hope I don't run in a dead-end there though, it's just a theory :)

Re: Erik Meijer: Duality and the End of Reactive [video]

#68
post #58

Earlier quoted context omitted.

> When you say that he's mocking Microsoft engineers, is that because of the Visual Basic comments? "In Redmond, like a lot of people talk about code but don't write it, so I think Microsoft can only come back if, you know, they start writing more code." > And I don't think he's being dismissive of reactive programming, he's dismissive of that definition, which is too broad. The definition seems pretty reasonable to…

Erik was fired which is unbelievable; it's like firing Feynman. He obviously wasn't happy with Ballmer or the culture, and frankly neither were most of the MS employees in that audience. Ballmer's gone and suddenly everything MS does is becoming open sourced, for example. "A miracle". And just because quantum might sound cool, naming a razor blade after it doesn't make it quantum physics.

Correction - Erik wasn't fired.
Post reply on HN