4 ms·
There's no silver bullet, only trade offs. I see this a lot and it bugs me, because it implies that it's all zero sum and there's nothing that's ever unconditi
by adamlett 8y ago
There's no silver bullet, only trade offs.
I see this a lot and it bugs me, because it implies that it's all zero sum and there's nothing that's ever unconditionally better or worse than anything else. But that's clearly ridiculous. A hammer is unconditionally better than a rock for putting nails in things. The beauty of progress is that it enables us to have our cake and eat it too. There is no law that necessitates a dichotomy between powerful and easy.
- placebo 8y ago> it implies that it's all zero sum and there's nothing that's ever unconditionally better or worse than anything else Not necessarily - to start with, a good trade-off is unconditionally better than a bad trade-off. Also, progress brings with it increasing complexity. Recognizing the best path includes assessing many more parameters and is far more difficult than deciding whether to use a hammer or a rock to nail things. The puzzling nature of many people to over-complicate things instead of simplifying them makes the challenge even more difficult. By the way, the closest thing I've ever found to a silver bullet in software development (and basically any endeavor) is "Keep it simple". While this is a cliche already, it is still too often overlooked. I think this is because it isn't related to the ability to be a master at manipulating code and logic, but the ability to focus on what's really important - to know how to discard the trendy for the practical, the adventurous methods to the focused and solid - basically passionately applying occam's razor on every abstraction layer. If this was more common, I think articles like "You are not Google" would be less common.
- mcguire 8y agoEver wonder how the Go team seems to get stuff done more efficiently than other groups? It's not Go, it's that they simplify (perhaps oversimplify).
- tracker1 8y ago> Not necessarily - to start with, a good trade-off is unconditionally better than a bad trade-off. Are you better off with a simple dokku server, or a k8s cluster? There's lots of good/bad on both sides... it really depends on your needs. You could use one locally or through dev layers and another for production.
- FabHK 8y agoTrue, but nobody is using a rock still to hammer nails, or advocates for it. Given any important problem field, it's quite likely that among the extant top solutions there is no product that is strictly dominant (better in every dimension) - most likely there will be trade offs.
- anfilt 8y agoI used rocks few times as kid to build some forts from scrap wood. You could nail the framing together for any modern house with a rock. However, if you bend any nails you can't pull the nail out like with a normal framing hammer. Plus you can drive a nail faster with a proper hammer. So just use a hammer. Problem is with software the tool also become part of what your working on. So it's never quite like this hammer and stone analogy. Really a better analogy would be fasteners. So for instance we just have screws, nails, and joints. A simplified thing comparison would look like this, and they all become part of what your building. Nails Pros Fast to drive Still pretty strong Easier to remove mistakes or to disassembly. Cons Not as strong as other methods of fastening May crack wood if driven at the end of a board. Screws Pros Almost as fast as nails with a screw gun. Stronger joint than nails. Cons Can crack wood like nails without pre-drilling. Slower to remove. Joints Pros Strong as the wood used. Last as long the wood. Cons Very slow requires chiseling and cutting wood into tight inter locking shapes. If it's any type of joint with adhesive it can't be taken apart.
- webmaven 8y agoNails are pretty forgiving to the type/size of hammer used. Screws can be pretty finicky, for example using a too-small Philips screwdriver can strip the screw-head, and make it very difficult to tighten further or to remove. I'm pretty fond of those screws that can take a Flathead or Philips screwdriver, though. How about nuts+bolts?
- dwheeler 8y agoI think you are misunderstanding the phrase trade-off. A trade-off means that something is good for one thing, but not as good for something else. Your examples are exactly an example of a trade-off. A hammer is good at hammering nails, but not good for screwing in screws, because there has been a trade-off to design the tool to make it better for hammering nails than for screwing in screws. All tools are better at one thing then another. The point of examining trade-offs is to decide which advantages are more appropriate to which circumstance.
- NoodleIncident 8y agoWhy did you rephrase his analogy as a comparison between a hammer and a screwdriver, when the whole point of the comparison was that a hammer is strictly better than a rock?
- willtim 8y agoA hammer isn't strictly better than a rock, it costs a lot more money/resources to obtain :)
- cellularmitosis 8y agoYou can still analyze the trade-offs of your hammer / rock choice, e.g. Hammer pro’s: very efficient Hammer cons: costs money, only available in industrialized societies Rock pro’s: ubiquitous and free Rock cons: inefficient The point is that in tech, there is no choice which has only pros, and no choice which has only cons.
- andrewflnr 8y agoYou can have options that are definitely worse than the rest weight having a silver bullet, aka option that's definitely better than the rest. For nail driving consider a hammer and a pneumatic nail gun. Both are better than a rock, but you couldn't call either one a silver bullet. You still have to think about which one is best for your usage.