TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

A curated list of falsehoods programmers believe

119 pointsby andersonmvdabout 3 years ago

23 comments

a_shovelabout 3 years ago
I think the lesson to take from these lists is that covering every edge case for many real-world situations becomes asymptotically difficult.<p>You can get 95% with no effort at all, 99% with a bit of thought, 99.9% with some effort, 99.99% with a smart design, some research, and a lot of effort, and anything further requires making it your full-time job indefinitely.<p>It gets thornier when it comes to personal things like names and gender. If you tell a group of people that their identity isn&#x27;t supported by your system, some people will accept that and work around it, some people will be mad at you, and you&#x27;ll just have to accept that the latter have a good point. You have to stop developing it at some point, so all you can do is try to cover as many people as possible.<p>That said, it is <i>incredibly</i> revealing of your personal biases if you design a system that breaks on things like names with &quot;é&quot;, or &quot;ñ&quot;, or punctuation; or if you implement gender as a boolean that also determines the user&#x27;s pronouns.
评论 #30712084 未加载
评论 #30713517 未加载
评论 #30714370 未加载
评论 #30713980 未加载
评论 #30713629 未加载
评论 #30712496 未加载
评论 #30713150 未加载
评论 #30714739 未加载
matsemannabout 3 years ago
&gt; <i>A curated list of falsehoods programmers believe in.</i><p>No, these &quot;awesome&quot; lists are seldom <i>curated</i>. They are just dumps of hundreds or thousands of links.
评论 #30713705 未加载
评论 #30714654 未加载
评论 #30711349 未加载
评论 #30711613 未加载
asdfasgasdgasdgabout 3 years ago
Better title would be, &quot;list of common simplifying assumptions programmers and designers make.&quot;<p>Avoiding <i>all</i> these assumptions will introduce unacceptable complexity for many projects. In many of the listed cases, making the assumption will require a tiny fraction of your addressable market to use a workaround, which they are likely already used to using with other products.<p>So there is a cost-benefit study to be done here. You have finite engineering time. Which of these assumptions can you avoid with little net increase in complexity? Which ones are actually simplifying? Which ones will cause critical problems for your users? And which ones are too expensive to fix given the return on investment?<p>I think the content of lists like this are decently useful, but the tone is condescending and unwarranted. I don&#x27;t &quot;believe&quot; that everyone has a first middle and last name. I do believe that people with fifteen names are capable of leaving out some of the ones in the middle, and it makes my job a lot easier to require them to do so.
评论 #30711850 未加载
评论 #30711625 未加载
评论 #30711931 未加载
qwerty456127about 3 years ago
&gt; valid email address exactly has one @ character<p>A normal email address exactly has one @ character. There is an infinite number of possible weird things everyone has little though non-zero chance to encounter on every corner of their life.<p>&gt; therefore your implementation should allow this<p>I wouldn&#x27;t be sure it should. Implementing support for this has direct and indirect, explicit and implicit costs one will have to consider and decide if that&#x27;s worth it.<p>In fact, whatever a human can believe about the world, it won&#x27;t equal what actually is. So we just take decisions about how precise our models have to be to be practical.<p>You can never finish a program if you insist it has to be perfect and unbreakable. The only reasonable objective is to make sure it does the job 99.9 % of real-life times.
评论 #30711571 未加载
评论 #30712105 未加载
评论 #30711770 未加载
评论 #30711878 未加载
kazinatorabout 3 years ago
The main falsehood is that the programmer must adopt, as requirements, all edge cases of every imaginable instance and interpretation of a problem domain.<p>Even if the programmer wanted to do that, his boss, and boss&#x27;s boss would disagree.<p>It is a falsehood, of course, that &quot;I don&#x27;t have to handle cases outside of the specification we committed to&quot;. Though not always, and not for all cases.<p>Say that my reuqirements are to write a music engraving program for western notation. Of course, I take it for granted that (that type of) music can be written down; my program is not an expression of my personal belief that all music can be written down, or that it has a composer.
评论 #30715344 未加载
ihateolivesabout 3 years ago
&quot;Falsehoods programmers believe about geography: Street adresses contain street names. In many remote places in Europe, the hamlet name is considered a sufficient address.&quot;<p>Yup, I used to spend my summers on an island where my address would be: farmstead name, island, country. Zip code was optional. Had to find creative ways to satisfy various web forms.
评论 #30711795 未加载
评论 #30715575 未加载
评论 #30713922 未加载
评论 #30712343 未加载
ballenfabout 3 years ago
Here&#x27;s one I haven&#x27;t seen on a list:<p>When you onboard to a new company, they will automatically give you access to whatever systems you need to do your job.<p>or<p>It will be automatic or easy to get access to all the systems you need to do your job.
评论 #30712557 未加载
评论 #30715207 未加载
评论 #30714487 未加载
jedbergabout 3 years ago
I would say the main takeaway from these lists is: Use a library where the library author has a much bigger vested interest in the edge cases than you do.<p>Don&#x27;t implement date and time calculations yourself, just use the library, even for things like &quot;add a day&quot;.<p>Don&#x27;t parse addresses yourself, use a library. Don&#x27;t validate email yourself, use a library. Don&#x27;t validate input yourself, use a library.<p>Unless the runtime or memory space is absolutely critical to your application, using a library won&#x27;t make things noticeably worse.
nofunsirabout 3 years ago
Boss: Why is it taking so long to implement this feature? Programmer: Well, you see Boss, I found this really cool list of falsehoods that only dumb, less-holy programmers believe on a random Github. It&#x27;s really cool because it lists every edg...Boss? Where are you going?
allearsabout 3 years ago
Most of these lists (at least the ones I scanned through) are simply assertions, with no explanations, examples, or links. This is less than useful, and makes me doubt their veracity.
评论 #30715248 未加载
gregfjohnsonabout 3 years ago
I really enjoyed this - several LOL&#x27;s. I loved the sequence of falsehoods about compilers:<p>- The compiler won’t have bugs.<p>- The compiler won’t have show-stopping bugs.<p>- The compiler’s bugs will be fixed quickly.<p>- The compiler’s bugs can be fixed.<p>But I think they should have added:<p>- My code does not work because of bugs in the compiler..
评论 #30714673 未加载
biasedestimateabout 3 years ago
falsehood n+1: it is a good idea to compile a long lists of falsehoods, based on information from random websites.
评论 #30711459 未加载
评论 #30711468 未加载
drivers99about 3 years ago
I checked a few random lists and their &quot;falsehoods&quot; weren&#x27;t very informative when it&#x27;s just a list without any explanation. Maybe they&#x27;re just supposed to be amusing or contrarian.<p>(Following my own advice...) For example: <a href="https:&#x2F;&#x2F;chiselapp.com&#x2F;user&#x2F;ttmrichter&#x2F;repository&#x2F;gng&#x2F;doc&#x2F;trunk&#x2F;output&#x2F;falsehoods.html" rel="nofollow">https:&#x2F;&#x2F;chiselapp.com&#x2F;user&#x2F;ttmrichter&#x2F;repository&#x2F;gng&#x2F;doc&#x2F;tru...</a><p>&gt; 10× programmers exist.<p>(i.e. saying they don&#x27;t exist) Maybe a writing prompt for a blog post, but there&#x27;s nothing else there about it.
jqpabc123about 3 years ago
#1 Falsehood Programmers Believe<p>- Programming skill is all you need to build great software.<p>About the only case where I would say this might be true is when your users are other programmers. If the plan is to target a non-technical market, good design and in-depth understanding of the problem space are just as important if not more so.<p>My favorite example of this is the world&#x27;s most popular accounting software. Good design and marketing --- mediocre programming.
daphneokeefeabout 3 years ago
How timely on St. Patrick&#x27;s Day. How about people&#x27;s names that contain an apostrophe? I married O&#x27;Keefe. It is just so aggravating.
Hussellabout 3 years ago
Is there an easy way to display a diff which shows all the new links since the last time this was on HN? (Sept. 8th, 2020)<p>Partial list:<p>Falsehoods about Airline Seat Maps <a href="https:&#x2F;&#x2F;duffel.com&#x2F;blog&#x2F;falsehoods-about-seat-maps" rel="nofollow">https:&#x2F;&#x2F;duffel.com&#x2F;blog&#x2F;falsehoods-about-seat-maps</a><p>Falsehoods about Biometrics <a href="https:&#x2F;&#x2F;shkspr.mobi&#x2F;blog&#x2F;2021&#x2F;01&#x2F;falsehoods-programmers-believe-about-biometrics&#x2F;" rel="nofollow">https:&#x2F;&#x2F;shkspr.mobi&#x2F;blog&#x2F;2021&#x2F;01&#x2F;falsehoods-programmers-beli...</a><p>Falsehoods about Plain Text <a href="https:&#x2F;&#x2F;jeremyhussell.blogspot.com&#x2F;2017&#x2F;11&#x2F;falsehoods-programmers-believe-about.html#main" rel="nofollow">https:&#x2F;&#x2F;jeremyhussell.blogspot.com&#x2F;2017&#x2F;11&#x2F;falsehoods-progra...</a>
评论 #30712603 未加载
glitchcabout 3 years ago
It feels like many of these speak to poorly defined requirements.
评论 #30714579 未加载
Optimal_Personaabout 3 years ago
Not on the &#x27;email&#x27; list, but I&#x27;ll add &quot;A .org domain extension should be the sole criteria for whether a customer can be classified as a nonprofit&quot;.<p>I tried to create a nonprofit account at Box.com a few years ago with a .net address. It took almost 3 weeks of back-and-forth with customer support and multiple interactions with higher-ups in their legal dept. to resolve. No one there had ever considered the possibility.
kmodabout 3 years ago
This kind of thing scares me about the current state of AI. Language models are trained to produce text that looks like the training data, but if the training data has falsehoods they will happily repeat those falsehoods.<p>I just put the example into GPT3: Prompt: Can an email address contain more than one @ sign? Answer: No, an email address can only contain one @ sign.<p>I&#x27;m on my phone so it&#x27;s a bit laborious to test more
hintymadabout 3 years ago
This is a fantastic read.<p>&gt; &quot;Time passes at the same speed on top of a mountain and at the bottom of a valley&quot;.<p>Just curious, does this kind of gravitational time dilation bear any consequence in our systems, given that we are building systems with the assumption that system clocks are not always accurate and there is no global time?
评论 #30712871 未加载
raverbashingabout 3 years ago
The one about CS students is very poignant <a href="https:&#x2F;&#x2F;www.netmeister.org&#x2F;blog&#x2F;cs-falsehoods.html" rel="nofollow">https:&#x2F;&#x2F;www.netmeister.org&#x2F;blog&#x2F;cs-falsehoods.html</a>
bkoabout 3 years ago
I would love an annotated falsehoods. For instance, one of the falsehoods programmers believe about programming:<p>Most processors in active use are 32-bit or larger.<p>16-bit or larger?<p>8-bit or larger?<p>OH COME ON!
评论 #30714738 未加载
评论 #30713798 未加载
xdennisabout 3 years ago
The original one about names was about exposing people to different culture&#x27;s perspective (like how Icelanders have last names based on their father&#x27;s first name), but this expands into nonsensical territory like &quot;people can change genders multiple times a day&quot;[1]. It just feels like being a rebel for rebellion&#x27;s sake.<p>[1]: <a href="https:&#x2F;&#x2F;medium.com&#x2F;gender-2-0&#x2F;falsehoods-programmers-believe-about-gender-f9a3512b4c9c" rel="nofollow">https:&#x2F;&#x2F;medium.com&#x2F;gender-2-0&#x2F;falsehoods-programmers-believe...</a>
评论 #30713887 未加载
评论 #30714242 未加载
评论 #30712040 未加载
评论 #30717065 未加载
评论 #30716973 未加载
评论 #30716736 未加载