TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

The case for frameworks

154 pointsby jacobrover 2 years ago

17 comments

dchukover 2 years ago
Until you’ve hit product market fit, you shouldn’t build anything other than what is unique to your product. If you are spending time on authentication or forms or worker queue architecture, you’re wasting time. Frameworks and plug-ins exist to allow this to be all plug and play, so you can focus on building something potentially useful enough for people to pay for it.<p>Product market fit is generally achieved when you can’t keep up with demand for your product. “Can’t keep up” is generally an operational problem first, then a technical problem (the Do Things That Don’t Scale stuff catches up to you basically).<p>Scaling is a GOOD problem…as long as you actually have a business model. If you’re selling stuff but getting crunched by demand and your tech is cracking at the seams…hell yes! Pay people to fix the tech&#x2F;replace the janky or slow stuff&#x2F;automate manual things.<p>If you don’t have a business model, you can scale the shit out of some idea but not be able to afford to fix the issues coming from breaking out of your frameworks. Not to say you can’t eventually make this model work, you just have to raise a shit ton of money to do it usually.<p>Use frameworks. It’s not a debate. Don’t reinvent wheels when you’re trying to invent some new product idea.<p>Only work on the product.
评论 #34797991 未加载
评论 #34797897 未加载
评论 #34801412 未加载
评论 #34800505 未加载
评论 #34798076 未加载
评论 #34801049 未加载
评论 #34800494 未加载
评论 #34799154 未加载
评论 #34803886 未加载
评论 #34802637 未加载
评论 #34801944 未加载
评论 #34803587 未加载
AWebOfBrownover 2 years ago
Everything I needed to know about Russell&#x27;s performance war was answered when, whilst he was working at Google, folk started asking him why he was naming and shaming companies for poor performance when his exact critiques were swiftly applied to Google&#x27;s apps (calendar, maps, gmail). I wish I could find the twitter thread from back then, but the gist of his response was that what Google was doing was incredibly complicated, far more than anything the targets of his ire were working on, and as such it was reasonable not to have fixed those issues.<p>He wasn&#x27;t wrong in his assessment of complexity, but the fact he refused to acknowledge the business priorities were the same between Google and companies he called out, absolutely baffled me. The gist from my perspective was that companies external to his own should bend over backwards for performance, while his should not, because his personal goals were tied to improving the performance of the web. Hopefully that&#x27;s an over-simplification and I&#x27;ve missed something, but that&#x27;s what I can recall.
评论 #34800190 未加载
评论 #34798991 未加载
评论 #34802027 未加载
tabtabover 2 years ago
I&#x27;ve said it before and I&#x27;ll say it again. The main reason we need bloated convoluted web frameworks with giant learning curves and a jillion gotcha&#x27;s is because businesses want desktop-like GUI&#x27;s and HTML&#x2F;DOM&#x2F;CSS&#x2F;JS is ill-suited to emulate such, and perhaps stuck that way because fixing it will likely break backward compatibility.<p>Web is either missing or has screwed up too many common and expected GUI idioms: <a href="https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;CRUDology&#x2F;comments&#x2F;10ze9hu&#x2F;missing_or_defective_gui_idioms_in_htmldom&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;CRUDology&#x2F;comments&#x2F;10ze9hu&#x2F;missing_...</a><p>We need a state-ful GUI markup standard. It perhaps should piggy-back off the Tk or Qt GUI kits to avoid starting from scratch. Let&#x27;s practice industry-wide KISS, DRY, and YAGNI. Past attempts are YAML (too static &amp; convoluted), XUL (too convoluted), and QML (too proprietary).<p>With such a standard, developing GUI&#x2F;CRUD apps could be more like using Delphi&#x2F;Lazarus or WinForms, which are faaar more pleasant than webshit, at least for smallish projects. (&quot;Enterprise&quot; may need different tooling. One size doesn&#x27;t fit all.)<p>Recent related HN story: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=34696635" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=34696635</a>
评论 #34798224 未加载
评论 #34798341 未加载
评论 #34800343 未加载
评论 #34798537 未加载
chrsjxnover 2 years ago
It&#x27;s fun to look back on the success of SPAs from the perspective of someone who learned to build websites pre-jQuery.<p>jQuery allows for websites to be interactive with minimal latency, but it&#x27;s pretty low level so it leads to a lot of common problems. Like locking the main thread, undisciplined architectures, and a ton of issues with back&#x2F;forward navigation.<p>SPA frameworks are developed to solve jQuery problems, but they introduce some new ones. Everything being JS is a big win, compared to split apps. But you have to deal with the up front cost of loading all the JS and a higher memory footprint.<p>And we iterate. SSR frameworks tone down the up front cost of SPAs in favor of more complex infrastructure. Frameworks that deploy to edge networks take another bite out of latency, but it isn&#x27;t entirely clear what that will mean long term.<p>It feels so iterative that blaming framework popularity on malice is wild. There are real benefits to businesses, developers, and customers at every step along the path. Of course developers are going to follow along.
评论 #34801534 未加载
segphaultover 2 years ago
I am deeply sympathetic to Alex Russell&#x27;s position on frameworks, but the reality is that he&#x27;s never going to move the needle by badgering developers to prioritize performance over developer experience. The ecosystem won&#x27;t move on from React to more performant and standards-based alternatives until those alternatives provide a competitive developer experience.<p>As someone who wants to advocate for standards instead of frameworks in my org, the problem I have is that the standards process is moving too slowly to address very basic and obvious developer needs. For example, the fact that Web Components are registered in a global namespace is really inconvenient in a large organization where you have many different teams making a large number of components. Sure, you can work around this with a BEM-like naming scheme, but you shouldn&#x27;t have to. There&#x27;s a great proposal for scoped custom element registries by one of the Lit developers that would actually address this issue, but it&#x27;s been sitting in a repo for years without any meaningful activity and there doesn&#x27;t appear to be any momentum around implementing it. Meanwhile, this is a thoroughly solved problem in the React and Vue ecosystems. That&#x27;s just one small example, there are a ton of other papercuts and annoyances that there&#x27;s no hope of fixing in the foreseeable future if solving them is going to involve a years-long slog through the standards process.<p>The DOM part spec that emerged from Apple&#x27;s template instantiation proposal has the potential to provide an extremely efficient standards-based target for React-like frameworks that would solve a lot of the performance problems, especially if it&#x27;s used judiciously for just the dynamic parts of the page in conjunction with server rendering and declarative shadow DOM. But nobody seems to be working on making that a reality, activity on that spec is pretty much dormant. React is going to keep winning until the standards furnish comparable ergonomics.
评论 #34803744 未加载
onlypositiveover 2 years ago
Half of those example sites he says should be SPAs should not be SPAs at all. They can be, and are, but certainly don&#x27;t need to be by any stretch.
评论 #34799071 未加载
margorczynskiover 2 years ago
Open source is really interesting in the regard that for many projects it starts being optimized not by top-down design but by evolution. You get many variations on the same idea that live, die, merge into one or mutate step by step into something else. Similar thing with Linux distros.<p>And it shows the same upsides and downsides as evolution vs e.g. gradient descent - you avoid getting stuck in local optima as people will always try out new stuff just to create something interesting (in business without clear evidence this will bring money it&#x27;s hard) but finding an optimal solution is slow.<p>It is much easier to attain certain goals by having a well managed team who report to you directly or indirectly and you can order them basically what to do and create a coherent vision for what they produce.
fleddrover 2 years ago
I think the original point of the discussion is somewhat lost, which is not frameworks, it&#x27;s shipping too much JS to the client which in particular hurts on Android.<p>Whilst I strongly agree SPAs are overused, let&#x27;s take a moment to consider this sorry state of affairs. It&#x27;s 2023 and when you ship some 50-200KB of executable code, you&#x27;re in the red.<p>This is like 1&#x2F;7th of a damn floppy disk, which I&#x27;ve lived through. Mobile apps are hundreds of MB in size, and we&#x27;re supposed to compete with that using sticks and stones. Recently my Razor mouse had a driver update, it was 2GB in size. We learn about Unity on desktop, now able to render 17 trillion polygons per second yet we struggle to render some state and squares on the mobile web.<p>That&#x27;s the real issue. Big parts of the mobile web are severely underpowered yet we still want to ship the &quot;rich application&quot; paradigm to them. Worse, without web standards offering anything remotely useful for this model.<p>That said, the idea that SPAs offer a superior experience that users are somehow demanding is bullshit when you consider how a typical SPA works. Consider a simple navigation action (route change) where the standard argument in favor of SPAs is that these are much faster compared to a traditional server-side page reload.<p>First, the SPA might need to load a new bundle, as tree shaking is the best practice where you lazily load per route code. This client code needs to be downloaded, parsed and executed, before anything even starts to happen. Next, the route-specific components mount. Many will require remote data, so at this point the page change may feel fast, it&#x27;s useless and will remain useless until all remote network calls are resolved.<p>Compare this to a traditional, well-optimized MPA. You navigate to another route. The server will come back with ALL data&#x2F;state resolved as well as all rendering (HTML) already done. And as this server response comes in, the browser is already working on the DOM layout&#x2F;paint process, which is not true for a REST call. Plus, back&#x2F;forward works reliably, scroll position works, memory leaks are no issue nor are stale tabs.<p>It&#x27;s really debatable whether the SPA has the better experience or that users demand it. The point is to deliver meaningful content and interactions, that&#x27;s the true value of whatever you are building. As such, I think the new wave of SSR&#x2F;hybrid frameworks are a step in the right direction.
评论 #34810034 未加载
mrweaselover 2 years ago
There&#x27;s certainly value in frameworks, but like with so many things we build today, most of them are build for a scale that most people don&#x27;t need.<p>I&#x27;m sure React is great, Angular as well, and VueJS, but they have grown to be all encompassing, so a developer is never stuck and need to rewrite everything. Many frameworks starts up being small, so people can understand them and easily learn. Then as time goes by the frameworks grown until they become to big and someone once again feel the need for a lighter framework and the cycle repeats.<p>Currently I&#x27;m trying to build a VERY small web app. It does need a tiny bit of JavaScript to pull in new data every minute or so. It&#x27;s much much easier to just forget about using a framework. It would take more time learning how you start a React or Angular project, than just learning the bits of modern JavaScript I need. Then I also don&#x27;t need to bother with npm, webpack or any other packaging and build non-sense a framework would try to impose on me. That save even more time.<p>The article is correct that something like React will save developer time, if the project is large enough. If not, simply figurering out which framework to pick and learn how to set it up is going to constitute the majority of the time spend on the project.
评论 #34802071 未加载
baguettefurnaceover 2 years ago
I agree that we overestimate the need for singlepage apps. the only thing that really needs singlepage is something that plays music or video content - so you can nav without stopping the music
college_physicsover 2 years ago
The debate seems only to get even more convoluted with the browser slowly opening up to things beyond javascript and interactions with servers getting richer too (eg htmx, websockets)<p>In the end it is a problem of multiple, near equivalent, solutions with no sharp-enough success criteria. This makes the traditional approach of using &quot;the right tool for the right job&quot; lose its edge.<p>Why dont we have good enough filters to select technologies and designs? Ultimately it must be that people&#x27;s expectations are low. Why is it so? One reason might be because the predominant value proposition is still dominated by the novelty introduced by global (mobile) connectivity. That is exemplified by minimalistic interfaces: the value is in the connectivity, not the information post-processing.<p>Once people get used to that basic fact they will start being more demanding and that might give rise to more differentiated criteria. In a sense right now there is much latent potential with existing tech that does not yet express fully because the conditions are not conducive.
评论 #34803804 未加载
bentlegenover 2 years ago
I thought this was an interesting, alternative lens at looking at the economic balance between supporting long-tail customers with higher performance needs vs. developer time&#x2F;cost. I suspect internationalization efforts operate similarly; it’s not often worthwhile to translate your software into many languages, many of which are rarely read&#x2F;spoken by users of your software.
technojunkieover 2 years ago
As long as WordPress fully embraces React as its future for Gutenberg, the case for frameworks still continue to be made for React. ~43% of all websites run WordPress, and those on version 5 or newer include React.<p>Try to convince modern developers who build Gutenberg blocks to use React-free libraries or frameworks for their component libraries or front-end.
adamrezichover 2 years ago
the framework&#x2F;bespoke complexity&#x2F;effort graph in this article is one of the most brazenly untrue graphs I&#x27;ve ever seen.<p>frameworks are all low-effort fun until you need to do some Hard Problem that they can&#x27;t handle well, then suddenly the effort shoots up massively, because now you&#x27;re trying to figure out how to do your hard problem within the structure and using the primitives of the framework.<p>bespoke solutions start off high-effort because you have to reinvent the proverbial wheel, but then as you keep rolling, it gets easier, <i>and</i> you have something that is better-architected for your exact problem. when the same kind of Hard Problem arises, you can solve it much more easily, because you&#x27;re unburdened by trying to shoehorn the solution into the structure and primitives of someone else&#x27;s framework.
rektideover 2 years ago
There&#x27;s been shockingly little mainstream change in how we write apps in the browser. Not a lot of frameworks have stepped up to present interesting new compelling capabilities. To Alex&#x27;s point: it&#x27;s not just that the customer doesn&#x27;t know what they&#x27;re buying, it&#x27;s that there&#x27;s not much significant difference between the goods (frameworks) and most get us to similar ends.<p>Mainly I think this boils down to there not being much actual innovation. Usually whatever framework you pick is fine: so long as it has sticking power&#x2F;can survive, it probably won&#x27;t get too far in the way, and it probably won&#x27;t really provide a major boost other than giving you some frame of reference to adhere to, some theme to riff off of. Sometimes frameworks overreach, promise to much, and collapse, sometimes they whither, but a huge amount stick around &amp; just keep doing what they&#x27;re doing, and few have real differentiating power. Although they are all written in their own distinct opinionated styles, they&#x27;re usually not very important.<p>Here&#x27;s some topics we could be making head-way on to make webapps better: incremental loading, early hints, url based routing, service-worker services, off-main thread services. There&#x27;s more experimental areas: custom elements, p2p data-channels, offline capable apps. Web Share &amp; Web Share Target and protocol handler capable apps. Multi-window placement apps, PIP apps. Reactive systems (mobx). IoC&#x2F;Dependency Injection. WebBundles&#x2F;WebPackage, Signed Exchanges, Http Signatures. Some of these wander far from the central core of what a framework might need, but others could be compelling dynamic parts. But the current position of frameworks, what they consider their purview, is very narrow. Personally I think the modern client stack should look a lot more like a web-server than it presently does.<p>Right now we still write code like it&#x27;s a process, but the web browser is really a multi-process environment. We have yet to see frameworks that really take that possibility &amp; aim for it. One of wasm&#x27;s most interesting possibilities is that we end up not with big processes ported to wasm, but lots of smaller littler independent processes communicating: I think the server-side people have thought about that, are excited for those very lightweight virtual machines, but I don&#x27;t see the front end as thinking about how to decouple &amp; unbundle &amp; un-monolithize their front-end. There&#x27;s ideas of portals and front-end microservices, but these are still often talking about fair conventional webapp architectures, just having many at once: they don&#x27;t tackle or think about interconnection &amp; shared services, about a network of front end microservices&#x2F;microapps.<p>The whole SSR thing is interesting &amp; good work is happening to reshuffle &amp; re-explore, but again, I just think interest arose here in part because the client-side failed to keep pioneering &amp; failed to be exciting, so this was just an open&#x2F;available other place to go explore. And while it has lots of virtues, I don&#x27;t think it&#x27;s actually that exciting or important, not nearly as much as improving the client-side, where the user agency is actually seated. The frameworks need to expand, especially client side. We all got safe &amp; conservative, started to apply the industrialized tools that work, and the hotbed of exploration &amp; innovation got demolished, was squelched. And we all had our energy sapped figuring out how to build &amp; bundle our stuff, via endless tooling, which we still are only so so ok at (still nothing would be a nice&#x2F;easy as an EcmaScript Modules that would just work with source-as-it-is-authored, which Deno seemingly sort of pulls off, but the web is still far from).
评论 #34798466 未加载
picturover 2 years ago
What was said for the SSR now, was said then for the SPA. People generally like to talk nonsense. I always see a comment like this under every post like this; - SPA doesn&#x27;t work + why? - because it doesn&#x27;t work
ravagatover 2 years ago
Interesting. I want to know for anyone: do you think frameworks are boilerplate and vice versa?