您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

JetBrains决定对Rust出手!

时间:2023-09-18 10:27:30  来源:51CTO  作者:

撰稿丨千山

很早就有人问:JetbrAIns 出了那么多集成开发环境(IDE),诸如IDEA、CLion、PyCharm、phpStorm、GoLand、WebStorm等等,为什么不能整合成一个IDE,一招通吃呢?

显然Jetbrains有自己的考量。时至今日,Jetbrains依然坚持自己的产品路线:给每种语言打造一个“家”。

最近,JetBrains瞄上的是Rust,针对这门编程语言新贵,它推出了一个名为RustRover的集成开发环境。官网显示,这款IDE目前还在抢先体验计划(Early Access Program)中,大家可以免费下载使用并提供反馈。

此前或许很难想象,专为Rust打造的IDE应该是什么样子。如今RustRover就给出了其中一个答案。

一、插件还不够吗?为何押注专用IDE

以前,JetBrains只为Rust提供了 IntelliJ Rust 插件。Rust 的其他插件包括Rust-analyzer和 RLS。当然也有支持Rust的文本编辑器,但RustRover是第一个转为Rust而设计的IDE。

IDE 通常包括代码编辑器、调试器、编译器和其他功能,以帮助开发人员编写、测试和部署软件。RustRover的开发人员倡导者Vitaly Bragilevsky介绍说,专用IDE是编程语言成熟的一个重要里程碑。

为什么要在当前这个节点选择Rust呢?Bragilevsky在回复外媒采访时谈到:“以前,在我们看来,插件就足够了,但后来我们观察到Rust社区及其生态系统发生了一些变化。社区的状态说服了我们,我们真的需要它(独立的Rust IDE)。”

一个显著趋势是:Rust 社区正在扩大。

JetBrains 的研究发现,接受调查的开发人员中有56%在过去六个月中开始采用 Rust。另据《SlashData 23 届开发者国家状态报告》,估算Rust开发者数量已增长至280万。该报告还显示,这一数字在过去两年中增加了两倍,使其成为增长最快的开发者社区之一。

考虑到当前的技术趋势以及该语言不算很长的发展史,Rust的潜力是令人期待的。在此背景下,JetBrains决定押注Rust。

与VS Code不同,JetBrains向来提供与特定编程语言和技术配合使用的专用IDE。比如,WebStorm是大家熟悉的JAVAScript开发工具,PyCharm是支持Python/ target=_blank class=infotextkey>Python 的IDE,CLion是专为开发C及C++所设计的跨平台IDE,GoLand是支持编写Go的IDE,RubyMine 是为Ruby和Rails开发者准备的 IDE。

那么这款面向Rust开发者的IDE又有哪些特点呢?

二、专为Rust而设计,预览阶段与 IntelliJ IDEA Ultimate兼容

有开发者提到,针对Rust的IDE并不容易做。主要原因有二:其一,很多其他语言运行时暴露出来的问题都需要在Rust编译时提前暴露出来,这部分检查压力自然而然会转移到IDE上。其二,不同语言有其不同的语法特性。对于Rust来说就是所有权和生命周期。

就官网信息来看,RustRover 目前支持 Rust、Cargo、TOML、Web 和数据库技术,以及 IntelliJ IDEA 的所有功能,包括 VCS 集成。其主要功能特点表现在:

在代码编写方面,RustRover可以通过代码补全、代码生成、实时分析和快速修复、实时模版等方法来提高编码效率。

在测试、运行、调试方面,可以运行单个测试、测试模块或项目中的所有测试。失败测试支持跳回相关代码,便于开发人员找到问题所在。

在Web程序开发方面,可以使用内置的HTTP客户端发出 HTTP 请求并分析响应。虽然Rust 是一种后端语言,但 RustRover也为前端技术和数据库提供支持,提供与前端开发的无缝集成。

在项目管理方面,RustRover与Cargo 完全集成,并提供代码洞察帮助编辑TOML文件。允许开发人员直接在IDE中调用Cargo命令。

在团队协作方面,实时编码,并支持直接从 IDE 与他人交谈。使用Git和Github工作,支持探索提交和拉取请求、创建分支和查看代码。

当下,RustRover 可以在windowsmac OS 和linux 上运行。因为还在Early Access Program阶段,所以感兴趣的开发者可以免费试用。至于什么时候会发布稳定版本,尚无定论,不过官方回复“计划将产品的公开预览持续到最晚2024年9月”。

因为没有公开路线图,所以RustRover未来还会推出哪些具体功能依旧是个迷。另外,JetBrains承诺:“预览阶段,RustRover 的插件版本将与 IntelliJ IDEA Ultimate 和 CLion 兼容。”至于正式发布后就不好说了,“我们将与 CLion 团队联系,确定在临近发布日期时CLion的Rust插件的可用性选项。”

