{"id":42148,"date":"2024-02-16T14:14:40","date_gmt":"2024-02-16T19:14:40","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=42148"},"modified":"2024-02-20T13:47:30","modified_gmt":"2024-02-20T18:47:30","slug":"on-the-insecurity-of-software-bloat","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2024\/02\/16\/on-the-insecurity-of-software-bloat\/","title":{"rendered":"On the Insecurity of Software Bloat"},"content":{"rendered":"<p><a href=\"https:\/\/berthub.eu\/articles\/posts\/a-2024-plea-for-lean-software\/\">Bert Hubert<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=39049956\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/berthub.eu\/articles\/posts\/a-2024-plea-for-lean-software\/\"><p>The really short version: the way we build\/ship software these days is mostly ridiculous, leading to <a href=\"https:\/\/hub.docker.com\/r\/grafana\/grafana\">350MB packages that draw graphs<\/a>, and simple products importing <a href=\"https:\/\/github.com\/SashenJayathilaka\/Photo-Sharing-Application\">1600 dependencies of unknown provenance<\/a>. Software security is dire, which is a function both of the quality of the code and the sheer amount of it. Many of us know the current situation is untenable. Many programmers (and their management) sadly haven&rsquo;t ever experienced anything else. And for the rest of us, we rarely get the time to do a better job.<\/p><p>In this post I briefly go over the terrible state of software security, and then spend some time on why it is so bad. I also mention some regulatory\/legislative things going on that we might use to make software quality a priority again. Finally, I talk about <a href=\"https:\/\/berthub.eu\/articles\/trifecta\">an actual useful piece of software I wrote<\/a> as a reality check of the idea that one can still make <a href=\"https:\/\/berthub.eu\/articles\/posts\/trifecta-technology\">minimal and simple yet modern software<\/a>.<\/p>\n<p>I hope that this post provides some mental and moral support for suffering programmers and technologists who want to improve things. It is not just you, we are not merely suffering from nostalgia: software really is very weird today.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/liam-on-linux.dreamwidth.org\/88032.html\">Niklaus Wirth<\/a>:<\/p>\n<blockquote cite=\"https:\/\/liam-on-linux.dreamwidth.org\/88032.html\">\n<p>Reducing complexity and size must be the goal in every step&mdash;in system specification, design, and in detailed programming. A programmer's competence should be judged by the ability to find simple solutions, certainly not by productivity measured in &ldquo;number of lines ejected per day.&rdquo; Prolific programmers contribute to certain disaster.<\/p>\n<p>[&#8230;]<\/p>\n<p>With Project Oberon we have demonstrated that flexible and powerful systems can be built with substantially fewer resources in less time than usual. The plague of software explosion is not a &ldquo;law of nature.&rdquo; It is avoidable, and it is the software engineer&rsquo;s task to curtail it.<\/p>\n<\/blockquote>\n\n<p>See also: <a href=\"https:\/\/spectrum.ieee.org\/lean-software-development\">Bert Hubert<\/a> (via <a href=\"https:\/\/www.schneier.com\/blog\/archives\/2024\/02\/on-the-insecurity-of-software-bloat.html\">Bruce Schneier<\/a>).<\/p>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2024\/01\/04\/niklaus-wirth-rip\/\">Niklaus Wirth, RIP<\/a><\/li>\n<\/ul>\n\n<p id=\"on-the-insecurity-of-software-bloat-update-2024-02-20\">Update (2024-02-20): See also: <a href=\"https:\/\/news.ycombinator.com\/item?id=39426712\">Hacker News<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Bert Hubert (via Hacker News): The really short version: the way we build\/ship software these days is mostly ridiculous, leading to 350MB packages that draw graphs, and simple products importing 1600 dependencies of unknown provenance. Software security is dire, which is a function both of the quality of the code and the sheer amount of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2024-02-16T19:14:43Z","apple_news_api_id":"6157996f-0db5-4039-ac38-9a80c93e7a00","apple_news_api_modified_at":"2024-02-20T18:47:33Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAA==","apple_news_api_share_url":"https:\/\/apple.news\/AYVeZbw21QDmsOJqAyT56AA","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[4],"tags":[27,138,71,48],"class_list":["post-42148","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-craft","tag-optimization","tag-programming","tag-security"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/42148","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=42148"}],"version-history":[{"count":2,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/42148\/revisions"}],"predecessor-version":[{"id":42172,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/42148\/revisions\/42172"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=42148"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=42148"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=42148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}