Hacker News new | past | comments | ask | show | jobs | submit login

Debugging a functional program is so difficult (data flow debuggers don't really exist) that equational reasoning is necessary because you want be able to fix your code otherwise. But really, mixing list comprehensions with effects is really a bad idea, and we C# programmers have no trouble avoiding it.

There are ways to tame side effects without going monads, which don't really fix the complexity problem anyways (it just makes all effects explicit). See this paper for ideas on how to do that:

http://research.microsoft.com/pubs/211297/managedtime.pdf

We shouldn't treat state like an unwanted but necessary evil, we should embrace it and deal with it.




This is the first time I see this Sean (did you post to LtU?) and it's good to see -- based on a cursory glance just now -- one's private research validated by academia! :)

I'm taking a cognitive processing model approach [with primitives of] data ("facts") and references ("values") and the memory model to handle and relate them takes the primary stage. This would allow for existing languages to take advantage of the temporal memory model (which is content addressable, btw) and also permit a native language with first class support for 'POV' semantics to also use it.

I'm calling this approach to building information systems "Optimistic Realism".


Woah, want! Glitch looks really cool. How real is it? Are there plans to make it real?

Everybody, really, if you have time and would like a look into the future, read chapter 2 of the paper seanmcdirmid posted (and co-wrote).


I want to make it real; I'm working on some interesting ways of improving performance right now. It is kind of a climb though, I have no idea when/if this would ever reach production, but it's almost a brand new world if we can make this work.


Do you have any plans to release the code you have so far? Seems it'd be a fairly big effort to catch up with where you got to so far, especially the live editor.


Actually, the really nice thing is that the live editor is easy to build on top of the programming model! Once the pieces work a bit better, I'll try to put this on codeplex (though WPF/windows only...).


Great. Is there some way we can find out when you release it?


I post to lambda the ultimate [1] often; if you check there occasionally, you can probably get a good idea of what I'm doing. Hopefully when I get this working, it will be a big enough deal that it will be easy enough to publicize :)

[1] http://lambda-the-ultimate.org/


Are there any practical systems that are usable today that implement "managed time"? (I haven't read the paper yet(!), but I just thought I'd ask to shorten the turnaround time.)

Btw, are you familiar with David Barbour's Reactive Demand Programming and if so, what are your thoughts on it?


Yes there are.

Glitch is an approximation to Backus's "Applicative State Transition Systems". see:Backus:"Can programming be liberated from the von Neumann style?" www.thocp.net/biographies/papers/backus_turingaward_lecture.pdf

Since 1980, I have applied ASTS in the development of Hard Real Time Avionics Systems Software for Military & Commercial Aircraft and Spacecraft.

I have licensed this code exclusively to Aerospace companies over the years.

It has proven its value in the development of verifiable software.

For reasons that Backus states, the approach is not easy to comprehend nor apply, and requires very specialized tools (data flow debugger & proof system).

The tool is known as "Synthesis" in the Aerospace Industry.


Not really. What Backus is advocating is applicative-style programming (what we know as FP today); what Glitch is advocating is anything but! Some of the code looks similar (indeed, we are inspired by FRP and earlier reactive languages like Esterel), but Glitch keeps everything in the world of explicit control flow rather than bury everything in data flow.


Only skimmed, but it sounds like it's in a conceptual space near STM and lvish?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: