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.
Market Mirth Online Hub – Friendly shop, layout is intuitive and finding products was effortless.
Quenvia Picks – Clean and modern design, navigating products was quick and smooth.
Run River Online – Sleek look, site is intuitive and the buying process felt effortless.
Olive Outlet Hub – Loved the assortment, prices are reasonable, and placing an order was easy.
Skin Serenade Collection – High-quality products, navigation feels natural and purchasing was effortless.
evarica.shop – Stylish finds that make shopping a pleasure, highly recommend.
Spruce Spark Corner – Stylish layout, product images are clear and checkout process was effortless.
Orla Trends – Loved the options, checkout process was fast and smooth.
happy finds shop – Easy to explore, picked a few items and saved them for later.
Marqvella Selection – The overall presentation feels clean, modern, and thoughtfully done.
I switched from another service because of the scalable features and accurate charts. My withdrawals were always smooth.
I’ve been using it for over two years for portfolio tracking, and the useful analytics stands out.
Pearl Pantry Market – Clean presentation, shopping around the site is easy.
Poplar Prime Showcase – Sleek design, browsing and shopping felt smooth.
Neon Notch Collection – Unique design elements make the site feel lively and distinct.
Marqesta Picks Hub – Polished shop, navigation is smooth and the website inspires confidence.
Ruvina Essentials – Neat design, product selection feels curated and checkout was seamless.
QuillQuarry Market – Well-curated items, finding products and checkout felt smooth.
exploreember.shop – Beautiful items with a warm and inviting atmosphere, highly recommend!
Opal Orio Selection – Navigation is straightforward, products are unique, and shopping feels effortless.
Skynaro Collection – Fantastic selection, browsing the site is easy and product info is very clear.
cloudcurio.shop – Love the variety, it’s always a pleasant experience shopping here.
Starlight Hub – Pleasant browsing, items feel curated and checkout process was smooth and easy.
Bargain Hub – Wide selection of savings, checkout is intuitive and fast.
Kevrina Marketplace – Everything seems in order, placing an order should be simple.
Pearl Pantry Market – Clear structure, browsing everyday goods felt effortless.
Prime Parcel Spot – Items shipped quickly, navigating the site felt natural.
I’ve been active for over two years, mostly for using the bridge, and it’s always robust security. The updates are frequent and clear.
NeoVanta Collection – Easy navigation, and the items available were engaging and well presented.
Saffron Treasures – Clear design, exploring categories was simple and ordering worked perfectly.
смазка растворяющаяся в хладагенте
Marqvella Online – This store has a sleek feel, with products that look intentionally chosen.
Quoralia Picks – Well-organized site, images and descriptions help me choose quickly.
falnora.shop – A wonderful shopping destination, easy to find everything I need.
Skynvanta Studio – Contemporary collection, site navigation is effortless and checkout is quick.
Opal Ornate Catalog – Gorgeous collection, site is easy to navigate, and the quality impression is strong.
Stitchery Select – Minimalistic and inviting, browsing categories is easy and buying felt effortless.
Palvanta Gems – Sleek products, explanations and specs are easy to follow.
Plaza Online Shop – Enjoyed moving through categories, product shots are clean and useful.
Prime Pickings Storefront – Diverse selection, browsing and choosing items was simple and pleasant.
ScreenStride Select – Clean and efficient, site navigation is intuitive and shopping was stress-free.
Nook Narrative Finds – The curation is clear, and storytelling makes browsing fun.
fetchfolio.shop – Stunning accessories with a curated touch, highly recommend exploring this site.
Quoravia Corner – Well-organized site, categories are easy to explore and checkout is fast.
SleekSelect Collection – Clean layout, items are clearly shown and shopping is simple and smooth.
Suave Basket Favorites – Bright layout, site navigation is simple and buying items was quick.
clovecrest.shop – Shopping is made so simple here, everything is categorized perfectly.
Explore Mint Mariner – Straightforward selection, found a solid option quickly.
Palvion Select – Easy-to-browse items, shopping and checkout flow feels natural.
Great platform with fast transactions — it made my crypto journey easier.