News for hackers. Stuff that matters.
Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by otabdeveloper4 on Saturday November 21, 2020 @03:27AM (#25168493)
> Yeah, but "making your code 100x faster" might cost significantly more than just adding 100x servers.

Cost? No. But it certainly requires more talent.

Unfortunately, programming talent doesn't scale with cost at all. In that it's like a creative endeavor: you can hire 10000 "professional writers" if you want, but that won't get you another Shakespeare.

Which is why I find the "software engineer" moniker silly. Software isn't at all like engineering.

Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by doctor_eval on Saturday November 21, 2020 @05:18AM (#25168842)
The term “software engineer” was invented to describe the work being done by Margaret Hamilton and her team, when developing the guidance software for the Apollo moon landings. It definitely is a form of engineering.

From Wikipedia:

> When I first came up with the term, no one had heard of it before, at least in our world. It was an ongoing joke for a long time. They liked to kid me about my radical ideas. It was a memorable day when one of the most respected hardware gurus explained to everyone in a meeting that he agreed with me that the process of building software should also be considered an engineering discipline, just like with hardware. Not because of his acceptance of the new 'term' per se, but because we had earned his and the acceptance of the others in the room as being in an engineering field in its own right.

https://en.wikipedia.org/wiki/Margaret_Hamilton_(software_en...

Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by jhgb on Saturday November 21, 2020 @08:10AM (#25169529)
> The term “software engineer” was invented to describe the work being done by Margaret Hamilton and her team, when developing the guidance software for the Apollo moon landings.

There's a considerable debate about when and where this term was "invented", apparently with some oral histories placing it even into (late?) 1950s.

As for grandparent's comment, I think it was referring to the fact that the nature of the job is completely different. For example a large portion of a traditional engineer's job deals with fighting the natural world. A bolt may rust away and stop doing what it was doing until then. A source code line in the form of

  a=a+7; 
won't do any such thing. As long as it exists it will keep doing the same thing. Hence software engineers have to deal with a completely different set of issues, to the extent that calling it "engineering" is to a certain extent metaphorical.
Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by heelix on Saturday November 21, 2020 @08:55AM (#25169741)
Code rots/rusts faster than most physical objects. Requirements change, libraries update at a breakneck speed. I've had to deal with some (functional) languages that don't allow you to change the the variable where some would allow that sort of modification just fine for your simple example. Change is everywhere.
Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by jhgb on Saturday November 21, 2020 @09:37AM (#25169940)
> Code rots/rusts faster than most physical objects. Requirements change, libraries update at a breakneck speed.

That's a forced metaphor as well, not actually an identical process. If "requirements change", that's not the same thing as a bolt rusting away. Surely the requirements for the rusting bolt didn't change, or the requirements for its "dependencies", i.e., the things it's attaching together.

> I've had to deal with some (functional) languages that don't allow you to change the the variable where some would allow that sort of modification just fine for your simple example.

I completely fail the relevance of that. Or maybe it is somewhat relevant, but in the completely opposite way, i.e., that this phenomenon does not even have an analogy in the physical world, thus underlining the vast differences between software engineering and classical engineering disciplines. (Likewise the dichotomy between a computational procedure and the process generated by said procedure, the latter being constrained in the way you describe, doesn't exist in traditional engineering either.)

Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by choeger on Saturday November 21, 2020 @03:55AM (#25168573)
That has nothing to do with talent IMO. Every software engineer worth their salt should be able to inspect a full stack, measure and evaluate the performance. Instead you have 80% people stuck in whatever the current fashion is (js, I look at you) and that cannot tell a png from a .so .

So in the end, it is more about attitude, not talent.

Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by freshhawk on Saturday November 21, 2020 @06:35AM (#25169122)
Agreed. When we focus on the part of the spectrum of optimizations that do require talent, we're thinking of the exceptional, interesting, makes-a-viral-post-on-HN stuff.

The bulk of the work, in my experience, is simpler than the programming part. It's just a culture/priority thing. Like how most of the industry used to not use source control. Now we do, we didn't need to add "talent" to get that done either.

Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by vendiddy on Saturday November 21, 2020 @10:15AM (#25170136)
I agree. One heuristic is the specs of our computers 20 years ago had.

Those computers were an order of magnitude slower. Yet many equivalent apps today run at about the same speed.

Performance is not being prioritized. And I suppose back then, devs had no choice given the resource constraints they had.

I've seen many times devs paying for larger databases instance without first even taking a few hours to try and optimize their queries.

Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by xxpor on Saturday November 21, 2020 @10:42AM (#25170262)
The depressing part of all of this is performance optimization is really fun! I love sitting down with flamegraphs and other profiler output and making things faster.
Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by otabdeveloper4 on Sunday November 22, 2020 @06:52AM (#25176744)
> software engineer worth their salt...

...is a scotsman that doesn't exist.

Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by Hamuko on Saturday November 21, 2020 @04:10AM (#25168628)
>Cost? No. But it certainly requires more talent.

Talented people usually cost a lot to optimize your code to be faster. And the more time they spend optimizing existing code, the less time they spend writing new code.

Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by t-writescode on Saturday November 21, 2020 @05:25AM (#25168874)
The more time they spend potentially unlocking the ability to write new code, though.

And faster code in existing places can unlock new business opportunities which can unlock more money.

Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by boffinism on Saturday November 21, 2020 @03:30AM (#25168499)
Fwiw engineering talent doesn't scale with cost either. What you've described is actually one of the areas software and engineering are similar, not divergent.
Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by nmfisher on Saturday November 21, 2020 @06:56AM (#25169201)
I’m not sure what you’re talking about. I’m not going to ask my developer - who I pay $2000 a day - to spend 10 days optimising my codebase to avoid an extra $5000 in server costs.

It doesn’t matter if they’re a 10xer or a 1xer, their time always has a price tag.

Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by jimnotgym on Saturday November 21, 2020 @07:06AM (#25169245)
That doesn't fit in my accountant's brain at all. $20k one off cost vs $5k recurring cost could mean anything if you omit the time period! $5k a year depends on your cost of capital, $5k per month is a no brainer
Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by cj on Saturday November 21, 2020 @07:55AM (#25169441)
The way I read the comment is $20k cost for a dev to optimize vs. $5k / yr cost in server, making it 4 years until you break even.
Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by jimnotgym on Saturday November 21, 2020 @09:22AM (#25169868)
It is still not clear if that is a good or a bad thing. It depends on your circumstances
Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by Hamuko on Saturday November 21, 2020 @09:11AM (#25169823)
>who I pay $2000 a day

American salaries sound great.

Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by Jtsummers on Saturday November 21, 2020 @09:52AM (#25170017)
That’s not a typical American salary. $250 per hour is specialist pay, consultant pay, or overpaid.
Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by Qwertious on Sunday November 22, 2020 @07:17AM (#25176863)
That's $730 000/year assuming work every day, and $500k assuming 5 days a week plus $30k for holidays.
Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by timkofu on Saturday November 21, 2020 @11:17AM (#25170483)
Engineering is using science to build technology, using engineering principles that are common to all engineering disciplines. Software Engineering is using engineering engineering principles to build software.

Project management methodologies like scrum are implementation level details, together with platform (user interface, programming language, database e.t.c). Software Engineering starts at the feasibility study, followed by detailed design, then comes the implementation phase. Most Software Engineering job posts only list implementation phase requirements, which I reckon has led to SE being misunderstood.

Re:Optimizing Your Web App 100x Is Like Adding 99 Servers by lultimouomo on Saturday November 21, 2020 @04:24AM (#25168667)
I don't think 100x more structural engineers can make a bridge with a hundred times longer span either.