展开菜单
首页 精品内容 本月促销 装机必备 Windows macOS软件 IOS软件 Android AI PDF教程 专题
全部分类

当前位置:

首页 > 编程开发 > 编程的未来

编程的未来

编程将像水电一样成为未来基础设施,人人可借ifttt和YQL等工具编程。所见即所得和编程范型进化降低门槛,让代码更贴近思考。程序员的核心价值在于创造性工作,而非简单翻译代码。

最近在读加来道雄的《物理学的未来》,前两章聚焦计算机和人工智能的百年预测,正好是程序员最感兴趣的部分。想想计算机发展这短短几十年,翻天覆地的变化几乎都在弹指一挥间。谁的大胆预测能那么准?但书中这几个猜想,确实让人印象深刻:

因特网眼镜和隐形镜片、无人驾驶汽车、摩尔定律的终结、通用翻译器、全息摄影与三维影像、意识识别、有意识情感的机器人、模拟大脑。

这是物理学家眼中的世界——另一本《平行宇宙》也值得推荐,同样激动人心。另一方面,想起小时候痴迷的机器猫,那个小小的四维空间袋,寄托了多少纯真的梦想,而其中有多少神奇道具已经成为现实……

但程序员更想聊的,是自己熟悉的领域。不谈语言的发展与趋势——这些留给专家去分析——不妨把目光放长远一点:100年后的程序员,他们在做什么?100年后的编程,会是怎样一种劳动?

人人都会编程

微博上,有朋友评论HTML5实现的Web操作系统:“断网就是废物一个”。但他没意识到,很快网络就会像现在的水、电一样,成为人正常生活不可或缺的基础设施。

类似的,编程也将成为未来人们的日常必备技能,就像写字、阅读一样。编程并不非得写那些非程序员看不懂的奇形怪状的代码。你把衣服放进洗衣机,设定好水量中等、浸泡20分钟、洗涤20分钟、漂洗3次共15分钟、再甩干3分钟——这,就是编程。你做的仅仅是按几个按键,把这几项工作组合起来。

再比如ifttt这样的网站,你已经可以实现编程的分支功能了——如果明天天晴,就发一条信息提醒你去爬山。完成这样的功能,你根本不需要是程序员,只要会操作电脑、会上网就行了。

互联网的资源将被更好地组织和获取。以YQL(Yahoo! Query Language)为例,你可以体会这一点:

select * from html where url='http://www.dangdang.com/' and xpath='//ul[@id="homepage_promotion_count_ul"]/li/p[@class="name"]/a'

它做了这样一件事:从当当网的页面获取数据,数据的路径通过XPath表达式给出。如此一来,整个互联网就变成了一个超级大型的数据库。当然,这样的语法还是不够简单,希望能看到类似ifttt的应用出现,目的却是让不会编程的人也能轻松从互联网这个大型数据库中查询自己需要的东西。

未来需要普通人掌握的编程技能也不尽相同,就像现在年轻人和老人的阅读技能大不相同一样。但可以确定的是,生活中会充满编程的行为,让机器替代自己做更多的事。

所见即所得

谈及所见即所得,很容易想到很多编程语言、IDE,甚至包括FCKeditor这样的富文本编辑组件。Google已经做了这样的尝试——App Inventor就是为手机端准备的编程软件,可以看看它的宣传视频。而Bret Victor那场广为流传的演讲《Inventing on Principle》,第一次看的时候,你一定会惊讶得合不拢嘴。

所见即所得使得编程的过程更贴近人最自然的思维,一张丰富画面所传递的内容远远大于枯燥的代码行语义和数值。

编程范型的进化

相较于硬件的摩尔定律,软件的发展似乎真的“太慢了”。几十年历史的编程语言可以长盛不衰地存活下去,而硬件淘汰的速率却快得多。好在软件的发展也有驱动力,软件的复杂性就是直接驱动力之一。想想现在做一个普通网站的代价,和十五年前相比,能省多少功。

很多时候程序员会觉得,算法还是不容易转变成代码——即便是简单的算法,思路在纸上实现很容易,变成代码却比较冗长。大部分情况下这不是编码技巧的问题,而是编程语言的问题。换句话说,如果使用一种合适范型的编程语言,兴许就能轻松解决这个问题——即便这样的语言并不一定好找,并不一定容易设计。

