Is there any open-source classic app (ie talking with a server etc) in Elm? It looks quite interesting and one of my colleagues used it a bit some times ago (https://news.ycombinator.com/item?id=9068685) and liked it.
Hm, if you mean website, the elm-lang's site itself and the package search is written in elm. There is the usual todo app as well. Not sure about something like an chat application though.
I am planning to work through the [1] to see if I should switch from the clojure-script/reagent combo on my next side project :)
Agree. ReactJS was inspired by Elm as far as I know, Purescript has a framework purescript-signal that is inspired by Elm, ClojureScript has Zelkova that is inspired by Elm, and on it goes.
Makes it more and more tempting to just go straigth to the source and simply use Elm.
> Makes it more and more tempting to just go straigth to the source and simply use Elm.
Redux was inspired by Elm's update concept, not React.
I was on that train of thought too after using Redux had the side effect of giving me a conceptual understanding of how the update step works in Elm, but I found that "simply" really isn't the right word if your experience is primarily with imperative languages.
e.g. building an app starting from HTML5 history and routing built on top of it is just another API if you already know JavaScript, but it's an entire new set of concepts to learn if you're not au fait with functional programming, as I quickly discovered!
(FYI Wikipedia says Elm was released in 2012 and React in 2013, but that doesn't mean Facebook/Instagram weren't working on it before. Also Asana has been doing similar things since ~2009.
There isn't much new in React; they just got the timing right and went with a very solid design that was innovative enough. It really does look a lot like SOL and other immediate mode UI frameworks, with a touch of optimization for the web and some better identity management. But I don't get why people call it FRP though, its notion of components and composition is completely different from what originated in the original Hudak/Elliott work on Fran with higher order function compositions over signals (react is much more object based and much less functional). With Elm, the lineage is obvious, but for React it just seems like a misapplied label.
Higher level concepts in area so rife with incidental complexity like programming tend to get lost in the details of the implementation. Patterns and abstract concepts like FRP can only be understood by with implementation. Ideas tend to bend before working code, then again with an example app you enthusiastically write for your blog, and then again when someone bases her next project on that (not to mention HN discussions...).
I like to learn thing this way, and not care that much about what the alphabet soup entails. Try to find what is a proper JavaScript MVC framework. And then write the first one yourself ;)
I'm currently reading Clojure Reactive Programming, which differentiates from FRP using another term, CES for Compositional Event Systems, and goes to some length into history of these concepts, like higher order FRP, First Order FRP, Arrowized FRP, and of course Observer pattern and Data Flow programming. There is also Elm's creator's presentation at Strange Loop last year of the same topic:
I saw Evan's talk at Splash, and while it was good, I think the history is far more complex and nuanced than you can fit into a one hour keynote! When I hear CES I think component-entity systems (also popular in Clojure), but they have been rebranded as entity component systems (to not conflict with event systems), while Rx (Erik Meijer) would be more of where compositional event systems came from.
I have my own system that supports side effects with transactional semantics (see http://research.microsoft.com/en-us/um/people/smcdirm/apx/in... for the latest). I try to keep my bibliography straight since the questions will always be asked (how does your work compare to X?).
Yeah, and without Signals to make things like mouse position transparent. I started using CSP in Cljs + React applications, but I find signals to be a better abstraction for UIs.