News for hackers. Stuff that matters.
Re:Speed Is the Killer Feature by baybal2 on Tuesday March 02, 2021 @06:46AM (#26314264)
Hello,

Can you tell what is your occupation? Are you dealing with assembler level programming regularly?

Re:Speed Is the Killer Feature by jiggawatts on Tuesday March 02, 2021 @07:04AM (#26314398)
Not any more, these days I do various kinds of systems integration work and I still dabble in development, but mostly with high-level languages like C#.

It just grinds me gears that we have all these wonderfully fast computers and we're just throwing the performance away.

My analogy to customers where I consult is this: What you're doing is like buying a dozen sticks of RAM, and then throwing ten of them into the trash. It's like pouring superglue into all but a couple of the switch ports. It's like buying a 64-core CPU and disabling 63 of those cores. It's like putting some of the servers on the Moon instead of next to each other in the same rack.

Said like that, modern development practices and infrastructure architectures suddenly sound as insane as they truly are.

Re:Speed Is the Killer Feature by josephg on Tuesday March 02, 2021 @07:21AM (#26314520)
I totally agree. I think about it like, you spend $3000 on a computer. $100 goes into actually doing your computing. The rest is thrown away by lazy programmers who can’t be bothered to learn how a profiler works. Most software is written the same way a lazy college student treats their dorm room - all available resources (surfaces) are filled before anything gets cleaned up. Getting a bigger room provides temporary relief before they just make more mess to fill the space.
Re:Speed Is the Killer Feature by zwirbl on Tuesday March 02, 2021 @07:35AM (#26314638)
Wirth's law is a reality, an awful, horribly annoying one
Re:Speed Is the Killer Feature by Pxtl on Tuesday March 02, 2021 @11:51AM (#26317298)
"can't be bothered to learn how a profiler works"

To be fair, profiling is way more difficult than it was in the days of single-core local applications. A single-threaded single-machine application means you can get a very clear and simple tree-chart of where your program's time is spent, and the places to optimize are dead obvious.

Even if you're using async/await but are basically mostly releasing the thread and awaiting the response, the end-user experience of that time is the same - they don't give a crap that you're being thoughtful to the processor if it's still 0.5s of file IO before they can do anything, but now the profiler is lying to you and saying "nope, the processor isn't spending any time in that wait, your program is fast!".

Re:Speed Is the Killer Feature by toast0 on Tuesday March 02, 2021 @02:54PM (#26319718)
> To be fair, profiling is way more difficult than it was in the days of single-core local applications.

Not if you graduated from the printf school of profiling[1].

Measure the time when you start something, measure the time when you finish, and print it. Anything that takes too long gets a closer look.

[1] unaffiliated with the printf school of debugging, but coincidentally located at the same campus.

Re:Speed Is the Killer Feature by baybal2 on Tuesday March 02, 2021 @07:37AM (#26314653)
From MCU programmers, I know you can make even a microcontroller run around a Xeon if you know how you can squeeze every cycle of performance, and exploit particularly hard tasks to optimise.

Write a riddle for a CPU with 100% cache miss rate, confusing the prefetcher to clog the memory bus, and enforcing a synchronous memory access. Such thing is very likely to run literally with an MCU speed on an x86 PC CPU.

Re:Speed Is the Killer Feature by seer on Tuesday March 02, 2021 @07:34AM (#26314627)
Well yea and no, ideally you are not “throwing” that RAM away, you are paying for a more flexible software that can be more easily changed in the future, or to be able to pay much less for your developers, often both.

Nobody wants slow software, its just cheaper, in upfront and maintenance costs. Going with analogies, its like a race car mechanic complaining that a car is using like 3 cylinders where it could have 8. Sure but some people have other priorities I guess.

Re:Speed Is the Killer Feature by pdimitar on Tuesday March 02, 2021 @07:41AM (#26314675)
> you are paying for a more flexible software that can be more easily changed in the future

In theory yes, in practice this almost never happens. 95% of the teams just quickly mash the product together and peace out before anyone notices what mess did they make. And then you have some poor Indian / African / Eastern European team trying to untangle and improve it.

Seen it literally tens of times over a course of 19 years career.

> Nobody wants slow software, its just cheaper, in upfront and maintenance costs

That is true. But nowadays it's more like taking a loan from the bank and running away to an uninhabited island to avoid paying it off.

Re:Speed Is the Killer Feature by mynameisash on Tuesday March 02, 2021 @01:47PM (#26318827)
> In theory yes, in practice this almost never happens. 95% of the teams just quickly mash the product together and peace out before anyone notices what mess did they make.

Much of my work is in highly parallelized computing (think Spark across thousands of nodes) processing 10s or 100s of TiB at a time with declarative syntax. It's super cool. Until someone decides they're going to use this one line expression to process data because it's just so easy to write. But it turns out doing that absolutely destroys your performance because the query optimizer now has a black box in the middle of your job graph that it can't reason about.

Bad practices like that occur over and over again, and everyone just figures, "Well, we have a lot of hardware. If the job takes an extra half hour, NBD." Soon, you have scores of jobs that take eight hours to run and everyone starts to become a little uneasy because the infrastructure is starting to fail jobs on account of bad data skew and vertexes exceeding the predefined limits.

How did we get here? We severely over-optimized for engineer time to the detriment of CPU time. Certainly, there is a balance to strike, no doubt. But When writing one line of code versus six (and I'm not being hyperbolic here) becomes preferable to really understanding what your system is doing, you reap what you sow.

On the plus side, I get to come in and make things run 5x, 10x, maybe even 20x faster with very little work. It sometimes feels magical, but it would be preferable if we had some appreciation for not letting our code slowly descend into gross inefficiency.

Re:Speed Is the Killer Feature by pdimitar on Friday March 05, 2021 @12:03PM (#26359107)
Death by a thousand paper cuts. Classic.
Re:Speed Is the Killer Feature by seer on Tuesday March 02, 2021 @09:14AM (#26315504)
Maybe it didn’t really come across I am totally in the performance camp and love to be able to craft a beautiful, lean and responsive UI if nothing else than for seeing the joy on users’ faces when they are delighted (amazed!) that what they wanted done happened so fast.

But time and time again I see that projects with a fast “enough” interfaces and flexible systems win out on more specialized, faster ones. And I hate that but here we are. Sometime we see a really performant piece of software hit the sweet spot of functionality for a while (for example sublime text) but then get overtaken by a fast enough but more flexible alternative (vacode)

Re:Speed Is the Killer Feature by anthk on Tuesday March 02, 2021 @09:23AM (#26315580)
>Eastern European

Eastern European coders are highly competent, they did magic back in the day with just a ZX Spectrum.

Re:Speed Is the Killer Feature by pdimitar on Tuesday March 02, 2021 @09:27AM (#26315628)
As an Eastern European programmer, I agree. A lot of us are called to fix messes left by primadona devs (who are taking home $200K a year for the privilege of making other people's lives a living nightmare).
Re:Speed Is the Killer Feature by tharne on Tuesday March 02, 2021 @10:34AM (#26316315)
To be fair, most of those "primadona devs", as you call them, would much prefer to write well-designed programs cleanly coded, but are given completely unreasonable timeframes and staffing then told to create an MVP then turn it over to offshore.

Very few people enjoy producing junk, but management (and customers) often demand junk today rather than quality tomorrow.

Re:Speed Is the Killer Feature by ridethebike on Tuesday March 02, 2021 @03:51PM (#26320500)
Primadona dev here :)

>> most of those "primadona devs", as you call them, would much prefer to write well-designed programs cleanly coded

Most of them - yes. But there's a non-negligible chunk of them who are too careless or incompetent to care about quality - they've been around long enough to gain knowledge about project and get Vice-President title(inflated ego included).

It is especially visible in big banks (I suppose it's typical for other big non-tech corps as well) where tech culture is generally on poor side.

edit: grammar

Re:Speed Is the Killer Feature by pdimitar on Tuesday March 02, 2021 @01:12PM (#26318363)
Obviously neither me nor you can generalize -- both extremes exist.

Given the chance I'd likely collect a fat paycheck and bail out at the end of the contract as those other people did. But that attitude is responsible for the increasingly awful mess that modern software is becoming.

Almost everyone is at fault, me included. The perverted incentives of today's world are only making things worse.

Re:Speed Is the Killer Feature by seer on Tuesday March 02, 2021 @12:21PM (#26317708)
Hah true dat. Been my life for the last couple of years :-D Managed to pull through a project that “failed” two times and was 2.5 years behind schedule...