原文作者:行云创新解决方案架构师 李楠
预知未来最可靠的方法是了解历史,让我们简单回顾下IDE的发展史。
所谓IDE,即集成开发环境,是软件开发人员在他们用于编程的计算机本地安装的应用程序。伴随着计算机编程语言从第一代机器语言,0/1二进制编码、第二代汇编语言,英文助记符号,发展到第三代高级语言,更加贴近人类的自然语言;编程方式从最原始的控制寄存器的位移,内存地址,汇编命令,一直发展到高级语言,只需告诉计算机“干什么”,而不需要告诉计算机“怎么做”的过程编程模式;到了近代,更进一步发展为面向对象的编程模式,编程的过程也更加贴近人类描述和解决自然问题的方式;编程所控制和调动的底层资源也发生了翻天覆地的变化,从早期的大型主机、个人电脑PC机、服务器单机、服务器集群资源,到今天的云计算IaaS,PaaS,甚至SaaS资源和能力。IDE从最原始的文本编辑器,发展到包括代码调试器,编译器和丰富的图形用户界面(GUI)等等高级功能的工具集。背后驱动IDE发展和进化的并不是IDE技术本身,而是围绕编程的上下游技术、编程的方式以及可调动的底层资源等多维度的因素共同作用的结果。
那么,是什么因素驱动了云端IDE成为未来趋势呢?
首先我们需要一个明确的定义,什么是云端IDE?云端IDE是基于云的集成开发环境,开发人员可以远程编写运行和调试代码,无需本地安装,仅通过浏览器即可开发软件。云端IDE作为托管在云中的服务运行,它不再只是云端的软件开发环境,而是提供了包括基础设施服务的Development-environment-as-a-Service的服务模式,其天然具有如下优势:
- 无需在本地维护和设置项目;
- 更好的共享和协作;
- 直接集成/访问云服务;
- 改进上下文切换(不同的项目、分支等)的方式和效率;
- 源代码的集中控制和保密;
- ……
开发环境的多样性
如今,在不同设备之间同步你的文档和照片是理所当然的,微不足道的小case……这样你就可以在任何地方把它们调出来进行编辑,但传统IDE仍然停留在过去,每台笔记本电脑或PC都要单独配置,而且不同设备之间无法同步更新,云端IDE使你可以在任何设备,任何时间登陆并迅速投入工作。
现代应用程序开发人员在许多不同的代码库中工作,每个代码库都使用不同的技术堆栈构建并以不同的节奏维护。设置和维护一个单一的本地开发环境本身就需要大量工作,在一台计算机上管理多个开发环境更具挑战性。云端IDE可以很容易地为每个开发人员提供自己独立的开发环境和工作空间,开发人员无需担心底层资源的使用和管理。
云服务的普及
随着云计算技术的成熟和普及,越来越多的传统的编程能力和资源以云服务的形式开放出来,从中间件、数据库等水平能力服务组件到人脸识别、鉴权服务等基本业务服务组件都可以很容易的在云端获取。一旦世界从基于IaaS的应用开发转变为基于IaaS,PaaS甚至SaaS的混合应用开发模式,云端IDE将成为连接开发人员、PaaS,SaaS云服务所有服务组件的最佳选择。
DevOps的推广
随着云端IDE本身的功能演进,除了基本的开发相关功能,将会集成更多的团队协同,代码review,结对编程,社交组件、快速启动模板等能力,使其更像是企业的DevOps一站式操作平台,同时基于用户行为数据提供丰富的预测分析和研发效能看板,为研发团队提供一种跟踪和报告团队改进和效率的方法。对于考虑向DevOps转型,但不知道从哪里开始的组织,云端IDE将会是该转型的催化剂,同时也是一个低风险的DevOps实施工具。
当前,不可否认,基于桌面的传统IDE仍然非常普遍,并且在不久的将来会继续流行。但云端IDE凭借上述三点驱动力正在迅速获得发展势头,并将最终发展成为业界主流。要类比所有这一切的发展方向,不妨参考Microsoft Office的发展情况。当首次引入笔记本电脑/计算机时,我们只有MS Office作为任何协作的默认套件,而其中大部分曾经都是离线的,但是随着类似Google Workspace 等基于浏览器的协作工具将大量工作转移到网上,我们现在看到它们有比MS Office更重要的使用场景。IDE的发展也将是类似的方式,桌面IDE仍将被使用(就像Microsoft Office),但云端IDE(就像Microsoft Office365)将会在“万物上云”的时代提供更加丰富的适应云时代的功能从而逐步取代前者成为主流。