阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

Cloud IDE 是不是一个伪命题

  • 2023-01-29
    北京
  • 本文字数:4260 字

    阅读完需:约 14 分钟

Cloud IDE 是不是一个伪命题

编者按:去年 11 月初,GitPod 在 A 轮融资中获得 2500 万美元,以兑现 Cloud Development 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 年的技术背景,对开发者社区的运营和生态圈有深刻的理解和实战经验。


今日好文推荐


阿里辟谣海外建全球总部;科技巨头加速裁员,商学教授直呼企业管理层愚蠢;谷歌Fuchsia OS部门遭遇重大打击 | Q资讯


副业搞得好、赚钱没烦恼:新春程序员寻找“副业”灵感指南


一个科技新时代开启,硅谷五巨头将何去何从


修完又复活!史诗级Log4j漏洞爆发1年仍“阴魂不散”,下一场暴雷可能已在路上


活动推荐


2023 年 2 月 5 日 -7 日,QCon 全球软件开发大会将落地北京,美团研发质量与效率部高级技术经理俞超老师将在【研发效能提升】分论坛分享《Cloud IDE 在美团从 0 到 1 落地实践》的精彩演讲。他将分享自己在探索与实现 Cloud IDE 在线编程平台中的实践成果与走过的弯路,与大家共同探讨,欢迎你来 QCon 北京现场打卡交流~点击超链接查看日程,目前 QCon 北京站团购享受更多优惠,感兴趣的同学可以联系票务经理:15600537994(电话同微信)。



公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2023-01-29 12:274918

评论 2 条评论

发布
用户头像
好文!
我们需要更多地从 开发者体验 DevEx 视角来关注包括 IDE 在内的工具链、开发效率,而不是仅从工具或方法论的视角比如敏捷、DevOps等。所有的方法论和工具,最终都会回到人的层面;再好再先进的产品,一旦使用,本身就意味着用户或者团队选择了这个产品背后的方法论。
2023-01-30 10:17 · 广东
回复
用户头像
浏览器是云端开发的入口,目前这是不用怀疑的。但是使用浏览器开发乍看起来会解放开发人员手中的硬件,比如台式机,笔记本,但是算下来成本也不小。对于效率,网络问题显然比本地IDE的安装更让人沮丧。对于质量,云IDE和本地IDE地位一样,IDE就是IDE,提高质量的人不是IDE。
2023-01-29 22:09 · 北京
回复
没有更多了
发现更多内容

应用监控可视化工具Grafana&Kibana对比

阿泽🧸

10月月更 监控可视化

跟着卷卷龙一起学Camera--透镜组

卷卷龙

ISP camera 10月月更

Zebec即将推出公链并开放节点申请,潜力几何?

EOSdreamer111

数字化转型,目的是为了转型还是数字化?

雨果

数字化转型

大数据ELK(二十):FileBeat是如何工作的

Lansonli

Filebeat 10月月更

强化学习发现矩阵乘法工赋开发者社区 | DeepMind再登Nature封面推出AlphaTensor

工赋开发者社区

企业的数据资产怎么盘?统筹规划,摸清家底

雨果

数据资产管理

【算法作业】实验一:轮流报数与鸡兔同笼

清风莫追

【玩物立志-scratch少儿编程】骑上小摩托(动态背景+摄像头控制操作)

清风莫追

10月月更

【C语言内功修炼】柔性数组的奥秘

Albert Edison

数组 C语言 10月月更 柔性数组

爬虫练习题(四)

张立梵

Python. 10月月更 爬虫案例

用OptaPlanner进行车辆路线优化

成长兔🐇

_fitoa_word的实现:一个整型数据是如何转成字符串的呢?

桑榆

源码刨析 10月月更 C++

http协议简介

智趣匠

Cookie HTTP协议 Cookie反爬虫 10月月更

Android Coder浅谈队列同步器(AQS)

子不语Any

后端 java; 10月月更

【算法作业】实验五:神奇宝贝大军 & 到迷宫出口的最短路径

清风莫追

算法 10月月更

Spring之IOC

楠羽

笔记 spring 源码 10月月更

HTML的简介

智趣匠

HTML标准 10月月更 HTML元素

跟着卷卷龙一起学Camera--压缩与存储

卷卷龙

ISP camera 10月月更

2022-10-09:我们给出了一个(轴对齐的)二维矩形列表 rectangles 。 对于 rectangle[i] = [x1, y1, x2, y2],其中(x1,y1)是矩形 i 左下角的坐

福大大架构师每日一题

算法 rust 福大大

一起学习设计模式:备忘录模式——软件的“后悔药”

宇宙之一粟

设计模式 备忘录模式 10月月更

什么是DataOps?DataOps只是Data加上Ops吗

雨果

DevOps

Surpass Day——Java 接口在开发中的作用、关于Object类、内部类

胖虎不秃头

Java 10月月更 se

面试突击89:事务隔离级别和传播机制有什么区别?

王磊

Hacktoberfest 2022:Jenkins maven-snapshot-check Plugin 的改进实践

donghui

jenkins Hacktoberfest

六类网线、七类网线、八类网线区别有哪些?

wljslmz

10月月更 弱电 以太网线 综合布线

Zebec地平线节点运营计划,Web3流支付赛道或多一条全新公链

股市老人

简述Docker改造传统应用的流程

穿过生命散发芬芳

Docker 10月月更

Python基础(十三) | 机器学习sklearn库详解与应用

timerring

Python 机器学习 sklearn 10月月更

爬虫的简介

智趣匠

Python语法 10月月更 爬虫简介

跟着卷卷龙一起学Camera--BM3D

卷卷龙

ISP camera 10月月更

Cloud IDE 是不是一个伪命题_服务革新_张海龙_InfoQ精选文章