iOSBlog icon indicating copy to clipboard operation
iOSBlog copied to clipboard

我信你个鬼, GitHub 出了 WebIDE 就让我卸载 VSCode ? 小编你电脑根本就没装过吧?!

Open ChenYilong opened this issue 5 years ago • 0 comments

基于 Web 的IDE(下文简称 WebIDE )的确方便不少,但仅仅限于前端应用里的简单场景,复杂场景并不适合。更不可能取代 VSCode 等桌面IDE,别听风就是雨。

如果有一天 WebIDE 完全取代 VSCode 等桌面 IDE 真的发生了,我们至少还需要几代人的时间来实现,很明显我们现在还是第一代(史称前浪)。

WebIDE 的优点

首先 WebIDE 很有用,毋庸置疑。好处比如:

  1. 没有跨机同步的麻烦。可以在云存储和本地存储之间无缝同步。
  2. 不需要安装工具链来工作或恢复工作--只需要一个浏览器和一个连接就可以了。浏览器无疑是现在普及率最高,并且支持最好的、功能最丰富的GUI工具箱之一。
  3. 易于团队合作,在线开发环境一致。
  4. 易于部署。
  5. 转向Chrome OS的超廉价笔记本电脑的好处将成为现实。

优点不少,但在我看来,这里没有什么杀手级的功能让我来删除 VSCode。

同时我想说,前端人多,小编你也不能不把我们这些非脚本语言、非标记语言的开发者当空气呀。

我作为一名非脚本语言开发者表示 WebIDE 的局限性似乎比优点要多:

WebIDE 系统交互能力被阉割

IDE 需要与支持的系统紧密结合。这对于编译语言来说尤其如此,但即使是使用 Python 这样的开发语言也很重要。如果使用第三方服务的IDE,他们需要给我几乎完全访问命令行和系统的权限。我需要能够安装依赖关系,管理版本,使用 Git,可能还有编译程序。

悲剧的是,浏览器不能直接与本地文件系统交互,不能直接调用其他本地程序。至今很多人无法理解。因为每个人已经熟悉了如何在手机上安装应用程序,并明确授予它们访问本地资源,如文件系统、摄像头等。让人迷惑得是,浏览器厂商没有直接添加 "完全访问本地文件系统"作为基于网页的应用程序可以请求的选项。我假设浏览器制造商只是害怕被恶意软件入侵,因为授予特定来源的页面访问本地机器的文件系统分支或启动本地机器进程的权限本来是一件很简单的事情。

虽然HTML5有 "本地存储",即你的磁盘空间是用来存储应用程序和/或数据的物理空间,然而数据是与应用程序相关联的。虽然在理论上你可以使用提取工具来获取,但最终数据不容易在App之外获得。它解决了 "需要一直保持在线 "的问题,但并不能真正解决与数据绑定到webapp相关的其他问题。事实上,在某些方面,它让事情变得更糟。

如果这个权限能放开的话,到那时,基于浏览器的IDE,才有可能成为本地IDE的替代方案。

同时浏览器缓存能力真的很弱,你看看现在的视频聊天应用,即使是基于 WebRTC 这种原生为 Chrome 打造的聊天协议,也很难在 Chrome 上商用并且不卡。

给予文件系统交互的问题,这很容易让开发者想到在自己的VPS上建立一个在线IDE。我认为这个想法比在第三方服务上托管要重要得多。

WebIDE 计算能力有限

托管式 IDE 的另一个未公开的缺点是计算能力有限。这是一个可以而且很可能会改变的事情。如果使用第三方服务的IDE,我可能会和其他非常多数量的开发者共享一台服务器,他们在任何时候都在利用甚至浪费CPU。但你如果自己准备在VPS上搭建一个,价格可能会太高,不值得。下图是国内某云服务提供商提供的低端套餐1G内存816一年

国内某云服务提供商提供的低端套餐价

反观,我自己开发者800块买一台运行1G内存的笔记本电脑上编程,我一个人用,还不用掏租金,不香吗?

不过 WebIDE 是在利用云计算的力量来进行颠覆,有些场景下也很有意义。我常在朋友圈看到有的开发者朋友为了训练 AI 模型又从某宝上高价组装了一台高配台式机,如果可以将资源密集型的任务(例如编译)发送到大型云服务器上,并且只需支付实际使用量的费用,我们就可以在小型VPS上进行开发。用生产型服务器做这个工作的基础设施是存在的,只是我对这种方式是否能支持开发到发布全流程闭环能力表示怀疑。

WebIDE 界面稳定性在真实场景下不堪一击

速度显然是现有的web IDE的最大缺点,而且在未来一段时间内仍将继续存在。这不是开发机器的速度,而是实际IDE界面的速度。Web应用只是还没有达到桌面应用的水平,有很多因素在起作用。服务器速度、互联网速度、当前的Web/本地ISP流量、连接性、工作站功率等。良好的离线支持可以帮助,但并不能解决这个问题。

使用桌面型IDE,我可以在繁忙的机场和恶劣的wifi条件下进行编程,或者每天坐一个小时的火车上下班。基于网络的IDE如何克服这一障碍?

人类是基于水活着,上帝允许我们24小时不喝水。 虽然我们是基于 Google 编程、基于 Stack Overflow 编程,但请允许我们24小时没网也能编程,要求过分吗?

这样看来 WebIDE 要求在线才能编程,是不是有点过分??

参考:

Do you think that Web-Based IDEs are the future of IDEs? What are the advantages and disadvantages of Web IDEs? What features make much more sense in a Web IDE? What are the best web based IDEs?

非脚本语言开发者都点了"在看"👇

ChenYilong avatar May 08 '20 15:05 ChenYilong