The React tutorial rewritten in Om
github.com
github.com
I'm a tad miffed about the size (70KB), but then again it is smaller than Angular.
I took a wait-and-see attitude with Angular/Ember/Meteor/Yet-another-Express, they are all neat in a way but never completely shoo away the feeling that the whole Javascript MVC thing is some sort of programming Vietnam.
The OP is totally different and alien and actually gives me hope! Hurrah! Exciting times.
This is awesome work. Really looking forward to seeing where you take it.
somewhat aside- am i crazy for thinking React should bundle some sort of internal style processor? having your template and and your logic in the same place, in the same language, (cljs + react) seems to transcend the dirty feeling of template interpolation (Backbone muddies your JS with selectors. Angular muddies your HTML with directives and logic).
having your styles in the same place, in the same language, seems like next step to truly portable web components. probably lots of ways to do this wrong but probably at least one way to do it right.
if styles were solved in a similar way i think you'd be able to get rid of the notion of a selector all together (though it would compile down to normal selector based css).
also, components would just be easier to grok and more portable.
As long as the styling code could remain simple to update independently of the business logic, it would be great to have it all part of the same internally-consistent dev system.
Then we rapidly started to "encapsulate", when OOP boomed. Now "packaging" is the main problem every programming language and OS has to solve. Today we end up implementing lightweight packages, so called components and we think it's a new idea to use statemachines to keep the interdependent component's state coherent. This idea was influenced by the boom of Interpred programming languages. Although 40 years ago, there were programs that only focused on allowing "components", which were "pluggable" modules back then, to be controlled by the DataFlow Pattern [1].
To formalize the main problem of the HTML,CSS and Javascript abstractions, blended into the DOM, we have to recognize that Data (Input) and UI (Output) are bound to States (Data Flows [2]). A solution to these problem is to use the FBP paradigm [3] in the browser engine and to implement the UI as an array of graphs. Usage of vectors allow the use of highly advanced mathematical solutions to be used to apply a optimization much easier than it is possible today, without rewriting the browser engine. For instance creating a UI now just means dragging and dropping items into a pane, which creates a matrix of number sequences that have relations to each other, yes basically a graph.
Because the UI and State is deterministic (except for Networks protocols!?), we can use the Knaster–Tarski theorem [4] to solve such DataFlow problems. Using Topological Data Analysis (TDA), we can even get deep level insight into UI & usage patterns that evolve and recur.
"Control of the language we use can be used to restrict our thinking. I find that this pattern is proving George Orwell's Newspeak [6] is similar to programming languages today.
What do I know, so please correct me when you think that there is no such pattern, or when you think something is wrong in what I said. So that others will profit from it.
--
[1] http://en.wikipedia.org/wiki/Dataflow_programming
[2] http://en.wikipedia.org/wiki/Dataflow
[3] http://en.wikipedia.org/wiki/Flow-based_programming
[4] http://en.wikipedia.org/wiki/Knaster%E2%80%93Tarski_theorem
[5] http://en.wikipedia.org/wiki/List_of_programming_languages_b...
i can't see where CSS or style becomes relevant in the problem you are defining. but, as i understand, what you defined seems to be the principle behind React. no?
I would like to add that all of this is highly similar to AI and rebuilding our brains. Because those are also highly networked units that can topologically independently compute in parallel and in batches.
What all of this leads us to is compression or entropy and the moral of the story is that entropy is the function of state.
PS: It took me 2hours to remember the word Cliometrics. I usually cannot forget things, but when I do, I remember the beginning of a word. Which is totally frustrating, however I suddenly remembered it.
i guess the question i struggle with then is, what is so nice about that separation? and, could those problems not also be solved in JS?
tbh. I found out about pump, by reading the github issues in OM.
Also, why clojurescript 2127 ? I thought 2120 is the latest stable version.