Live data from Hacker News

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

channel9.msdn.com

21–30 of 68 posts

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

#21
post #7

The first six minutes alone are worth a listen if you're in a rabble-rousing mood.

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…

> I'm all for rabble-rousing, but if you're throwing punches you should know what you're talking about.

http://en.wikipedia.org/wiki/Erik_Meijer_(computer_scientist...

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

#22

(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…

Very interesting work. Is there a development list or some other way to follow progress?

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

#23
post #9

Earlier quoted context omitted.

When you say that he's mocking Microsoft engineers, is that because of the Visual Basic comments? Because Erik actually enjoys VB and was responsible for adding some features to it. He's a former employee, so there's context... And I don't think he's being dismissive of reactive programming, he's dismissive of that definition, which is too broad. He was one of the main proponents of Reactive programming inside Micros…

> 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…

>"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."

It's like you've never worked at a tech shop with a sales team. Also keep in mind that it wasn't meant to be taken seriously or literally. If his audience wasn't terribly offended by it, why are you?

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

#24
post #22

(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…

Very interesting work. Is there a development list or some other way to follow progress?

Well, there is the main company website[1], but that's more for "marketing" purposes.

In the future, there will be a website dedicated to SolScript itself. This website will be the "technical" website. We already have a domain [2], but there's no website there.

Right now, we are working on getting SolScript into production. This thesis was really the first time anyone ever wrote anything about SolScript. Part of my job, in the future, will be to write blog posts and create tutorials. I'll definitely keep HN posted!

[1] http://www.unmanned.aero/

[2] http://solscri.pt/

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

#25

(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 industry, so that has me curious.)

At the surface of it this looks like a 'textual spreadsheet' with the lines replacing the cells of the sheet.

This 'spreadsheet' is then evaluated 'x' times per second to satisfy the hard real time requirements.

How do you stabilize the results from one 'tick' to the next? Do you keep a shadow copy that you work on with all the results posted to the next generation?

There is something funny about a person working for a small software outfit choosing a format for textfiles (for really good reasons) because Microsoft or Apple might not be around when the files need to be read. I get your reasoning and agree with it completely but you have to balance that against the chances of your own company not being around anymore either.

How much of the software of the original Boeing 747 is still in use today? I'd imagine there are no fuselages that have not been upgraded multiple times since the first 747's took flight. So the lifespan of the documentation is roughly the same as the lifespan of the software.

Are there any public sources out there?

Here are some of the oldest 747 airframes known to be still on active duty:

http://www.airliners.net/aviation-forums/general_aviation/re...

But that does not say much about the avionics in them.

Do you intend to release the source to solscript in order to profit from the 'many eyes' out there to reduce the number of bugs in the runtime? (Which can't be written in solscript, so effectively will have to be written in some unsafe language.)

I like that markdown trick a lot, that's applicable to just about every programming environment, see:

http://michael-sokol.tumblr.com/post/13112309135/literate-pr...

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

#26
post #5

The first six minutes alone are worth a listen if you're in a rabble-rousing mood.

I definitely wouldn't mind watching more of his presentations. He's pretty good.

There's a classic one where he spends 20 minutes mocking the Gang of Four for not realizing that Iterators and Iterables should have a dual. I'll try and find the link.

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

#28
TL;DR

Reactive programming is ill-defined and over-hyped, so let's talk about types and math instead (plus some not-very-subtle in-jokes about Microsoft).

An enumerator is basically a getter with the ability to fail and / or terminate. It might also return a promise rather than a value. An enumerable is a getter that returns an enumerator. We can express all this very cleanly in generic types. And if we take the category-theoretic dual of these types we get the observer and observable types.

So who needs reactive? ;-)

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

#30

(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…

Haha, that's a lot of questions. Let me try to go over them.

I say SolScript is "duck typed" and "scripted", because that's how it feels to program SolScript. However, under the hood, SolScript is a statically typed, compiled language.

About the "spreadsheet" idea, that is exactly what the SolScript IDE (Solide) is going to be. There will be a spreadsheet mode, which displays the source code as a spreadsheet. The last chapter talks about Solide, if you want to know more. (The creation of Solide is going to be my job, and I've been watching Bret Victor videos, all day yesterday, for inspiration.)

We have no "deep copy" of the data. The data is simply mutated in place, for performance. The compiler knows in what order it has to update the datacells, so SolScript users don't notice any of this. If I say `b = a`, then `a` will be calculated before `b` uses it. (If you want the value of `a` before `a` is updated, you say `b = previous a`.)

The whole "plain text" argument is about the fact that companies can die. So can (UN)MANNED, of course. The difference is that plain text files will always be readable, in contrast to Word files. You don't need our software to read plain text documentation.

Releasing the source is not something we plan to do (for now). We are not against the idea, but right now we have other priorities. There will probably be a gratis version, even for commercial use. Only that version won't be certified.

Yes, SolScript is written in an "unsafe" language: C. This makes it extremely cross-platform. We can run on Linux, OS X, Windows, iOS, VxWorks... The coding standards of our C code are extremely strict. Avionics style.

And about Markdown, yes that could be applied to other programming languages. BUT SolScript integrates with Markdown on a whole new level. For example, sections in Markdown are the scopes or namespaces of a SolScript program. Markdown is built into SolScript, not tacked on.

Edit: Circular dependencies really make no sense, in a declarative programming language. Defining `a = b` and `b = a` has no clear meaning, so the compiler will throw an error. However, you can define things recursively using `previous`. For example: `a = b + 1 initially 0` and `b = previous a`. In this case, `b` is 0, 1, 2, 3... and `a` is 1, 2, 3, 4...

Post reply on HN