三、放弃开源Rust插件,社区褒贬不一

对于这款新产品,除了好用与否,价格如何自然是用户关心的焦点。对此,JetBrains给出的答案是:尚在研究中。不过肯定的是,“RustRover 将是以订阅制出售的商业产品,与我们的其他 IDE 类似,具有能够反映其实际价值的公平定价结构”。

图源:https://www.jetbrains.com/rust/图源:https://www.jetbrains.com/rust/

另外值得关注的是,随着RustRover的出现,现有开源Rust插件也会受到影响。

PhpStorm 的开发者Kirill Smelov公开发文写道:“虽然现有插件仍然会在Marketplace和GitHub上免费提供,但在未来,我们将把我们的努力投入到RustRover中,它是闭源的。对于现有的开源插件,我们将尽最大努力保持与新版本IDE的兼容性,但我们不会修复错误或添加新功能。”简言之,开源插件被弃用,不再受JetBrains 官方支持。

对于RustRover的种种动态,开发者们也表现出了两极分化的反应。

Reddit论坛的相关议题下,有人表达了这样的诉求:“我真的希望他们允许RustRover作为插件安装在IntelliJ中。我既买不起几个IDE许可证,也不想维护好几个IDE。”

图源:Reddit图源:Reddit

 

在不满者的声音中,也有人表示:不仅仅是钱的问题。

“每种编程语言都有1个IDE,这非常丑陋。甚至苹果也没有这样做。”“没有人说它应该是免费的。我要说的是,我不想要另一个IDE,只需在我现有的IDE中给我插件即可。从消费者的角度来看,每种语言都有一个IDE的方法是可怕的。”

此外,也有人显露出隐隐的担忧。“链接页面上的常见Q&A说,它将在预览阶段与IDEA Ultimate兼容。没有明确说发布后。”

不过,对RustRover的出现表示支持和欢迎的开发者也不在少数。理由则主要集中于以下几点:

1、不必将所有内容都塞进 IntelliJ。更喜欢针对特定语言量身定制的单独 IDE。

2、不同语言的生态系统差异很大。IDE 不仅仅是一个文本编辑器。

3、对于专业人士来说收费非常合理。如果你不是专业的软件开发人员,那么有适合业余爱好者的工具。

4、乐意为JetBrains花钱。本身产品质量和售后服务都非常好,可以节省很多时间,性价比相当高。

四、是VS Code,还是JetBrains

争议仍在继续中。或许只有到RustRover正式发布后,JetBrains这次的决策是否成功,才能显露端倪。但在开源又免费的VS Code的冲击下,JetBrains仍能存活至今,显然不仅仅是运气。

在多数人的普遍印象中,VS Code 最大的特点就是完全免费,而且可以在线安装各类开发工具,调试插件等等。任何编程语言在 VS Code 中都可以简单且快速地启动和运行,所以大家更倾向于称它为“编辑器”。

相对来说,JetBrains 在功能上更标准更专业,但对用户,尤其新手来说似乎包含了很多不合理的初始设置。在两个为不同使用场景设计的IDE之间做切换,付出一些学习的时间成本不可避免。

VS Code相当轻巧,具有高度可配置性和可扩展性,但是没有很多非常深入的功能,且部分依赖第三方扩展来提供更深入的功能;JetBrains为一种特定语言显式构建的IDE上工作,团队投入了大量资源来支持一种语言及其所有相关的工作流程,扩展性却较低,受支持的语言本身也具有很深的可配置性。

在新一代程序员中,VSCode受到了极大的欢迎。尽管如此,JetBrains还是有坚定的拥趸。去年,Blankly的首席工程师在用了五年VS Code后,转而切换到JetBrains 生态系统,甚至专门为此撰文解释了理由。

首先,在代码检查和代码重构上,JetBrains 具备优秀的Linting工具和无副作用的重构能力。“如果代码分解和重构对你和你的工作流程很重要,那么,JetBrains是更好的选择。”

再者,在调试上,JetBrains 比 VS Code 略胜一筹。“因为JetBrains 可以直接在变量声明的边上直接显示变量值,这使得跟踪大量变量的时候会比较容易管理。”

然后,在 Git 集成上,各有千秋,只是个人喜好不同。“例如,在解决合并冲突的时候,相对于 VS Code 将冲突文件堆在一个文件中显示的方式,我更喜欢 JetBrains 将冲突文件分开显示的方式。”

最后,在团队协作方面,所有 JetBrains IDE 都提供了大量选项来与他人共享代码并实时协作。Code With Me功能允许你直接在 IDE 中查看其他人的项目,并使用他们的开发环境,

总而言之,JetBrains固然收费,但其功能性的确有其特有的价值。以IntelliJ IDEA Ultimate为例,按照去年10月开始生效的新政策,订阅价为首年169美元,有需要的时候也可以考虑试一试。