我们都知道从过程式编程到面向对象编程的进化,可如今常用的编程范型已经远远超出这两者了:声明式编程、面向方面编程、基于规则的编程等等,固有的思维模式一次又一次遭到挑战。

以Prolog语言为例,它由事实和规则组成。先告知程序已知的事实和规则,再去询问程序一个需要推断的问题,让它给出推断的结果。比如:

love(you, dog).
love(he, dog).
love(she, cat).
friend(PA, PB) :- \+(PA=PB), love(PA,Animal), love(PB,Animal).

解释一下:给定三个事实——你爱狗,他爱狗,她爱猫;给定一条规则——对于人物A和人物B,如果A和B不是同一个人,A爱动物Animal,并且B也爱同一种动物Animal,那么A和B就是朋友。现在询问程序:“你和他是朋友吗?”程序判断你爱狗,他也爱狗,就给出结论:yes。

这只是一个基于规则编程范型的例子。不同范型的语言适用于解决特定问题。未来我们会看到更多范型的语言,目的就是让对特定问题的表述和解决更简单、更易于理解。

创造性的工作在哪

既然编程会成为一件几乎人人都能做的事情,那么程序员,你的价值在哪?

先来看看为什么越来越多的人可以编程?因为编程的门槛更低了。即便是现在,编程的门槛已经比二十年前低得多:不明白网络协议?有现成的类库可用;不懂平台差异?在无差别的虚拟机上写程序就行;不理解内存管理?让程序自动帮你完成……

所以,如果还在为了解语言的不良设计、历史原因遗留的陷阱,或者为了知道某个提高表达能力的语法糖而沾沾自喜,这种优势很可能太不值钱了。

程序员最有价值的部分不应在“翻译”上——即把思考的结果翻译到代码这一层面。编程的未来一定是让编程工作越发贴近人本质的思考,这样的“翻译”工作导致的歧义、错误、陷阱会越来越少,把清晰的思考变成代码会越来越简单,以至于某天可以让能够读懂人脑的计算机来完成。

另一方面,很多公司的管理者却不懂程序员,在他们心目中,“程序员”只是高成本的劳动力,只会在一台搞不懂的机器上干一些更搞不懂的事情。

看到这里,你会发现程序员本质上和音乐家、画家类似——往往也让许多人无法理解,而且艺术的价值,常常也都来源于思考。

音乐家有了更先进的乐器,画家有了更丰富的画笔,情感的抒发都可以更加自由。甚至有一天,拿掉乐器和画笔这些传统物理实体,给大脑接上两根线,思考之后的乐谱和画册就诞生在电脑里了。

可是,即便计算机可以帮助人思考,它却不能全面代替人思考,尤其对于艺术的创作。即便到了100年以后,程序员创造性的工作,还是无从替代的。

最后,放开枷锁去想象吧——100年以后,编程会是什么样子,程序员又会是什么样子?期待你的答案。

本文内容来源于网友投稿,如有侵权请联系删除。
作者最新文章
编程开发 编程
上一篇: 泛型编程
相关文章 更多
精品专题 更多
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

IOS软件

正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

AI

正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

Mac软件 更多
Blender
Blender

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

灵活计算器
灵活计算器

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

赤友清理大师
赤友清理大师

赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

图几
图几

图几是一款适用于 macOS 的截图、标注与美化工具,支持离线操作保障隐私。界面整理和高频系统操作被放到一起考虑,桌面或窗口内容一多时,管理起来会更省心。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

Mac
WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。

Mountain Duck
Mountain Duck

Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

Menuist
Menuist

Menuist 是一款面向 macOS 的 Finder 右键菜单增强工具,主要用来补充新建文件、快捷导航等常用操作,让日常文件管理和访问路径时更高效、更顺手。

WINDOWS 更多
Blender
Blender

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

Windows 10
Windows 10

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

傲梅轻松备份
傲梅轻松备份

傲梅轻松备份是一款专业易用的数据备份软件,为重要数据提供安全保障。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

Mac
Wise Folder Hider Pro
Wise Folder Hider Pro

Wise Folder Hider Pro 是一款专业级文件和文件夹隐藏加密软件,为私密数据添加多重保护。高频操作更强调就近处理,浏览、整理和跨目录移动文件时,来回切换和重复点击都会少很多。

WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。

PinStack
PinStack

PinStack是一款轻量级的Windows平台剪贴板管理工具,优化您的剪贴板使用体验。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

Mountain Duck
Mountain Duck

Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。