{"id":374,"date":"2023-07-29T21:43:05","date_gmt":"2023-07-30T05:43:05","guid":{"rendered":"https:\/\/eschatologist.net\/blog\/?p=374"},"modified":"2023-07-29T21:51:58","modified_gmt":"2023-07-30T05:51:58","slug":"the-promise-of-easier-programming","status":"publish","type":"post","link":"https:\/\/eschatologist.net\/blog\/?p=374","title":{"rendered":"The \u201cPromise\u201d of \u201cEasier\u201d Programming"},"content":{"rendered":"<p>So yesterday, Thomas Fuchs <a href=\"https:\/\/hachyderm.io\/@thomasfuchs\/110794185417162412\">said on Mastodon<\/a>:<\/p>\n<blockquote><p>The LLM thing and people believing it will replace people reminds me so much of the \u201cvisual programming\u201d hype in the 80s\/90s, when companies promised that everyone could write complex applications with a few clicks and drawing on the screen.<\/p>\n<p>Turns out, no, you can\u2019t.<\/p><\/blockquote>\n<p>I had to respond, and he encouraged me to turn my response into a blog post. Thanks!<\/p>\n<p>In essence, he\u2019s both incorrect and <em>quite<\/em> correct, in ways that correlate directly to the current enthusiasm among the less technically savvy for LLMs.<\/p>\n<p>Back in the late 1980s to mid-1990s, there were large numbers of complex business applications built in <a href=\"https:\/\/en.wikipedia.org\/wiki\/Prograph\">Prograph<\/a> and <a href=\"https:\/\/en.wikipedia.org\/wiki\/AppWare\">Sirius Developer<\/a> and other \u201c4GLs.\u201d These were generally client-server line-of-business applications that were front-ends to databases implementing business processes, prior to the migration of such applications to the web in the late 1990s. In addition, there was <a href=\"https:\/\/en.wikipedia.org\/wiki\/LabVIEW\">LabVIEW<\/a>, a graphical programming system by National Instruments for instrument control and factory automation, which has largely dominated that industry since not long after its release in 1986.<\/p>\n<p>This was all accompanied by breathless PR, regurgiated by an entirely co\u00f6pted technology press, about how graphical programming was going to save businesses money since once software could be developed by drawing lines between boxes and one wouldn\u2019t have to deal with textual syntax, anyone who needed software could write it themselves instead of hiring \u201cexpensive\u201d programmers to do it.<\/p>\n<p>The problem with this is that it\u2019s optimizing the wrong problem: The complexity of <em>textual programming<\/em>. Yes, people have varying levels of difficulty when it comes to using text to write programs, and some of that <em>is<\/em> caused by needless complexity in both programming language and development environment design. However, a complex application <em>is still a complex application<\/em> regardless of whether it\u2019s written in Prograph or Swift.<\/p>\n<p>For example, LabVIEW isn\u2019t necessarily an advancement over the systems it replaced. An enormous amount of factory automation and instrumentation tooling was created in the 1980s around the IEEE 1488 General Purpose Instrument Bus\u2014originally HP-IB\u2014using Hewlett-Packard\u2019s \u201cRocky Mountain BASIC\u201d running on its 9000-series instrumentation controllers. (These controllers are what HP\u2019s 68000-based HP 9000-200\/300\/400 systems running HP-UX were the fanciest versions of; a significant use of these larger systems was to act as development systems with deployment on lower-cost fixed-purpose controllers.)<\/p>\n<p>All of that was <em>a lot<\/em> more maintainable <em>and<\/em> discoverable than a modern rats\u2019 nest of LabVIEW diagrams\u2014LabVIEW didn\u2019t win the market because it was easier to use or better, it won because it ran on ubiquitous PC hardware while still being able to fully interoperate with already-deployed GPIB systems. This is in part because Rocky Mountain BASIC was a good structured BASIC with flexible I\/O facilities, not a toy BASIC like existed on the microcomputers of the time. So if you needed to add a feature or fix a bug, you had lots of tools with which to pinpoint the bug and address it, and then deploy updated code to your test and then production environment, <em>as well as<\/em> manage changes like that over time.<\/p>\n<p>This is one of the same things that\u2019s also doomed \u201cenvironment-oriented\u201d programming systems like Smalltalk; plain text has some <em>very<\/em> important evolutionary benefits when used for programming, particularly when it comes to long-term maintainability, interoperability, portability, and interoperability. Maintaining any sort of environment-oriented system over time is much more difficult simply because making comparisons between variants can become incredibly complex, and often isn\u2019t possible except when working within the system itself. (For example, people working in Smalltalk environments often used to work by passing around FileOuts, and Smalltalk revision control systems often just codified that.)<\/p>\n<p>And of these sorts of systems, LabVIEW is the only one still in wide use, all of that 4GL code has been replaced more than once over time with more traditionally-developed software because it turns out that there are good reasons that software that needs to live a long time tends to be created textually.<\/p>\n<p>What does this have to do with using LLMs for programming? <strong>All of the same people<\/strong>\u2014people who appear to <em>resent<\/em> having to give money to professional software developers to practice their trade\u2014think that <em>this time<\/em> it\u2019ll be different, that they\u2019ll <em>finally<\/em> be able to just describe what they want a computer to do for their enterprise and have a program created to do it. They continue to not realize that the actual complexity is in the processes themselves that they\u2019re describing, and in breaking these down in sufficient detail to create computer systems to implement them.<\/p>\n<p>So yeah, Thomas is absolutely correct here, they\u2019re going to fail especially spectacularly again this time, since LLMs are just fancy autocomplete and have zero actual intelligence. It\u2019s like saying we won\u2019t need writing and literature classes any more because spellcheck exists, a category error.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So yesterday, Thomas Fuchs said on Mastodon: The LLM thing and people believing it will replace people reminds me so much of the \u201cvisual programming\u201d hype in the 80s\/90s, when companies promised that everyone could write complex applications with a few clicks and drawing on the screen. Turns out, no, you can\u2019t. I had to&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[3],"tags":[158,22,113,159,38],"class_list":["post-374","post","type-post","status-publish","format-standard","hentry","category-technology","tag-labview","tag-programming","tag-programming-languages","tag-prograph","tag-smalltalk"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p74loH-62","_links":{"self":[{"href":"https:\/\/eschatologist.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/374","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eschatologist.net\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eschatologist.net\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eschatologist.net\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/eschatologist.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=374"}],"version-history":[{"count":5,"href":"https:\/\/eschatologist.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/374\/revisions"}],"predecessor-version":[{"id":382,"href":"https:\/\/eschatologist.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/374\/revisions\/382"}],"wp:attachment":[{"href":"https:\/\/eschatologist.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=374"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eschatologist.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=374"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eschatologist.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}