5 ms·
I manage a web application with hundreds, if not thousands, of screens written in Angular, Vue, React, and server-side JSPs -- all of it developed over a decade
by JMTQp8lwXL 7y ago
I manage a web application with hundreds, if not thousands, of screens written in Angular, Vue, React, and server-side JSPs -- all of it developed over a decade-plus worth of time. While old UIs will be continually be re-platformed into the new, we will always have a legacy monolith. That's the reality of our world.
If I want to introduce a design system, where all users of these technologies can work with a basic set of bread-and-butter buttons, input fields, etc., Web Components are the lingua franca of all of these technologies. That's why I use Web Components.
Now of course, not everyone is developing on monoliths globbed together with newer tech. But the reality is, most of the software used today is written this way. It isn't pure, functional, isolated modules / apps that startups going from scratch have the privilege of beginning with. Technology stacks slowly become the consequence of business acquisitions, etc. You can exert some control over things, but it will always be a moving target.
- tracker1 7y agoPersonally, I just find the lack of being able to declaratively pass state and/or event handlers to child components painful. Not to mention that testing with a full DOM (virtual or real) is really slow by comparison. React + Redux + JSS just really matches how I've always conceptualized about building web based applications. I absolutely favor material-ui as a component library. I've been building web applications for almost two and a half decades. React is the first framework that felt "right" to me, and still did after using it. I've used a LOT of options over the years. I do think WC can be used with React in some cases, and that it's probably a better approach if you're building mostly static content and wanting to add additional interactive features outside of core display. I also think in 5+ years there will be a couple library options that makes using WC a better option for application style development.
- JMTQp8lwXL 7y agoWeb Assembly will maybe change everything.
- erikpukinskis 7y agoNot trying to be rude, but there’s roughly 0% chance it changes everything. It will change some things for sure. But we’ve had compile-to-js languages for some time and they’re a pain. Compile-to-ws is better, but still has the same fundamental pain points (debugging mostly, and then browser compatibility). By changes everything, you mean no large amount of devs will keep targeting vanilla html+Js and I just can’t imagine that future.
- JMTQp8lwXL 7y agoMaybe the concept of sourcemaps could be applied to WASM to maintain the pretty awesome developer experience we've come to realize in browsers. I'm transpiling TypeScript -> JS and able to debug my code, with sourcemaps, in Chrome.
- erikpukinskis 7y agoThat’s true, it’s easier if you don’t have to do any cross browser testing. But I still find the debugging very weird. The fact that the VM is stopped on a different line of code than I’m looking at seems to always introduce small little confusions. Have you never had that experience? It’s possible I’m just overdue to try the tools again. I’ve had a lot of bad experiences.
- tracker1 7y agoI think it will bring about a LOT of changes for targeted applications, and most specifically gaming. I also find Blazor and a few other technologies related to WASM interesing. I do not think it will displace much as far as web based applications. And all of that said, I happen to like JS. It's my favorite language. While I'm really green with it, I'd consider Rust my second fav. C# third. In the end, I find that I can be incredibly productive with JS + NPM and that cannot be understated. I'm able to leverage community repos that cover everything under the sun and write less than half the code and better cover my use cases for good enough performance. When I need more, I'll leverage other languages/tools, most of the time, I don't. And even when I do, I tend to lean on Node/JS for orchestration.