I'm not a big fan of Hiccup actually. As you mention the diff/patch library, what's your solution? I tried in my project and only got a very simple solution with some bugs. How about yours?
On Fri, Apr 22, 2016 at 3:58 PM Julien Eluard <[email protected]> wrote: > It's more a merge implementation based on hiccup syntax. You can use it to > replace React, especially to create components. > Maybe there is an opportunity to extract a generic diff/patch library? > > Le ven. 22 avr. 2016 à 03:19, jiyinyiyong <[email protected]> a > écrit : > >> So you created another React too? >> >> My projects are not yet stable, I will add examples later. >> >> On Thu, Apr 21, 2016 at 11:56 PM Julien Eluard <[email protected]> >> wrote: >> >>> Hi Jiyin Yiyong, >>> >>> nice to see some alternatives to React in Clojure! I have to dig more >>> into your blog posts to understand your ideas but it definitively looks >>> interesting. >>> May I suggest to have some documentation/examples in raw ClojureScript >>> to help people grasp the syntax? >>> >>> You might also be interested in some libraries I wrote: >>> * https://github.com/jeluard/hipo create/reconciliate DOM nodes from >>> hiccup syntax >>> * https://github.com/jeluard/lucuma CustomElements boilerplate >>> * https://github.com/jeluard/picada a collection of google material >>> elements, built on both former libraries (WIP) >>> >>> Julien >>> >>> >>> Le jeu. 21 avr. 2016 à 12:13, Jiyin Yiyong <[email protected]> a >>> écrit : >>> >>>> I want to see if anyone is already getting bored about React.js like >>>> me. It's still fun to try React Native but React.js is old, its 2012 >>>> technology(not quite sure about 2012, but old enough even 2013). React is >>>> not nicely decoupled, and not a great framework for animations. It's >>>> becoming as useful and as mature like jQuery. I think we can go beyond. >>>> >>>> Well, I've been programming for 5 years only from learning C in school >>>> and trying Python on my own(not counting course on Visual Basic since it >>>> was only a course). I can't build a whole framework like React. However, I >>>> can see some vision ahead and try them with my code. So they are Respo and >>>> Quamoit. Both are experimental project and in early stages(Docs not ready, >>>> sorry for that). Just hope they may be sources of inspirations. >>>> >>>> Respo >>>> >>>> repo https://github.com/mvc-works/respo/ >>>> example app https://github.com/Memkits/wanderlist/ >>>> >>>> Respo is like React but a lot simplified and decoupled. I implemented a >>>> simpler DOM diff algorithm and bound events. By now I can build very simple >>>> apps with it. I think the shiny parts are: >>>> >>>> * components are designed to fit with caching so that server side >>>> rendering would be faster >>>> * DOM diff/patching are decoupled, so possible to diff on server and >>>> patch at clients >>>> * element DSL in ClojureScript syntax, not JSX style >>>> * component states are stored global, so not losing during hot swapping >>>> >>>> You may find more on Hashnode and Youtube: >>>> https://hashnode.com/@jiyinyiyong/stories >>>> https://www.youtube.com/user/jiyinyiyong/videos >>>> >>>> Quamolit >>>> >>>> repo(alse example) https://github.com/Quamolit/quamolit >>>> components source code >>>> https://github.com/Quamolit/quamolit/tree/master/cirru-src/quamolit/component >>>> >>>> Quamolit is an experiment on canvas and it relies on Hit Regions APIs >>>> to work, so not even usable for build real apps. The nice thing is, in >>>> React it's difficult to make nice animations, in declarative canvas >>>> libraries there's no abstractions to compose components like React, Respo >>>> is maybe a way to combine them. You can browse the source code and take a >>>> look on my Youtube. >>>> >>>> For each component, there's functions of `init-state update-state >>>> init-instant on-tick on-update on-unmount render`, you may see what's going >>>> on by the names. So besides **state**, Quamoit introduced **instant** as >>>> the animations states, and it will be updated by **on-tick**(as >>>> requestAnimationFrame calls) **on-update**(as global store and states >>>> changes) **on-unmount**(as the component start leaving). >>>> >>>> Currently there are only videos and tweets(@jiyinyiyong) on Quamolit. I >>>> will add post when it's more stable. >>>> >>>> Projects are in early stage and when I go back to work a weeks later I >>>> will probably spend much time on them. I think my experience is not enough >>>> for real world frameworks, I hope someone may pick my ideas and use them in >>>> their own projects. I used to write in Chinese at >>>> segmentfault.com/blog/jiyinyiyong and I will later write on Hashnode >>>> in English to see if someone is interested. >>>> >>>> Hope you like my ideas. Thanks. >>>> >>>> -- >>>> Note that posts from new members are moderated - please be patient with >>>> your first post. >>>> --- >>>> >>> You received this message because you are subscribed to the Google >>>> Groups "ClojureScript" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>> >>> >>>> To post to this group, send email to [email protected]. >>>> Visit this group at https://groups.google.com/group/clojurescript. >>>> >>> -- >>> Note that posts from new members are moderated - please be patient with >>> your first post. >>> --- >>> >> You received this message because you are subscribed to a topic in the >>> Google Groups "ClojureScript" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/clojurescript/3AojzHsh3u0/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >> >> >>> To post to this group, send email to [email protected]. >>> Visit this group at https://groups.google.com/group/clojurescript. >>> >> -- >> Note that posts from new members are moderated - please be patient with >> your first post. >> --- >> You received this message because you are subscribed to the Google Groups >> "ClojureScript" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at https://groups.google.com/group/clojurescript. >> > -- > Note that posts from new members are moderated - please be patient with > your first post. > --- > You received this message because you are subscribed to a topic in the > Google Groups "ClojureScript" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/clojurescript/3AojzHsh3u0/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/clojurescript. > -- Note that posts from new members are moderated - please be patient with your first post. --- You received this message because you are subscribed to the Google Groups "ClojureScript" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/clojurescript.
