英文原文:12 predictions for the future of programming
编程世界的将来如何目前仍难预料,但可以肯定的一点是技术一直在加速发展。以下搜罗出 12 个独特的视角猜想,我们一起来看看有哪些猜想在不久的将来就能变为现实?
1. GPU接班 CPU
游戏玩家们热衷于吹嘘自己的显卡有多快多高端,全开特效有多少多少 FPS,而事实上 GPU 前进的步伐不会仅限于此。物理学家利用 GPU 来进行高速微观分析,航天学家利用 GPU 来模拟天体运动,生物学家利用 GPU 来研究生物种群规律。未来的编译器应可直接运作于 GPU,摆脱对 CPU 的依赖,使得 GPU 的使用更加普遍。
2. 数据库能进行更复杂的数据分析
将来数据库能做更多的工作,而不仅仅是数据仓库。如商业智能分析,数据模型抽取,大数据应用等等。但要进行如此高强度的复杂运算,数据的搬运成本是成败的关键。如果有个数据引擎能直接处理杂乱无章的海量数据,而无需人为地把数据放入一个个独立的大数据包然后再处理,这样对数据分析速度将带来革命性提升。
3. 无处不在的 JavaScript
JS 将不仅作为开发语言来使用。目前 JS 除了活跃于浏览器,在服务器端也开始崭露头角,如 NodeJS。浏览器式的 HTML5 应用在运行性能上给了开发者足够的信心。
一方面 JS 如机器码那样玲珑,另一方面提供了良好的 Web 轻量级支持。浏览器方面大有吞噬整个平台的架势;Chrome OS 和 Chrome book 的出现,让人们不禁思考:JS 和浏览器还有什么不能做的?
4. 全民皆 Android
相机备制造商如尼康,迫于移动端越来越高端的硬件与技术压力,已经开始在自家相机上运行 Android 系统,直接执行 Instagram 等社交软件。此外,Android 智能电视,电冰箱,耳机等也相继涌现。
尽管 UI 一环仍被人诟病,不够方便过于复杂, 但一旦 Android 生态圈建立,渗透成为数字家庭的“内核”,设计者们定会着手解决该问题。此外,传统 PC 制造者也嗅到了出局的味道,开始着手让 Android App 直接在 PC 上运行,传统的 Windows 应用或许将迎来更艰难的发展困境。
5. 广义互联网——物联网
Android /Linux 等平台热潮持续的一个良副作用是不断推动更多的事物成为网中物。例如重要的日常之物-汽车。导航与购物成为叩开互联的敲门砖;诸如热点提示,广告营销等功能的开发为开发者提供了更多的赚钱机会。
关键的一步是要区分开各个领域所关注的要点。例如:针对不同年龄段开发相应的智能玩具,智能温控设备需要连接天文台并读取相关信息。APIs 在其中将发挥重要的支援作用。
6. 新开源环境
Android ,Ubuntu,MySQL 等平台/工具的成功,为开源环境注入了源源不断的活力与动力。但是一个亟需的解决的问题是:开源后,如何寻找足够的资金来支援可持续发展?目前似乎还没有太多的成功例子来说明“开源=赚钱”。
大多数企业所发布的开源资源更贴切的说法应该是演示版,只不过挂上了开源的头衔。开发者对于其核心秘密目前还没有太多的讨价还价空间。优秀的开源项目将会给开发者更多的发挥空间,形成新的开源环境。
7. 更丰富的 WordPress 类在线内容管理系统
美政府先前倾力打造的保险交易网站被认为是个很大的失误---自行开发。现时基本没有人再这么大费周章地开发自己的内容系统了。WordPress,Joomla,Drupal 等都可让我们迅速地构建自己的 Web Apps,丰富的插件功能更是如虎添翼。如果日后还有更直观的数据浏览系统支持类似于 PHPMyAdmin 和调试工具支持,类似的管理系统会迈进另一个发展的里程碑。
8. 插件式开发取代完全编程
PhotoShop 能成为最广泛使用的图片编辑工具,最根本原因之一在于它提供了海量的插件支持。类似的插件式开发意味者程序员将更多地进行代码片段式而不是进行传统的完全编程。轻巧的插件式编程可以利用整个微开发环境中的一切,更加灵活简便。
9. 命令行的生命延续
或许这与大部分人的想法相悖,命令行并不会马上就结束自己的旅程。虽然越来越多的工具提供了拖拽式开发,但仍存在为数不少的终端式文本编辑器式的工具,甚至某些工具还只支持命令行模式。
命令行的生命力在于轻巧和使用广泛。我们可以轻松地对一个任务脚本进行扩展或把它附加到另一个功能脚本,这是目前拖拽式编程的阿喀琉斯之踵。
10. 简化之路漫漫
过去 50 年,程序员尽了最大的努力来培养新一代开发者,这可以说是成功的----但还仅是最基础部分。编程福音者奉行全民皆程序员的宏伟目标,同时会争取更多的资源支持。但真正的懂编程是要明白每次按键后的 0 与 1 运作过程,是要明白创造软件的方法学与开发环节的每个细节。教会别人知晓 if-then-else 看上去很美,但这并不能说就能带来更多的程序员。
11. 外包与内包针尖对麦芒
人们普遍认为所有的程序设计工作将会被安排给全球薪酬最低的国家。此外,根据经济学推断,越来越多的劳动密集型工作将会被自动化工具或机器取代,真正的工作机会将会留给懂得商业的人。
一旦上述设想成真,外包服务团队将两面受敌。一方面不得不与新的自动化工具进行抗争,议价空间会被进一步压缩;另一方面,企业内部团队会加强内生性培养,使得在外包合同谈判上占据主动。
12. 管理者对程序设计更加外行
有时候与不懂编程的人讨论需求是最头疼的事情,而结局往往是令人沮丧,讨论双方都没有得到自己想要的东西。
管理者对基础技术认知的浅薄,往往造成招聘中年龄歧视的最根本原因之一。一方面认为年轻一代更掌握前沿技术,自己不用再花时间去认识;另一方面觉得年轻一代更加卖力工作。
因此,整个工作环境看似朝气蓬勃,实质是一个仅仅奉行够用就好的中庸而又机械般运转的工作室。