{"id":973,"date":"2025-09-04T06:32:26","date_gmt":"2025-09-04T05:32:26","guid":{"rendered":"https:\/\/metrics.blogg.gu.se\/?p=973"},"modified":"2025-09-04T06:32:26","modified_gmt":"2025-09-04T05:32:26","slug":"software-on-demand-experiments","status":"publish","type":"post","link":"https:\/\/metrics.blogg.gu.se\/?p=973","title":{"rendered":"Software-on-demand &#8211; experiments"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/metrics.blogg.gu.se\/files\/2025\/09\/illustration.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/metrics.blogg.gu.se\/files\/2025\/09\/illustration.png\" alt=\"\" class=\"wp-image-974\" srcset=\"https:\/\/metrics.blogg.gu.se\/files\/2025\/09\/illustration.png 1024w, https:\/\/metrics.blogg.gu.se\/files\/2025\/09\/illustration-300x300.png 300w, https:\/\/metrics.blogg.gu.se\/files\/2025\/09\/illustration-150x150.png 150w, https:\/\/metrics.blogg.gu.se\/files\/2025\/09\/illustration-768x768.png 768w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><\/figure>\n\n\n\n<p><a href=\"https:\/\/github.com\/miroslawstaron\/screenPong\">miroslawstaron\/screenPong<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/miroslawstaron\/screenTerminal\">miroslawstaron\/screenTerminal<\/a><\/p>\n\n\n\n<p>I was keen on testing the Software-on-demand hypothesis advocated by OpenAI in their last keynote, but it took me a moment to see how to test it. Then, I realized that I could work with creating screensavers based on my ideas. Not the ones that change images, we don&#8217;t need AI for that. The ones where you actually have to write you own source code! <\/p>\n\n\n\n<p>So, first I did a dot that would spawn at different places of the screen with different sizes and colors. Just two minutes later I got the source code in C#, which I compiled using Visual Studio Code and it worked. No errors, just save the code and compile. <\/p>\n\n\n\n<p>Then, I realized that a dot is pretty basic, so no challenge for the AI. So, I decided to ask for a pong game, Atari-style, that would be my screensaver. That took maybe a few moments longer for the AI to think, but it worked. Then &#8220;I&#8221; changed the logic a bit, made it into a car, asked for a counter and a few minuted\/iterations later &#8211; I got the nice screen saver. It&#8217;s in the first repo if you want to try. AI even generated instructions how to compile it and install it (as readme.txt).<\/p>\n\n\n\n<p>Finally, I thought about a screensaver that would print its own source code on the screen. The same story &#8211; few iterations and cool ideas led me to the second repository. I got the screen terminal saver. Quite cool. <\/p>\n\n\n\n<p>But then, something happened! If you go into the repository, you will see that it only has one large file with all the code. So, I started to use AI to refactor it &#8211; split into smaller classes (instead of the internal ones), add comments, describe the logic, etc. None of that worked! It extracted the classes, but &#8220;forgot&#8221; to use them in the main Program.cs &#8211; my screensaver was empty. It added the comments, but mostly one liners about the functions, no description of the logic. <\/p>\n\n\n\n<p>So, Keep Calm and Engineer Software I say &#8211; AI is not going to take advanced software engineering jobs!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>miroslawstaron\/screenPong miroslawstaron\/screenTerminal I was keen on testing the Software-on-demand hypothesis advocated by OpenAI in their last keynote, but it took me a moment to see how to test it. Then, I realized that I could work with creating screensavers based on my ideas. Not the ones that change images, we don&#8217;t need AI for that. &hellip; <a href=\"https:\/\/metrics.blogg.gu.se\/?p=973\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Software-on-demand &#8211; experiments&#8221;<\/span><\/a><\/p>\n","protected":false},"author":68,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"_links":{"self":[{"href":"https:\/\/metrics.blogg.gu.se\/index.php?rest_route=\/wp\/v2\/posts\/973"}],"collection":[{"href":"https:\/\/metrics.blogg.gu.se\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/metrics.blogg.gu.se\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/metrics.blogg.gu.se\/index.php?rest_route=\/wp\/v2\/users\/68"}],"replies":[{"embeddable":true,"href":"https:\/\/metrics.blogg.gu.se\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=973"}],"version-history":[{"count":1,"href":"https:\/\/metrics.blogg.gu.se\/index.php?rest_route=\/wp\/v2\/posts\/973\/revisions"}],"predecessor-version":[{"id":975,"href":"https:\/\/metrics.blogg.gu.se\/index.php?rest_route=\/wp\/v2\/posts\/973\/revisions\/975"}],"wp:attachment":[{"href":"https:\/\/metrics.blogg.gu.se\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=973"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/metrics.blogg.gu.se\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=973"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/metrics.blogg.gu.se\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}