IDEA 与 VsCode

分享于2022年04月13日 mp.weixin.qq.com
IDEA vs VSCode的故事是一个低端颠覆高端的故事,VsCode几乎吸引了所有年轻和时髦的观众。同时,JetBrains似乎仍能保持生存,这主要归功于辛勤的工作和运气。考虑到VS Code迭代开发的速度(很大程度上要归功于JS + Web渲染器的生产力),我认为VS Code将对JetBrains IDE构成威胁,但它似乎永远无法完全达到JetBrains功能级别。JetBrains中的每个IDE功能都实现得很好,无论是代码分析,重构,导航,运行/调试,运行测试,添加新文件,git集成还是上下文功能(如添加程序包引用等)。JetBrains中的一切都更好一些。个人认为VS Code是一个无处不在的智能编辑器平台,具有成千上万个插件,介于精美的文本编辑器和IDE之间,我经常使用它进行快速的开发更改,快速搜索文件夹,前端UI开发,尝试新语言或编写文档。但是,如果我必须开始一个漫长的开发进程,我将转向JetBrains,我发现它的工作效率更高。感觉它们来自不同的开发哲学。Vscode是“文本编辑器”或“代码编辑器”。通常,这意味着它相当轻巧,可以支持每种语言,具有高度可配置性和可扩展性,但是没有很多非常深入的功能,依赖第三方扩展来提供更深的功能。另一方面,Jetbrains可在为一种特定语言显式构建的IDE上工作。考虑CLion for C,它只有两年的历史了!他们投入了大量资源来支持一种语言及其所有相关的工作流程。简而言之,代码编辑器通常会具有很多可配置性和可扩展性的网络,而(jetbrains)IDE往往会深入研究单一语言或工作流,而扩展性却较低,并且受支持的语言本身也具有很深的可配置性。Intellij允许您将所有其他jetbrains IDE的大部分功能安装为插件。另外,他们的大多数IDE都具有使用多种其他语言进行编码的能力,这些语言与核心体验是分开的。例如,他们大部分都可以与javascript生态系统集成。Intellij实际在后台有一个jetbrains IDE。这个IDE是一个单一平台,可以使用任何语言的插件和代码,并且可以根据您的喜好进行自定义。从表面上看,Jetbrains并没有完全向公众发布这个IDE。他们在这个IDE基础上提供了不同的配置和不同的默认值,然后将其锁定并以不同的名称运送每一个配置文件中。所有这些IDE基本上都是在完全相同的,在一个核心平台上运行不同的插件。这就是为什么CLion才几年还算不错的原因。因为只要新开发一个插件,将其推入了现有的生态系统中即可。这与Vscode没什么不同。两者都是可以插入新功能的编码平台,只是jetbrains锁定了一些自定义功能,并通过插件捆绑销售其IDE,从而提供了更好的核心体验。使Jetbrains变得更好的是这种集中而又质量较高的功能组合,感觉具有凝聚力。使Jetbrains更糟的是,他们的中央平台变得臃肿,导致一切都很缓慢,需要花费很长时间启动,并且可能会锁定。IDEA产品类似Borland IDE或Quick Basic之类的空间,而VSCode似乎更像是JavaScript时代的Emacs。不知道现在有多少开发人员用一种语言编写代码。我每天都会在Go,Dart和C ++之间往返,因此使用像VSCode这样的IDE(具有从扩展名到快捷方式再到片段的熟悉功能)是一个很大的帮助。我也是维护几种语言,JetBrains IDE都内置了对JS / TypeScript +所有流行的Web文件格式的一流支持,无论您使用何种后端语言。对于C#,F#和VB,我使用Rider。对于Dart,Java和Kotlin,我使用Android Studio,但是如果我需要使用Java / Kotlin进行大量开发,那么我会跳到IDEA。对于TypeScript / JS npm项目,我使用VS Code进行较小的更改,但是对于较长的开发则使用WebStorm。对于Swift软件包,我将Xcode用于开发,将VS Code用于git,更新文档并运行发布脚本。对于所有其他语言我将使用VS Code,这主要是因为我没有安装IDE。Jetbrains IDE性能是如此糟糕,我觉得烦恼。我发现VSCode是功能最丰富的编辑器,我可以忍受它的速度。从资源消耗或启动速度上来讲,VSCode绝不是理想的选择,但使用VSCode编写rust,node.js,前端js等语言是一条黄金之路,而使用其他更轻便的编辑器则是一个很大的降级。Sublime的前景令人难以置信,但就我的经验而言,其功能不足是不言自明得。我会把钱和精力投入到本机的、性能更高/更轻便的VSCode中。我同意,我也认为关于vs代码作为通用文本编辑器的评论是很公平的。Intellij在企业环境中具有巨大的优势,在企业环境中,一致性,统一性和易于更换的团队成员至为重要,VSCode是高度可定制的代码编辑器,适合不同的用例,团队中的每个成员都希望尽可能地自定义工作经验。我不认为Jetbrain仅凭努力和运气就能保持领先。一旦您了解了Intellij的内幕,很明显它们具有显着的体系结构优势。VS Code是使用LSP提供重构和导航的文本编辑器,而Intellij是在前端具有良好文本编辑器的重构引擎。Intellij是一个在抽象语法树上运行的结构化编辑器。创建LSP的难点是提供诸如重构和导航支持之类的功能,而这些正是IntelliJ为其语言插件提供的功能。为了实现给定的重构和导航支持水平,LSP开发人员需要比jetbrains插件开发人员花费更多的精力。从我的角度来看,Jetbains似乎并没有通过努力工作和运气来保持领先,而通过智能架构和设计使他们能够以更少的努力来生产高级,高价值的功能似乎并没有保持领先。我并不认为IntelliJ和VSCode是竞争者。VSCode可与Atom和其他功能齐全的文本编辑器(vim,emacs)竞争…在新一代程序员中,VSCode受到了极大的欢迎,他们认为那些旧编辑器既显得老派又对用户怀有敌意。VSCodes对Java,Python和Golang的支持远远落后于IntelliJ。在我们撰写大量Go语言的Microsoft团队中,IntelliJ / GoLand开发人员和VS Code开发人员之间有50/50的分配比例,并且有更多人从VS Code转向IntelliJ,反之亦然。我已经使用IntelliJ for Java很久。对于JS和Go,我使用VSCode。JetBrains的东西几乎一样。不支持诸如如何配置其自动格式化程序以兼容特定设置的美化工具。不支持开箱即用的必需配置。而代码构建build和IDE通常生活在完全不同的世界中。Android Studio可能会在“索引编制”时挂起整个mac,并且通常需要“重置缓存并重新启动”,而在VS Code中可以正常工作。VSCode对于TypeScript非常非常好。天哪,我敢肯定VSCode本身是用TypeScript编写的!但这并不适用于所有语言。当在带有Java后端的Web应用程序上工作时,我仍然更喜欢Idea,因为它对Java更好,对于TypeScript也足够近的好,因此它在所有方面都遥遥领先。我对VS Code的看法是,他们对开发容器和ssh的支持是最好的,并且是杀手级功能。我非常想在IDEA中使用VS Code的远程开发功能,并在YouTrack中跟踪其远程开发功能。我想要的只是我的代码可以在任何地方运行,而我的本地计算机是IDE。mutagen.io最终成为了我的答案。在了解了它的工作原理之后,我对其进行了设置,并且效果非常好。这些天我主要在进行PHP开发,并且有一个LAMP堆栈作为docker容器在服务器上运行。同步几乎是即时的(99%的时间),罕见的冲突很容易解决,并且调试当然仍然有效。我唯一缺少的是协作编辑,我仍然必须跳到VS Code来做。对于协作/结对编码,与编辑器无关的解决方案真的很棒。我使用VSCode进行我95%的开发,感到更开心。我将其余的5%用于IntelliJ。我不喜欢使用JetBrain工具。无论我在使用它们的任何机器上,它们都感觉呆滞且肿胀。启动编辑器需要花费很多时间,而且往往反应迟钝,或者您会感觉到屏幕上出现的字符与按键之间的延迟。根据Jetbrains自己的调查,VS Code确实越来越受欢迎:从2017年的7%的Python开发人员到2020年的29%,而Pycharm仍然保持在33%左右。VSCode不会杀死IDEA,但这对Jetbrains来说是一个巨大的警告。他们最好投入更多的精力来解决自一开始就困扰着他们的IDE的缓慢启动和性能问题。banq:vscode是全栈工程师唯一选择。VsCode Yes!来源:https://www.jdon.com/55835(完)PS:如果觉得我的分享不错,欢迎大家随手点赞、在看。 关注公众号:Java后端编程,回复下面关键字 要Java学习完整路线,回复  路线 缺Java入门视频,回复: 视频 要Java面试经验,回复  面试 缺Java项目,回复: 项目 进Java粉丝群: 加群 PS:如果觉得我的分享不错,欢迎大家随手点赞、在看。(完)加我\"微信\" 获取一份 最新Java面试题资料请备注:666,不然不通过~最近好文1、Mybatis 开发神器:Fast MyBatis 超好用2、JetBrains 官宣支持乌克兰,制裁俄罗斯...3、突发!Spring Cloud 爆高危漏洞。。赶紧修复!!4、Spring Cloud 与 Dubbo 优缺点详解5、一个基于 SpringBoot+Vue 仿饿了么外卖系统最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:关注公众号并回复 java 领取,更多内容陆续奉上。点分享点收藏点点赞点在看