In Elm 0.17, signals were removed, and subscriptions were added. Evan says
here ( http://elm-lang.org/blog/farewell-to-frp ):
>That is all nice, but the big benefit is that Elm is now significantly
easier to learn and use.
I agree! Thinking about my program in terms of MVU (model, view, update) is
easier than trying to put together a signal graph. I'm told that this
change broke things like back-in-time debugging, but I don't know why. Why
is it not possible anymore? It seems that subscriptions grew out of this
successful experiment
( https://github.com/evancz/start-app/blob/master/src/StartApp.elm ) to
find a way to simplify programming with signals.
Let's compare the signatures of the 'Program' types ('Config' in
StartApp.elm):
from https://github.com/evancz/start-app/blob/master/src/StartApp.elm :
>type alias Config model action =
> { init : (model, Effects action)
> , update : action -> model -> (model, Effects action)
> , view : Signal.Address action -> model -> Html
> , inputs : List (Signal.Signal action)
> }
from http://package.elm-lang.org/packages/elm-lang/html/2.0.0/Html :
>type alias :
> { init : (model, Cmd msg)
> , update : msg -> model -> (model, Cmd msg)
> , subscriptions : model -> Sub msg
> , view : model -> Html msg }
> }
> -> Program Never model msg
They look pretty similar! 'init' is the same. 'update' is the same. But
'view' and 'subscriptions'/'inputs' are different. 'view' lost a parameter,
and 'subscriptions' gained a parameter. The magic difference that lost us
BiT debugging must be in there, right? I recall reading that BiT debugging
was only possible when the signal graph was static. Wouldn't this
correspond to 'subscriptions' gaining a parameter? (and thus becoming
dynamic?) and about 'view', why did it have/need a 'Signal.Address action'
parameter?
I guess my question is: wouldn't it have been possible to make Elm use the
MVU model, but still allow BiT debugging? (Basically keep using the
StartApp package?) If so, why then was FRP abandoned?
--
You received this message because you are subscribed to the Google Groups "Elm
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.