7 ms·
IMO the biggest problem is that the industry became all about developer experience and neglected user experience. Doing an analysis of the JS bundled with many
by afavour 5y ago
IMO the biggest problem is that the industry became all about developer experience and neglected user experience.
Doing an analysis of the JS bundled with many major sites is an utter horror show: React is big and bloated, alternatives like Preact exist but no-one cares. React provides The Best Developer Experience so that is what we shall use. GraphQL is the cool thing to use these days so we’ll throw in a giant client library along with all our query text. Sure, browsers handle REST out of the box but that’s not what works best for our developers. We’ll use CSS in JS despite the performance being worse, it’s what our team likes. We’ll bundle a giant CoreJS shim to all browsers even though the vast majority won’t need it. Running two builds is too annoying to set up in our workflow. The site loads fine on my MacBook Pro so why stress what Lighthouse says?
So on and so forth. For years I’ve heard that this isn’t a problem because all the extra developer productivity means they can move so much faster. It’s been long enough now that I’m comfortable dismissing that argument as nonsense. And many users are essentially trapped: for example, I bank with Chase and their web site is absolutely atrocious. I talk to friends and they say the same. But the UX of online banking is very rarely a reason for anyone to change bank so the product folks aren’t going to push for performance. It’s something developers have to proactively care about and as an industry we just don’t.
I hope eventually we see the industry change but for now it really feels like no-one cares. We’re prioritising the speed of the shovelling while ignoring the quantity of shit.
- swsieber 5y agoDeveloper time == money. There is always a time vs end user experience tradeoff, even with physical goods. I think it's part of a bigger trend towards (more prolific) crappy stuff generally. I do think there is space for tools that improve the user experience whilst not regressing on easy of development.
- afavour 5y ago> I do think there is space for tools that improve the user experience whilst not regressing on easy of development. Agreed. I feel like I spend 50% of my time on here promoting Svelte which is wildly out of whack with how much I actually use it but to my mind it’s a great example of a tool that prioritises developer experience and user experience without compromise. There is hope.
- m8s 5y agoElixir's LiveView is similar in my eyes, and more "client-side" tools like Surface (akin to Storybook) are making their way into the Elixir ecosystem.
- kristopolous 5y agoReact and its ilk doesn't even deliver on those goals. It encourages bad programming, makes terrible software practices easy and separates code so the piles of unmaintainable garbage don't smash into each other too harshly. It doesn't actually empower anything - it acts as a scolding nanny prohibiting people from making things explode. It does this by imposing a narrow opinion about things that's constantly changing with each release as it herds the programmer through very specific and alarmingly complicated ways of doing things. It's fundamentally a tool of oppression, not one of expression and one of coercion and not liberation. I hate it so much.
- thunder22 5y agoWhat is your preferred alternative to react for creating a data driven web application?
- kristopolous 5y agoNormal Javascript and 10,000 hours like when mastering anything else. HTML, CSS and Javascript are already extremely high level and capable. Do some xlib programming some day if you want that to be obvious.
- LAC-Tech 5y agoA basic reactive data structure is only a few lines of JS. So user clicks something -> app state gets changed -> modify DOM in response. http://meiosis.js.org/ http://meiosis.js.org/ Here's a good description of a framework agnostic approach.
- kristopolous 5y agojs.org? That must have been a big pricetag.
- _shantaram 5y agojs.org subdomains are actually a free service run by some really nice people. As a poor student it was very nice to discover that I could have a nice domain for my project for free :p (i'll use this opportunity to plug my project, https://campfire.js.org https://campfire.js.org)
- Hermitian909 5y ago> all about developer experience and neglected user experience I think this is a mix of good old cargo culting and how hot the dev market is. Small companies don't have the leverage to tell their engineers "no" when they do a bit of resume driven development. React makes sense for many of sites at larger tech companies paying big salaries because many of them are delivering a richer "application" experience. Some engineers blindly follow what "better" (massive air quotes) companies are doing. Others who want to work at these companies want the skills that will make them more hireable and so choose React. Devs who are not in either of these other camps make a small enough group they don't generally get their way.
- girvo 5y agoI’ve worked in React full time for seven years, and the biggest thing I’ve learned is that too many companies choose it when it’s absolutely not the right choice. Plenty of things are basically websites with forms and a dash of interactivity. Building a full single page web app for this is a waste of everyone’s time and their customers CPU cycles, and it’s not even faster to develop most of the time… My current job is a fully fledged web application for a B2B IoT platform, with soft real-time data and huge interactivity. React et al. fit this better, and because we have some control over who and what devices are using it, it’s (frankly, mitigated if you know what you’re doing) overhead isn’t a problem. I love React, I really do. But it’s not the right fit for everything, and I’ve earned a huge amount of money coming in to save projects that are failing due to that incorrect choice.
- nerdponx 5y agoI have worked on a project that literally served static text on a page with static links, some embedded media, a bookmark toggle thing, and a hamburger menu, that were heavily using React. The reason I was told was that they wanted the "components" framework to support modularity and reuse. Is there an alternative for that purpose?
- rtcoms 5y agoIn Ruby on Rails there is gem called ViewComponent. Create and being used by github. May be something similar should be there for other frameworks too.
- addicted 5y agoI’d agree with you except for the fact that it’s really hard to say that developer experience today is better than what it was before. Especially once you adjust for the fact that browsers are so much better and standardized.
- krapp 5y agoDownloading and installing JQuery and some plugins versus the Byzantine nightmare of dependencies, transpilation and hacks upon hacks that is modern JS development? It was objectively better in every respect before.
- jakelazaroff 5y agoUntil your dependencies start to form a tree, and you can't just rely on all the global variables being loaded in the right order anymore… Vendoring every dependency and having to manually keep track of all the updates was objectively worse than NPM as well.
- krapp 5y agoThen again, having a couple of .js files just sitting on my server meant some rando having a temper tantrum and deleting their repo wouldn't break my site, or half of the internet.
- jakelazaroff 5y agoThat also won’t happen with NPM.
- krapp 5y agoOnly because it happened once and then they fixed it, but it was never a problem in the old days. Having one company and one package manager act as a single point of failure for essentially all of the javascript in the universe was a bad idea. It looks and feels a lot more like "real" programming now but the whole house of cards seems to tip over and burst into flames every other week.
- diob 5y agoWhat is the alternative to catering to developer experience though? If developers struggle with performant technologies / methods / frameworks, I'm sure they're going to end up producing crap apps in the end still. Rather than complain, we should be focusing on making good performance the happy path. In fact, I'd say that's most of what the latest frameworks that are popular focus on, so I don't really understand the issue. If you build the developer experience, they will come. If you don't, I hate to say it, but everyone has mouths to feed.
- deleted 5y ago[deleted]
- deleted 5y ago[deleted]
- Aeolun 5y agoHmm, I don’t think this is actually true. There was plenty to complain about at any point in the development of the web, and complaing about bloated frameworks are simply the complaint du jour. In practice I load every webpage once (even very complicated applications can be loaded in under 2MB), and then go on my merry way.
- at-fates-hands 5y ago>> IMO the biggest problem is that the industry became all about developer experience and neglected user experience. I recently transitioned from being a developer to being an accessibility engineer. I've been able to see first hand how the user experience has been neglected, especially for people with disabilities. A lot of the JS frameworks are getting better at A11Y, but its still a major work in progress.
- musicale 5y ago> IMO the biggest problem is that the industry became all about developer experience and neglected user experience. Web development leverages a terrible developer experience to create a terrible user experience.
- jbergens 5y agoDo you really think the developer experience or user experience were much better in the days of Windows Forms? Or that building large web applications in jquery or vanillajs can't lead to problematic code even when junior developers are used?