Stringly Typed Booleans

I’m getting rather hacked off seeing boolean properties typed as strings. Stringly typed is a phrase I learnt off a post from the excellent Coding Horror blog and it describes a phenomena whereby properties that are of a specific type, e.g. Boolean, Date, int, are stored needlessly as strings.

I’m working on a website that communicates with a money laundering service to check whether an individual is “bad” or not. Individuals can pass the test, but importantly it is possible to pass the test with some warning flags raised. If any of the warning flags are raised then an email should be sent off to compliance for them to do…whatever it is they do. Fair enough right?

The warning flags are obviously booleans. There was either a warning raised or there wasn’t – there are no two ways about it (no pun intended). In the serialized response, the warning flags are encoded as “Yes” or “No”…which is understandable. Now, upon receiving the response, it is parsed and turned into an internal representation. This is where things get really weird. The programmer that coded the object that stores the response from the service has decided to encode the warnings as strings, initialised to “”. Which is totally fucking bonkers.

Why?

Well, now our boolean warnings aren’t really booleans – they have WAY more than two possible values and the meaning of these values is subjective. One may consider “”, null, “No” as false, but could conceivably also consider “false” or “0″. We get the same sort of problem with true – “Yes”, “1″, “true” and then we get a whole load of unknown values which is every other possible string in the world. Which might be considered to be true.

So how the hell can any number of programmers work on this piece of code without introducing errors because of differing definitions of truthy and falsey values? Well, they can’t. To illustrate the problem further, even loosely typed languages differ in their boolean coercion, for example JavaScript and PHP:

<script>
if("0") alert('Opposite day!');
</script>

<?php
if("0") echo 'Opposite day!';
?>

JavaScript considers “0″ true but PHP considers it false. Personally I think JavaScript is “right” here, but as I said before, it is totally subjective.

The icing on the cake is of course the extra code you have to write to check the truthy or falsey string values. Something along the lines of “if x is not null and not empty and not the word No then it is probably true…probably”, which would otherwise have been coded as “if x then true” if x was a boolean – which is orders of magnitude shorter.

Of course, there are some bat shit crazy strongly typed languages that allow you to assign null to a Boolean, but that is a different story altogether.

