Cloud IDE是不是一个伪命题

作者 张海龙

编者按:去年11月初,GitPod在A轮融资中获得2500万美元,以兑现Cloud Develop ment Environments的承诺。一周后,GitHub宣布CodeSpaces将面向所有GitHub用户开放,每周免费使用60小时。这让人感觉好像我们突然就发展到了“云端开发元年”。代码编辑器几乎是每个开发人员每天都在使用的工具,不少人老早就认为开发环境最终会迁移到云端,这种创新理应在软件行业中迅速推进,但这个演变过程实际上持续了很多年,也比我们想象中的难很多。国内CODING创始人张海龙在这个领域探索了八年,看过各式各样的产品,对IDE技术发展有着深刻的认识,通过这篇文章,他为我们讲述了Cloud IDE在发展中的迷茫与希望。

最开始做CODING的时候,我们想了一个Slogan,“Coding Anytime Anywhere”。这确实是一个很美好的想象,程序员畅想在浏览器中完成所有开发工作的场景都会激动。要实现这个梦想得有一个必不可少的工具那就是WebIDE。我们从2014年底开始做WebIDE,当时的想象到现在其实也不过时。

从WebIDE到Cloud IDE

当时做的最好的WebIDE叫做Cloud 9,成立于2010年。我们当时做的也有部分借鉴了Cloud 9。可惜的是,Cloud 9在2016年卖给了亚马逊。当时有些不解,但我现在完全理解了。在探索了这么多年以后,Cloud 9的团队应该是看清楚了IDE这个品种的下一代,应该不仅仅是搬到浏览器里那么简单,但究竟是啥,没想好。

另外一家叫做Koding,同样成立于旧金山,不过比Cloud 9晚了两年,成立于2012年。因为名字的原因,我们一度把Koding当成了竞品,虽然业务上完全没关系。Koding在探索了几年WebIDE的方向以后,彻底转型了。你现在去他们官网,你甚至会发现他们已经从WebIDE开发者变成了WebIDE的反对者。能写出这样的文案,那得是受了多大的伤害!

不管WebIDE成没成,但云计算在过去的五六年获得了长足的进步,彻底渗透了各个行业。而Web形态的IDE似乎跟云有着天然的整合优势,于是Cloud IDE这个名词渐渐的替代了WebIDE/Online IDE。

穿越周期的IDE

纵观软件架构的发展历史,从C/C++,Delphi,到Java,JavaScript,从单体到CS到BS到现在的微服务,每一个时代都有一个相对垄断的软件架构,现如今这个垄断者就是K8S。一般来说,新的技术架构会带来很多新的机会。就在软件这个领域来说,安全就是典型的随着每一次软件架构的变化产生新机会的领域。现在提倡的容器安全,DevSecOps等等以前都是不存在的概念。但我们发现虽然软件架构的迭代日新月异,编程世界的语言框架百花齐放,但开发者用的编程工具似乎没有太多变化甚至在收敛的。就拿Java来说,曾经还有JBuilder,NetBeans,而现在几乎是IntelliJ IDEA一家独大,Eclipse也在萎缩。云原生来了,微服务来了,我们似乎还是在用那些工具写代码。目前全球范围内编码工具的主要供应商只有两个,微软的VS系列以及JetBrains的IntelliJ系列。微软开源了VS Code,大量的Cloud IDE产品都是基于开源VS Code的魔改。有意思的是,这两家似乎对于Cloud IDE这个概念一直都是不感冒,迟迟没有动手,似乎就是在岸上看着你们这帮创业者的表演,一脸困惑。(以免误会,特别说明一下这两家最近是有Web形态IDE推出的,但不是重点。)

写到这里我突然想起了汽车行业。电气化架构来了,冒出来很多很多新的汽车品牌,但是很神奇的是你发现,造车新势力的头牌蔚来,竟然是江淮代工的。从这个角度来看,电动车行业确实可以分为特斯拉和其他。

场景在哪里

为什么这两家编程工具巨头都不搞Cloud IDE呢?这个问题困扰了我很久。冲动的创业者往往追求的是炫酷,而成熟的企业家追求的是实用。软件工程领域三大问题:开发效率,开发质量,可维护性。任何一个工具的成功必须解决这里的一个或者多个问题。在我们2015年对于WebIDE的想象视频中,定义了一些场景,例如临时修Bug,新入职的开发On board等等,其实都是很小的corner case,这些场景占据整个开发场景的时间不到1%。在这个1%里面解决问题能有多大价值呢?

后来我们又尝试了很多场景,例如教育,培训,招聘。这些场景看起来都很性感,但真正深入其中你才发现IDE在垂直场景里其实是小问题。例如招聘,提供一个在线IDE让面试者现场编写代码看起来是一个很酷的应用,面试官可以可以跟面试者对着代码交流互动,实际上这个场景的绝大部分问题都可以通过腾讯会议解决,而真正作为生产力工具的IDE的核心能力,例如快速创建工程,代码提示,调试等等能力在这个场景下毫无作用。面试这个场景真正的痛点是简历来源,简历质量,以及考察的问题跟岗位的匹配度等等,所以你看很多做面试的到最后都去做题库,或者去做了猎头。

