fitchb
Make Sense of Complex Apps – Cerebral 1.0 Released
A few things I like about it:
-cerebral-router - https://github.com/christianalfoni/cerebral-router.
It's the first routing implementation I've seen that works in a reactive/component architecture that truly embraces the single state store. Routes simply point to a state in your app and you can update the URL bar as needed. Huge contrast to the normal approach of mapping a URL directly to a set of components in your view layer.
-signals
State changes happen when signals are triggered. Signals then call actions or chains of actions, which are simply functions. You can look at these chains of actions and easily reason about your app's behavior. These actions are also incredibly composable-- using all the nice functional composition techniques you already know: functions can return functions, or function chains, chains can be composed, actions can be reused across chains etc. all without sacrificing readability, which is key!
-debugger - https://www.youtube.com/watch?v=c5lZbJ95tqc
Cerebral has a chrome extension that logs all the signals in your app, so you can easily observe what's happening. You can inspect the state tree and soon you'll be able to inspect the input and output of each action that's run. Even more impressive, you can "time travel" debug ala Elm, Redux by replaying actions back (and forward).
I know I sound extremely bullish (perhaps zealous!). But, I really think Cerebral deserves more exposure. Come by and ask questions on Gitter: https://gitter.im/christianalfoni/cerebral
But, I agree with you, the former-- changing the fundamental computation model-- is the more exciting (and harder) of the two.
I've been programming professionally for about three years. When I got my first job, I spent days setting up ruby/rails/zsh/vim/git. I was seriously dumbfounded. I could not believe that programmers (in 2011) actually worked this way. And I was even more perplexed that the main tools for reasoning about my code were print statements, browser reloading, and unit tests (so, so many unit tests). This is "the pain we forgot", except it's recent enough that I've never forgotten it.
Thanks for your work. I'm looking forward to a better programming for my kids. And hope to support any way I can.