V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
byte10
V2EX  ›  程序员

关于 jetbrains 涨价问题, intellij idea VS vscode 对比请教

  •  
  •   byte10 · 2022-06-30 11:03:43 +08:00 · 4534 次点击
    这是一个创建于 884 天前的主题,其中的信息可能已经有所发展或是发生改变。

    概要

    其实一直想发一个贴请教一下 idea 和 vscode 的区别,两者有什么功能是对方不可满足的,或者难以满足,完全阻碍开发效率的问题。刚好看到了 jetbrains 涨价,所以发这个贴请教下大家几个问题。当然主要是针对 javaer:idea 和 vscode 。虽然很多人没用过 vscode ,但是依然可以提供的你的答案和建议。

    问题

    • idea 的使用

      • 1 、idea 有没有哪个功能缺少后,会导致你无法正常工作或者需要绕很大的圈子才能正常工作的。比如测试率覆盖率这个功能,vscode 之前就是没有的了(现在不清楚还有没有)
      • 2 、idea 有没有哪个功能或者插件 可以提升你较高的开发效率,在开发中经常会使用到的,能方便自己进行开发、调试或者其他。比如,调试,某些类跳转方式,xml 跳转到 bean 类等
    • vscode 的使用

      • 1 、是否存在哪种功能是 idea 无法提供的。比如经典的就是 remote ssh ,idea 还难以做到。
      • 2 、是否存在哪种功能可以提升效率的,或者用起来比较舒服的插件。比如 git graph 更直观,其他很多智能小提示插件等。

    说明

    这里单纯讲功能上的使用,不谈性能,内存这些。我想尽量收集一些观点。虽然我 2 个都用过,也用了很久。但是毕竟用到里面的功能都很有限。虽然本身作为一个开发,但是我没有依赖太多 ide 的功能,用的比较浅,对两者还没涉及到非常深入的理解,肯定有很多好用的或者能提升效率的功能,我还没发现。希望大家能多多给点建议。

    xiyuej
        1
    xiyuej  
       2022-06-30 11:11:14 +08:00 via Android
    我感到 idea 静态分析能力更强些,vscode 的 ssh 更强些,其它方面
    xiyuej
        2
    xiyuej  
       2022-06-30 11:11:29 +08:00 via Android
    @xiyuej 其他方面差不多
    guang19
        3
    guang19  
       2022-06-30 11:14:24 +08:00   ❤️ 3
    总有人拿一个文本编辑器跟一个 IDE 比较,这究竟是道德的沦丧还是人性的扭曲呢?
    byte10
        4
    byte10  
    OP
       2022-06-30 11:32:16 +08:00
    @xiyuej 嗯 是其中一方面。能具体到哪些功能吗,idea 有哪些静态分析的功能会大大提高效率的 😄
    @guang19 vscode 的插件就是运行了一个 IDE 了,vscode 更多是提供 UI 而已了,这样会不会更容易理解一点?
    ray5173
        5
    ray5173  
       2022-06-30 11:51:06 +08:00
    说一个写 python 时的区别:单步调试的时候,可能一步步的进到框架里面,层级很深。一般来讲框架和第三方包都无 BUG ,Pycharm 提供 Step Into My Code 的功能,可以直接跳转到自己的代码,接着 DEBUG 。
    ray5173
        6
    ray5173  
       2022-06-30 11:51:47 +08:00
    vscode 没有此功能。IDEA 我用得少,估计也有类似的区别
    Martin123123
        7
    Martin123123  
       2022-06-30 11:58:34 +08:00
    不确定现在 vscode 有没有类似的功能,目前用 pycharm 的原因主要就是因为 docker-compose 、poetry 、django 上还是舒服很多的
    zed1018
        8
    zed1018  
       2022-06-30 12:01:48 +08:00
    目前为止还不能在 vscode 上开发 kotlin + spring boot 项目
    AlekoShen
        9
    AlekoShen  
       2022-06-30 12:07:36 +08:00
    之前我也纠结过 问了些朋友和自己实操过
    得出的结论是 如果你愿意折腾 vscode 的插件 就选 vscode 不愿意的话还是 idea
    我现在使用 idea,主要就是不像折腾插件.自带的功能完全 hold 的住我的需求
    至于一些 idea 的高级用法或者技巧 我也不太懂 但至少我知道他大概率有 如果换成 vscode 的话 当我有这个需求时 我还要翻一遍插件市场(可能有,也可能没有) 这就会让我很难受
    GiantHard
        10
    GiantHard  
       2022-06-30 12:09:13 +08:00
    JetBrains IDE 的优势:

    * 数据库管理功能
    * search and replace structurally
    * 非常丰富的重构选项
    * 安全删除、移动文件
    * 与 Jira 等任务管理系统的集成
    * 智能解决合并冲突
    * Postfix completion
    * Language injection

    以上提到的功能应该都是 WebStorm 自带的
    mazai
        11
    mazai  
       2022-06-30 12:27:15 +08:00
    非常丰富的重构选项 这一点我就离不开了
    liuw666
        12
    liuw666  
       2022-06-30 12:45:29 +08:00 via iPhone
    jetbrains 的 git 工具我觉得是最好的。而且因为有对应语言的支持,导包、错误提醒等 都能在 diff 时看到,fork 这种 git 工具就没有。vscode 就感觉太简陋了
    guanhui07
        13
    guanhui07  
       2022-06-30 12:51:27 +08:00
    选 JetBrains 习惯了用他的快捷键重构 ,删除 还有 代码分析能力好不少
    abcbuzhiming
        14
    abcbuzhiming  
       2022-06-30 13:01:14 +08:00
    @byte10 你要是觉得一个文本编辑器挂几个插件就能自称 IDE 了那随你。

    从哲学上来讲,编辑器挂插件属于泛用型系统,IDE 属于专用系统,泛用型系统用途广,但是在单一领域是不可能比专用系统比功能和性能的,除非那个专用系统自身实现有问题
    mrgeneral
        15
    mrgeneral  
       2022-06-30 13:31:36 +08:00
    只一项,IDE 的代码分析是真的分析,其他文本编辑器感觉都像是傻瓜式的字符串匹配。
    Shook
        16
    Shook  
       2022-06-30 13:59:58 +08:00
    我目前是直接在 Webstorm 上面直接跑 WSL2 项目的命令会出错…
    所以还是需要 VSCode 来帮我跑命令。
    sleeepyy
        17
    sleeepyy  
       2022-06-30 14:06:40 +08:00
    @mrgeneral 现在编辑器都是走 Language Server Protocol 了,哪里是什么“傻瓜式的字符串匹配”
    STtree
        18
    STtree  
       2022-06-30 14:24:11 +08:00
    @liuw666 git +1,我切换到 vscode 很不习惯它那 git 插件,不能建 changelist ,处理 merge 冲突的时候也没有 jetbrains 的顺手,甚至查看历史 commit 信息的时候也不如 jetbrains 直观。我不知道是我没配置好,还是怎么回事,就是用起来很别扭。
    byte10
        19
    byte10  
    OP
       2022-06-30 14:24:26 +08:00
    @liuw666 idea 的 git 不错,不过 vscode 有 git graph ,我觉得 UI 交互上更好一些,但是功能可能比不上 idea 自带 git
    @GiantHard 感谢。
    @abcbuzhiming 想太多了。以后 idea 都改成 LSP 了,那 idea 还算 ide 吗?
    @guanhui07 嗯可以的,这几点 vscode 也有一些重构的快捷键,还比不上 idea 。
    nothingistrue
        20
    nothingistrue  
       2022-06-30 14:28:01 +08:00
    编辑器,集成开发环境( IDE 的中文名称),这俩代码工具比较起来是没有意义的,那是要一起用的,大型工作用 IDE ,小型工作或者纯查看的工作用编辑器。intellij idea VS microsoft visio studio ,这才有意义。
    libook
        21
    libook  
       2022-06-30 15:53:08 +08:00
    JetBrains 家的 IDE 在代码分析方面很无敌,可以在某种程度上“理解”代码,推导出大量没有被开发者显式声明的信息,用于检查问题、提供重构方案。

    如果项目很简单,没必要用此种能力,可能也没必要用付费产品了。

    拿来吃饭的家伙,既然你都用过了,那就都以你自己的体验为准,哪个顺手用哪个。
    Shielber
        22
    Shielber  
       2022-06-30 15:54:12 +08:00
    remote ssh 已经可以做到了,jetbrains gateway 不仅可以 ssh,还可以连自家的 space 和 gitpod 。只是占的服务器内存比较大。
    libook
        23
    libook  
       2022-06-30 15:54:55 +08:00
    @Shook #16 我目前在用的方案是在 Windows 上用 Cygwin 装 XServer ,然后在 WSL2 里跑 IDE ,用 Windows 上的 XServer 显示出来。
    alittlecat
        24
    alittlecat  
       2022-06-30 16:54:43 +08:00
    @ray5173 #5 vscode 的 python 在某次更新后支持这个功能了
    "justMyCode": true,
    lucasji
        25
    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 还是使用专门的协议. 微软貌似一直这个尿性, 兴致勃勃地推出一个看上去潜力巨大的东西, 随着时间的推移最后不了了之...
    dddd1919
        26
    dddd1919  
       2022-06-30 17:22:17 +08:00
    java 开发,我选 idea
    前端开发,我选 vscode
    Blank10030
        27
    Blank10030  
       2022-06-30 17:47:22 +08:00
    我两个都用过,在不考虑价格的情况下,我选 jetbrains 。
    byte10
        28
    byte10  
    OP
       2022-06-30 17:51:14 +08:00
    @lucasji 嗯很专业的回答。
    @libook 是的,我对 ide 很多高级功能用不到。

    另外 idea 很智能也会有一些问题,一些项目用 idea 能运行,但是到了 vscode 就用不了,或者说用命令打包构建后都无法正常部署。。。
    ciki
        29
    ciki  
       2022-06-30 18:58:33 +08:00
    重构,代码跳转这两条 vscode 就完全无法跟 IDEA 比,关键是这两个还是用的频率非常高的功能
    ychost
        30
    ychost  
       2022-06-30 19:28:13 +08:00
    idea/webstorm 都比 vscode 好用,vscode 比较适合写点脚本
    lucays
        31
    lucays  
       2022-06-30 21:04:28 +08:00 via Android
    java idea 体验好得多
    python 我喜欢 vscode
    codejay
        32
    codejay  
       2023-09-19 09:48:48 +08:00
    vs code 不会卡死,IntelliJ idea 会一直 closing project 不动
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2462 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 15:54 · PVG 23:54 · LAX 07:54 · JFK 10:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.