介绍Java开发同学可能对JetBrains并不陌生,因为JetBrains号称拥有世界上最好的JAVA开发工具IDEA。诚然,IDEA非常好用,满足了一个java开发者的所有梦想。当然,JetBrains也提供其他语言的开发神器,比如PyCharm、PhpStrom、WebStorm等。只要是和开发工作相关的,都能在JetBrains的全家桶中找到。这么好用的神器自然价格不菲,但是JetBrains特地为学生党推出了免费授权版,非常人性化。现在JetBrains准备推出一个编辑器Fleet,这个编辑器到底是做什么的呢?它的优点是什么?一起来看看吧。从eclipse到Fleet,还记得当初接触java的时候,是从JAVA命令行入手的。写好代码后,先用javac命令将代码编译成字节码,再用java命令运行。虽然java是世界第二好用的语言,但是这种手动编译运行的方式确实让人头疼。然后有一天,听了同学的介绍,发现了eclipse这个工具。真是太震撼了!强大到颠覆我对IDE的认知。当然,我一直认为最好的IDE是微软的VisualStudio,包罗万象。可惜当时VisualStudio只支持微软自家的C#和.net平台,只好作罢。Eclipse简单易用且免费,加上种类繁多的插件,很容易DIY出适合自己口味的IDE。所以当时除了开发之外的另一个爱好就是反复安装eclipse的各种插件,体验不一样的乐趣。后来在工作中,一开始也是用eclipse,但是作为一个纯开源的项目,eclipse也暴露了它的缺点,就是第三方插件比较混乱,使用中经常会出现各种bug。然后同事给安利了IDEA。说实话,一开始的IDEA非常难看,IDEA组织项目比较松散,更像是管理单个文件而不是项目,所以我还是坚持用eclipse。那么,是什么让我从eclipse切换到IDEA?记得,那是夏天,天空依然蔚蓝。照例点进eclipse的官网,看看有没有可以升级的最新版本。起初我没有报任何希望,但事实证明这是真的。这个版本就是eclipseche,其实就是web版的开发工具,号称是下一代的eclipse。难道以后eclipse只能用在web端?浏览器体验是否像本地开发工具一样流畅?虽然很担心,但是还是抱着试一试的态度,按照官方文档尝试安装了eclipseche。安装起来很痛苦,使用起来更痛苦。不知道是我机器子系统的问题还是文档没写清楚。就是不能用eclipseche来开发项目。eclipseche的初衷是想把开发环境搬到云端,但是当时的技术和想法有点太超前了,所以成功劝退了。然后从eclipse转到IDEA开发了很多年。一直没关注eclipse和eclipseche的开发。写这篇文章的时候,我去看看。原来Eclipse的本地IDE还在。它的最新版本是2021-12。Eclipseche也发展到7.0版本,开始支持Kubernetes-Native。然而,没有什么可以回到过去。eclipse说完了,我们再来说说IDEA。说实话,作为付费软件,IDEA在使用上确实比eclipse好。最好的Java开发IDE不是白来的。当然,为了支持IDEA如此强大的特性,它需要占用大量的系统内存。1G-2G对于IDEA来说完全不是问题。那么有没有轻量级的开发工具呢?当然有。所谓开发工具就是支持代码高亮、编译代码等功能的工具。记事本之类这里就不说了。当时有两个工具可以用,一个是atom,一个是微软的vscode。两者都是轻量级的开发工具,都支持插件扩展。我也都用了,最后选择了微软的vscode。虽然没有具体对比,但感觉微软的更稳定,功能也更好。既然已经有了微软vscode这样强大又简单的轻量级开发工具,为什么舰队会认为大家会选择它呢?这是一个很好的问题。让我们详细谈谈它。Fleet的特点Fleet最大的优势就是背靠jetbrains这棵大树。在IDEA等开发工具的加持下,Fleet的品质很难让大家不相信。用jetbrains的话说,他们花了20年的知识和经验编写开发工具,而且Fleet底层使用的是IntelliJ代码处理引擎,所以Fleet足够靠谱。当然,仅仅保证是不够的,我们还需要知道Fleet有哪些特性。首先看一下Fleet的主界面。非常简单和漂亮。带有git和历史。Fleet支持所有IDE都应该支持的自动完成、重构、跳转、调试和其他功能。Fleet目前支持的语言有JAVA、kotlin、python、go、javaScript、Rust、TypeScript和JSON。其他语言如PHP、C++、C#、HTML正在开发中。看到这里,我们可能还有疑问。其他轻量级IDE好像都有这些特性,那么Fleet有什么特点呢?分散式!没错,就是分布式!Fleet的架构是分布式的,Fleet不关心你的项目是在本地,在容器中,还是在千里之外的另一个国家。通过提供虚拟化文件系统,Fleet可以同样出色地处理本地和远程项目。Fleet具有三种工作模式,分别是Editor模式、Smart模式和Distributed模式。对于编辑器模式,一切都是本地的,所以它提供的功能和特性相对有限:在智能模式下,可以提供一些高级特性,例如项目和上下文感知代码完成,定义和用法的导航,动态代码质量检查和快速修复,等等。这些特性是轻量级的Fleet无法完成的,所以需要额外的LanguageServers和Codeengine来处理,如下图:什么是Distributedmode?就是把这些LanguageServers和Codeengines放在云端或者docker容器中,本地Fleet只能作为客户端连接远程服务器:这种分布也可以实现多用户的功能合作。个人感觉,Fleet可能是eclipseche的进阶版。敬请关注。JetBrainsSpace此外,jetBrains还结合了Fleet和JetBrainsSpace。你可以把JetBrainsSpace想象成一个远程工作环境,这样可以省去你在本地搭建工作环境的麻烦。总结舰队这么好用,那么怎么下载呢?抱歉,舰队暂时无法下载。必须到Fleet官网申请。听说名额有限,赶快行动吧。
