
JavaScript 2017 Rising Stars - kazup
http://slowwaker.work/javascript-2017-rising-stars
======
edem
The article only talks about quantity, not quality and that is the main
problem with javascript.

Not so long ago I had to work with graphs in javascript and none of the graph
libraries I found explained the implementation details or the complexities of
the algorithms.

It turned out that the implementations were ad-hoc and the time complexities
were bad so I had to implement my own because they did not work for real life
usage, only the example projects.

I'd rather have 1-2 options for solving a problem which are well documented
and implemented properly instead of having zounds of crappy libs which don't
worth a penny.

~~~
tomxor
Javascript graphing libraries are a pain in the arse, whenever graphing comes
up at work we all cringe at the prospect of having yet another go at picking a
library out of the millions that is: not painfully slow, not terribly written
and not poorly designed even though they are all written on top of D3. I've
also submitted PRs so some that I will not name in an attempt to optimise them
semi successfully, but you start to realise that none of these were designed
with performance in mind, most are just arbitrary collections of declarative
D3 bundled together into predefined graphs and some user configuration passed
through.

But to be a little more fair, I think a big part of the problem is that
graphing is such a subjective problem to solve, that's why there are a million
libraries - because there is no correct way to do it, and so it's all spread
so thin.

... with some exceptions, for what I do, that's scientific graphing, if you
want this you will find that all but two libraries are just not fit for
purpose. What you will want is matplotlib - but that is python. The closest
thing i've found in JavaScript is Plotly, and frankly, even from a non
scientific graphing perspective I'd still choose this library, it's quite fast
(for something object/D3 based) and is simultaneously comprehensive and
customisable, to put a cherry on top it can also use it's JSON schema to
define all aspects of a graph. - but it's not new and trendy, so it's not on
the list.

~~~
jdpigeon
Would you recommend Plotly for real-time charts that update visually around
60fps? At work we wrote wrote ours in pure D3, but it was as pain in the ass

~~~
tomxor
It's hard to do anything DOM based at 60FPS and a moderate number of points,
if that is the main crux of your problem then I think you picked the correct
route (custom D3). Still I find it's hard not to rinse peoples CPU in the
browser when doing this.

Alternatively if you have nore than 10K points it's probably time to abandon
DOM based methods and just redraw everything every frame directly (canvas /
webgl).

------
methyl
> With big project like Vue.js and React, it’s almost becoming a pleasure to
> design your interface using Javascript. (...)

> DisplayJS (...) is lightweight (100kb for the entire library)

React + React DOM is around 100kB, Vue is 86kB.

~~~
tomxor
Coming from an angular world I went full spartan and just used jQuery (I tried
to go native but the DOM interface is rather long winded) - it felt so good,
suddenly you realise that for most things model view control is pretty simple
to do with a few lines of code and you have the advantage of being able to see
exactly what is happening.

~~~
dbkaplun
jQuery's bread and butter is DOM manipulation. However, for even moderately
small use cases (even an interactive form) it is useful to use React, Angular,
or some data binding framework, as state changes in jQuery quickly become
unmaintainable.

~~~
tomxor
It _can_ become unmaintainable but it entirely depends on how you define your
view state, you can still create large applications with jquery if you refrain
from creating overly complex state UI (speaking from experience). One thing I
find overly shunned in favour of heavy MVC is CSS, CSS is a bloody state
machine, it's perfect to manage your UI, you need one DOM call to update one
piece of state... define the reset in CSS and your MVC UI component suddenly
seem over engineered.

------
nol13
fuzzy sorting with no mention of fuzzball?! surely an error

/shameless self* promo :P

*as much as porting something from another language can be self promo

edit: ok technically launched dec '16 so not meet criteria, omission
acceptable

~~~
nol13
not that fuzzysort not great or anything, i like the scoreFn and prepare api's
;)

diff algs for diff things

