News for hackers. Stuff that matters.
Re:State of JavaScript 2019 by lgessler on Thursday December 19, 2019 @01:12AM (#21832406)
So sad to see Meteor solidly in the avoid quadrant, but it seems deserved. Meteor is what I learned how to do web development with back in 2015, and it was fun. It didn't take much to make stuff happen, and the baked-in live sync was like magic. I'm still eager to whip Meteor out for proof of concept prototyping because of how convenient it is to have a schemaless database and a framework that abstracts away HTTP, but for one thing I feel Meteor's big bet on Mongo hasn't paid off.

Also surprised to see ClojureScript's satisfaction rate at 60%. In the past year or two it's become much easier to use NPM packages, which was IMO the last remaining huge missing piece. It's now a great language for web development, providing what JS couldn't: a rich standard library with, ahem, consistent API's, a strong FP flair with excellent immutable data structures built in, and maybe most critically of all, a somewhat constrained macro system that allows users to write and distribute third-party libraries for syntax that in other languages would have required an extension of the language standard.

All of that is (I think) desirable by anyone unless you're hardcore anti-FP (with the one exception, I guess, that macros can be and are abused, though I haven't seen it very often in the CLJS ecosystem). So why hasn't ClojureScript seen more adoption? It's the age-old curse of Lisp, I guess: those dang old parentheses which decades of CS curricula taught in ALGOL descendents have rendered foreign and horrifying.