Cloud IDE很炫酷,很吸引人,从我们的新增用户就可以看出来。我们的Cloud IDE上线这么多年不需要推广都会不断的有新增,但是没有留存。几十万的注册用户,日活几百。这个问题已经很明显了:用户来了,但是由于产品不解决实际问题,看看就又走了。软件工程三大问题,Cloud IDE一个都没解决。

有一个产品叫做Replit,同样来自旧金山的公司,最近引起了人们的关注。从编写轻量级的片段式代码起家,Replit已经吸引了超过1000万的用户。Replit说它是个IDE,但作为一个专业开发者,你打开Replit的界面,你会感觉这个IDE简陋到惨不忍睹,要啥没啥。但为啥Replit能成功呢?因为它一开始就不是给专业开发者设计的产品。一个用IntelliJ IDEA的开发者是不可能转投Replit的怀抱的。但是作为编程新手,Replit给他很好的编码体验,啥都不用管,上来就可以写代码,并且支持几乎所有语言。有点像美图秀秀和Photoshop的关系。你去看Replit的宣传,它一直在强调“Learn”这个关键词,这就是定位。在这个轻量级片段式代码的场景下,它很好的解决了开发效率问题。Replit去年就1000万用户了,今年肯定更多。但是全球才多少开发者?美国加欧洲加起来估计勉强1000万。说Replit的市占率是100%肯定是不对的,你会发现你身边几乎没人用这个产品。Replit的定位就不是专业开发者,它这个1000万用户可以说都是不会写代码的人,或者说不是以写代码为生的人。它没有去抢微软和JetBrains的蛋糕,重新画了一块蛋糕。然而Replit的编码能力进化很快,将来会是什么格局,让我们拭目以待。

PDA的故事

在思考Cloud IDE尴尬处境的时候,我想到了PDA,这个产品的历史角色似乎跟Cloud IDE有点像。最早Apple提出了PDA(Personal Digital Assistant) 的概念,核心目标是要把电脑揣进口袋。Apple推出的产品叫做Newton。后来还有各种各样的公司推出了PDA产品,包括大名鼎鼎的黑莓。从操作系统的角度来看,各大公司也为PDA开发了各种各样的操作系统,包括Newton OS,Palm OS,Symbian OS,Windows Mobile。但无一例外所有硬件和软件最后都败给了iPhone。事实证明iPhone才是那个真正的下一代手机,真正的PDA。而Newton,黑莓等等就是过渡产品。其实各个领域都会在特定的历史时期出现这种类似于“油电混动”的产品。

乔布斯回归Apple以后,果断的砍掉了Newton产品线。乔布斯砍掉它的原因并不是不buyin它的愿景,而是无法理解它的形态,正如他讨厌手写笔的描述:“God gave us ten styluses,” he would say, waving his fingers. “Let's not invent another.”。当时的苹果摇摇欲坠,砍掉这个产品线解放了很多优秀的工程师,最终找到了正确的方向iPhone。

PDA的失败并不是产品定位问题,而是产品实现的时候杂糅了太多过去的产品遗产,使得这个新产品并不能在想象的场景中带来颠覆性的体验。“把电脑揣进口袋里”,这个目标是好的,但也具有一定的误导性。这个新设备的操作体验是不是真的有必要是一台电脑?Windows那么成功,但是Windows Mobile却很失败。电脑拥有一个全键盘,所以黑莓也搞了一个,也是很失败。iPhone抛弃了这一切,全新的硬件,全新的操作系统,重新定义了PDA。iPhone进化了15年了,但概念还是那个概念。取代iPhone的会是什么呢?延续现有产品思路的想法大概率都是不成的。

云端开发

软件工程的下一个大时代是什么?人工智能写代码吗?Copilot很成功,但依然是辅助。人工智能写代码就跟全自动驾驶一样,我持保留意见。我更相信软件工程的下一步是云端开发,Cloud Development。我们一定需要一个Cloud IDE,但目前Cloud IDE的问题跟PDA类似,杂糅了太多当前IDE的特征。我相信未来云端开发的IDE一定不是现在IDE的样子。微软收购Github以后做的一个跟云结合的大动作是CodeSpace。你说CodeSpace算不算Cloud IDE?Github这么大的用户量,事实上CodeSpace的用量也就一般。而且CodeSpace还可以对接桌面版的VS Code,也就是Web形态的IDE并不是核心。这里多说一句,只要还是人类在写代码,就需要编辑器。目前的编辑器技术都是国外团队做的,比如Monaco,ACE,Code Mirror。我们去年找遍了没有在国内找到一个做编辑器的团队。但却看到很多拿着现成编辑器包装成IDE的团队,让我有一种舍本求末的感觉。

在这个领域探索了八年,看到各式各样的产品熙熙攘攘,来来往往,就像飘在空中的蒲公英,看着很近就是抓不着。Cloud IDE的故事必将继续,新事物的产生必定有很多没有结果的探索,都值得尊重。与此同时,我们是不是可以对未来的编程场景想象的更大胆一点,或许它就不该长的像个IDE。

作者简介

张海龙,CODING创始人,技术创业者&连续创业者。复旦大学软件工程学士毕业,后就读CMU(卡内基梅隆大学)计算机硕士。毕业后曾在Oracle(甲骨文软件系统有限公司)任职高级软件工程师。具有超10年的技术背景,对开发者社区的运营和生态圈有深刻的理解和实战经验。