9 ms·
Some day, eventually, after all the dust settles in the JS ecosystem, there will be a stable framework for managing UI state in a sane, sensible, predictable an
by DaiPlusPlus 5y ago
Some day, eventually, after all the dust settles in the JS ecosystem, there will be a stable framework for managing UI state in a sane, sensible, predictable and well-understood manner - and someone at the WHATWG/W3C will finally write up a spec and the functionality will be baked-into Chrome, Edge, Firefox, etc.
And we'll be free from having to learn a new JS framework every 6 months. And maybe even npm hell too.
Until then, time to buy another Pluralsign training course...
- nikanj 5y agoMeanwhile my Swing skills from the 1990s remain relevant today. Java might not be hip, but it sure does get the job done for enterprise apps
- topicseed 5y agoNPM hell is what got me to move from beloved TypeScript to Golang. Coming back to pet projects a few months later was true excruciating pain every single time. Today, it's Go in the backend and Svelte in the frontend, or vanilla JS for very small and simple tools.
- ashishb 5y agoAs someone who programs on backend, frontend, and Android apps, I can't agree more. Javascript frameworks and NPM hell is terrible. You rarely have the problems in Go/Kotlin/Java world that are considered normal in the NPM world.
- adevx 5y agoI never understood this npm hell reference people are speaking off. Is this just the drama of updating an outdated inherited project? I've been working with node/npm since the early days and don't consider it worse than what you find in Java, Python or PHP.
- ashishb 5y agoThe latest version of webpack removed polyfill, this broke another dependency, and i had to downgrade the react version to fix that! Nothing like this did I ever see in the go or kotlin world.
- qmmmur 5y agoIf you depend on a specific behaviour why dont you pin your react version?
- ashishb 5y agoI learnt that much later. Apparently the current version of webpack that you get by following the official react project setup is missing certain polyfills!
- zero_shift 5y agoCouldn't you have pinned your dependency and / or installed from a lockfile?
- jrib 5y agoare you leveraging a framework on the backend for Go?
- arnvald 5y agoIs is really that bad? I'm not very up-to-date with JS frameworks, so please bear with me. I know that new libraries pop up here and there, but if I'm not wrong, React is by far the most popular, and React has been around for almost 10 years. Vue's not much younger, and now it's 3rd major version. Is there such a big difference between JS front-end frameworks and the rest of the world?
- EMM_386 5y ago> Is is really that bad? It's not that bad. I am lead on a large Angular 13 project and we love it, easy to work with, build, deploy. We have literally no issues at the moment. .Net 6 C# APIs on the back-end, Oracle database. It just works. Take everything with a grain of salt.
- oblio 5y agoHow is internationalization? Last I asked, it was still a tire fire, even after more than a dozen versions and after a fully mature previous framework that was replaced :-(
- FinalBriefing 5y agoYea...Angular made a huge (and hardly documented) change to their internationalization library that forced us to migrate to a third-party one. Basically, they now (as of Angular 12) force you to build a difference version of your app for each language you support, and either serve them up at different URLs or use cookies to serve up the right version to each user. The technical reasons make sense...your translations occur at build-time, rather than at run-time, but it's a pretty drastic change that occurred out of nowhere. Not a fan.
- ipaddr 5y agoHardcoding a language variable into multiple builds?
- tlrobinson 5y ago
- lmarcos 5y agoI don't think that's gonna happen. The same way modern browser's don't come with a java runtime to run servlets. Something better (and different) will come after SPAs, and the cycle will start again.
- DaiPlusPlus 5y ago> The same way modern browser's don't come with a java runtime to run servlets. Servlets run on the server, I think you meant applets? If so, I'd argue a counter-point: WASM and <canvas>.
- ioseph 5y agoWhat new framework is being widely adopted that was released in the last 6 months? The most recent one I can think of is Svelte which came out 2016.
- whalesalad 5y agoI use Vue 3 without the new composition api. It looks and feels more or less like the old Vue. I actually think things are pretty great these days. Even amongst the different frameworks and tools, things are settling into a common set of ideas and concepts. If you made the choice to build an app on React/Vue a year or two ago, that decision is still valid today and I think that speaks a lot for how far things have come.
- slig 5y agoAnd then it will become "old", exactly like Django/Rails feels today and the wheel will be reinvented with something "better" and more complex.
- powersurge360 5y agoI have been _very_ bullish and excited on LiveView and its cousins from other platforms. Hotwire was the first time it's entered my personal dev world and I've been working on a hobby trivia app since Christmas and it has been an absolute _joy_. It's obviously not a one to one replacement for an honest to god frontend application, especially one that can be recompiled into an offline capable native app, but where you can use it, it does a lot of lifting.
- root_axis 5y agoThis comment is just low-effort complaining that we see on every JS thread on this site. Vue 3 is an option you don't have to use, same as React, Svelte or just jQuery. The implied suggestion that nobody should ever publish new code is tiring.
- DaiPlusPlus 5y agoYes, that was half of my post - but the first half is my hope that eventually the functionality from React/Vue will be built-in to the DOM (or at least baked-in to the browser). We're already half-way there with WebComponents (though I'm not a fan of WebComponents as-is, but that's a tangent). Also, I still believe that web-pages should be functional without JavaScript. For all of my traditional SSR / non-SPA projects I definitely put effort into ensuring my projects exhibit graceful degradation. There's already a lot of things we can do without any scripting at all: animations and dynamic content, for example - and we can even use CSS trigger-tricks for basic interactivity (e.g. show/hide toggles) all without scripting. What I'd love to see next is something like WPF/XAML's declarative data-binding in HTML (but in a less broken way...) - and I'd like to be able to submit a <form> element directly as JSON, as well as AJAX-like <form> submissions that don't replace the current document, all without scripting - that's the dream (oh, and CSS positioning relative to an arbitrary named element, I could go on...).
- dceddia 5y ago> We're already half-way there with WebComponents (though I'm not a fan of WebComponents as-is, but that's a tangent). I think this is actually not a tangent at all, but rather, it’s kinda the whole point! I doubt we’ll ever get to a point where there’s a single standard, because a single standard can’t satisfy everyone.
- dham 5y agoIt's already invented. It's called HTML. You then use whatever language you want to generate it. We were doing it a long time ago with Java Server Faces. Now there's stuff like Liveview and Turbo (Rails community)
- visarga 5y agoThat's how great humans are at generalization, just 10 years of collective search and we reached the web UI enlightenment. /s
- turndown 5y agoWhat do you think of htmx[0]? It feels like something that could actually fit into the HTML standard. 0: https://htmx.org/ https://htmx.org/
- tokumei 5y agoHow does the custom script syntax work? E.g. ‘on click call some_func()’ Is there really a JS script parsing all of that? Seems like there would be performance penalty.
- irrational 5y agoThis is me. I really don't like using frameworks/libraries and want it to get baked into the standard library.
- themacguffinman 5y agoWhy are people so obsessed with finding one true way to do everything until the end of time. Things change, things become more diverse, and the world is richer for it. There already are sane, sensible, predictable and well-understood frameworks for it, it's called Vue, it's called React, etc. You don't need a committee to bless it before you can enjoy such a stable environment. This is a lot like the 19th century US Commissioner of Patents saying "Everything that can be invented has been invented." Society and technology won't sit still. It's your choice to learn a new JS framework every 6 months. If you don't want to use the new thing, then don't. Just make something valuable and use what suits your needs. That's all that has ever mattered.
- notapenny 5y agoIndeed, focus on what to build and how to build it. What you build it in is largely irrelevant.
- dham 5y agoIf W3C would stop doing initiatives like Web USB and give us a way to style a select box (finally going to be a thing) we wouldn't even need web frameworks. * Styled select boxes * Good cross platform datepicker with ranges that looks good * More form validation options / dynamic form validation * A good drag api that does edge detection well in every browser * Bring back frames (would allow good nested routing) * A built in rich text editor * A good modal API (or bring it back) * A way to submit a form via AJAX with just a property (think Rails UJS) to just render html.
- justsomehnguy 5y ago> and give us a way to style a select box How many end-users complained what a select box is not styled?
- dham 5y agoI hear you, that's another thing that has plagued our industry. Most of the time a regular select box is fine, but sometimes you need to have images or something more in the options (colors, etc)
- brimble 5y agoNone, probably, but these days it's de rigeur to spend half a (web or mobile) project's budget making sure even the select boxes are "on brand" and "delightful" or whatever. Often at the expense of usability.
- andrei_says_ 5y agoStyling a radio button, a select box and a slider would be amazing, too. Now the only option is to replace them which is quite sad.
- dham 5y agoYea you're right, that's like the biggest one. Can't believe I forgot that.
- 5y ago
- eBombzor 5y agoWhy pluralsight specifically?
- DaiPlusPlus 5y agoI get Pluralsight for free with my MSDN subscription
- pcurve 5y agoThe messed up ecosystem keeps millions of people employed!
- wldcordeiro 5y agoYeah because people stopped developing any backend solutions for Python or Ruby because Django and Ruby on Rails exist.
- rr808 5y agoI think best to skip JS and go straight to webassembly.
- dwaltrip 5y agoLikewise, one day I will achieve transcendence and suffer the ills of the human realm no longer. I'm totally on board with building better tools and solutions. And with pointing out the flaws of tools as we find them. However it is folly to thing this work will ever end.
- deleted 5y ago[deleted]
- zero_shift 5y ago> We'll be free from having to learn a new JS framework every 6 months The de facto starting point for writing browser applications is React, and that came out almost nine years ago.
- yurishimo 5y agoIt’s hilarious you say this as React is arguably introducing the biggest paradigm shift since hooks (which was also a huge change) with Suspense. It’s fine to say React is a decade old but the way we write apps with React has drastically changed multiple times with the only real constant being JSX. And let me be a bit proactive, yes, I know react is backwards compatible for the most part, but similar to PHP, just because the syntax is still supported doesn’t mean that’s the recommended way to write apps today. React arguably started the churn of JS fatigue we all complain about now.
- mikewhy 5y ago> the way we write apps with React has drastically changed multiple times with the only real constant being JSX I don't really agree with this. Sure, we went through createClass -> class -> functions + hooks, but the core is still props, state, and lifecycle.
- yurishimo 5y agoEh, agree to disagree. I understand your point, but I think those points you mentioned are also changing. Take lifecycle. It used to be very explicit. Then hooks turned it into this weird implicit thing where you have to know how use effect works and how to only trigger something once, but then the empty array thing is an anti pattern etc etc. Now with suspense, that lifecycle is changing again in a way. I’ve seen some tutorials where the teacher refactors out of use effect into throwing a promise. But then you can have use effects inside your thrown promise and dealing with module scope potentially. It’s late and im a little out of it, but to me, this is all a lot of churn and creates long periods of uncertainty as developers try and decide which of these features they want to use and when. At a certain point it can get really frustrating when it feels like you need to rewrite your app to stay up with “best practices” and attract new talent into your org. It would be one thing if the best practices were making things better functionally, but I find that argument hard to justify for anyone outside of Facebook scale. Angular and Vue stuck with a more traditional lifecycle ideology and there are plenty of apps building at scale on those frameworks. That stability in low level APIs gives a community time to grow and mature without leaving a bunch of people behind. I honestly believe React would not be anywhere near the scale of what is today based on merit alone. They were lucky to see the demise of angular 1 and learn from that mistake and now Vue is sorta suffering the same way by moving too far away too quickly from 2 to 3. Anyway, ramble over! :)
- _prototype_ 5y agoReact already has us there
- forgotmypw17 5y agoI think we already have it, and it's called DOM, CSS, and JavaScript.
- pjmlp 5y agoOnly if you want to play the game, there are plenty of jobs using vanilaJS and <script ...> still works.
- notapenny 5y ago"And we'll be free from having to learn a new JS framework every 6 months" You are already free from this. The only one putting that pressure on you, is you. Pick something and stick with it, and spend your time learning _how_ to build things, instead of _what_ to build it in.