11 ms·
A curated list of falsehoods programmers believe
- lucasnortj 6y agoVery true, we all know there are 92 genders
- pif 6y agoYou are right. I don't understand why developers should take into consideration any possible psychological quirk of any potential user.
- brosinante 6y ago"psychological quirk". I see.
- ben_w 6y agoThe only circumstance I can think of when it is simultaneously true that gender must be recorded and that edge cases (like XXY chromosomes) are not important, is that languages have gendered words — but even in German you can have linguistic constructs to get around that: https://youtu.be/mHYD5cex54A https://youtu.be/mHYD5cex54A
- raverbashing 6y agoNo, the issue is quite simply: why does your system care what gender the person has? Unless it has a specific need for it, don't even bother You might ask if it should use Mr./Ms. (or Dr. or some other academic title) etc but even that is a bit anachronistic. Maybe this makes sense if you're sending mail to your customer, but even then. How to solve 50% of your GDPR troubles: stop asking for data you have absolutely no use for (and no, selling customer data is not a legitimate use)
- maccard 6y agoI can't think of a situation where it's appropriate to ask for a title, other than for government ID. 99.9999% of the time a field for "How can we address you" with a freeform input is perfect. It lets me put in " " or "Dr. 张伟" and be done with it.
- Akronymus 6y agoIn Austria some people are VERY insistent that you use the proper title. Along with that, we need to report certain titles to the government too, because of calculating wages. And, for us, it is easier to treat all titles the same on the backend side, rather than allow freeform input.
- bregma 6y agoThere are cultures in which the honorific is required. There are cultures in which it is not only not required but despised. I have encountered too many web forms in which a gendered honorific is required input, and you must select from a drop-down list. The people who design those forms are second in line to be put against the wall when the revolution comes. Right behind the people who design free-form input for international telephone numbers but have a hidden undocumented mandatory format that gets rejected and all you see is a red asterisk beside the field when you "Submit" is rejected and all the other fields get blanked out.
- Akronymus 6y ago> I have encountered too many web forms in which a gendered honorific is required input, and you must select from a drop-down list. We have 3 gender options, mandated by law, in a dropdown which makes sense for our company. But we don't mandate honoriffics, nor do we use a gendered form where possible. And all input goes through an employee. (We are a worker leasing company, ONLY active in Austria) > Right behind the people who design free-form input for international telephone numbers but have a hidden undocumented mandatory format that gets rejected and all you see is a red asterisk beside the field when you "Submit" is rejected and all the other fields get blanked out. You need a revolution to justify it?
- tus88 6y agoThere are things more important than working software.
- vosper 6y agoA fair few of the these lists (which are fascinating, by the way - just pick one at random) are ultimately about respecting people and culture. Being bothered to correctly handle calendars or naming conventions (and lots of other things) that may be unfamiliar is helping to include people who might otherwise be excluded, or treated as second class.
- InfiniteRand 6y agoI think this can be compared to the standard trade off of doing things the right way or the quick way, which is not necessarily wrong but can blow up spectacularly. Unfortunately, sometimes the work to do things the right way is an infinite pit of edge cases and domain knowledge. You can use libraries to paper over this trade off but then you have other trade offs like needing to worry about bugs you have no control over. In the end, if you don’t feel at least a little bad about the software you’ve written or how long it took to write it, you are probably doing something wrong
- tus88 6y agoDo your users care if it's done the "right" way so long as it works the way they want? Cannot tooling and methodology make up for poor documentation or "code quality"?
- tus88 6y agoNaming conventions might be important, but more important than working software?
- bregma 6y agoYes it's better to do something, anything, than to do something useful or correct.
- m0rc 6y agoIt is not equivalent, but if someone has the time to read the list, I would recommend instead the reading of R. L. Glass "Facts and Fallacies of Software Engineering" [1]. [1] https://www.amazon.com/Facts-Fallacies-Software-Engineering-Robert/dp/0321117425 https://www.amazon.com/Facts-Fallacies-Software-Engineering-...
- Tajnymag 6y agoAfter reading the Falsehoods Programmers Believe About Names, I wonder, what would you recommend as a universal way to store users's names? There seems to be two main options: Store the name in a single field, be correct but lose the option to sort the names reliably. Store the name in two fields, have the users bend over our western form standards but be able to search and sort easily. Do you have any real life experience with these or other "falsehoods"?
- dmitriid 6y agoIf you work for a very specific market, provide a canonical way to input the names, but be very very lenient to omissions or extra information. For example, in official Russian documents it's Surname-Name-Patronimic. Which will of course break for immigrants, asylum seekers, foreigners etc. But you can still provide (and store) the names in that order, but let people omit any/all of the fields (and make sure they accept ridiculously long names as well). Outside of government/finanical forms there's rarely a need to worry about 100% correct sorting of names. So go just for one text field, and let people fill it out however they want.
- Muromec 6y ago>For example, in official Russian documents it's Surname-Name-Patronimic. Which will of course break for immigrants, asylum seekers, foreigners etc How does it break? Wouldn't government just form patronimic from fathers name and call it a day?
- dmitriid 6y agoThat's how it's usually solved, and it's a very awkward workaround: - there are cases when the father isn't known. Or even the surname isn't known (people dealing with asylum seekers run into these issues all the time) - Foreign names are not easily converted to patronymics. Russian has adapted Russian names to this scheme: Ivan —> Ivánovich, Vasily -> Vasilevich, Ilya -> Ilyich (note the suffixes -[ov]ich, -[ev]ich, -[]ich). Once you get foreign names, this becomes weird even with European names, and they are often related to a degree to Russian names. Asian names become weird to the extreme, especially with names like Hui which are a cuss word in Russian [1] John -> Johnovich may work, but Huich will not :) - People born to/raised by two mothers will not have a patronymic. There are cases even now when people give their kids a matronymic, but that is a battle against bureaucracy. - And this goes beyond just patronymics. There will be people who don't have a surname. Or the name/surname will include numbers which are not allowed in Russian, but are common in English (John Smith the Third etc.). But by no I'm just reiterating the falsehoods :) [1] https://en.wiktionary.org/wiki/хуй https://en.wiktionary.org/wiki/хуй
- encom 6y ago"Falsehoods programmers believe about life and people outside California."
- Muromec 6y ago"You don't need bitcoin because you can just wire money from one account to another" "Okay, you don't need bitcoin if you are not sending your money to imaginary places like Iran and N'Korea" "Okay, you don't need bitcoin in Europe or US unless one party in your transaction has surname that starts with Ass and ends with ange" "What do you mean by saying that banks abroad could refuse to open you account if you are US citizen" "Capital controls and war? What you are, a character in a Neal Stephenson novel or Python developer?"
- ry_co 6y agoYou do realize that it's still illegal to do all these things with Bitcoin, right? It's not that banks can't do these things; they just have no interest performing illegal activities on your behalf. Bitcoin solves nothing here.
- Muromec 6y agoIt's also illegal to smoke weed, drop acid, watch netflix or be gay or publish suicidal jokes in some places. Everybody draws a line for themselves in regard to which laws they have to respect or have no choice but to break today.
- raverbashing 6y agoI am always appalled when systems (built in the US) have difficulties with apostrophes in the names. I mean, have you missed all the Irish names that exist in the US? It would be "fair enough" forgetting about accents when computing resources were limited, but to not deal with apostrophes? Really? (I mean, ok, this story is not new, just look at the history of the https://www.reddit.com/r/AskHistorians/comments/1fu633/when_and_why_did_english_orthography_stop_using_%C3%BE/ https://www.reddit.com/r/AskHistorians/comments/1fu633/when_... )
- bloak 6y agoApostrophes in street names is a bit of a cause célèbre in the UK. Also, should we treat ' and ’ as equivalent?
- Akronymus 6y agoCan't forget about ` and ’
- rjsw 6y agoIt would be easier to just make all computing systems use Internet English, if a word ends in "s" and doesn't have an apostrophe before it then add one.
- pixl97 6y agoThey probably use some terrible SQL backend and filter them out to prevent problems. Yes, that's a 2005 problem, but things take a long time to go away.
- raverbashing 6y agoI's not really from 2005 Sabre is from the 60s and doesn't like apostrophes in names https://en.wikipedia.org/wiki/Sabre_(computer_system) https://en.wikipedia.org/wiki/Sabre_(computer_system)
- Mulpze15 6y agoQuite interesting. I have written software (and still do), that follow those falsehoods. But in many of those projects, it did not matter ultimately. So I am glad I did not sweat over those, and got something up and running, and did not get bogged by some of those very difficult questions. Hopefully for the projects that stick around I'll be able to do some clean-up...
- jbverschoor 6y agoActually most of these things are not bound to programmers. In fact, I think programmers in general are more aware of these lists.
- Sebb767 6y agoYes, but in the other hand, if you don't handle validation or storage of these things it's rather irrelevant.
- kube-system 6y agoI wouldn’t say it’s irrelevant. If you are speaking to someone over a phone, over a counter, or through the mail, they interpret your communication through the same lens of assumptions, before it even reaches your application.
- Sebb767 6y agoThat's why I said rather ;) Human assumptions are one thing, but if you're directly speaking to a person, you can explain your unusual name situation. There is no discussing with the input validation on a web form, though. That's why I think it's far more important for programmers rather than, for example, counter staff.
- kube-system 6y ago> if you're directly speaking to a person, you can explain your unusual name situation. Sort of. I'm more thinking about situations where the person makes interpretive assumptions on their own without opportunity for discussion. You don't normally see what people are actually filling out in the application when you're talking to a customer service representative. Nor would 90%+ of western CS reps have any clue what you're even talking about if you brought up even a very common exception. Example: Form: [first name] and [last name] CS Rep: what's your name? Customer: "Kim Jong Un" Resulting record: {firstname: 'Kim', lastname:'Un'} And even if your developer was smart and made those fields "given name" and "surname", your CS rep might still jam the values in the wrong fields because they're a kid in Nebraska making $12/hr who barely understands the difference between Korea and China.
- mcv 6y agoLists of falsehoods can be very useful and enlightening (especially about common things like dates, names and email addresses), but with the "falsehoods programmers believe about falsehoods" it becomes just an exercise in pedantry.
- kube-system 6y agoKnowing the falsehoods is useful, knowing when and how to apply that knowledge is what makes someone an effective engineer.
- omginternets 6y agoI really enjoy these, but where can I find an explanation of what each falsehood means (in particular: the network one)? I mean, now that I know I’m wrong, how do I become right?
- matsemann 6y agoYup, I don't like some of the lists that just lists falsehoods without providing what one's supposed to do about it.
- haolez 6y agoThis doesn't seem curated. It just seems like a list (a long one bloated one at that).
- twic 6y ago1. Curation is just making a maximally inclusive list of things
- matsemann 6y agoMost github list projects seem to suffer from this. For instance the infamous "awesome list" [0]. Select a category. Most of them contain several hundred items. As if this is anything better than searching google for the term. [0]: https://github.com/sindresorhus/awesome https://github.com/sindresorhus/awesome
- deleted 6y ago[deleted]
- mellosouls 6y agoUnfortunately - especially when dealing with non-technical ideas - some of these "falsehoods" veer into opinion territory. It's an interesting resource but perhaps the title of it is a little egoistic/presumptuous in that regard.
- AmericanChopper 6y agoIt’s just a form of tech-blog click bait. Make some incredibly contrived claim, that makes a bold-sounding headline, but barely ends up meaning anything after you’re done with the rambling explanation. Perhaps some will end up adoring your thought-leadership, but the rest will end up talking about in on HN.
- natcombs 6y agoYa, the few I clicked on look like this is a random collection of ideas, tips, and tricks. Not falsehoods and logic Clickbait with a lot of effort but poor delivery of title and expectations
- deleted 6y ago[deleted]
- unethical_ban 6y agoYou just inspired an idea from me regarding HN comments. I think Slashdot still has one of the most elegant commenting systems around, even if the quality of the comments (due to the site's ownership) is worse. I would love to tag HN comments with certain attributes and be able to filter them out. For example, this comment and the parent could be tagged "meta-discussion". Then those who want to discuss the content of the article could filter them out quickly. /. tags are pretty accurate - "funny" "informative" "insightful" "trolling" - though trolling is a delete-level offense here. Likewise, metamoderation (peer review, or moderation of tagging) was a brilliant idea.
- mellosouls 6y agoI'm getting the feeling I'm not being complimented here but I've upvoted anyway.
- turbinerneiter 6y agoidk > The term "domain-specific language" has meaning. It means "is a computer language specialized to a particular application domain". The fact that it is hard to draw the line between DSL and general purpouse, that DSLs grow too large, ... does not invalidate the meaning of the concept. Or: > It is meaningful to talk about the speed of a programming language. It is? When I have to perform a given computation within a given time on a given hardware, the same algorithm can be fast enough in one language and too slow in another. Except if you want to nitpick and see _language_ independently of _implementation_, which is a valid point, but has little practical meaning.
- AnimalMuppet 6y agoWell, Haskell (say) can never be as fast as C++, because of immutability. That means that it has to make a new place to store the new value, which means an allocation. That's not dependent on implementation. (Except, I suppose, you theoretically could implement C++ so that it also allocated every variable. Still, I think the point is valid: Haskell, by its nature, has to do things that C++ doesn't, so Haskell is going to have a very hard time being as fast as C++.)
- pas 6y agoImmutability doesn't mean no one can implement a Haskell extension that allows safely describing and composing operations that use mutability on the inside. Of course on current hardware with current compiler Haskell programs tend to be slower, and also tend to be more correct compared to C/C++ (maybe even compared to let's say C++20).
- Mikhail_Edoshin 6y agoIsn't it strange that bits of essential knowledge ends up being either opaque (some form of code that does some magic) or negative, as in these 'falsehoods'?
- peterwwillis 6y agoI didn't see a falsehoods list from the perspective of a sysadmin. Time to start writing a blog post....
- jmnicolas 6y ago> My system will never have to deal with names from China I work in a small French town where Chinese people were quite rare until a few years ago. Their passports have a translation of their names in Latin alphabet, same for Russians. However one day one of my user told me "hey I can't find some customers in your app, but I'm 100% sure I recorded them previously. Funnily they're all Chinese". It turns out that to avoid querying the database too much I was starting to look for customers name once the user had entered at least 3 chars. Most of the Chinese names were only 2 chars like "Xi", "Wu" etc. I clearly remember thinking at the time of writing the original code that nobody had only a 2 letter name :)
- colejohnson66 6y agoI used to know of someone who’s middle name (not just initial) was “E”. One letter.
- DavidVoid 6y agoI think there's some computer scientist (or similar) whose given name is just R, I forget what their last name is though. And apparently Johnny Cash was born J. R. Cash. From Wikipedia: His mother wanted to name him John and his father preferred to name him Ray, so J. R. ended up being the only compromise they could agree on. When Cash enlisted in the Air Force, he was not permitted to use initials as a first name, so he changed it to John R. Cash. In 1955, when signing with Sun Records, he started using the name Johnny Cash.
- silicon2401 6y agoJust like Harry S Truman "Since the S did not stand for a name, Harry didn't use a period after it for most of his life." https://www.trumanlittlewhitehouse.com/key-west/president-truman-biography https://www.trumanlittlewhitehouse.com/key-west/president-tr...
- trent_lott 6y agoSimilarly Oppenheimer, of the Manhattan project He thought assuming that leading J made him seem more posh and WASPy
- whatshisface 6y agoFrom the units of measurement falsehood list[0]: >Heterogenous units are of no practical use. (Radar beam height formula uses a constant expressed in nautical miles per foot) Constants in formulas can be expressed in any unit system you want. What the author means to say is that one formula they saw in one textbook used nautical miles per foot. The "radar beam height formula" is not specific to any particular unit system. [0] https://www.stevemoser.org/posts/dev/falsehoods-programmers-believe-about-systems-of-measurement.html https://www.stevemoser.org/posts/dev/falsehoods-programmers-...
- ArtDev 6y agoThis is kinda depressing reading for the start of the workweek. Also, I wish each of these was more expanded.. I can think of many workarounds for each of these situations but I am curious what other people's solutions might be: http://www.creativedeletion.com/2015/01/28/falsehoods-programmers-date-time-zones.html http://www.creativedeletion.com/2015/01/28/falsehoods-progra...
- Enginerrrd 6y agoI read through the entire list of falsehoods about addresses and I think I've got a few more broken assumtpions that weren't listed: * A property will have an address (I live in a very rural area of CA where the roads have forked several times for many miles to get to a property and they are all unnamed private roads. People often just put down the APN and the nearest town (which might be several miles away) as their address. I deal with this one all the time. I routinely have to find their house for the first time. Good luck using GPS here, if you can't read a map, you're S.O.L. [And no, even trying to confirm that you are where you think you are with GPS on your phone is gonna be a challenge. For one, you're miles from cell reception so if you didn't save the map to your phone, you're screwed. For two, under heavy tree and cloud cover, you may not even get a GPS fix on a phone.]) * A recipient needs a name and address My mother lived for a time in a very rural area nearby. She rode a BMW motorcycle and someone she met only briefly once successfully sent her a letter by simply drawing a BMW symbol as the name and address and affixing the nearest town. * A person has a street address Homeless and rural people regularly fail this one.