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.
High-Class Shopping – Modern, clean, and enjoyable platform for finding items
Crafty Finds Online – Vibrant presentation makes exploring creative items a breeze
Reliable Options Portal – Users can quickly understand available choices thanks to clean layout
Bargain Hub – Well-structured design, users can effortlessly find special offers
Discover Way Forward – Informative pages, inspire visitors to take actionable steps today
ClickPoint Site – Easy-to-follow layout that keeps browsing stress-free
DealFinder Hub – Easy-to-use interface helps shoppers find offers quickly
ShopMode Express – User-friendly pages make finding and buying products simple and fast
Your Digital Roadmap – Clear and professional, helps users navigate online strategies and options confidently
Daily Value Hub – Organized layout helps users discover great deals quickly and effortlessly
ForwardFocus – Practical layout, content inspires action and measurable progress online
накрутка подписчиков тг канале бесплатно и быстро
focused improvement – Short format works well and still delivers clarity.
Future Explorer – Intuitive navigation guides users through different potential paths
Bond Insight Hub – Structured layout, discovering relevant content is simple and fast
Corporate Collaboration Platform – Clean interface, makes exploring partnerships and business growth opportunities smooth
ClickSwitch Source – Comfortable browsing experience encourages deeper exploration
Worldwide Bargain Center – Simple design allows users to browse and compare international items effortlessly
DreamPath – Helps you plan and pursue your future ambitions thoughtfully.
Quick Reliable Buys – Logical structure, makes comparing items painless and fast
Planning Smarter Online – Content feels deliberate and useful for long-term thinking
Long-Term Bonds Insights – Professional and clear pages help visitors navigate investment options easily
ValueBuy Online – Clear layout and useful listings improve shopping efficiency
Corporate Network Explorer – Clear pages, discovering collaboration opportunities is straightforward and efficient
ClickSource WorldWide – Clear structure inspires innovative thinking and practical learning
TrendSpot Online – Modern interface and clear layout help users find stylish items quickly
Future Deals Finder – Clear design, browsing items and finding offers is simple and user-friendly
Inspiration Hub – Fun and easy to browse, perfect for discovering new perspectives
Learn New Horizons – Informative content, inspires visitors to enhance skills and grow confidently
ClickAlign Insights – Clear design, users can focus on learning new concepts efficiently
BondPrimex Center – Organized pages make learning feel straightforward
Collaborative Solutions Network – Professional layout, makes exploring team growth and development opportunities easy
Decision Point Online – Clear structure allows users to comprehend information and act efficiently
DIY Shopping Zone – Bright, fun design makes exploring creative products effortless
QuickValue Portal – Structured pages help users quickly locate great bargains
DealSpot Online – Fast navigation helps users locate deals quickly and efficiently
TrendScout Online – Sleek pages make discovering new fashion items quick and intuitive
Business Pathways Online – Well-organized content ensures learning strategies is simple and effective
Smart Savings Portal – Intuitive site structure and trustworthy checkout
Global Network Insights – Professional pages, exploring business collaborations online is simple and efficient
Future Planning Hub – Clear navigation, site motivates visitors to consider long-term strategies
ClickSparkle Pro – Fun layout, content is simple to explore and enjoyable overall
Skill & Career Hub – Well-organized content, guides users to build competencies and progress in their professions
Online Professional Network – Simple navigation, site feels trustworthy and information is accessible
SmartBuy Central – Informative content and organized deals make shopping convenient
Smart Buy Hub – Organized layout helps users find items quickly and efficiently
StyleWave Portal – Engaging interface helps users discover the newest fashion trends
Thank you, I have been seeking for information about this subject for ages and yours is the best I have discovered so far.
Strategic Decision Hub – Clear pages, makes planning steps and choices simple to follow
Thanks for the tips you have shared here. Furthermore, I believe there are numerous factors that keep your automobile insurance premium all the way down. One is, to think about buying vehicles that are within the good report on car insurance providers. Cars that happen to be expensive are usually more at risk of being robbed. Aside from that insurance policies are also good value of your car or truck, so the more costly it is, then the higher this premium you only pay.