[racket] An elm-like racket language?

From: Gregory Cooper (ghcooper at gmail.com)
Date: Sun Nov 17 14:46:37 EST 2013

On Sat, Nov 16, 2013 at 3:42 PM, Daniel Prager <daniel.a.prager at gmail.com>wrote:

> > Similarly to what Shriram said, I think a big problem with FrTime is
> that it's monolithic. It could (in my opinion) be greatly
> > improved if the core update model were decoupled from any language
> extensions, global state, or threads, i.e., made into > something that
> could be independently instantiated, tested, and combined with other
> libraries. This would make it more
> > modular, easier to understand and maintain, etc.
>
> As a prospective adopter of FRP, at a high level what I'd really like to
> see is clearly explained examples of its practicality -- nay, superiority
> -- in one or more of the sweet-spot application areas: e.g. GUIs,
> simulations, games.
>
> Would the kind of changes that you've opined make such demonstrations more
> feasible?
>

FrTime started with the question of what would happen if you took an
existing language (Racket) and added implicit dataflow evaluation to it.
The vision was to make dataflow evaluation "make sense" for as much of
Racket as possible, and to avoid adding extraneous concepts. In the
resulting language, a lot happens implicitly, and the programmer has
relatively little control over the reactive evaluation. Writing non-trivial
applications typically requires a fair amount of control, so FrTime is
often not suitable.

What I was trying to suggest above is approaching the problem from a
different direction: i.e., start by considering higher-order reactive
evaluation in its essence, then investigate how to build a language around
it. For example, the Reactive Extensions (Rx) library for .NET is a good
example of a language-independent distillation of higher-order reactivity.
I could imagine something like it serving as the basis for a family of
reactive languages.

With a cleanly factored core, it should be easier to experiment with
higher-level features that make a system better suited for real-world
applications. An example of such a feature is the work on "reactive lenses"
to support bidirectional dataflow propagation. This overcomes a major
limitation of traditional dataflow for modeling graphical user interfaces.

In brief, yes: I think the sort of redesign I'm imagining would result in a
more powerful and flexible system.

Greg

Dan
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20131117/1050f85c/attachment.html>

Posted on the users mailing list.