下一代编程比你想象的更近
当我们思考下一代编程时,回顾个人计算机的发展历程会有所帮助。
为了理解我的意思,让我们快速回顾一下 70 年代。
个人电脑的起源
1975年是个人电脑革命性的一年。Altair 8800发布,这是第一台获得商业成功的个人电脑。不久之后,比尔·盖茨和保罗·艾伦开发了Altair Basic,这是该机器的第一个编程语言。
这些与电传打字机相结合,产生了早期的计算机终端。它的功能与当今开发人员使用的现代终端非常相似,但它是一个硬拷贝终端。下面的视频演示了在 Altair 8800 上使用 Altair Basic 和电传打字机。你在打字机上打字,按下回车键,计算机就会处理输入并输出响应。
使用电传打字机在 Altair 8800 上输入 Altair Basic——我喜欢称之为“幽灵打字机”电脑 。
添加屏幕
Apple II于 1977 年发布,这是个人计算领域的又一个里程碑。它是将全新视觉概念通过图形显示引入计算领域的新浪潮的关键组成部分。
同年,Apple II 的原始数字电子表格VisiCalc发布。史蒂夫·乔布斯认为,正是这款程序“推动了 Apple II 取得如今的成功”(来源)。
Apple II 上的 VisiCalc。 图片来源:
进入 GUI
最初的 GUI(图形用户界面)是由施乐公司于 1973 年开发的。施乐 Alto是第一台使用 GUI、桌面隐喻和鼠标的计算机。Alto 对分别于 1984 年和 1985 年发布的 Apple Macintosh 和最初的 Windows 操作系统产生了重大影响。
这不仅为使计算机变得更加直观和人人可用铺平了道路,还为我们带来了这则令人难以置信的广告:
使用文本进行编程
快进到今天:我们每天都在与电脑互动,几乎忘记了图形用户界面 (GUI) 曾经存在过。你能想象使用 iPhone 时,无法通过点击和手势来导航和与应用程序交互,而是必须手动输入命令吗?
奇怪的是,说到计算机编程,我们仍然处于这种状态。我们离最初的 Altair 8800 和电传打字机并没有太大的差距。我们在控制台中输入命令,然后向编译器/解释器输入结构化的基于文本的指令。
有些人可能会说这出奇地优雅——从某些方面来看确实如此。但与此同时——现在已经2021年了,我们仍然在使用文本编辑器和终端来编写代码。难道我们不应该早就找到更好的方法了吗?
可视化的好处
视觉计算的优势显而易见。它简单易用、高效便捷,而且功能强大。
GUI 的魅力在于,每个用例都能拥有专属的体验。编程语言只能通过一种简单的结构(语法)来完成所有任务,而 UI 则不同,它可以针对每种类型的任务提供优化的独特体验。
从查询数据到分析数据,都有比文本更好的工具:
创建 UI 也同样如此:
可视化的挑战
那么,为什么我们仍然像50年前那样用文本来编写程序呢?有些人甚至称之为“大停滞”。
可视化编程的挑战在于其优势——没有万能的方法。因此,我们仍然依赖基于文本的编码,因为它简单而灵活的结构能够填补所有空白。某种程度上,这使得基于文本的编码成为万事通,却无所不能。
回顾我们七八十年代的例子,现在大多数无代码工具都类似于街机游戏。街机游戏只有一个目的。它们拥有革命性的 Macintosh 所拥有的所有神奇之处——可视化显示屏,直观易用,甚至连小孩子都能轻松上手等等。这与现在这一代的无代码工具非常相似。
但它们缺少一个关键要素——它们并非通用型。别误会,单一用途计算固然有其优势,但软件开发的革命并非源于这种技术,而是源于通用性。也就是说,构建一个直观、强大、并且能够无限创造的东西。
我们该如何解决这个问题?
新一代编程技术是在前几代技术的基础上发展起来的,而不是完全独立的新概念。新技术的诞生是站在巨人的肩膀上,而不是重新发明世界。
为了创造不受单一问题束缚的可视化编程体验,我们必须将可视化与现有的软件系统连接起来。换句话说,我们不需要为了单一目的而重新发明轮子,而是要与现有的系统连接起来。
布雷特·维克多 (Brett Victor) 在他精彩的演讲“原则上的发明”中向我们展示了一些例子。
现在谁在做这件事?
主要有两类 - 视觉增强型开发人员工具(具有视觉功能的 IDE 等开发人员工具)和低代码工具(连接到现有 API 和代码库的可视化工具)。
视觉增强的开发人员工具
真正推动可视化编码的一个行业是游戏开发。游戏由庞大的团队创建,具有巨大的制作价值,无法依赖像应用/网页开发者那样的传统方法——例如将设计交给开发人员,然后让他们用 CSS 手工编写代码。像现代游戏中那样错综复杂的世界,如果再用手工的方式逐行构建,那将是一场噩梦。
图片来源:《对马岛之魂》
你会像 Web 开发者编写 CSS 那样手动编写这个景观吗?是的,我没想到。
游戏开发需要超越手工编码的范畴,这促使业界大力投资于能够直接连接代码的可视化工具。虚幻引擎就是一个很好的例子,您可以立即尝试一下:
另一个很好的例子是 Xcode 中最新的 SwiftUI
低代码工具
在 Web 和应用软件领域,低代码工具开始兴起并迅速发展。Airtable 、Zapier、Builder和Retool等工具展示了如何优雅地实现与现有代码、数据和 API 相关的可视化编辑。
它们之所以很好,是因为它们建立在现有基础设施之上——您现有的 React 组件、数据库和 API——并且您可以精细地设置权限,以确定谁可以在哪里编辑什么。
那么,接下来是什么?这将走向何方?
我们认为,代码与无代码之间的联系只会越来越紧密、越来越牢固。我们才刚刚起步,你可以称之为可视化软件开发的 Apple II 时代。我们还有 Macintosh 版本(真正简单易用且功能强大的可视化开发)需要开发,最终还有 iPhone 版本(人人都可以轻松使用)。
以下是我们目前特别感兴趣的几个项目 - Storybook、JSX Lite、Blockly和Build
还有什么其他令人兴奋的可视化编程发展让你感到兴奋或期待吗?欢迎在下方留言!
文章来源:https://dev.to/builderio/the-next- Generation-of-programming-is-closer-than-you-think-22