Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

TodoMVC is a useless benchmark for the problem that this claims to be addressing. The limits we're hitting with our applications now are with BIG applications, with many routes, many views, and lots of client side logic. We're talking hundreds of files (in some cases, thousands). Of course a framework, with it's fixed overhead, is going have a bigger payload for a tiny demo app like TodoMVC, than something like this which compiles to some amount of overhead which grows seemingly linearly with application size.

That said, I'm not criticizing the framework here, and I welcome new ideas, but a better choice of benchmark is sorely needed to be persuasive here.



I had done some back-of-envelope calculations[1] when I saw it on Reddit

My conclusion was that it seemed like the file size would grow fairly quickly

[1](https://www.reddit.com/r/javascript/comments/5fcwhz/svelte_t...)


Just to follow up on this. I wrote a little CRUD app (managing a list of users). I wrote it in both preact and in svelte, wanting to see how the two grew as I added new features.

When adding the "Edit User" feature:

Svelte's unminified size grew 1.39x. Its min+gzip grew 1.2x. Preact's unminified size grew 1.06x. Its min+gzip grew 1.05x.

The final tally for an almost line-for-line equivalent app in both:

Preact:

- Minified: 15.8KB

- Min+GZ: 6.2KB

Svelte:

- Minified: 23KB

- Min+GZ: 4.8KB

So for a trivially small app, when minified and gzipped, Svelte does produce very compact results. But its growth rate (1.2x) vs preacts (1.05x) indicates to me that it would probably outgrow preact on a normal-sized app.

It would take a long time for it to outgrow the typical React or Angular stack, though.

[Edit: grammar]


Yeah the lack if a realistic benchmarking tool is a major part of this whole front end fatigue, is it just another project or can it realistically prove itself to be a real benefit for performance.


FWIW Rich Harris' other stuff is pretty solid: Ractive, Rollup, Bublé.


I was very shrug-y about this new non-framework until you pointed out it was a Rich Harris project. Definitely interested now...


Interessting, it all depends on who create a project, not what the project does.


I agree. Ractive is very cool, and with a little luck could have been the hotness that vue.js has developed into.


Yeah, Ractive and Vue felt like very similar style frameworks, though Ractive's SVG support is awesome. Shame it isn't more popular.


We use it and it is hotness.


Minified with Closure help with reduce size. I find Svelte can compile to IIFE which prove high performance than other patterns.


I find wrong that most frameworks do not include any component library. Even if there is a vibrant community, you end up with 30 dependencies which do not play well together.

I'm the author of a commercial framework for BIG applications [1]. Once you put everything on the table you can see which features should go into the framework and you end up with things like localization, date/number formatting, form validation, keyboard navigation, layouts, tooltips, routing, modals, etc. Once you have all that, you can build a coherent widget/charting library on top of it.

[1]: http://cx.codaxy.com/v/master/docs/intro/feature-list


Are there any alternatives to TodoMVC out in the wild?

I rather like https://github.com/staltz/flux-challenge myself, but I wonder if there are any other projects that are focused on more complex examples.


The 7-GUIs suite looks better, but so far only one JS framework implements it. The problem with more realistic benchmark apps (or suites) is that they require more effort to implement, so you have a selection bias towards easy-to-implement yet too-small-to-be-useful demonstrations like TodoMVC.

Something like a GmailMVC would be better.

https://github.com/eugenkiss/7guis/wiki


I like ThreadItJS[1], it's basically a mini HN.

About 100-200LOC to implement, does recursive views, xhr, routing, dynamic state tree, and the server periodically responds w/ errors (on purpose) to force you to implement loading and error states.

[1](http://threaditjs.com/)


Agree. It is useful insofar as you can quickly get a sense of what working in a given framework feels like, but the community could use some alternatives.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: