5 ms·
I've been doing web development for over 15 years, and I've seen a lot of trendy web application / UI frameworks that are going to be the The Final Paradigm com
by kyledrake 8y ago
I've been doing web development for over 15 years, and I've seen a lot of trendy web application / UI frameworks that are going to be the The Final Paradigm come and go.
That experience has taught me an important lesson about trendy framework stuff: If it doesn't make sense to a lot of people after a lot of thought, and there's a lot of rationalization required to plug that gap, it's probably not working out very well.
As of now, I have still yet to see a JS framework that made any sense to me. They're all really weird to me and solving problems I've never had with UI development, or regressing previous best practices in ways I don't think make any sense.
I'd much rather just use template rendering than this stuff most of the time. At least with that, you're just using Real JavaScript (TM) and you don't have to learn some new special HTML attribute based language.
- chrisco255 8y agoHonestly, something like React/Vue has got to be as close as it gets to "The Final Paradigm". At this point, it's been a long time since I've seen a new paradigm that does anything vastly different or more productive and simple than JSX + React/Vue lifecycle & state hooks. Most of the new UI libs that come out (Glimmer, Marko, etc) seem to be heavily influenced by React and don't offer a giant leap in how UI is done. I think there's plenty of more opportunities in state management, CSS management, application structure, tooling, and making those more simple, but generally I think the view layer is more or less solved.
- NeoBasilisk 8y agoIf you're still saying that in 4 years, then I'll believe you.
- nostalgeek 8y agoIt's funny to think retrospectively that something like Backbone.js absolutely did not solve view state management at all and people adopted it because it somehow looked like Rails with big models, Angular.js misunderstood the issue completely with factories everywhere instead of a single dataflow. The new paradigm would be the browser handling all that and there is no need for frameworks anymore. We are not there yet given how poor web component support is : https://caniuse.com/#search=web%20component https://caniuse.com/#search=web%20component
- 52-6F-62 8y agoI think you nailed it (though I think Jeremy Ashkenas and Mike Bostock and that NYT group are brilliant... especially working in the media space at a company that doesn't encourage that kind of work to put it mildly). I've had my whimsical entries into experimenting with Web Components, but they just haven't felt like they're quite there—ignoring the lack of support. They're workable, but I think design patterns surrounding current paradigms might need more readily addressed. As they are, you'd probably want a framework on top of Web Components to improve the semantics and just make working component state in generally less verbose. I have a hastily-written example here playing with them: https://robert-fairley.github.io/es6-webcomponents/ https://robert-fairley.github.io/es6-webcomponents/ (No repo, it's not worth it. Just check the source–it's short enough)
- keithnz 8y agoI don't think so, I'm thinking it's all about to change . why? WASM. We now see languages targeting the browser, and the beginnings of front end frameworks being developed in traditionally backend languages. I think this is going to create quite a different landscape for the web world in the next 5 years. Different languages bring different approaches to problems.
- rmrfrmrf 8y agoNo reason why React couldn't be implemented in WASM. I'm less bullish than you are about WASM, though, since DOM interaction is going to be the bottleneck no matter which way you slice it.
- wvenable 8y agoI haven't found a JavaScript framework that truly makes things easy. I've been a developer for a long time, going back even before the web itself, and a lot of the older technology was pretty easy in comparison to what we have today for web development. My impression of React is actually quite positive; it solves a real problem in a highly performant way and with a relatively good model. But it is still pretty low-level to me; even if you add in a dozen or so other libraries. My needs are fairly different from Facebook or most startups -- I don't work on a single highly optimized application -- I build a new application every few months (and maintain all of the previous ones). The current set of JS frameworks don't do a lot to help me.
- westoncb 8y ago> If it doesn't make sense to a lot of people after a lot of thought, and there's a lot of rationalization required to plug that gap, it's probably not working out very well. This makes me think of an interesting/bothersome phenomenon I've seen a lot in web development (it seems to be more present here than in other domains—but I won't pretend to have any profound objectivity on the subject). People speak confidently about rationales for architectural decisions—and at first it sounds coherent and persuasive (especially paired with their confidence), but if you start trying to test it, considering specific cases, or more generally just drilling into the specific meanings of the very abstract statements—then you are likely to discover that the supposed rationale is really a justification. I'm guessing this comes about because decisions about technology often have to be made with time constraints, and the time required to really investigate the set of viable alternatives exceeds what's available. So you're left with a partially completed search process, where the engineer has told himself a story about why choice X was the best, based on promising looking aspects of the search so far completed. At this point, you're sort of committed to the decision you made, so you have to continue justifying it to yourself and others; and since there isn't necessarily a valid justification, the one you employ has to succeed in part through its obfuscation and your rhetoric.
- Vinnl 8y ago> web application / UI frameworks that are going to be the The Final Paradigm come Are there any that would claim that? As far as the popular ones that have been there (which is really just JQuery and Angular, but could also encompass thins like Underscore, Knockout, etc.) go, I think most of them presented themselves as band-aids for limits in Javascript/DOM API's. I think React is that first one that gained widespread adoption that actually promoted a paradigm (view is a function of state). That is not to say it's The Final Paradigm, but I think an important reason for both Angular and JQuery to lose adoption is because the wounds they band-aided over were cured.
- nostalgeek 8y ago> As of now, I have still yet to see a JS framework that made any sense to me. The basic issue with the DOM is that it makes state management a pain in the arse. So you have written a DOM widget and you want to incorporate it in a bigger widget, so you have to have some kind of "composite" API with a widget life-cycle that pumps data and dumps custom events from/to somewhere. It's not that hard to code, but by the time you are finished coding a library that handles all that you have created you own front-end framework basically. Web Components help a bit by it doesn't seem that Google, Mozilla or Microsoft and co are doing a very good job at promoting them, pushing them in their browsers or even education people about them. It looks like it is one of that spec browser vendors don't like for whatever reason : https://caniuse.com/#search=web%20component https://caniuse.com/#search=web%20component Vue.js actually retains most of the philosophy of Web Components like Polymer so I went with that instead of React,Angular and co. Front-end development is all about state management.
- rmrfrmrf 8y agoI'd like to know how implementing a template parser in JavaScript is more "Real JavaScript (TM)" than an actual function call (i.e., `React.createElement`).
- Too 8y agoAngular/React/Vue is nothing more than template rendering, with built in data binding. It is a major leap in the way you write web UI, enabling true separation of view and business logic. (ok, slight lie, there's tons of other junk inside those frameworks also, but just stay away from everything except the data binding and you'll be much happier.)