编程界反思:先实现"终端程序员编程",再谈终端用户编程
来源标题:End-Programmer Programming (2022)
文章认为"终端用户编程"的理想仍遥不可及,主张先关注"终端程序员编程"。作者指出,让所有人都能使用编程的全部表达力这一梦想自计算机诞生以来就存在,但至今未能实现,许多原型项目都已失败。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
“终端用户编程”的梦想仍然太过遥远。让我们先把目光投向“终端程序员编程”。
有一个梦想,几乎是一个古老的预言,关于计算机的梦想与计算机本身一样古老。如同塞壬的歌声,这个梦想引诱着我们成千上万的人去追逐它。它像海市蜃楼般闪烁,诱人地悬在地平线之上,却始终如往昔一样难以捉摸。通往梦想的道路上散落着太多聪明头脑的失败原型,以至于许多人已经完全放弃了这个梦想。然而在一些人心中,这个梦想依然活着。
这个梦想是:计算机的全部力量能够为所有人所用,我们的数字世界将如同手中的黏土一样可塑,能够流畅而持续地被塑造,以满足我们每个人独特而具体的需求。这个梦想是:编程的全部表达力能够为所有人所用,而不仅仅是那花费数年学习编程的约1%的人。这个梦想无异于真正的计算机革命。
这个梦想就是终端用户编程。
[终端用户编程是]一群满怀热情的计算机科学远见者所追求的赋能计算的愿景。它丰富的历史可以追溯到1960年代,伴随着Smalltalk和Logo等编程环境。此后值得注意的成功案例包括Unix、电子表格、Hypercard和HTML。而今天,Zapier、Coda和Siri Shortcuts等新来者正在尝试它们各自在自动化和动态建模方面的方法。
终端用户软件与终端用户编程之间的鸿沟里充满了棘手问题的海洋:
有许多出色的产品和研究原型解决了其中一些问题。有可视化编程让编程概念更直观,有结构化编辑器帮助防止语法错误,有自动安装的在线编程环境,有所见即所得渲染工具,等等!(查看Whole Code Catalog获取精选列表。)
试图一次性解决所有这些问题就像试图煮沸整个海洋。然而只关注问题的一小部分也远远无法接近最初的梦想。谨慎的梦想家必须设法从这里——今天的世界——开辟一条道路,能够让我们不断接近完整的梦想。
我们可以转换受众。与其试图实现终端用户编程,不如从终端程序员编程开始。今天连专业程序员都无法控制自己的软件!如果不先实现终端程序员编程,我们怎么能期望从这里到达终端用户编程?
在工作中,程序员是个魔术师。她只需敲击键盘就能实现任何她能想到的东西。但在家里,使用大公司开发的应用时,程序员和其他人一样,都是被剥夺权利农奴。
终端程序员编程的任务是赋能程序员真正控制他们在生活中使用的软件,而不仅仅是他们在工作中编写的软件。
我们已经有自由和开源软件了。那么是什么阻止我们程序员实现终端程序员编程的梦想呢?
想象一下,如果你想改变GitHub的运作方式。如果你有源代码,你所需要做的就是在自己的地下室重建GitHub的整个基础设施,做出你的修改,然后说服你所有的朋友使用结果。或者你可以设法让GitHub允许你做出更改。后者通常更容易,并且指出了自由软件四大自由中的另一个缺陷。自由3是将修改版本分发给他人的权利,但在这个世界上,使这一自由成为可能的并不一定是源代码的获取,而是运行时环境的访问权。
终端程序员需要访问已部署的运行时环境,Robert“r0ml”Lefkowitz称之为“自由软件”。
自由软件也是终端用户编程的先决条件!而这正是终端程序员编程的意义所在:它是一个中途站,让我们能够解决一些我们为终端用户编程也必须解决的相同问题,但不必同时应对非程序员。
自由软件的问题本身就有一大堆:
我们可以再次限制范围:避开完整的多人应用,转而选择小型、个人的民间软件、小型集成和迷你应用,比如Spotify Rediscover、Alert HN、HN Replies和Small World。
由于出色的免费API和精简的核心接口,Hacker News催生了一个完整的迷你应用生态系统,从阅读器到推送通知工具。受我们朋友Kartik用例的启发,我们决定以终端程序员风格构建自己的迷你应用,为这个生态添砖加瓦。
我们的迷你应用叫HN Follow(hnfollow.com),它允许你在Hacker News上“关注”作者,并在他们发帖时收到邮件通知。我们的“应用”实际上甚至算不上一个应用:它只是引导你创建脚本来设置这个查询轮询任务。
一旦设置完成,你可以自定义任何JavaScript代码:编写自己的查询、选择不同的调度、过滤结果、以不同方式格式化邮件提醒,等等。你甚至可以使用基本的轮询和邮件架构,通过API查询任何来源,而不仅仅是Hacker News。
重要的是,所有这些代码都为你托管和运行。这就是它成为自由软件的原因:你可以访问与代码编写时相同的运行时环境并进行部署。
Val Town是一个在线编写和运行代码的地方。你可以把它看作“可运行的GitHub Gists”或“用户友好的AWS Lambda”。它让给自己发邮件、持久化小量数据、暴露函数和API端点以及创建周期性任务变得极其简单。
https://www.loom.com/share/878294970d8e48919c819f35d0cd0da4
它是一个为云构建的JavaScript编辑器和运行时:协作式、持久化,并且(最终)连接到API。
用它来关注Hacker News或其他你最喜欢的水坑,在一家热门新餐厅预订桌位,或者在一个SaaS应用和另一个之间 shuffling 数据。
但Val Town的梦想无异于终端用户编程, with a
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。