Files
davideisinger.com/static/archive/changelog-com-kqx1ni.txt
2024-01-17 00:10:00 -05:00

513 lines
16 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#[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]Brookss Law or read his seminal
book, [32]The Mythical Man-Month. Even if you havent, youve probably
heard at least one colleague proclaim:
Nine women cant make a baby in one month!
This is a powerful metaphor for two reasons. First: its so vivid that
its 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.
Thats a hard pill to swallow, especially when your project is late.
But its a truth pill, which makes it worth choking down. Heres
another truth pill that Brooks wrote in his paper [33]No Silver
BulletEssence 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 dont understand the silver bullet reference… its
[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.
__________________________________________________________________
Ive 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 wont
* Do you think youve found the “one true tech”? You havent
* Have a shiny hammer that looks great for hitting screws? It isnt
Please humor me while I [39]quote myself for a moment: (Hey, its
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, Ive found the panacea. This is gonna
solve all my problems”, because it does solve some of your problems
big-time.
But its also is gonna create other problems, and its also not
gonna fit in every place that you can shove it. I mean, I know
theres React-based command line builders… And its like, okay, if
you like components, cool. That makes sense. But why is React
building your command-line app? I just dont understand.
When I extemporaneously said “I just dont 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 thats 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, youre just not putting in
the work.
(And I say this as a guy who uses Postgres for most things! 😆)
__________________________________________________________________
If you enjoyed reading this, youll 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 youre 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 cant 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) its 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, its a fine example”, I agree with her. Theres no reason to
change the book it is what it is, it was written at a point in time,
and it did its job of getting the readers to think. All that said, we
can come up with a better example for the present and future. I dont
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 isnt the right term, but its something
that left a bad taste in her mouth and Im 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
womens “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.
Ill be honest, Im defending a view I dont 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 Im going to say “I
believe you”. Ive been incredibly privileged in this world as a white
male, and thats a pretty big blindspot, so Im putting trust in
someone else to see whats there.
Im 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. Im just going to challenge people to do better,
and its 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
Ill be honest, Im defending a view I dont 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 Im going
to say “I believe you”
Thats a fair stance to take, but it doesnt 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 youre 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