lucasji
2022-06-30 17:11:40 +08:00
我现在主要的开发语言是 Java 和 TypeScript, 使用的框架主要是 SpringCloud 和 React, 并且在 vscode, intellij idea 以及 neovim 上都配置过开发环境, 因此很直观地感受过这三者之间的差距.
如果仅从一个基本的开发环境而言, 比如说使用 react 做一个简单的网页, 使用 maven 创建一个简单的项目用来刷刷 leetcode, 我们并不需要很多语言本身以外的工具或者框架的加持. 此时, 对于 IDE, 我的最关注的点就是对于语言编码的支持, 包括但不限于自动补全, 代码提示, 错误跳转, debug 等. 得益于 LSP 的发展, vscode 乃至于 neovim 都可以通过各种插件的加持从 editor 升级为 IDE.
如果从一个能够支持工程化项目的开发环境而言, vscode 虽然也能设置成为 IDE, 但是各项能力上对比 intellij idea 就要薄弱很多:
1. 就基础的代码语义分析而言, 虽然微软提出了 LSP 协议, 但是 idea 的静态分析还是太强大了. 从提示的速度, 准确度, 完整度来看, idea 现阶段还是比 vscode 强的.
2. 对于 git 的支持. idea 的 Git feature 比 vscode 使用体验好太多了.
3. 对于 java 的支持, 或者说对于 Spring 框架的支持. vscode 的一系列插件对比于深耕此方面多年的 idea, 差距尤为明显. 更不要说 idea 已经在适配 Spring 6 和 Spring Boot 3 了.
4. ...
以上仅仅是从我个人角度, 得到的一些感受, 可能会有一点片面和武断. 就如楼上老哥所言, vscode 作为一个 editor, 把它拿来和专业的 IDE 对比是没必要也是不公平的. Jetbrains 会为了 java 的特性, java 相关框架的特性, 不断地做更新和适配, 提供商业化的支持, 以期用户得到最好的体验. 而对于 vscode, 我们只能期待相关插件的作者或者社区能够保持更新. 无论是前端还是后端的项目, 都足以称得上复杂. 对于开发者而言, 一个合格的开发环境就是能够让我们专注于业务表达而不需要耗费额外的心智去不断地配置, 优化.
最后吐槽一下微软. 虽然推出了 LSP, 但是自家的 TypeScript 都不去支持并且也没有什么明确的计划去支持. 在 vscode 上的 TypeScript Server 还是使用专门的协议. 微软貌似一直这个尿性, 兴致勃勃地推出一个看上去潜力巨大的东西, 随着时间的推移最后不了了之...