Echo JS 0.11.0

<~>

bigopon 2774 days ago. link 3 points
tl;dr;

Author used Vue and was happy, trying to learn internal of it and Preact then merged & crafted them into Moon. With API of Vue, speed of Preact (according to claims in the article, it's faster than Preact)
nevf 2770 days ago. link 1 point
I'm interested to know how you see it compares with Riot.js which I've been using for a while now? 

Also is the codev for the example apps available.  I can't see it on Github.
xat 2774 days ago. link 1 point
Looks promising. Now the ecosystem around it just has to grow :)

I like that you have chosen the simple and explicit set-/get-method approach over the "convert data into some magical thing with non standard arrays and stuff"-way.
kbr 2774 days ago. link 1 point
Thank you! Super glad you like it :)
xab 2773 days ago. link 1 point
Yep, it's nice. I love Vue, so Moon is a project I will keep my eyes on.
rainjay 2774 days ago. link 1 point
There's not enough reason for me to use it
kbr 2774 days ago. link 2 points
Let me try to convince you then ;)

* Moon is first of all, blazing fast compared to the competition
* Moon has a built-in:
  * templating engine
  * component system
  * directives
* There are lightweight packages for routing and SSR
* You can have single-file components (just like Vue)
* Moon does this all in about 6kb minified + gzipped
rainjay 2774 days ago. link 1 point
Maybe I will take it into account after Moon's ecosystem is created, BTW, I don't care the difference between 6kb and 25.86kb
kbr 2774 days ago. link 2 points
Glad you might try it out :D

I think you SHOULD care about the sizes of libraries these days. The extra weight can really slow down a page. That 6kb and 25kb difference results in a 21.8ms load time (for the 25kb library), and 8ms for Moon.

This increases with the amount of plugins you add. Moon-router is 1kb, Vue-router is bigger than Moon itself!
kbr 2775 days ago. link 1 point
The goal is to have a similar API to Vue, but it is almost half the size and is faster in benchmarks.
sylvainpv 2775 days ago. link 1 point
Yet it misses the best part of Vue, which is magical dependency tracker and getter/setter converter.
kbr 2775 days ago. link 1 point
Actually, Moon DOES have a dependency tracker, and caches the values of computed properties. Instead of simple getters/setters (which can be added with a plugin), Moon provides simple method with `.get` and `.set`. Along with that, it has all of the core directives, the same component system, the same plugin system. All in 6kb minified+gzipped, with faster performance.
sylvainpv 2774 days ago. link 1 point
There is no mention of computed properties in the docs, should we use getter for that ? It seems to work: http://jsbin.com/vihawiziza/edit?html,css,js,output

I really like getters/setters or proxy interfaces for data  handling, it has several benefits regarding autocompletion, type checking and the handling of specific mutations like array splice. This is what sold me with Vue in the first place
kbr 2774 days ago. link 1 point
Yeah, the docs don't mention a couple things (yet). Check out http://jsbin.com/sosunuvuwi/edit?html,css,js,output for an example on computed properties.

The getters/setters added have an overhead and slow down the startup time of an application. I'm working on a simple plugin that can add them though, along with the array methods :)