Making Reasonable Use of Computer Resources
1–10 of 32 posts
Re: Making Reasonable Use of Computer Resources
#2Re: Making Reasonable Use of Computer Resources
#3Back in the day people dependencies were an obscure free software thing and everyone just rewrote the same shit against Microsoft's or AT&T's interfaces, with maybe some in-house libraries.
People sucked at making and using abstractions, and didn't do it.
Then the pendulum swung and people started being download all sorts of crap and everything began to depend on everything else. Every once and a while the pile caves in and people star all over.
People sucked at making and using abstractions, but did it.
There's no way to roll back the clock. Forgoing code reuse is too costly. But we could write better abstractions and think about what it means to maintain whole library ecosystems (planning the division of labor and separation of concerns) rather than just individual libraries.
Re: Making Reasonable Use of Computer Resources
#4Saying programmers should "just do more work" is incredible economic naivety. Back in the day people dependencies were an obscure free software thing and everyone just rewrote the same shit against Microsoft's or AT&T's interfaces, with maybe some in-house libraries. People sucked at making and using abstractions, and didn't do it. Then the pendulum swung and people started being download all sorts of crap and everyt…
> They can perform more operations in one second than a human could in one hundred years.
Please identify the traffic lights.
We suck at abstractions, but I think we’re still winning there.
Re: Making Reasonable Use of Computer Resources
#5As to making readable programs run fast, this is the job for compilers. Compilers should perform more and more sophisticated code transformations for high-level languages with well-defined semantics, generating faster and faster code. The application-level programmers should not be burdened with details like CPU cache size.
Re: Making Reasonable Use of Computer Resources
#6The SCIP quote the author tries to dispute is still very true. If you ask developers of a decently sized modern mature software system to list the main problems they are encountering, they will probably name complexity, legacy code, lack of documentation, bugs, and not the performance. As to making readable programs run fast, this is the job for compilers. Compilers should perform more and more sophisticated code tra…
What developers think does not matter if you want your software to be used.
Responsiveness has always been the number one UI complaint.
If your program is sluggish, that's virtually always because it's badly designed. That's your fault, not the compiler's.
Application programmers don't need to know about CPU cache size because they should have designed their programs to perform on low-end hardware.
Re: Making Reasonable Use of Computer Resources
#7The SCIP quote the author tries to dispute is still very true. If you ask developers of a decently sized modern mature software system to list the main problems they are encountering, they will probably name complexity, legacy code, lack of documentation, bugs, and not the performance. As to making readable programs run fast, this is the job for compilers. Compilers should perform more and more sophisticated code tra…
Maybe but they don't, and my users asked for more performance yesterday (and the year before, and the year before that too, and likely the decade before that too).
The problem with performance is that some people believe that it's a target that can be reached ; but the only acceptable target in most cases is "everything is instantaneous" - otherwise "power users" in your domain will complain and give you a bad reputation.
But because people seemingly don't care or are in a position of power, I'm at a friend's home who asked me desperately to "look at why their computer doesn't work well, it's full of viruses" ; computer from 2012 takes 2min30 to go from "power button" to MS Word, there's literally nothing else installed than office and chrome and definitely no viruses, just windows services hogging all the resources because some people at Redmond likely believes in magic optimizing compilers.
Re: Making Reasonable Use of Computer Resources
#8Much of the time bad performance comes from excessive I/O, bad algorithms and data structures (e. g. accidentally quadratic code), or misuse of third party libraries or services. Eliminating problems like this needs to come first and only then is it reasonable to consider the cache-friendlyness of our code.
Re: Making Reasonable Use of Computer Resources
#9The SCIP quote the author tries to dispute is still very true. If you ask developers of a decently sized modern mature software system to list the main problems they are encountering, they will probably name complexity, legacy code, lack of documentation, bugs, and not the performance. As to making readable programs run fast, this is the job for compilers. Compilers should perform more and more sophisticated code tra…
Take one of the most basic programming examples, fib. Depending on how your programming language might be implemented, the recursive definition is likely slower then necessary. So at the end of the lesson, you're being taught to make a loop out of the recursion, so save stack space and such. But usually, the lesson ends here. But this is sooooo far away from the best solution. Think 2x2 matrix and the power of n. No compiler will ever transform your naiv recursive fib to that. So no, the compiler is not the ultimate answer. If you dont manage to educate more programmers, we will continue to run slow software.
Re: Making Reasonable Use of Computer Resources
#10The author claims that making better use of the cache hierarchy and programming in a data oriented way will improve perceived performance for users. This isn't where we should start though. Much of the time bad performance comes from excessive I/O, bad algorithms and data structures (e. g. accidentally quadratic code), or misuse of third party libraries or services. Eliminating problems like this needs to come first…