{"id":217,"date":"2023-07-04T22:07:00","date_gmt":"2023-07-04T20:07:00","guid":{"rendered":"https:\/\/djax.se\/blog\/?p=217"},"modified":"2023-07-04T22:07:00","modified_gmt":"2023-07-04T20:07:00","slug":"pappa-undrade-ifall-mjukvaran-aldras","status":"publish","type":"post","link":"https:\/\/djax.se\/?p=217","title":{"rendered":"Pappa undrade ifall mjukvaran \u00e5ldras"},"content":{"rendered":"\n<p>Jag \u00e4r systemutvecklare och pappa \u00e4r mj\u00f6lkbonde.<\/p>\n\n\n\n<p>Jag jobbar med design av abstraktioner. Han jobbar med samklangen mellan djur och natur.<\/p>\n\n\n\n<p>Han f\u00f6rst\u00e5r inte vad jag g\u00f6r p\u00e5 jobbet. Han fr\u00e5gar mig:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>&#8221;Om ingen \u00e4r d\u00e4r och \u00e4ndrar, blir programmet s\u00e4mre med tiden?&#8221;<\/p>\n<\/blockquote>\n\n\n\n<p>Min f\u00f6rsta tanke till svar \u00e4r att det var gulligt att tro att digitala skapelser rostar och f\u00f6rfaller likt en traktor p\u00e5 g\u00e5rden.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>&#8221;Nej de Bytes som beskriver programmet ligger d\u00e4r p\u00e5 disken i perfekt skick som p\u00e5 dagen de kompilerades fr\u00e5n sin k\u00e4llkod.&#8221;<\/p>\n<\/blockquote>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"http:\/\/localhost:8081\/wp-content\/uploads\/2023\/07\/abandoned-tractor-farm-rust-1024x683.jpg\" alt=\"\" class=\"wp-image-424\" srcset=\"https:\/\/djax.se\/wp-content\/uploads\/2023\/07\/abandoned-tractor-farm-rust-1024x683.jpg 1024w, https:\/\/djax.se\/wp-content\/uploads\/2023\/07\/abandoned-tractor-farm-rust-300x200.jpg 300w, https:\/\/djax.se\/wp-content\/uploads\/2023\/07\/abandoned-tractor-farm-rust-768x512.jpg 768w, https:\/\/djax.se\/wp-content\/uploads\/2023\/07\/abandoned-tractor-farm-rust-1536x1024.jpg 1536w, https:\/\/djax.se\/wp-content\/uploads\/2023\/07\/abandoned-tractor-farm-rust.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Men min erfarenhet gjorde snabbt att jag \u00e4ndrade mitt svar: Jo programmet blir s\u00e4mre &#8221;av sig sj\u00e4lvt&#8221;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Det kan b\u00f6rja kr\u00e5ngla mer<\/li>\n\n\n\n<li>Det kan b\u00f6rja bli l\u00e5ngsammare<\/li>\n\n\n\n<li>Anv\u00e4ndarna kan gl\u00f6mma av vilka moment programmet kan utf\u00f6ra<\/li>\n<\/ul>\n\n\n\n<p>Programmet existerar inte i isolation. Det \u00e4r en symbios av m\u00e4nniskorna som anv\u00e4nder det och systemen de integrerar med.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Alla beroenden programmet har p\u00e5 tredjeparts bibliotek som forts\u00e4tter utvecklas och \u00e4ndras g\u00f6r att versionerna och verktygen som fanns n\u00e4r du kompilerade programmet senast kanske inte l\u00e4ngre finns tillg\u00e4ngliga n\u00e4sta g\u00e5ng.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Skulle du kunna bygga k\u00e4llkod fr\u00e5n 80-talet? 90-talet? Eller en 3 \u00e5r gammal Node l\u00f6sning?<\/p>\n<\/blockquote>\n\n\n\n<p>M\u00e4nniskorna som f\u00f6rstod varf\u00f6r en process gjordes p\u00e5 ett visst s\u00e4tt en g\u00e5ng i tiden kanske g\u00e5tt i pension och de nya medarbetarna k\u00e4nner inte till kontexten som fanns p\u00e5 den tiden.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>The death of a program happens when the programmer team possessing its theory is dissolved. A dead program may continue to be used for execution in a computer and to produce useful results. The actual state of death becomes visible when demands for modifications of the program cannot be intelligently answered. Revival of a program is the rebuilding of its theory by a new programmer team.<\/p>\n<cite><center><table id=\"hnmain\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"85%\" bgcolor=\"#f6f6ef\"><tbody><tr><td><table class=\"fatitem\" border=\"0\"><tbody><tr class=\"athing\" id=\"10833278\"><td valign=\"top\" class=\"votelinks\"><center><a id=\"up_10833278\" href=\"https:\/\/news.ycombinator.com\/vote?id=10833278&amp;how=up&amp;goto=item%3Fid%3D10833278\"><div class=\"votearrow\" title=\"upvote\"><\/div><\/a><\/center><\/td><td class=\"title\"><\/td><\/tr><\/tbody><\/table><\/td><\/tr><\/tbody><\/table><\/center><span class=\"titleline\"><a href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/Naur.pdf\">Peter Naur \u2013 Programming as Theory Building<\/a><\/span><\/cite><\/blockquote>\n\n\n\n<p>Molnleverant\u00f6ren kanske \u00e4ndrar sina serverless tj\u00e4nster din mjukvara anropar.<\/p>\n\n\n\n<p>Programmet kanske n\u00e5r en tidpunkt d\u00e4r det varit i drift l\u00e4ngre \u00e4n vad det n\u00e5gonsin tidigare varit ig\u00e5ng d\u00e4r en v\u00e4gg tr\u00e4ffas av l\u00e4ckande minne eller n\u00e5gon tabell som v\u00e4xt till en kritisk punkt.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Dessa fel kanske tillf\u00e4lligt kan avhj\u00e4lpas av en omstart. Men de allra flesta fel har inte f\u00f6rutsp\u00e5tts och d\u00e4rf\u00f6r ges inget vettigt felmeddelande. <\/p>\n\n\n\n<p>D\u00e4rf\u00f6r blir ett program aldrig f\u00e4rdigt och programmerare beh\u00f6vs med sina h\u00e4nder st\u00e4ndigt inne i maskinen s\u00e5 l\u00e4nge systemet anv\u00e4nds.<\/p>\n\n\n\n<p>I teorin skulle inte detta beh\u00f6vas men det \u00e4r l\u00e5ngt kvar innan vi kan peka p\u00e5 ett icke-trivialt program och s\u00e4ga &#8221;Det d\u00e4r \u00e4r formellt bevisat att kunna rulla \u00e5r in och \u00e5r ut \u00e4ven om alla m\u00e4nniskor skulle f\u00f6rsvinna&#8221;. <\/p>\n\n\n\n<p>Det g\u00e5r att f\u00e5 program att bli lite b\u00e4ttre. Programmera defensivt och pressa inte varje utveckling ner till sin enda yttersta <a href=\"https:\/\/en.wikipedia.org\/wiki\/Happy_path\" data-type=\"URL\" data-id=\"https:\/\/en.wikipedia.org\/wiki\/Happy_path\">happy-path<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jag \u00e4r systemutvecklare och pappa \u00e4r mj\u00f6lkbonde. Jag jobbar med design av abstraktioner. Han jobbar med samklangen mellan djur och natur. Han f\u00f6rst\u00e5r inte vad jag g\u00f6r p\u00e5 jobbet. Han fr\u00e5gar mig: &#8221;Om ingen \u00e4r d\u00e4r och \u00e4ndrar, blir programmet s\u00e4mre med tiden?&#8221; Min f\u00f6rsta tanke till svar \u00e4r att det var gulligt att tro [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":423,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-217","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-systemutveckling"],"_links":{"self":[{"href":"https:\/\/djax.se\/index.php?rest_route=\/wp\/v2\/posts\/217","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/djax.se\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/djax.se\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/djax.se\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/djax.se\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=217"}],"version-history":[{"count":0,"href":"https:\/\/djax.se\/index.php?rest_route=\/wp\/v2\/posts\/217\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/djax.se\/index.php?rest_route=\/wp\/v2\/media\/423"}],"wp:attachment":[{"href":"https:\/\/djax.se\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/djax.se\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=217"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/djax.se\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}