Git也不是银弹 , 因为工具本身带来的提效和缩短开发进度 , 并没有解决软件工程的本质性难题 , 即如何从抽象性问题发展出具体概念上的解决方案 。 但这些年来涌现出来的工具和方法论 , 都可以看成是接近银弹的事物 。
文章图片
● 刀耕火种的远去和新的银弹问题
现在的软件和软件工程领域 , 早已远离了刀耕火种的年代 , 摆在我们面前的是模块化的高级编程语言、高度集成的环境 , 各种库、各种框架 , 弹性计算带来的流水线和自动化工具 , 我们正处在一个“敏捷”的时代 。 尽管在软件工程生产力得到较高程度解放的今天 , 开发者们已不太关心当初的那个银弹问题 , 但是我们却面临着新的问题 , 这迫使人们去寻找新的银弹 。
软件工程自动化带来的结果就是高频迭代 , 但是创新大幅减少 , 99%的程序员在实现需求 , 只有不到1%的程序员在创造工具和方法 。 但我们认为这也是技术进程的一个必经阶段 , 需求爆炸要求自动化 , 自动化带来DevOps , DevOps造成分工更加精细化 , 乃至CI/CD管道部署 , 一个高度自动化流水线已然在软件工程领域形成 。
程序员的精细化分工造成综合素质整体下滑 , 至少过去20年都是如此 。 当代程序员很少去研究汇编和机器语言 , 因为这完全没有必要 , 现在的开发环境是建立在“高度文明”之上的 , 绝大多数开发者只需关注逻辑的实现 , 底层世界与之无关 。 但是数字文明的底层世界是C语言 , 再下面是汇编语言和机器语言 , 这也是回溯技术进程的事实 , 现在的“高度文明”不可能是空中楼阁 。
高度自动化让程序员看起来更像是流水线上的零部件 , 而不是一个创作者 。 殊不知人类智能最伟大的地方并非只有逻辑思维 , 更多的是创造思维 。 肯?汤普逊和丹尼斯?里奇为了使开发UNIX更高效设计了C语言;林纳斯为了更好地管理Linux内核开发了Git 。 许许多多的工具一开始也许只是因为一个小目的被创造出来 , 但是它们后来逐渐成了开发者世界的大器 。 数字文明会否出现断层是一个警惕性问题 , 也许过去20年我们失去的 , 才是今后我们想要的银弹 。
文章图片
最后
之前9月的时候 , 曾有消息曝出林纳斯怒喷某代码托管平台“合成了一堆无用的垃圾”一事 , 尽管林纳斯并非因平台本身或者其他项目的粗糙而恼火 , 而是为即将用于Linux Kernel 5.15的一个驱动程序的合并感到不满 。 此事也折射出社会化编程也不是银弹 。
银弹问题总是关乎程序员、组织和需求的问题 , 它们一直在变化 。 有位“谦逊的程序员”曾经说得好:软件危机的主要原因 , 毫不客气地说 , 在没有机器的时候 , 编程根本不是问题;当我们有了电脑 , 编程开始变成问题;而现在我们有巨大的电脑 , 编程就成了一个巨大的问题 。
推荐阅读
- 历史|科普:詹姆斯·韦布空间望远镜——探索宇宙历史的“深空巨镜”
- 空间|(科技)科普:詹姆斯·韦布空间望远镜——探索宇宙历史的“深空巨镜”
- 软件和应用|AcrylicMenus:让Windows 10右键菜单获得半透明效果
- 安全|Redline Stealer恶意软件:窃取浏览器中存储的用户凭证
- Tencent|原生微信上架优麒麟软件商店
- 软件和应用|iOS/iPadOS端Telegram更新:引入隐藏文本、翻译等新功能
- 软件|员工幸福也是生产力!日企推“AI相亲”福利
- 系统验证|以技术革新加速芯片创新效率,EDA软件集成版PNDebug正式发布
- 陈明永|行业观察|OPPO陈明永:对的路,不怕远
- 何由|2021年,奔向星辰大海的脚步更稳更远!