4 ms·
It's not really about a choice of language. My point is that if Om claims to be superior to other JS MVC frameworks - as it is presented as "the future of MVC
by jpatte 13y ago
It's not really about a choice of language.
My point is that if Om claims to be superior to other JS MVC frameworks - as it is presented as "the future of MVC frameworks" - it needs to be good (if not superior) in many aspects. Performance is a big deal all right, but another aspect (which seems essential to me) is that using this framework should be easy, concise and intuitive. And I've been kinda disappointed to see that the sample code given to present Om in action is not. At all. If I wanted to fiddle a bit with this code right now, to add a few features for example (like adding a timestamp besides each item indicating when it was created), I wouldn't have any clue where to start.
What bothers me is that Om has clearly been written with ClojureScript in mind, so in a way this framework is supposed to be sublimated by the language. It should "feel" right. And I know it's possible with other frameworks (and my comparison with Knockout+TypeScript was meant to illustrate that), so I expected it to be the case with Om.
- drcode 13y agoI dunno- I'm a clojurescript guy, and it seems pretty "sublimated" to me.. I think the problems React.js and Om are trying to solve are more critical when dealing with large & complex applications... I think one would see the benefits more clearly in those cases (though it feels a simpler to me as it is already)
- rads 13y agoThis sounds like a case of simple, not easy: http://www.infoq.com/presentations/Simple-Made-Easy http://www.infoq.com/presentations/Simple-Made-Easy You could add a timestamp to each todo with two changes: https://github.com/swannodette/todomvc/blob/gh-pages/labs/architecture-examples/om/src/todomvc/app.cljs#L101 https://github.com/swannodette/todomvc/blob/gh-pages/labs/ar... (defn handle-new-todo-keydown [e {:keys [todos] :as app} owner] ... (om/update! app [:todos] conj {:id (guid) :title (.-value new-field) :created-at (js/Date.) ;; <-- add this line :completed false :order (count todos)}) ...) https://github.com/swannodette/todomvc/blob/gh-pages/labs/architecture-examples/om/src/todomvc/item.cljs#L48 https://github.com/swannodette/todomvc/blob/gh-pages/labs/ar... (defn todo-item [{:keys [id title editing completed] :as todo} {:keys [comm]}] ... ;; change this line (dom/label #js {:onDoubleClick #(handle-edit % todo m)} (str (:title todo) (:created-at todo))) ...)