News for hackers. Stuff that matters.
Re:In spite of an increase in Internet speed, webpage speeds... by andrepd on Tuesday August 04, 2020 @09:06PM (#24056230)
>The more modern style of heavier client-side js apps lets you use software development best practices to structure, reuse, and test your code in ways that are more readable and intuitive.

Sadly, this is probably where the core of the problem lies. "It makes code more readable and intuitive" is NOT the end goal. Making your job easier or more convenient is not the end goal. Making a good product for the user is! Software has got to be the only engineering discipline where people think it's acceptable to compromise the user experience for the sake of their convenience! I don't want to think to closely about data structures, I'll just use a list for everything: the users will eat the slowdown, because it makes my program easier to maintain. I want to program a server in a scripting language, it's easier for me: the users will eat the slowdown and the company budget will eat the inefficiency. And so on.

Re:In spite of an increase in Internet speed, webpage speeds... by heisenbit on Wednesday August 05, 2020 @04:39AM (#24058549)
> Making your job easier or more convenient is not the end goal. Making a good product for the user is!

This is a very limited perspective. Let me give you an enterprise software perspective:

1) Software maintenance costs. Better maintainable software allows more services to be delivered with a smaller budget.

2) Software is never finished. Ability to respond to new or changing user requirements matters to users and is perceived as part of the quality of service.

3) Software is going to be maintained by someone else. If they can not maintain it then users have to go through another iteration done by another team (best practice: fewer features, but at least the implemented features have more bugs).

Re:In spite of an increase in Internet speed, webpage speeds... by austincheney on Wednesday August 05, 2020 @05:00AM (#24058667)
> 1) Software maintenance costs. Better maintainable software allows more services to be delivered with a smaller budget.

Better is not the same as easier. This is such an equivocation fallacy since both of those terms are highly subjective. Maintenance costs are measured in numbers and not some imaginary developer ideal of job security.

