back

by jeffreyrogers·12y ago·view on hn ↗
I've read a number of papers recently discussing various software design techniques for improving the ease with which bug-free code can be reduced. Most of these papers are infeasible in practice because they rely on new language features that aren't found in any mainstream language. For example, the paper "Out of the Tar Pit" suggests "Functional Relational Programming" as a method of reducing complexity in software. Unfortunately, I can't evaluate the efficacy of FRP in practice because there is no language allowing for it, and even if there were, it wouldn't be a language anyone would use since there would be no support for it.

In contrast to those approaches, Lamport's ideas seem quite reasonable and have the benefit of being language agnostic. He definitely has a lot of interesting ideas here!

2 comments
> For example, the paper "Out of the Tar Pit" suggests "Functional Relational Programming" as a method of reducing complexity in software. Unfortunately, I can't evaluate the efficacy of FRP in practice because there is no language allowing for it

Are you sure?

http://clojure.com/blog/2012/02/03/functional-relational-pro...

FRP is implemented in Haskell, Scala, Java, C#, and JavaScript off the top of my head.
I suspect you are confusing Functional Relational Programming with Functional Reactive Programming. The latter revolves around programming with time-varying streams of values and has been implemented many times. There is an interesting discussion of related problems at http://lambda-the-ultimate.org/node/4900#comment-78949.

Functional Relational Programming is defined by using relational constructs to model data and manage change and using pure functions to express computation. The only serious implementation I'm aware of is http://boom.cs.berkeley.edu/

Oh, you are absolutely correct. My mistake!