384 thoughts on “Stringly Typed Booleans

  1. Эта статья для ознакомления предлагает читателям общее представление об актуальной теме. Мы стремимся представить ключевые факты и идеи, которые помогут читателям получить представление о предмете и решить, стоит ли углубляться в изучение.
    Все материалы собраны здесь – https://f5fashion.vn/cannes-2024-xay-ra-au-da

  2. Этот текст сочетает в себе элементы познавательного рассказа и аналитической подачи информации. Читатель получает доступ к уникальным данным, которые соединяют прошлое с настоящим и открывают двери в будущее.
    Выяснить больше – https://f5fashion.vn/hot-bronny-james-cardiac-arrest-video-heart-attack

  3. Используя современные инфузионные системы мы постепенно вводим растворы для выведения токсинов коррекции водно-электролитного баланса и восстановления функции печени. Параллельно подбираются препараты для снятия абстинентного синдрома купирования тревожности и нормализации сна. Углубиться в тему – http://www.domen.ru

  4. Эта статья предлагает захватывающий и полезный контент, который привлечет внимание широкого круга читателей. Мы постараемся представить тебе идеи, которые вдохновят вас на изменения в жизни и предоставят практические решения для повседневных вопросов. Читайте и вдохновляйтесь!
    Подробнее тут – https://f5fashion.vn/tong-hop-59-ve-bong-bong-bay-sinh-nhat-hay-nhat

  5. Медицинский вывод из запоя включает несколько обязательных этапов: Получить дополнительные сведения – http://

  6. Эта информационная заметка содержит увлекательные сведения, которые могут вас удивить! Мы собрали интересные факты, которые сделают вашу жизнь ярче и полнее. Узнайте нечто новое о привычных аспектах повседневности и откройте для себя удивительный мир информации.
    Что ещё? Расскажи всё! – https://www.news-tube.com/et-consequuntur-ducimus-reiciendis-libero-numquam-esse

  7. В этой публикации мы предлагаем подробные объяснения по актуальным вопросам, чтобы помочь читателям глубже понять их. Четкость и структурированность материала сделают его удобным для усвоения и применения в повседневной жизни.
    Смотрите также – https://businessguruzz.com/2024/09/11/corteiz-t-shirt-a-fashion-staple-for-the-modern-streetwear-enthusiast

  8. Этот информативный текст выделяется своими захватывающими аспектами, которые делают сложные темы доступными и понятными. Мы стремимся предложить читателям глубину знаний вместе с разнообразием интересных фактов. Откройте новые горизонты и развивайте свои способности познавать мир!
    Полная информация здесь – https://www.tassarnasfavorit.se/39664841_2021830671463437_725516046122876928_n

  9. Эта информационная заметка содержит увлекательные сведения, которые могут вас удивить! Мы собрали интересные факты, которые сделают вашу жизнь ярче и полнее. Узнайте нечто новое о привычных аспектах повседневности и откройте для себя удивительный мир информации.
    Узнать напрямую – https://www.strongertechnology.com/2017/12/efficiency-through-technology

  10. Предлагаем вашему вниманию интересную справочную статью, в которой собраны ключевые моменты и нюансы по актуальным вопросам. Эта информация будет полезна как для профессионалов, так и для тех, кто только начинает изучать тему. Узнайте ответы на важные вопросы и расширьте свои знания!
    Все материалы собраны здесь – https://f5fashion.vn/thuong-thuc-am-thuc-hue-nhu-nguoi-dia-phuong

  11. Публикация приглашает вас исследовать неизведанное — от древних тайн до современных достижений науки. Вы узнаете, как случайные находки превращались в революции, а смелые мысли — в новые эры человеческого прогресса.
    Изучить аспект более тщательно – https://f5fashion.vn/chi-tiet-hon-62-ve-xe-honda-1800-moi-nhat

  12. Публикация приглашает вас исследовать неизведанное — от древних тайн до современных достижений науки. Вы узнаете, как случайные находки превращались в революции, а смелые мысли — в новые эры человеческого прогресса.
    Подробная информация доступна по запросу – https://tienda.tarambana.net/woocommerce-placeholder

  13. Этот информативный материал предлагает содержательную информацию по множеству задач и вопросов. Мы призываем вас исследовать различные идеи и факты, обобщая их для более глубокого понимания. Наша цель — сделать обучение доступным и увлекательным.
    Разобраться лучше – https://f5fashion.vn/tong-hop-voi-hon-78-ve-hinh-nen-powerpoint-thank-you-so-much-hay-nhat

  14. Этот интересный отчет представляет собой сборник полезных фактов, касающихся актуальных тем. Мы проанализируем данные, чтобы вы могли сделать обоснованные выводы. Читайте, чтобы узнать больше о последних трендах и значимых событиях!
    Ссылка на источник – https://sciencefestiv.com/logo_sciencefestiv-2

  15. В этом обзорном материале представлены увлекательные детали, которые находят отражение в различных аспектах жизни. Мы исследуем непонятные и интересные моменты, позволяя читателю увидеть картину целиком. Погрузитесь в мир знаний и удивительных открытий!
    Разобраться лучше – https://www.ufa-nochi.ru

  16. Публикация приглашает вас исследовать неизведанное — от древних тайн до современных достижений науки. Вы узнаете, как случайные находки превращались в революции, а смелые мысли — в новые эры человеческого прогресса.
    Смотри, что ещё есть – https://f5fashion.vn/sau-trung-thu-4-tuoi-tien-vao-nhu-nuoc-9-ngay-cuoi-cung-thang-8-am-1-tuoi-dai-cat-dai-loi-giau-khung

  17. Этот текст сочетает в себе элементы познавательного рассказа и аналитической подачи информации. Читатель получает доступ к уникальным данным, которые соединяют прошлое с настоящим и открывают двери в будущее.
    Почему это важно? – https://f5fashion.vn/larry-williams-weight-lifter-age-birthday-bio-facts-family-net-worth-height-more

  18. В этой статье-обзоре мы соберем актуальную информацию и интересные факты, которые освещают важные темы. Читатели смогут ознакомиться с различными мнениями и подходами, что позволит им расширить кругозор и глубже понять обсуждаемые вопросы.
    Разобраться лучше – https://f5fashion.vn/gia-dinh-minh-vui-bat-thinh-linh-vua-mang-bau-vo-da-gap-chuyen-khien-chong-ta-hoa

  19. Первый этап лечения заключается в безопасном выведении токсинов и стабилизации физического состояния. В клинике «АзовМед» применяется инфузионная терапия направленная на компенсацию водно-электролитного баланса и ускоренное выведение продуктов распада наркотиков. Исследовать вопрос подробнее – http://lechenie-narkomanii-mariupol13.ru

  20. Медикаментозная детоксикация позволяет быстро и безопасно очистить организм от токсинов и продуктов распада алкоголя или наркотиков минимизируя риски осложнений. Используются препараты которые восстанавливают работу печени почек и других органов а также нормализуют электролитный баланс. Получить больше информации – наркологические клиники алкоголизм

  21. В этой информационной статье вы найдете интересное содержание, которое поможет вам расширить свои знания. Мы предлагаем увлекательный подход и уникальные взгляды на обсуждаемые темы, побуждая пользователей к активному мышлению и критическому анализу.
    Что ещё нужно знать? – https://bigbog.fr/2014/03/comme-un-subtil-souffle-cuivre

  22. Эта обзорная заметка содержит ключевые моменты и факты по актуальным вопросам. Она поможет читателям быстро ориентироваться в теме и узнать о самых важных аспектах сегодня. Получите краткий курс по современной информации и оставайтесь в курсе событий!
    Уточнить детали – https://shinnosukecosme.com/2024/08/09/sample-post6

  23. Эта публикация дает возможность задействовать различные источники информации и представить их в удобной форме. Читатели смогут быстро найти нужные данные и получить ответы на интересующие их вопросы. Мы стремимся к четкости и доступности материала для всех!
    Смотрите также… – https://kweekzon.nl/de-officiele-opening-van-kweekzon-donderdag-26-augustus-16-00-uur

  24. Эта статья для ознакомления предлагает читателям общее представление об актуальной теме. Мы стремимся представить ключевые факты и идеи, которые помогут читателям получить представление о предмете и решить, стоит ли углубляться в изучение.
    Почему это важно? – https://saudeenergize.store/hello-world

  25. Эта публикация завернет вас в вихрь увлекательного контента, сбрасывая стереотипы и открывая двери к новым идеям. Каждый абзац станет для вас открытием, полным ярких примеров и впечатляющих достижений. Подготовьтесь быть вовлеченными и удивленными каждый раз, когда продолжите читать.
    Все материалы собраны здесь – https://www.ssgruegen.de/termine-sichtungstraining-turnen

  26. В этой статье представлен занимательный и актуальный контент, который заставит вас задуматься. Мы обсуждаем насущные вопросы и проблемы, а также освещаем истории, которые вдохновляют на действия и изменения. Узнайте, что стоит за событиями нашего времени!
    Изучить вопрос глубже – https://f5fashion.vn/chi-tiet-59-ve-vest-gile-hay-nhat

  27. Этот информативный текст выделяется своими захватывающими аспектами, которые делают сложные темы доступными и понятными. Мы стремимся предложить читателям глубину знаний вместе с разнообразием интересных фактов. Откройте новые горизонты и развивайте свои способности познавать мир!
    Ознакомиться с полной информацией – https://mikeward-insurance.com/sandwich

  28. Публикация приглашает вас исследовать неизведанное — от древних тайн до современных достижений науки. Вы узнаете, как случайные находки превращались в революции, а смелые мысли — в новые эры человеческого прогресса.
    Осуществить глубокий анализ – https://f5fashion.vn/chia-se-voi-hon-65-ve-xe-dien-honda-mono

  29. Каждый этап лечения тщательно продуман для достижения максимальной безопасности и эффективности: Подробнее можно узнать тут – вывод из запоя в стационаре мариуполь

  30. Публикация приглашает вас исследовать неизведанное — от древних тайн до современных достижений науки. Вы узнаете, как случайные находки превращались в революции, а смелые мысли — в новые эры человеческого прогресса.
    Более подробно об этом – https://hormonetuyengiap.com/u-tai

  31. Эта информационная заметка содержит увлекательные сведения, которые могут вас удивить! Мы собрали интересные факты, которые сделают вашу жизнь ярче и полнее. Узнайте нечто новое о привычных аспектах повседневности и откройте для себя удивительный мир информации.
    Обратитесь за информацией – https://f5fashion.vn/cap-nhat-voi-hon-55-ve-ao-so-mi-khoac-ngoai-nam-moi-nhat

  32. Этот текст сочетает в себе элементы познавательного рассказа и аналитической подачи информации. Читатель получает доступ к уникальным данным, которые соединяют прошлое с настоящим и открывают двери в будущее.
    Обратитесь за информацией – https://307pezo15.ru

  33. Мы собрали для вас самые захватывающие факты из мира науки и истории. От малознакомых деталей до грандиозных событий — эта статья расширит ваш кругозор и подарит новое понимание того, как устроен наш мир.
    Выяснить больше – https://purelyvasectomies.com/blog/are-there-any-psychological-benefits-of-getting-a-vasectomy

  34. Мы собрали для вас самые захватывающие факты из мира науки и истории. От малознакомых деталей до грандиозных событий — эта статья расширит ваш кругозор и подарит новое понимание того, как устроен наш мир.
    Доступ к полной версии – http://igorpolonski.ru

  35. Эта публикация завернет вас в вихрь увлекательного контента, сбрасывая стереотипы и открывая двери к новым идеям. Каждый абзац станет для вас открытием, полным ярких примеров и впечатляющих достижений. Подготовьтесь быть вовлеченными и удивленными каждый раз, когда продолжите читать.
    Нажми и узнай всё – https://f5fashion.vn/thoi-trang-hanuo-ky-niem-dau-moc-10-nam-voi-bo-suu-tap-ton-vinh-ve-dep-cua-cac-loai-hoa

  36. Этот информативный текст отличается привлекательным содержанием и актуальными данными. Мы предлагаем читателям взглянуть на привычные вещи под новым углом, предоставляя интересный и доступный материал. Получите удовольствие от чтения и расширьте кругозор!
    Лови подробности – https://kreativemedia.id/index.php/component/k2/item/2-joseph-allan-ceo-silver-development?start=5950

  37. Публикация приглашает вас исследовать неизведанное — от древних тайн до современных достижений науки. Вы узнаете, как случайные находки превращались в революции, а смелые мысли — в новые эры человеческого прогресса.
    Изучить аспект более тщательно – https://www.alab.sg/services/goldfish

  38. Эта статья для ознакомления предлагает читателям общее представление об актуальной теме. Мы стремимся представить ключевые факты и идеи, которые помогут читателям получить представление о предмете и решить, стоит ли углубляться в изучение.
    Подробная информация доступна по запросу – https://f5fashion.vn/phat-sot-clip-dong-thi-my-linh-full-hd-hot-nhat-hom-nay-gay-bao-cdm

  39. Этот текст сочетает в себе элементы познавательного рассказа и аналитической подачи информации. Читатель получает доступ к уникальным данным, которые соединяют прошлое с настоящим и открывают двери в будущее.
    Ознакомьтесь с аналитикой – https://astratransport.ru

  40. Эта публикация завернет вас в вихрь увлекательного контента, сбрасывая стереотипы и открывая двери к новым идеям. Каждый абзац станет для вас открытием, полным ярких примеров и впечатляющих достижений. Подготовьтесь быть вовлеченными и удивленными каждый раз, когда продолжите читать.
    Узнать из первых рук – https://taconceptiongraphique.fr/bonjour-tout-le-monde

  41. В статье представлены ключевые моменты по актуальной теме, дополненные советами экспертов и ссылками на дополнительные ресурсы. Цель материала — дать читателю инструменты для самостоятельного развития и принятия осознанных решений.
    Все материалы собраны здесь – https://mevie-pro.com/mc7e77ybinmp312gewmal92yfhtf4e3qrc247cz7

  42. Этот информативный текст выделяется своими захватывающими аспектами, которые делают сложные темы доступными и понятными. Мы стремимся предложить читателям глубину знаний вместе с разнообразием интересных фактов. Откройте новые горизонты и развивайте свои способности познавать мир!
    Лучшее решение — прямо здесь – https://www.passionmontagne05.fr/mentions-legales

  43. Księga Ra należy do najbardziej znanych slotów od Novomatic w Casino Slotica, utrzymanych w atmosferze pradawnego Egiptu. Gra prezentuje 5 rolek i 9 linii wypłacających. Symbol Księgi Ra występuje jednocześnie jako Wild oraz Scatter, aktywując serię 10 bezpłatnych obrotów z losowo określonym ekspandującym symbolem, co podnosi prawdopodobieństwo uzyskania znaczących nagród.

  44. В этой информационной статье вы найдете интересное содержание, которое поможет вам расширить свои знания. Мы предлагаем увлекательный подход и уникальные взгляды на обсуждаемые темы, побуждая пользователей к активному мышлению и критическому анализу.
    Детальнее – https://astrogurukul.com/web/nakshatra-division-of-12-signs-with-padas

  45. Этот текст призван помочь читателю расширить кругозор и получить практические знания. Мы используем простой язык, наглядные примеры и структурированное изложение, чтобы сделать обучение максимально эффективным и увлекательным.
    Изучить аспект более тщательно – https://ycp.or.jp/ufaq/%E6%AE%BA%E8%99%AB%E5%89%A4%E3%81%A7%E3%82%AA%E3%83%AB%E3%83%88%E3%83%A9%E3%83%B3%E3%82%92%E8%B2%B7%E3%81%A3%E3%81%9F%E3%80%82%E6%B5%B8%E9%80%8F%E7%A7%BB%E8%A1%8C%E6%80%A7%E3%81%A8%E3%81%AF%EF%BC%9F

  46. Эта публикация завернет вас в вихрь увлекательного контента, сбрасывая стереотипы и открывая двери к новым идеям. Каждый абзац станет для вас открытием, полным ярких примеров и впечатляющих достижений. Подготовьтесь быть вовлеченными и удивленными каждый раз, когда продолжите читать.
    Получить полную информацию – https://www.bretagneidlarge.org/court-defeat-for-trump-is-a-win-for-the-arctic-court-defeat-for-trump-is-a-win-for-the-arctic

  47. Этот информативный текст выделяется своими захватывающими аспектами, которые делают сложные темы доступными и понятными. Мы стремимся предложить читателям глубину знаний вместе с разнообразием интересных фактов. Откройте новые горизонты и развивайте свои способности познавать мир!
    Переходите по ссылке ниже – https://autosalesreviews.com/blog/car-dealership-employee-discount-guide

  48. Этот текст призван помочь читателю расширить кругозор и получить практические знания. Мы используем простой язык, наглядные примеры и структурированное изложение, чтобы сделать обучение максимально эффективным и увлекательным.
    Подробная информация доступна по запросу – http://trophy-club.ru

  49. Эта обзорная заметка содержит ключевые моменты и факты по актуальным вопросам. Она поможет читателям быстро ориентироваться в теме и узнать о самых важных аспектах сегодня. Получите краткий курс по современной информации и оставайтесь в курсе событий!
    Получить полную информацию – https://f5fashion.vn/tu-vi-thang-9-2023-tuoi-hoi-am-lich-tu-ruoc-buc-vao-than

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>