4 ms·
Large tech companies seriously do not care. They say they do, and they point to all these heuristics and optimizations, they point to Chrome's dev tools where y
by 013a 8y ago
Large tech companies seriously do not care. They say they do, and they point to all these heuristics and optimizations, they point to Chrome's dev tools where you can simulate slow connections, etc. Great.
The problem is, they're taking an experience that is fundamentally ridiculously heavy, and then spending thousands of man-hours trying to optimize it. No one even considers that maybe its the experience itself that is too heavy, and no optimizations can help that.
Youtube Home Page. Load it up, and you'll find its making over 200 requests, transferring megabytes of data. Google's most obvious solution: Lets speed up TLS, make each request go faster, lets invent new image and video compression algorithms to lower the size of each response, lets batch requests to reduce latency, technology, complexity, more code, more code.
No one actually takes a step back and asks if the Youtube home page should make 200 requests. What if it only made 20 requests? We gotta load some thumbnails, so there's bound to be a lot of requests there, but otherwise what the heck is all this JS?
TLS on one request isn't the problem. The problem is the hundreds of requests a typical website leans on.
Uncomfortable opinion: The only reason the internet has survived for so long is because of Moores Law. We've developed all of this technology and SDLC process in an era where another 20% jump in performance is just around the corner, so who cares if it's slow today. Yeah, that era is done. And we, as an industry, are completely fucked. Its not an understatement to say its a "back to the fundamentals" moment, and its going to cost us billions of collective dollars engineering for it.
- Shoh3pif 8y agoThere's at least another 1000% to squeeze out by using more lines of code at the compiler side. Look at the wasm movement that wants to bring highly optimized intransparent code blobs to the client side and web servers written in rust so they can deliver even more complex applications in this post-moore world. Of course they'll sacrifice debuggability in addition to accessibility on that altar.
- jerf 8y agoThe problem the article reported is almost entirely about network requests, though. Relative to the speed the data was coming in, they had CPU and GPU coming out the ears. Switching the JS to WASM won't make that world particularly worse, nor better. It's the stuff generating fresh network requests that needs to change, and the size of the responses.
- Footkerchief 8y agoThe industry is fucked because it's focusing on making core technologies better and faster instead of optimizing specific websites? I couldn't disagree more. In 10 years, the fixes made to existing websites will have been replaced with a new set of inefficiencies, but the benefits and drawbacks of today's physical infrastructure, protocols, and algorithms will endure.
- rrix2 8y ago> In 10 years, the fixes made to existing websites will have been replaced with a new set of inefficiencies The point I took from parent's comment is that we should consider not thinking this way, that it's not a fact set in stone. That individual sites can and should be built on better foundations that don't involve building our own transport layers
- 013a 8y agoThe industry is fucked because we've had 30 years of "X at any cost" mentality, which has permeated most product managers, developers, C-Suite, anyone technical. X can be a few things. Growth. Data. Analytics. Usage. Engagement. Security. But the point is the "at any cost" part, because we rarely consider the costs of the engineering decisions we make across any of these. Over 30 years, we've been able to sustain this because there's always been "more" around the corner. Facebook and Snapchat can sustain "growth at any cost" because there's always more people in some (moving target) country that the service hasn't hit yet. JS, Python, or Ruby is used to support "development speed at any cost" because we'll always have faster computers next year. Google wants "more data at any cost" because there will always be new applications of AI to find value in it, there will always be advancements in storage technology to store it, and users will never care that we're slurping up so much. But... none of this is true over a long enough timeframe. And when this idea of "the cost doesn't matter because we'll figure that out later" permeates the core of our tech stacks and people, pivoting that is ridiculously difficult. Especially when the negative changes are beginning to happen so quickly. Don't get me wrong; we need the people working on optimizing TLS, new media compression, leaner HTTP request formats, all that. But I'm saying that we need more; we need a mind-shift in the way we build software and our software companies. I don't know what that should look like, but I think what we'll discover is: Keep it simple, Abstraction layers kill performance, Making it work exactly how you want is less important than it working, working fast, and working for everyone regardless of physical, technical, or geographical disabilities, and Backward compatibility might just have to be sacrificed every once in a while.