Re:In spite of an increase in Internet speed, webpage speeds... by aryonoco on Tuesday August 04, 2020 @10:10PM (#24056607)
Code that is easier to read is easier to maintain and easier to debug. Code that is easier to read and more intuitive will, more often than not, result in a better product and better experience for the users.
Re:In spite of an increase in Internet speed, webpage speeds... by bananaface on Wednesday August 05, 2020 @04:10AM (#24058376)
I disagree with the premise. "Readability" is an excuse people use for writing slow code. It's not an inevitable tradeoff.

Like, most of these people are not saying, "we could do this thing which would speed up the app by an order of magnitude, but we won't because it will decrease readability." They have no idea why their code is slow. Many don't even realise it is slow.

My favourite talking point is to remind people that GTA V can simulate & render an entire game world 60 times per second, 144 times on the right monitor. Is that a more complex render than Twitter?

Computers are really fast, it doesn't take garbage code to exploit that.

Re:In spite of an increase in Internet speed, webpage speeds... by adamsea on Wednesday August 05, 2020 @09:44AM (#24060655)
IMHO it’s in part because of what I assume are different business models between a game like GTA and many / most businesses where a website / web app is core to their product.

Different business models result in different environments in which to conduct software engineering; different constraints and requirements.

IMHO constant and unpredictable change (which I assume happens less for games like GTA) is one of the big differences, as is the relationship between application performance and profit.

But I like what you’re saying and would love to see that world.

Re:In spite of an increase in Internet speed, webpage speeds... by Semiapies on Wednesday August 05, 2020 @11:07PM (#24067785)
How long does it take to start up GTA V on your computer?
Re:In spite of an increase in Internet speed, webpage speeds... by bananaface on Thursday August 06, 2020 @04:28AM (#24069115)
More than a website that preloads its structure into the cache and then transfers blocks of 280 characters, a name & a small avatar, rather than gigabytes worth of compressed textures.

Is the difference because GTA has more "readable" code?

I have other games that do load up quicker than Twitter, which I do think is damning, but it's not really the point I'm trying to get across here.

Re:In spite of an increase in Internet speed, webpage speeds... by Semiapies on Thursday August 06, 2020 @06:22AM (#24069648)
Well, the "less readable code"—ie, the goddamn mess that a lot of game code is, slapped together barely under deadline by staffs working 80 or more hours a week—is part of why AAA games like GTA have so many massive bugs requiring patches immediately after release.

But then, you brought up GTA and games, which aren't even apples and oranges with a website. Websites—even the Twitter website—don't require GPUs or dedicated memory, they don't have the advantage of pulling everything from the local hard drive, and yet they actually work as designed, not merely in a low-resolution, low-effects mode on computers more than a couple years old.

And while I wouldn't point out the Twitter home page as remotely fast for a web site, have you actually even looked at it recently? It shows a lot more than just a few tweets and avatars. It's got images, embedded video, etc.

Re:In spite of an increase in Internet speed, webpage speeds... by bananaface on Thursday August 06, 2020 @07:07AM (#24069879)
This is a dumb argument. My point is that readable doesn't imply slow, and "readability" is not actually the reason slow things are slow, most of the time. I don't think you even disagree with me.

There's definitely another discussion to be had about why web tech is so disastrously slow given what computers are capable of, but it's not worth having here. We're never going to settle that one, and regardless if you are a web guy, you're stuck with JS.

>It's got images, embedded video, etc.

Bad excuse IMO. Lazy load them.

Re:In spite of an increase in Internet speed, webpage speeds... by gowld on Wednesday August 05, 2020 @01:02PM (#24063023)
I don't have 8GB RAM to dedicate just to Twitter.
Re:In spite of an increase in Internet speed, webpage speeds... by hkt on Wednesday August 05, 2020 @09:46AM (#24060673)
GTA V has graphics card requirements that, I suspect, may be quite large compared to Twitter. Although it is worth noting that GPU acceleration in the browser is increasingly a thing: https://support.mozilla.org/en-US/kb/upgrade-graphics-driver...

That being said, I don't think it addresses the problems with client side applications, although it may allow more complex ones.

Re:In spite of an increase in Internet speed, webpage speeds... by peacefulhat on Wednesday August 05, 2020 @12:27PM (#24062618)
Websites like Twitter are not render bottlenecked. Even a software rendered game from decades ago like doom is doing more on the screen than Twitter.
Re:In spite of an increase in Internet speed, webpage speeds... by _jal on Tuesday August 04, 2020 @10:53PM (#24056834)
A: "Your restaurant's food tastes terrible."

B: "Nutritious, healthy food will ensure the longevity of my customers, thereby maximizing lifetime customer revenue."

Re:In spite of an increase in Internet speed, webpage speeds... by lyjackal on Wednesday August 05, 2020 @10:12AM (#24060939)
I think a better analogy might be telling a restaurant to cut down their oversized menu so that they can actually make at least one good meal
Re:In spite of an increase in Internet speed, webpage speeds... by d3nj4l on Tuesday August 04, 2020 @11:40PM (#24057059)
That's an awful analogy
Re:In spite of an increase in Internet speed, webpage speeds... by bb88 on Wednesday August 05, 2020 @03:16AM (#24058088)
I just logged into nest for the first time on a new laptop. It took 15 seconds to load and get to the screen to change the temperature on the thermostat.

Then I refreshed the page and it still took 10 seconds to reload.

I'm sure their code is also relatively bug free.

Re:In spite of an increase in Internet speed, webpage speeds... by pc86 on Wednesday August 05, 2020 @07:49AM (#24059757)
It's actually pretty good analogy, when you're searching for an analogy of something being technically accurate while missing literally the entire point.

Making your code "more intuitive" does not result in a better product. Making a better product does. The argument is that software development is one of the few jobs where the employees' experience seems to be equal or more important than the client experience. Sacrificing a restaurant goer's experience (taste) because it makes the restauranteur's experience (customer LTV) better is a decent analogy.

Re:In spite of an increase in Internet speed, webpage speeds... by newsbinator on Wednesday August 05, 2020 @10:22AM (#24061076)
A: "I enjoy your restaurant's food but my chef friend said your kitchen is inefficient".

B: "As long as you enjoy it, and we can keep making it for you at the same quality you enjoy, we don't care how inefficient our kitchen is".

Re:In spite of an increase in Internet speed, webpage speeds... by nybble41 on Wednesday August 05, 2020 @06:22PM (#24066250)
A: "Okay, but the new place next door serves identical food with a more efficient kitchen, at lower prices you can't match without making significant changes. If you don't improve efficiency somehow you'll start to lose customers."
Re:In spite of an increase in Internet speed, webpage speeds... by AnIdiotOnTheNet on Wednesday August 05, 2020 @09:50AM (#24060700)
Then please explain why the increasing trend in developer convenience is correlated with the decline in user experience.
Re:In spite of an increase in Internet speed, webpage speeds... by aeontech on Thursday August 06, 2020 @05:17AM (#24069340)
It’s a false correlation.

Because the universal rule is that 90% of everything is terrible, including software. Corollary rule is that work expands to fill all available time, and software expands to fill all available resources.

If you go back to before the ascent of age of front-end frameworks, you would find that there were still tons of sites that were slow and poorly performing, despite running entirely in server-side technologies.

Something that made Google incredibly appealing when it first came out was it’s instantly-loading front page with a single search box and a single button. This was in drastic, shocking contrast in the age where every other search engine portal had a ton of content on it, including news, stock tickers, and the kitchen sink.

In the end, unless the developers of the sites make performance a priority, it makes absolutely no difference what the tech stack is. The problem is that companies don’t prioritize it.

Re:In spite of an increase in Internet speed, webpage speeds... by r0b05 on Wednesday August 05, 2020 @02:02AM (#24057710)
I wholeheartedly agree.

Maintainable code can quickly and easily be extended into new features for the customer.

Unmaintainable code usually results in a ton of support tickets and late nights hunting and fixing bugs that originated from deploying into production that day. This leads to heartache and frustration for the customer.

The customer comes first, yes. Good maintainable code, is a way to achieve this goal.

Re:In spite of an increase in Internet speed, webpage speeds... by syats on Wednesday August 05, 2020 @05:43AM (#24058896)
The article this thread is about clearly shows that your second statement is not true.
Re:In spite of an increase in Internet speed, webpage speeds... by ictebres on Wednesday August 05, 2020 @09:12AM (#24060408)
Page loading speed is not the only concern the users have.
Re:In spite of an increase in Internet speed, webpage speeds... by midrus on Thursday August 06, 2020 @01:50AM (#24068436)
Tell this to Reddit developers
Re:In spite of an increase in Internet speed, webpage speeds... by lowwave on Wednesday August 05, 2020 @09:02AM (#24060316)
One can make code more readable and intuitive and making a good product for the user.

I have done both in heavy server side rendering using templates and SPA rendering on the client side. It all comes down to your user base and the devices/browser they are using, if they have an aversion toward running JS in the browser.

By using JS on the server side, you can maintain quite bit of logic on both server and client side. If you are doing web development, why not make it the same. Yes, one shall not trust the client validation, but many people find JS validation to be more user friendly than a form submit.

Re:In spite of an increase in Internet speed, webpage speeds... by octodog on Tuesday August 04, 2020 @10:50PM (#24056816)
I find this comment a bit odd. It seems clear to me that code that is easier to write, reuse, test and maintain saves time and money that can then be spent on building a better product. Do you disagree?
Re:In spite of an increase in Internet speed, webpage speeds... by pjmlp on Wednesday August 05, 2020 @01:46AM (#24057621)
How does that help sell more pizzas per day?

Blunt example, however that is what matters to a customer that just commissioned a web site for pizza delivery.

Re:In spite of an increase in Internet speed, webpage speeds... by hombre_fatal on Wednesday August 05, 2020 @08:07AM (#24059901)
Then again, my decision to order a pizza doesn't hinge on whether I have to wait an extra 5 seconds for the initial payload.

But it does hinge on how good the delivery website is though. If you haven't been to a pizza website in the past 10 years, let me point out they are complex with interactive drag-and-drop build-your-own-pizza wizards. Better client-side tech helps build those features to sell more pizzas.

How does your envisioned alternative help sell more pizzas than the heavy-client approach that pizza corporations have decided on?

Re:In spite of an increase in Internet speed, webpage speeds... by AnIdiotOnTheNet on Wednesday August 05, 2020 @09:54AM (#24060747)
> Then again, my decision to order a pizza doesn't hinge on whether I have to wait an extra 5 seconds for the initial payload.

Really? Because personally I find I tend to do more business with places that have interfaces that don't make me want to beat the developer with a wrench.

Re:In spite of an increase in Internet speed, webpage speeds... by pjmlp on Wednesday August 05, 2020 @08:29AM (#24060057)
By making use of APIs that deliver ready made HTML snippets via WebSockets, with on device caching.
Re:In spite of an increase in Internet speed, webpage speeds... by laumars on Wednesday August 05, 2020 @03:14AM (#24058080)
It’s even more important in that case because writing a pizza delivery website isn’t a complex nor new problem so doesn’t need a complex solution.

But to answer your question, if you write clean code then when that company expands it’s operations it is easier for you (or whoever next gets commissioned) to later expand on that site to add more restaurants, thus then allowing your customer to sell more pizzas.

Re:In spite of an increase in Internet speed, webpage speeds... by pjmlp on Wednesday August 05, 2020 @04:07AM (#24058364)
That is definitely not a feature that requires JavaScript, if you now want to pick on my example.
Re:In spite of an increase in Internet speed, webpage speeds... by laumars on Wednesday August 05, 2020 @02:20PM (#24063880)
> That is definitely not a feature that requires JavaScript

You’re right it doesn’t but I thought the context had drifted from that topic and onto code quality.

If we’re talking strictly about JS heavy sites then I’m definitely in favour of the less is more approach. There’s times when it makes sense having JavaScript trigger restful APIs rather than have the entire site rendered on the server side. The problem is JavaScript often gets overused these days.

I could write an essay on where I think modern tech has gone off the rails though.

> if you now want to pick on my example.

That’s a strange comment to make considering you presented the example for discussion. Of course people will then “pick on” the example, in fact you’d be the first to moan about a straw man argument if people cited a different example.

Re:In spite of an increase in Internet speed, webpage speeds... by brailsafe on Thursday August 06, 2020 @07:13AM (#24069912)
Which engineering discipline's primary concern is user experience?
Re:In spite of an increase in Internet speed, webpage speeds... by almostdeadguy on Tuesday August 04, 2020 @11:15PM (#24056938)
One of the truly differentiating factors for good software engineers is being able to recognize when your habits are in harmony with the objectives of the project you're working on. And on the meta-level, developing the sense for how to keep them in harmony with the trajectory of a project which will likely prioritize different things at different points over its lifespan.

Propensity to change is one of the most common features I've found in software projects I've worked on in my career and most software engineering "best practices", as conceived by the authors of opinions about these things, are usually strategies for managing rapid change. i.e. structuring code so it's amenable to change, understandable to the maintainer who inherits your code, has guardrails around important invariants and guarantees via assertions and tests, etc.

The details of how (and to what degree) these things should be done are highly contextually sensitive, and that is where the dogma of "best practices" can start to interfere with creating a good user experience. But I find it a little eye-rolling when people talk about hygienic software development practices and user experience as though they are in opposition. Tests, legible code, flexible structure, etc. are enablers of good user experience, because they're what allow us to change products to fit the needs of our users. They're what allow us to ship things that people can use without them exploding.

The tendency toward asset bloat on the web and just the general use of cheap-in-development-costly-for-the-user solutions (scripting languages, inefficient data structures, verbose serialization formats, piles of dependencies) is definitely an industry problem, but I think its naive to attribute these decisions to lazy devs or devs trying to make their jobs more convenient. In my experience there's two common causes for this state of things:

1. In all seriousness, the nature of capitalism. In reality, most businesses don't actually care about the majority of prospective users. They care about a couple narrow segments of users, and if those users happen to be equipped with hardware to handle this kind of inefficiency (i.e. if they're first world clients on desktop or high end mobile devices with 4G access), the business largely doesn't care. Responsiveness, low resources consumption, low energy impact, etc. are fungible engineering goals if they don't negatively affect your sales objectives.

2. The org hasn't figured out how to incentivize responsiveness, low resource utilization, etc. as objectives. Software developers get requests to focus their efforts on all different manner of criteria, and the without designing incentivization schemes and feedback loops that orient toward these objectives, there is no particular reason why they'll be inclined towards them.

Re:In spite of an increase in Internet speed, webpage speeds... by john-shaffer on Tuesday August 04, 2020 @11:14PM (#24056933)
> I'll just use a list for everything: the users will eat the slowdown

"Premature optimization is the root of all evil." You often should use a list until you've identified a specific performance issue. The list isn't the problem. Not actually optimizing is.

Re:In spite of an increase in Internet speed, webpage speeds... by account42 on Wednesday August 05, 2020 @04:37AM (#24058537)
Choosing the right data structures and algorithms is not premature optimization.
Re:In spite of an increase in Internet speed, webpage speeds... by john-shaffer on Wednesday August 05, 2020 @10:37AM (#24061243)
I agree if you know, e.g., that the list is going to contain thousands of items or is going to be iterated over in your inner loop. That's not premature optimization, that's just common sense. Hence the qualifier "premature".
Re:In spite of an increase in Internet speed, webpage speeds... by pdimitar on Wednesday August 05, 2020 @07:35AM (#24059638)
> You often should use a list until you've identified a specific performance issue.

Identifying a JS performance issue is something that almost no company ever does unless revenue is obviously threatened (and even then many fail to act). So IMO it pays off to do a little bit of premature optimization in JS land.

Re:In spite of an increase in Internet speed, webpage speeds... by hazz99 on Wednesday August 05, 2020 @02:01AM (#24057704)
> "It makes code more readable and intuitive" is NOT the end goal. Making your job easier or more convenient is not the end goal. Making a good product for the user is!

I think the end goal is more about balancing the value you can create with the budget you have. It's an optimization problem.

If I can deliver 80% of the value for 20% of the price, I will do that.

Re:In spite of an increase in Internet speed, webpage speeds... by foepys on Wednesday August 05, 2020 @02:51AM (#24057972)
Until somebody comes around and sells the 100% product for a 50% markup and enough people value completeness and UX more than their money. See Apple's MacBook Pro and iPhone.

Another example: I absolutely hate Amazon Prime Video for its UX and bugs they didn't fix for years (like asynchronous audio). So even though Prime is significantly cheaper in Germany, I rather pay for the more expensive Netflix instead.

Re:In spite of an increase in Internet speed, webpage speeds... by hazz99 on Wednesday August 05, 2020 @05:57PM (#24066068)
Yes, but low end notebooks would still exist. Different customer segments.
Re:In spite of an increase in Internet speed, webpage speeds... by simion314 on Wednesday August 05, 2020 @04:22AM (#24058442)
I agree with you that it makes sense from a dev point of view but what about the users?

Imagine all restaurants and cooks in the city decide that from tomorrow they want to make their job easier so they will drop ingredients, hygiene and processing quality with 80% so they will work less and make more profits. The ones that won't follow the new way will be put out of business because they will have more expenses and the lazy ones can put some of the new profits evangelizing the new ways making it look cool.

Re:In spite of an increase in Internet speed, webpage speeds... by hombre_fatal on Wednesday August 05, 2020 @08:16AM (#24059956)
People's decisions actually do hinge on those restaurant examples, though. Gross food? Hair in your meal? Horrible service? Restaurants can't get away with that due to stark business and reputation penalties. People will simply never come back.

Quite a different scenario than all websites taking an extra few seconds to load.

In fact there's very little a website can even do to turn off customers like a restaurant can. Imagine if HN took 10 seconds to load. Who cares? There's no "HN across the street" that I can go to that hinges on a 10 second wait time.

Re:In spite of an increase in Internet speed, webpage speeds... by adamsea on Wednesday August 05, 2020 @09:47AM (#24060679)
You’ve just described fast food!

Except of course it’s not the workers but the business decision-makers plus economic environment/pressures that make the decision.

Re:In spite of an increase in Internet speed, webpage speeds... by hazz99 on Wednesday August 05, 2020 @07:36AM (#24059649)
No, they will serve different customer segments and the market will split into the various strategic positions it can support.

It’s just a different business model. Less value, less expensive, higher volume. More value, more expensive, lower volume.

In your example, one of the restaurants become McDonalds and another becomes a gourmet restaurant. They compete differently.

Re:In spite of an increase in Internet speed, webpage speeds... by simion314 on Wednesday August 05, 2020 @08:20AM (#24059981)
Right, so a native fast application would have a niche of users that care where the apps made with electron will have a larger user base because it will be cheaper to create for the developers but users will pay with lectricity and frustration.

My issue is that you can market some cheap food like "our food is cheap but good enough, come here to save money" where with software is "our software is slow,buggy,eats your battery - use it because we are lazy and we want to use latest coolest language to put on our CV".

Sure when I do a proof of concept toy project I will be lazy and use whatever I like, if I share it it will be free = I have a problem with big projects say a news site that has millions of users and your laziness(or using latest cool stuff) affects such a giant number of people.

Re:In spite of an increase in Internet speed, webpage speeds... by hazz99 on Wednesday August 05, 2020 @09:12AM (#24060396)
There’s no moral obligation to make incredibly efficient and streamlined software. Solving the problem and proving sufficient value is usually enough.

Sure, they might get displaced by a competitor in the future - but by then they’ve probably got a large user base and a warchest to compete with. Slack is a great example of this.

If it’s software that’s life critical, then maybe, but that’s a small minority.

Markets and buyer preferences are always changing - I think it’s better to be agile (ie high developer velocity with talented product managers) to be able to detect and capture these shifts.

Re:In spite of an increase in Internet speed, webpage speeds... by bananaface on Wednesday August 05, 2020 @04:22AM (#24058440)
Slack has a budget of multiple millions, RipCord has a budget of zero, and one programmer who works on it in his spare time. Which is faster?

Polishing RipCord so it looked indistinguishable from the Slack client wouldn't be that expensive. I would argue its much more "they don't know how" than "they are making a business decision not to."

Re:In spite of an increase in Internet speed, webpage speeds... by hombre_fatal on Wednesday August 05, 2020 @08:25AM (#24060026)
That should only remind you that people care about a lot more than just performance.
Re:In spite of an increase in Internet speed, webpage speeds... by bananaface on Thursday August 06, 2020 @07:13AM (#24069910)
Why would I assume this particular failure is a choice?