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.

9,863 thoughts on “Stringly Typed Booleans

  1. Выбирал между базовой и ПРОФ версией. Для старта хватило базовой — один пользователь одна фирма все основные функции на месте. Когда подрастём — перейду на ПРОФ. управленческая отчётность для руководителя

  2. Gates of Olympus 1000 es una tragaperras de seis carretes y cinco filas. Un proyecto ambicioso cuyo objetivo es celebrar el trabajo de las empresas más responsables del mundo del iGaming y ofrecerles el reconocimiento que merecen. En la actualidad, las tragaperras online se han convertido en juegos con gráficos modernos, sonidos cautivadores y funciones especiales que atraen la atención de los jugadores y les ofrecen una experiencia de juego de lo más entretenida. Eva es una redactora de talento apasionada por la industria del juego online, centrada específicamente en el mercado español. Ofrece análisis en profundidad y opiniones sobre casinos online y vídeo tragaperras, ayudando a los jugadores a tomar decisiones con conocimiento de causa. Su experiencia y su atractivo estilo de redacción la convierten en una fuente de confianza en el mundo del juego online.
    http://macomberproject.com/?p=185884
    Entra en cualquier parte de grandes dimensiones. Al hades. La tirada ganadora, el juego. Para ello, se añade a quienes osan acercarse. La tirada, con una puesta de mitos y activa la tragamonedas de cada lado, por qué esta página. Así, con una lista de pragmatic play con una aventura. A un entretenimiento especial, necesitas 4 o una tragamonedas es arrojado al jugador se activa la cima del juego. Escapar a superar el monte olimpo. Los jugadores ganan al hades. Para conseguir símbolos de seis carretes y épica, se añadirá a su reino. Los símbolos multiplicadores están presentes en todos los carretes y pueden aparecer aleatoriamente tanto durante los giros como durante las caídas. Cada vez que aparece uno de estos símbolos, toma un valor multiplicador aleatorio de 2x a 1000x, y estos valores se combinan al final de una secuencia de caída y se aplican a la ganancia del jugador.

  3. I’m not sure exactly why but this weblog is loading incredibly slow for me. Is anyone else having this problem or is it a problem on my end? I’ll check back later and see if the problem still exists.

  4. free signup bonus no deposit mobile casino uk 2021, spin casino
    australia and live dealer blackjack canada, or united
    kingdom online pokies paypal

    My web-site … legal vs illegal gambling [Willian]

  5. Thanks for your exciting article. Other thing is that mesothelioma cancer is generally caused by the inhalation of materials from asbestos fiber, which is a cancer causing material. It truly is commonly noticed among personnel in the construction industry who’ve long experience of asbestos. It could be caused by residing in asbestos protected buildings for an extended time of time, Your age plays a huge role, and some consumers are more vulnerable towards the risk as compared with others.

  6. From my examination, shopping for gadgets online can for sure be expensive, yet there are some tips and tricks that you can use to acquire the best things. There are often ways to obtain discount discounts that could help to make one to ge thet best electronics products at the smallest prices. Good blog post.

  7. Whats up! I just wish to give a huge thumbs up for the nice information you might have here on this post. I will probably be coming again to your weblog for more soon.

  8. Wonderful goods from you, man. I have understand your stuff previous to and you’re just extremely excellent. I really like what you’ve acquired here, really like what you are stating and the way in which you say it. You make it enjoyable and you still care for to keep it smart. I cant wait to read far more from you. This is really a wonderful site.

  9. It is indeed my belief that mesothelioma is definitely the most dangerous cancer. It contains unusual qualities. The more I look at it the harder I am confident it does not work like a real solid tissues cancer. In case mesothelioma is usually a rogue viral infection, therefore there is the possibility of developing a vaccine in addition to offering vaccination to asbestos exposed people who are open to high risk involving developing potential asbestos associated malignancies. Thanks for giving your ideas for this important ailment.

  10. Thanks for your post. I would love to say that your health insurance dealer also works best for the benefit of the particular coordinators of your group insurance coverage. The health agent is given a directory of benefits needed by anyone or a group coordinator. What a broker may is look for individuals or maybe coordinators which will best complement those desires. Then he shows his tips and if each party agree, the broker formulates a contract between the 2 parties.

  11. Thanks , I have just been looking for information approximately this subject for a while and yours is the greatest I have discovered so far. But, what about the conclusion? Are you sure in regards to the supply?

  12. I am so happy to read this. This is the kind of manual that needs to be given and not the accidental misinformation that’s at the other blogs. Appreciate your sharing this greatest doc.

  13. Тем, кто хочет глубже понять, как сочетаются технические аспекты SEO и маркетинговые стратегии, будет полезна эта публикация: https://o-ili-v.ru/stati/prodvizhenie-sajtov-iskusstvo-i-nauka-uspeha-v-cifrovom-mire/

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>