Live data from Hacker News

Software Disenchantment (2018)

tonsky.me

61–70 of 504 posts

Re: Software Disenchantment (2018)

#61
post #32

I think people who recognise this have generally been developing from the days where computing resources were scarce (or on mediums now where they need to be efficient). It was a necessecity to implement efficient techniques instead of a nice to have. Nowadays those restrictions have been lifted for the most part. In this day of "Agile" development, as long as something's working during UAT, that's all that's needed…

Time is as scarce as it ever was.

Re: Software Disenchantment (2018)

#62
>You’ve probably heard this mantra: “Programmer time is more expensive than computer time.” What it means basically is that we’re wasting computers at an unprecedented scale. Would you buy a car if it eats 100 liters per 100 kilometers? How about 1000 liters? With computers, we do that all the time.

The argument is incomplete.

The correct question (to maintain the analogy) is:

"Would you buy a car if it eats 1000 liters per 100 kilometers, but that doesn't affect you at all (you still get to where you want to be fast enough), and the time to manufacture and cost to buy it is much lower than would be possible with more efficient car that used 10 liters per 100 km?"

The answer to which would be yes. A software that does a task we do once a day or so at 1 second vs 0.2 seconds doesn't cost us money (and even the environmental impact is small).

Re: Software Disenchantment (2018)

#63
> Modern buildings use just enough material to fulfill their function and stay safe under the given conditions. ... Only in software, it’s fine if a program runs at 1% or even 0.01% of the possible performance.

> I can comfortably play games, watch 4K videos, but not scroll web pages? How is that ok?

IMO the comparison should be buildings fine-tuned libraries (i.e. video decoding algorithms), modern applications cities.

Go to any city center in Europe. Urban planning a century ago was much more elegant and elaborate taking into consideration the city as a whole. Nowadays developers and investors often ignore important aspects, such as surrounding buildings, infrastructure, making cities inefficient for the people who actually live there.

Any system which has plenty of resources has to become inefficient. It's just that the Moore's law allows for pretty damn inefficiency.

Re: Software Disenchantment (2018)

#64
post #50

I agree with this. I think we need a guild. We need licensed software engineers. Not every programmer needs to be one, just like not every engineer needs to be licensed, but there needs to be a licensed engineer on every team. And, of course, sometimes there doesn't need to be. But I sure wish there was the option. And hell, bring back apprenticeships and mentoring with the guild. There is so much we could learn from…

It's an interesting idea, but I feel like a lot of the cause of the problem is unrealistic deadlines and a desire to build software insanely fast.

Re: Software Disenchantment (2018)

#65
post #34

> Jonathan Blow has a language he alone develops for his game that can compile 500k lines per second on his laptop. That’s cold compile, no intermediate caching, no incremental builds. You don’t have to be a genius to write fast programs. The guy is most definitely at least a genius.

Depends on your definition of genius, but I definitely agree that these folks don't quite hold up the sentiment that "anyone can do it." I would put Martin Thompson, Raph Levien, and Jonathan Blow at least in the top 0.1% of programmers.

They are great examples for his overall point though. It probably would've been better just to leave out the genius bit and talk about them as folks proving it can be done.

Re: Software Disenchantment (2018)

#66
post #55

The article quotes this in regards to npm: https://medium.com/s/silicon-satire/i-peeked-into-my-node-mo... ? It seems he does not realise that this is a satire piece, and seem to completely buy in to his view of the world instead of seeing things in a more nuanced way.

This made my day! It just gets better and better!

Re: Software Disenchantment (2018)

#67

He seems to make a contradictory point... he complains: > iOS 11 dropped support for 32-bit apps. That means if the developer isn’t around at the time of the iOS 11 release or isn’t willing to go back and update a once-perfectly-fine app, chances are you won’t be seeing their app ever again. but then he also says: > To have a healthy ecosystem you need to go back and revisit. You need to occasionally throw stuff away…

It's possible to both improve efficiency and maintain backwards compatibility.

Combining these two is only a non-issue with unlimited resources.

Otherwise it's a tradeoff if you add constraints like cost, effort, time to market, and so on...

Re: Software Disenchantment (2018)

#68
He has a nice follow up which gets to the reasons why

https://tonsky.me/blog/good-times-weak-men/

Another take: rewrites and rehashes tend to be bad because they are not exciting for programmers. Everything you re about to write is predictable, nothing looks Clearly better and it just feels forced. First versions of anything are exciting, the possibilities are endless, and even if the choices along the path are suboptimal, they are willing to make it work right.

Re: Software Disenchantment (2018)

#69
post #54

FTA: > As a general trend, we’re not getting faster software with more features. We’re getting faster hardware that runs slower software with the same features. Or fewer features. Talk to an actual professional who uses spreadsheets all day long about switching from Excel to Google sheets. It's infuriating the infantilization of UIs and the "oh they'll never miss it" attitude.

Google sheets is what happens when you ask a brogrammer to make spreadsheet software.

Re: Software Disenchantment (2018)

#70
post #61
post #32

I think people who recognise this have generally been developing from the days where computing resources were scarce (or on mediums now where they need to be efficient). It was a necessecity to implement efficient techniques instead of a nice to have. Nowadays those restrictions have been lifted for the most part. In this day of "Agile" development, as long as something's working during UAT, that's all that's needed…

Time is as scarce as it ever was.

Indeed, and pragmatism should be applied, but I mean in the context of not being rushed. I don't mind my team watching YouTube/browsing the web during work if things are going well but I wouldn't accept it if it's done after submission of suboptimal code. If there's time to watch YT, there's time to improve your code (unless it's clearly too much of a refactor).
Post reply on HN