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.
TrivoxTrustline Info – Plenty of transparency shown, which helps build confidence.
Nixaro Trustline portal – Well-laid-out pages, concise information, and navigation works efficiently.
KoriNavigator – Pages open quickly, browsing effortless, and checkout workflow seamless.
Trivox Point – Clear design, pages fast and product info accurate and detailed.
zavik source – Pages are tidy, information is concise, and content is easy to read
focusanchorsmovement network – Clear sections, minimal distractions, and overall browsing is pleasant
brand storefront – Nothing sounded misleading or overhyped.
HoldingPortal – Layout is clear, navigation simple, and pages respond instantly.
bonded hub – Professional vibe, brand messaging clear and pages easy to navigate.
Check this investment hub – The platform appears refined, with content that feels reliable and organized.
Visit Plavex Holdings online – Organized layout, quick-loading pages, and navigation works perfectly.
BuySmartSecure – Reliable and user-friendly, finding products online is straightforward.
pelvo site – Straightforward layout, readable text, and a calm browsing flow
Learn About Qulavo Capital – Smooth layout, structured information, and navigation is intuitive.
UlvaroBondGroup Main Site – Came across this today, layout is clean and communication is direct.
Brixel Bond Group official page – A well-structured site that sends strong signals of legitimacy.
UlviroTrust Page – Neat design, tone feels professional and reassuring throughout.
Korivo Capital digital site – Logical content flow, clean design, and navigation is simple to follow.
resource page – Simple and clear, pages load quickly, content is easy to digest
Nolaro Capital platform – Easy-to-scan pages, professional appearance, and everything is accessible.
BondCart – Quick access to products, easy to read info, checkout was smooth.
this store – I saved the page and might shop here again soon.
explore signal creates momentum – Smooth flow and readable text make it very user-friendly
NixaroHome – Layout neat, pages load quickly, and finding products was simple and straightforward.
BusinessPartnershipGuide – Reliable platform, frameworks for partnerships are actionable and easy to understand.
main link – Layout feels uncluttered, content is accessible and easy to follow.
Check Plavex Trust Group – Easy-to-read content, smooth interface, and site structure is logical.
Quvexa Capital Web – Simple navigation, readable content, and overall experience feels reliable.
sonabet com login
Learn more at this page – The site feels well organized, supporting focused and extended exploration.
SuccessPathwayPro – Detailed advice, strategies are actionable and easy to follow.
Korivo Holdings homepage – Well-laid-out pages, clear messaging, and the site feels reliable overall.
UlvaroBonding Project – Fast page loads and clear details make it easy to browse.
morix online – Tidy layout with content that’s simple to read and explore
Brixel Capital platform – Well-defined messaging and branding help establish authority.
Velixo Capital – Discovered this while researching, branding is professional and content is easy to follow.
ClickQuvex – Very responsive, all sections opened properly and looked tidy.
visit plavo – Simple layout and fast-loading pages, really enjoyable to explore
Nolaro Holdings portal – Well-laid-out pages, trust signals are clear, and navigation is effortless.
marketplace – Easy and enjoyable experience, I’d suggest it to others.
official travik – Neat interface, logical flow, and overall browsing feels effortless
ulviro hub – Page loaded instantly, visuals clean and content easy to follow.
Plivox Bonding network – Intuitive layout, clear headings, and user experience feels smooth.
Ulviro Connect – Fast site, navigation effortless, and finding products simple and pleasant.
Korivo Trustline info site – Strong brand presence, helpful explanations, and a user-friendly experience.
UlvaroCapital Info – Positive first look, information is easy to understand and well paced.
Visit Velixo Holdings – Smooth experience navigating, content loads quickly and seems trustworthy.
Helpful Page Here – Came upon this unexpectedly and liked the simple presentation
QuickBargainsPro – Smooth platform, finding deals online is easy and stress-free.
Official bonding site – Took a short look and the page feels well organized with clear sections.