News for hackers. Stuff that matters.

jcamenisch

Re:Ideas from "A Philosophy of Software Design" on Monday December 23, 2024 @10:33AM (#42495104)
This is an interesting observation! It seems like the "deep modules" heuristic has validity under it, but Darmani is looking for a more universal, rock-bottom way to define the principle(s) and their boundaries.

Darmani, is it fair to say that each interface should pay us back for the trouble of defining it—and the more payback the better? And given that, accounting for the ROI is either very complex work, or just intuitive gut instinct—as you point out in the Chicken nuggets example?

On the one hand, this is the stuff of religious wars. On the other hand, I see value in having a mental model that at least prompts our intuition to ask the questions: What is this costing? And how much value is it adding? And how does that compare to some completely different way of designing this system?

E.g., for users of certain systems, the cost of a GC may be roughly 0 as measured by intuition. I'm thinking of a system where the performance impact is in the "I don't care" zone, and no one is giving a single thought to optimizing memory management. For other users in other contexts, the rest of the interface of the GC becomes relevant and incurs so much cost that the system would be simpler overall without garbage collection.

Many other systems sit somewhere in between, where a few hot loops or a few production issues require lots of pain and deep understanding of GC behavior, but 99% of users' work can be blissfully ignorant about that.

And in many of these contexts, well-informed intuition might be the best available measurement tool for assessing costs and benefits.

Re:No upvotes on Hacker News: Still awesome to submit on Friday February 01, 2013 @07:58PM (#5154581)
I think @LorenPaulsson would do this. I can vouch for his language, communication, and editing skills—and his work ethic.
Isn't this kind of stuff only for, um, those _other_ programming stacks?

No, seriously, +1 for making life easier.