参考链接:

https://www.jetbrains.com/rust/

https://thenewstack.io/dedicated-ide-for-rust-released-by-jetbrains/

https://www.reddit.com/r/programming/comments/16htf7m/jetbrains_rustrover/

https://blankly.finance/vscode-vs-jetbrains/



Tags:Rust   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
在Rust中使用Serde的详细指南
在处理HTTP请求时,我们总是需要在一种数据结构(可以是enum、struct等)和一种可以存储或传输并稍后重建的格式(例如JSON)之间来回转换。Serde是一个库(crate),用于高效、通用地...【详细内容】
2024-03-26  Search: Rust  点击:(15)  评论:(0)  加入收藏
Rust 写脚手架,Clap你应该知道的二三事
有感而发最近,在和前端小伙伴聊天发现,在2024年,她们都有打算入局Rust学习的行列。毕竟前端现在太卷了,框架算是走到「穷途末路」了,无非就是在原有基础上修修补补。所有他们想在...【详细内容】
2024-03-11  Search: Rust  点击:(20)  评论:(0)  加入收藏
前端开始“锈化”?Vue团队开源JS打包工具:基于Rust、速度极快、尤雨溪主导
Vue 团队已正式开源Rolldown —— 基于 Rust 的 JavaScrip 打包工具。Rolldown 是使用 Rust 开发的 Rollup 替代品,它提供与 Rollup 兼容的应用程序接口和插件接口...【详细内容】
2024-03-09  Search: Rust  点击:(11)  评论:(0)  加入收藏
Rust中的数据可视化指南
可视化是数据分析和解释的一个关键方面。虽然Rust主要以其性能和安全特性而闻名,但它也为数据可视化提供了强大的工具。在这个全面的指南中,我们将深入研究Rust中的数据可视化...【详细内容】
2024-03-07  Search: Rust  点击:(29)  评论:(0)  加入收藏
如何在Rust中操作JSON,你学会了吗?
sonic-rs ​还具有一些额外的方法来进行惰性评估和提高速度。例如,如果我们想要一个 JSON​ 字符串文字,我们可以在反序列化时使用 LazyValue​ 类型将其转换为一个仍然带有斜...【详细内容】
2024-02-27  Search: Rust  点击:(47)  评论:(0)  加入收藏
记一次Rust内存泄漏排查之旅
在某次持续压测过程中,我们发现 GreptimeDB 的 Frontend 节点内存即使在请求量平稳的阶段也在持续上涨,直至被 OOM kill。我们判断 Frontend 应该是有内存泄漏了,于是开启了排...【详细内容】
2024-02-27  Search: Rust  点击:(12)  评论:(0)  加入收藏
Rust 最受欢迎的这些库
今天分享主题是,关于一些值得注意的 Rust 库,这些库可以根据它们的功能和在编码中的受欢迎程度进行选择。什么是 Rust 库?在 Rust 中,常被称为 “crate” 的库,是一个打包的单元...【详细内容】
2024-02-19  Search: Rust  点击:(50)  评论:(0)  加入收藏
异步Rust:构建实时消息代理服务器
在本文中,我们将深入研究使用Rust构建实时消息代理服务器,展示其强大的并发特性。我们将使用Warp作为web服务器,并使用Tokio来管理异步任务。此外,我们将创建一个WebSocket客户...【详细内容】
2024-02-01  Search: Rust  点击:(57)  评论:(0)  加入收藏
在 Rust 编程中使用泛型
本文的内容将涉及泛型定义函数、结构体、枚举和方法, 还将讨论泛型如何影响代码性能。1.摘要Rust中的泛型可以让我们为像函数签名或结构体这样的项创建定义, 这样它们就可以...【详细内容】
2024-01-09  Search: Rust  点击:(89)  评论:(0)  加入收藏
什么是Rust语言 ,特点是什么,跟其它语言对比有什么优势
什么是RustRust是一种系统编程语言,旨在提供高性能和安全性。它是由Mozilla和其开发社区创建的开源语言,设计目标是在C++的应用场景中提供一种现代、可靠和高效的选择。Rust的...【详细内容】
2024-01-09  Search: Rust  点击:(204)  评论:(0)  加入收藏
▌简易百科推荐
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(5)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(12)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(8)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(10)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(8)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
Kubernetes 究竟有没有 LTS?
从一个有趣的问题引出很多人都在关注的 Kubernetes LTS 的问题。有趣的问题2019 年,一个名为 apiserver LoopbackClient Server cert expired after 1 year[1] 的 issue 中提...【详细内容】
2024-03-15  云原生散修  微信公众号  Tags:Kubernetes   点击:(6)  评论:(0)  加入收藏
站内最新
站内热门
站内头条