Re:State of JavaScript 2019 by sgdesign on Thursday December 19, 2019 @01:42AM (#21832563)
Survey author here, it's all the more ironic considering all these 21k responses were collected through a Meteor app ;)
Re:State of JavaScript 2019 by lgessler on Thursday December 19, 2019 @01:50AM (#21832619)
Ha!

BTW Sacha, thanks so much for Discover Meteor, it was what I cut my web dev teeth on! Somehow I hadn't heard about Vulcan until now. It looks really interesting and I'll be looking into it more.

Re:State of JavaScript 2019 by sgdesign on Thursday December 19, 2019 @04:37PM (#21839587)
Thanks! Let me know what you think!
Re:State of JavaScript 2019 by fatbird on Thursday December 19, 2019 @03:47AM (#21833147)
I continue to be involved in development of a Meteor app that started in the 0.8 days, and has been actively maintained up to current versions. I'm a little sad, too, that "Meteor" as a technology all its own hasn't developed legs, but honestly, at this point it's a build stack and little more. Once you use React over Blaze, all it really offers you is a build process and a lack of need to set up your own GraphQL API; in exchange, you get exploding build times because of the uglification library, and something that you know is nothing more than a nodejs app under the hood, but with just enough special sauce mixed in that you don't want to look under the hood, hoping the vendor that's reduced the dev staff to 1 will keep in good shape.

It's a missed opportunity, but the mistake was the Meteor Development Group's in betting on the JS community being satisfied with an "opinionated curation of the stack". The JS community has the attention span of rabid squirrel, and this was obvious back in the 0.8 days. They were never going to love a single bundle of choices for long.

Re:State of JavaScript 2019 by kabes on Thursday December 19, 2019 @05:44AM (#21833702)
Meteor 0.8 was released in 2014, and I'm sure your app would still work on the latest Meteor release without much changes, while in the meantime offering all the latest JS features (JS in 2014 was a completely different world).

How many other JS build tools & frameworks from 2014 can say the same?

Re:State of JavaScript 2019 by fatbird on Thursday December 19, 2019 @09:26AM (#21835134)
Good lord has it been that long?

It's on Meteor 1.6 now, and you'd be mistaken about "much changes". Blaze to React was a nearly a rewrite; Atmosphere packages to npm was a significant change for the internal dependencies we developed; removing the custom file loader itself that preceded Atmosphere packages meant touching every single file.

The original code might have still worked, but the code would be helplessly outdated and stuck on a dying platform's technologies. As it is, though, the extensive and continuing effort to update the code means that now, we have a React/node app with an idiosyncratic webchannel connection to Mongo and a build process that's outdated but manageable, and still under active development of new features.

I credit the Meteor Development Group with recognizing that the stack they wanted to lock people in on, wasn't going to work (Blaze, Atmosphere, Mongo) and providing a paced transition off those pieces early on. But if we hadn't kept pace, we'd have a half million LOC app that would be termed "legacy".

Re:State of JavaScript 2019 by kabes on Thursday December 19, 2019 @10:03AM (#21835434)
But if you had picked any other tool from 2014, you'd probably also be stuck with a legacy code base now, without any clear transition path except a big bang rewrite. You would have probably picked angularjs or backbone back in 2014 and a switch to react would have been even more trouble. Meteor allows you to mix blaze & react, mix atmosphere & npm packages, mix their old module systems with commonjs and ES6 modules.

We made the same transition, but just replacing one package/ui part at a time when it suited us, so we always kept releasing new features each sprint while gradually modernizing our code base.

Re:State of JavaScript 2019 by fatbird on Thursday December 19, 2019 @10:37AM (#21835763)
True: we'd have faced the same transition with any other stack. In hindsight, Meteor wasn't a bad choice, it just didn't live up to its promise of sidestepping churn and offering an opinionated stack that would endure. I don't know that any did.
Re:State of JavaScript 2019 by sim0n on Thursday December 19, 2019 @09:27AM (#21835142)
Not exactly a framework, but a React app from 2014 will still work great in 2019 and can be updated with very little pain.

Build tools wise, a simple Webpack/Babel config from 2014 would be relatively straightforward to update to the latest versions.

Re:State of JavaScript 2019 by Aeolun on Thursday December 19, 2019 @07:50AM (#21834422)
How many JS build tools from 2014 exist? And how many are still used? I think both will be fairly close to zero.
Re:State of JavaScript 2019 by kabes on Thursday December 19, 2019 @09:06AM (#21834964)
That's my point. Other people had to rewrite their software for new build tools, while our Meteor app started 5 years ago never needed any big changes, while we could gradually adopt ES6+ features, modules, dynamic imports, ...
Re:State of JavaScript 2019 by conradfr on Thursday December 19, 2019 @08:21AM (#21834617)
Are Grunt and Gulp still not used?
Re:State of JavaScript 2019 by conradfr on Thursday December 19, 2019 @10:24AM (#21835633)
*aren't -not
Re:State of JavaScript 2019 by Aeolun on Thursday December 19, 2019 @07:12PM (#21840626)
Maybe in really old and ossified projects?
Re:State of JavaScript 2019 by didibus on Thursday December 19, 2019 @01:27AM (#21832490)
Where did you see a ClojureScript satisfaction rating? All I'm seeing is the have you used it before/heard of it question.
Re:State of JavaScript 2019 by fctorial on Thursday December 19, 2019 @01:50AM (#21832620)
Re:State of JavaScript 2019 by didibus on Thursday December 19, 2019 @04:43AM (#21833395)
I see it now, thanks!
Re:State of JavaScript 2019 by lgessler on Thursday December 19, 2019 @01:51AM (#21832627)
Overview page
Re:State of JavaScript 2019 by kabes on Thursday December 19, 2019 @05:41AM (#21833680)
I don't think it's deserved. If you don't need the kind of reactive queries Meteor offers (and IMO is still unbeaten in terms of developer productivity in case you do need them), then you can safely ignore that part. In the end Meteor is mainly a layer on top of nodejs. So you can do all your regular nodejs stuff and you can run Meteor without any of the mongo stuff these days. Then it still offers you a zero-config build tool which has been absolutely unbeaten (at least in the JS world) in terms of backwards compatibility over the years. I think Meteor mostly suffers from not being the cool new thing anymore and being released in a period of a heavily changing JS ecosystem. I'd still pick it over any webpack config-clusterfuck project any day of the week.
Re:State of JavaScript 2019 by cheapsteak on Thursday December 19, 2019 @10:19AM (#21835570)
How would you compare it with Create React App in terms of ease of use and build/dev speed for front end projects?