从软件工程师产生一个想法,再通过 coding 变成计算机理解和执行的程序(应用、服务),这个过程中始终离不开最重要的生产工具——编码工具。可以说,编码工具就是软件工程师手中的生产工具,是 IT 产业可以持续前行的重要生产力之一。
从计算机被发明出来那一天,怎么把一个想法变成可以付诸实现的应用,就是这个产业一直在面对的问题,就是“怎么干”的问题。
从 70 年代,到今天的 20 年代,新的计算架构、新的操作系统、新的编程语言、新的开发方式一直在发展,作为生产者的人在对接机器算力过程中始终要面对这个绕不开的问题,到底使用什么开发工具。
70 年代 编辑器缺乏年代,编写代码是个体力活儿
关键词:打孔卡,C 语言
打孔卡的时代过于久远,听说用途很广泛,包括用来垫蛋糕。
当汇编语言成为主流,甚至 Unix 内核被刚刚诞生的 C 语言改写,在单色屏幕上利用文本编辑器来编写代码,其实和在老式打字机上打印信件没有什么不同,唯一的区别就是在屏幕上打字可以允许你自由的去修改手抖造成的错误而不至于重新来过。
80 年代 图形化匮乏年代,读懂代码不容易
关键词,DOS,vi,Emacs
个人电脑(PC)开始出现,在没有过多算力可以选择的年代,“286”、“386”、“486”是这个年代的高频词汇。
DOS 的普及成就了微软,基于不同操作系统平台的各类文本编辑器涌现不断,软件工程师们抱着厚厚的《xxx 语言程序指南》,在文本编辑器中去编写一行一行的计算机代码,而不知道这些输入的代码到底能不能运行。最后需要通过命令行的编译(build)和连接(link)后才能生成一个可以执行的文件,然后才会看到结果。
当然看到错误代码,然后再去重新写过,也是在所难免的。我经常会看到一种工作方式,就是把代码编写出来,然后打印在一摞摞的纸张上面,然后一页一页一行一行的去读,去标记代码间的调用关系和查找可能存在的缺陷错误。
这个时期,彩色显示器还不是那么普及,在文本编辑器或者一摞纸上去读懂代码可是个体力活儿。
90 年代 图形化催熟 IDE,用熟 SDK 有点难
关键词:TurboC 2.0(1989),Delphi(1995),Visual Studio(1997)
当我们耳熟能详的算力从“*86”逐步被“奔腾”替代,桌面操作系统逐渐迈入图形化的天地。
TurboC 2.0 提供了快捷、高效的编译程序,也成为一个易学、易用的集成开发环境(IDE)。开发者不再需要独立的编辑、编译和连接程序,在 IDE 内即可运行 C 语言程序。
随着 1995 年微软 Windows95 的大获成功,图形化应用以直观、便捷的特性深入人心,为了更好的开发基于图形组件的应用,Borland 公司推出了 Delphi,微软的 Visual Studio 也适时面世。那种图形化(拖拽组件)的开发方式,各种风格和用途的单机版桌面应用达到了顶峰。
同期的 Unix 和 Linux 平台上用于开发的 Vim 和 Emacs 已经集成了大量插件,从编辑器向编辑器+进化了。
不过想要开发出功能齐备、效果新颖的应用,就必须要非常熟悉语言 SDK,这里面最有代表性的 msdn 不知道有多少程序员要抱着啃的昏天黑地。毕竟互联网还不普及,想得到点开发的心得和样例,非得从官方提供的文档下手不可。
00 年代 互联兴起时代,同时掌握多种 IDE 有点累
关键词:IntelliJ IDEA(2001),Eclipse(2001)
随着能够自由接入互联网的桌面电脑和便携电脑越来越多,可以访问网络的速度也从最初 ADSL 的 56kb 跃升到 10Mb 和 100Mb 每秒,互联网于我们不再是发发邮件那么简单,大量的信息和媒体资讯也通过网络源源不断进入我们的视线,越来越多的在线网站上线,基于网络的企业级应用需求量大增。
Java 和 PHP 这些平台兼容良好的高级语言在开发企业级应用和 Web 网站方面开始发挥优势,尤其是 Java 几乎成为开发企业级应用的唯一选项,那么针对 Java 开发的利器 Eclipse 和 IntelliJ IDEA 也走上了历史舞台。
毫无疑问,这些大型本地化 IDE 对特定语言开发做出了无以伦比的体验支持,从代码编写、调试运行、发布部署甚至到持续交付工具链,以及通过海量插件对接众多的第三方系统。这时候开发不再需要什么“开发指南”,我们有太多的技术博客、开源项目可以去参考和学习。
一切看起来都很开放,唯独这些为特定语言量身定制的 IDE,不肯接受其他语言的编程习惯,程序员需要具备两种以上的 IDE 的使用经验,才能很好的完成项目。
10 年代 风气云涌时代,开发者却无法摆脱桌面
关键字:云计算,VisualStudio Code
一切都在互联网上飞快的流动,应用交付的方式从软件到服务。软件部署从本地主机迁移到了云端,业务上云是这个时代的主旋律。
从应用框架,到研发模式都有了长足进步,我们已经可以把从服务规划、代码开发、测试、发布、部署、运维、运营的各类活动都放在云端,提升交付效率的持续交付和 DevOps 云端工具链开始帮助我们在云端建立竞争优势。
开发者开始关注全栈能力,一个程序员需要能够交付多种语言和框架的代码才被认为是合格的“全栈工程师”,以往专一特定开发语言的 IDE 有点不那么趁手。
Visual Studio Code 这种免费开源、生态齐备、体验良好的 IDE 平台,通过插件可以匹配各类开发语言,支持各类开发框架,联通各类三方系统,开始成为新宠。
借助微软 Visual Studio 族群的庞大生态,Visual Studio Code 开始在全栈交付中独领风骚。软件工程师的几乎全部研发工作都随着云基础设施、云平台服务和云工具链的齐备,整体进入云时代。
唯独代码开发,软件工程师们需要自己的开发环境,需要自己熟悉那种编程体验,不论是办公室的一台工作站,还是家里写字台上的移动笔记本,总之“开发环境在我的机器上,我离不开我的机器”。面对大型本地 IDE 所需要的强大算力配置,他们被禁锢在了自己的桌面,寸步难离。
20 年代 算力革命年代,云端开发才能展翅高飞
进入 2020 年,由鲲鹏定义新的第二计算平面登上历史舞台,智能终端设备普及率前所未有。大型综合类网站已经逐步被终端应用取代,用户脱离桌面电脑更多依赖移动设备。
云原生应用更需要摆脱本地开发带来的各种桎梏,软件产业需要生产力有新的飞跃,摆脱本地桌面禁锢,跨越操作系统差异,支持移动化随时随地访问,按需配置极速获取,支持鲲鹏原生,打通云原生应用的开发态和运行态。
本文转载自华为云产品与解决方案站公众号。
原文链接:https://mp.weixin.qq.com/s/ei1g0ziCQLeZ3VoMOVSfug
评论