#[1]News Feed (The Proverbial Fire Hose) [2]Master Feed (All Shows) [3]Posts Feed [4]JSON News Feed [5]Changelog * [6]Podcasts * [7]Beats * [8]Posts * [9]Community * [10]Subscribe * [11]Changelog++ * [12]Live * [13]Submit News * [14]Sign In ____________________ (BUTTON) [15]Changelog * [16]Podcasts * [17]Beats * [18]Posts * [19]Community * [20]Subscribe * [21]Changelog++ * [22]Submit News ____________________ [23]Jerod Santo [24]changelog.com/posts There's still no silver bullet a friendly reminder that you haven't found the panacea logged by [25]jerodsanto [26]2023-05-24T16:25:22Z [27]#practices +2 * [28]#history * [29]#react The late, great [30]Fred Brooks wrote many words about software engineering. You may have heard of [31]Brooks’s Law or read his seminal book, [32]The Mythical Man-Month. Even if you haven’t, you’ve probably heard at least one colleague proclaim: Nine women can’t make a baby in one month! This is a powerful metaphor for two reasons. First: it’s so vivid that it’s hard to forget (and easy to recall in a time of need). Second: it makes obvious a not-so-obvious conclusion. Which is: Adding manpower to a late software project makes it later. That’s a hard pill to swallow, especially when your project is late. But it’s a truth pill, which makes it worth choking down. Here’s another truth pill that Brooks wrote in his paper [33]No Silver Bullet–Essence and Accident in Software Engineering: There is no single development, in either technology or management technique, which by itself promises even one order of magnitude [tenfold] improvement within a decade in productivity, in reliability, in simplicity. __________________________________________________________________ For those who don’t understand the silver bullet reference… it’s [34]pulled from folklore where a bullet cast from silver is the only weapon that can kill a werewolf. Over time a silver bullet has come to represent “a simple, seemingly magical, solution to a difficult problem.” Brooks could have easily reached for [35]panacea instead, but I think the shiny characteristic of silver makes it the perfect analog to software solutions. __________________________________________________________________ I’ve found myself referencing this a [36]couple [37]times recently. Both of those conversations were in the context of [38]React, but the principle applies to every over-adopted technology. So, this post is a gentle reminder to my fellow software engineers: * Does a new tool promise to solve all your problems? It won’t * Do you think you’ve found the “one true tech”? You haven’t * Have a shiny hammer that looks great for hitting screws? It isn’t Please humor me while I [39]quote myself for a moment: (Hey, it’s easier than writing) IFRAME: [40]https://www.youtube.com/embed/btIc-_dGz9k Subscribe to [41]our YouTube channel for more clips like this, live show recordings, and more ✌️ We tend to be kind of lazy and just take the big hammer and hit all the nails with it. Like, “Oh, I’ve found the panacea. This is gonna solve all my problems”, because it does solve some of your problems big-time. But it’s also is gonna create other problems, and it’s also not gonna fit in every place that you can shove it. I mean, I know there’s React-based command line builders… And it’s like, okay, if you like components, cool. That makes sense. But why is React building your command-line app? I just don’t understand. When I extemporaneously said “I just don’t understand”, I meant that the choice confounds me. But I do understand why people might make it. Saying “use the right tool for the job” is easy, but actually selecting the right tool for the job is anything but. Good tools are hard to find, hard to evaluate, hard to learn. We have constraints, we have biases, we have shortcomings. But that’s all part of the work. And if you “just use Go” or “just use React” or “just use Postgres” for every problem that crosses your keyboard, you’re just not putting in the work. (And I say this as a guy who uses Postgres for most things! 😆) __________________________________________________________________ If you enjoyed reading this, you’ll probably enjoy [42]Changelog News, my free weekly podcast + newsletter covering developer news worth your attention. I keep it brief (~8 min), entertaining & always on-point. Not so sure? Check out a [43]recent issue! Software moves fast. We help you keep up. Our weekly newsletter is brief, entertaining & always on-point. ____________________ Get Changelog News (BUTTON) __________________________________________________________________ Discussion [44]Sign in or [45]Join to comment or subscribe (BUTTON) (BUTTON) Solomon Ucko sollyucko [46]Solomon Ucko Solomon Ucko * [47]Twitter * [48]GitHub * [49]LinkedIn [50]2023-05-25T03:42:39Z ago just use Rust, except possibly when you’re working with a platform designed for another language (e.g. web => HTML/CSS/JS, Android => Java or Kotlin, macOS/iOS => Objective-C or Swift, Microsoft Office macros => Visual Basic), though Rust does have FFI crates for all of these. [51]reply (BUTTON) (BUTTON) James Harr jamesharr [52]James Harr James Harr * [53]GitHub [54]2023-05-27T12:55:20Z ago Nine women can’t make a baby in one month! I quoted this to my wife once while trying to explain the concept from the book. She knew what I meant, but said (paraphrasing) it’s a micro aggression to pick out women and I might want to pick another example. After some reflection and an initial knee jerk internal reaction of “no, it’s a fine example”, I agree with her. There’s no reason to change the book – it is what it is, it was written at a point in time, and it did it’s job of getting the readers to think. All that said, we can come up with a better example for the present and future. I don’t know what that example is, but I know we can do better. [55]reply (BUTTON) (BUTTON) Jerod Santo jerodsanto [56]Jerod Santo Jerod Santo Omaha, Nebraska Jerod co-hosts [57]The Changelog, crashes [58]JS Party, and takes out the trash (his old code) once in awhile. * [59]Twitter * [60]GitHub * [61]LinkedIn [62]2023-05-27T13:36:23Z ago How is it a micro aggression? I do not understand. [63]reply (BUTTON) (BUTTON) James Harr jamesharr [64]James Harr James Harr * [65]GitHub [66]2023-05-27T16:02:25Z ago Well, maybe micro aggression isn’t the right term, but it’s something that left a bad taste in her mouth and I’m trying to remember exactly how she described it. I think you almost have to put your self in the shoes of someone who 1) has had to work upstream in an industry because of their gender 2) has had to deal with people in a society that see a women’s “job” is to bear children and careers come second at best 3) has had to deal with a lot of people having opinions over your body and what you do with it, most of which do not share your anatomy. After putting yourself in that position, the comparison starts to feel more icky. I’ll be honest, I’m defending a view I don’t entirely “get” and may not be capable of understanding. However, after seeing her reaction when I said that quote, this is one of those times where I’m going to say “I believe you”. I’ve been incredibly privileged in this world as a white male, and that’s a pretty big blindspot, so I’m putting trust in someone else to see what’s there. I’m not going to fault anyone for quoting it and you have nothing to apologize for; Part of the reason that quote works so effectively is how ridiculous it is. I’m just going to challenge people to do better, and it’s going to be hard. [67]reply (BUTTON) (BUTTON) Jerod Santo jerodsanto [68]Jerod Santo Jerod Santo Omaha, Nebraska Jerod co-hosts [69]The Changelog, crashes [70]JS Party, and takes out the trash (his old code) once in awhile. * [71]Twitter * [72]GitHub * [73]LinkedIn [74]2023-05-28T12:43:12Z ago I’ll be honest, I’m defending a view I don’t entirely “get” and may not be capable of understanding. However, after seeing her reaction when I said that quote, this is one of those times where I’m going to say “I believe you” That’s a fair stance to take, but it doesn’t produce much of a convincing argument that will drive people to change. If you want people to starting using a better metaphor, I challenge you to come up with one. [75]reply (BUTTON) (BUTTON) Bryan Betts bryan-ffd [76]Bryan Betts Bryan Betts * [77]GitHub [78]2023-06-28T12:58:27Z ago “Over time a silver bullet has come to represent “a simple, seemingly magical, solution to a difficult problem.” Well, maybe - but what you’re actually referring to here is a magic bullet, or Zauberkugel. Over time, some people - yes, including award-winning engineers and scientists - have come to confuse the two. [79]reply (BUTTON) Hide Overlay * [80]About * [81]Contact * [82]888-974-CHLG (2454) * [83]Twitter Icon * [84]Mastodon Icon * [85]LinkedIn Icon * [86]GitHub Icon * [87]YouTube Icon * [88]Instagram Icon * [89]TikTok Icon [90]Podcasts * [91]The Changelog * [92]Practical AI * [93]JS Party * [94]Ship It! * [95]Founders Talk * [96]Go Time * [97]Changelog Master Feed * --- * [98]Request For Commits * [99]Brain Science * [100]Away from Keyboard * [101]Backstage * [102]Spotlight Social * [103]Twitter * [104]Mastodon * [105]LinkedIn * [106]GitHub * [107]YouTube * [108]Instagram * [109]TikTok Community * [110]Merch Shop * [111]Join the Community * [112]Code of Conduct * [113]Sign in to Slack * --- * [114]Request Episode * [115]Submit News Etc. * [116]Beats * [117]Posts * [118]Changelog Nightly * [119]Sponsor * [120]Search * [121]View Source * --- * [122]Report an Issue * [123]Terms & Conditions * [124]Privacy Policy * --- * [125]Status [126] Bandwidth Fastly [127] Hosting Fly [128] Search Typesense (BUTTON) (BUTTON) (BUTTON) Player art (BUTTON) Previous Chapter (BUTTON) (BUTTON) (BUTTON) (BUTTON) Next Chapter (BUTTON) [1X] 0:00 ____________________ / 0:00 References 1. https://changelog.com/feed 2. https://changelog.com/master/feed 3. https://changelog.com/posts/feed 4. https://changelog.com/feed.json 5. https://changelog.com/ 6. https://changelog.com/ 7. https://changelog.com/beats 8. https://changelog.com/posts 9. https://changelog.com/community 10. https://changelog.com/subscribe 11. https://changelog.com/++ 12. https://changelog.com/live 13. https://changelog.com/news/submit 14. https://changelog.com/in 15. https://changelog.com/ 16. https://changelog.com/podcasts 17. https://changelog.com/beats 18. https://changelog.com/posts 19. https://changelog.com/community 20. https://changelog.com/subscribe 21. https://changelog.com/++ 22. https://changelog.com/news/submit 23. https://changelog.com/person/jerodsanto 24. https://changelog.com/posts 25. https://changelog.com/person/jerodsanto 26. https://changelog.com/posts/still-no-silver-bullet 27. https://changelog.com/topic/practices 28. https://changelog.com/topic/history 29. https://changelog.com/topic/react 30. https://en.wikipedia.org/wiki/Fred_Brooks 31. https://en.wikipedia.org/wiki/Brooks's_law 32. https://en.wikipedia.org/wiki/The_Mythical_Man-Month 33. http://worrydream.com/refs/Brooks-NoSilverBullet.pdf 34. https://en.wikipedia.org/wiki/Silver_bullet 35. https://en.wikipedia.org/wiki/Panacea_(medicine) 36. https://youtube.com/shorts/m5A8eQaaG8o 37. https://jsparty.fm/269#transcript-237 38. https://reactjs.org/ 39. https://jsparty.fm/269#transcript-237 40. https://www.youtube.com/embed/btIc-_dGz9k 41. https://youtube.com/changelog 42. https://changelog.com/news 43. https://changelog.com/news/45/email 44. https://changelog.com/in 45. https://changelog.com/join 46. https://twitter.com/SolomonUcko 47. https://twitter.com/SolomonUcko 48. https://github.com/sollyucko 49. https://www.linkedin.com/in/solomon-ucko-143853155 50. https://changelog.com/posts/still-no-silver-bullet#comment-YX1k 51. javascript:void(0) 52. https://changelog.com/person/jamesharr 53. https://github.com/jamesharr 54. https://changelog.com/posts/still-no-silver-bullet#comment-yW7b 55. javascript:void(0) 56. https://changelog.com/person/jerodsanto 57. https://changelog.com/podcast 58. https://changelog.com/jsparty 59. https://twitter.com/jerodsanto 60. https://github.com/jerodsanto 61. https://www.linkedin.com/in/jerodsanto 62. https://changelog.com/posts/still-no-silver-bullet#comment-V31e 63. javascript:void(0) 64. https://changelog.com/person/jamesharr 65. https://github.com/jamesharr 66. https://changelog.com/posts/still-no-silver-bullet#comment-Zqom 67. javascript:void(0) 68. https://changelog.com/person/jerodsanto 69. https://changelog.com/podcast 70. https://changelog.com/jsparty 71. https://twitter.com/jerodsanto 72. https://github.com/jerodsanto 73. https://www.linkedin.com/in/jerodsanto 74. https://changelog.com/posts/still-no-silver-bullet#comment-qGM2 75. javascript:void(0) 76. https://github.com/bryan-ffd 77. https://github.com/bryan-ffd 78. https://changelog.com/posts/still-no-silver-bullet#comment-J3nq 79. javascript:void(0) 80. https://changelog.com/about 81. https://changelog.com/contact 82. tel:+1-888-974-2454 83. https://twitter.com/changelog 84. https://changelog.social/ 85. https://linkedin.com/company/changelog 86. https://github.com/thechangelog 87. https://www.youtube.com/changelog 88. https://www.instagram.com/changelog_ 89. https://www.tiktok.com/@changelog.com 90. https://changelog.com/podcasts 91. https://changelog.com/podcast 92. https://changelog.com/practicalai 93. https://changelog.com/jsparty 94. https://changelog.com/shipit 95. https://changelog.com/founderstalk 96. https://changelog.com/gotime 97. https://changelog.com/master 98. https://changelog.com/rfc 99. https://changelog.com/brainscience 100. https://changelog.com/afk 101. https://changelog.com/backstage 102. https://changelog.com/spotlight 103. https://twitter.com/changelog 104. https://changelog.social/ 105. https://linkedin.com/company/changelog 106. https://github.com/thechangelog 107. https://www.youtube.com/changelog 108. https://www.instagram.com/changelog_ 109. https://www.tiktok.com/@changelog.com 110. https://merch.changelog.com/ 111. https://changelog.com/community 112. https://changelog.com/coc 113. https://changelog.slack.com/ 114. https://changelog.com/request 115. https://changelog.com/news/submit 116. https://changelog.com/beats 117. https://changelog.com/posts 118. https://changelog.com/nightly 119. https://changelog.com/sponsor 120. https://changelog.com/search 121. https://github.com/thechangelog/changelog.com 122. https://github.com/thechangelog/changelog.com/issues/new 123. https://changelog.com/terms 124. https://changelog.com/privacy 125. https://status.changelog.com/ 126. https://www.fastly.com/?utm_source=changelog 127. https://fly.io/ 128. https://typesense.org/?utm_source=changelog&utm_campaign=changelog-search&utm_medium=referral