2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

我们为何放弃 Eclipse,投奔 IntelliJ IDEA

  • 2013-11-14
  • 本文字数:2347 字

    阅读完需:约 8 分钟

Nikita Salnikov Tarnovski plumbr 的高级开发者,也是一位应用性能调优的专家,他拥有多年的性能调优经验与 Java 开发经验。很长时间以来,Tarnovski 及 plumbr 的诸多开发者一直在使用 Eclipse 进行应用开发,不过随着时间的发展,现在 plumbr 的很多人都开始放弃 Eclipse,转而投向 IntelliJ IDEA 的怀抱。Tarnovski 也因此专门撰文谈到这个转型背后的原因,并详尽对比了 Eclipse 与 IDEA 的各项功能。

首先说一下背景:长久以来,我们 plumbr 的所有人一直都在使用 Eclipse 进行应用开发。不过现在在办公室放眼望去,我发现整个团队都变成了 IntelliJ IDEA 的用户。那么是什么促成了这种转变,让我们从免费的工具转而投向了每年需要花费 600 美金才能使用的工具呢?下面我就来谈谈这背后的几个原因,看过之后也许你也会开始考虑转变了。

一段时间以来,我的朋友 Anton Arhipov 一直在说服我使用 IntelliJ IDEA,一开始我压根就听不进去,直到有一次他使用了快捷键 ALT+ENTER 才真正触动了我。根据文档所述,这个快捷键貌似也没什么,只不过是提供了建议的快速修复而已。不过在这个特性背后的诸多 IntelliJ 特性却让我感到非常振奋。

索引。不知道 JetBrains 的那帮家伙在背后到底是怎么做的,它的索引真是太快了,并且支持不同的内容。快速索引的好处体现在几个不同的可用性特性上:

  • 在敲入代码时,警告就会立刻出现:在 Eclipse 中,你需要手动进行分析,不过在 IntelliJ 中,这种信息反馈却是即时的。
  • 代码完成与代码生成:由于非常快速的索引,这种支持的速度要快上几个数量级。我猜你们肯定都记得在使用 List 时,Eclipse 中那个臭名昭著的 java.awt.List 自动导入吧,Eclipse 花了好几年才消除这个 Bug。在使用 IntelliJ 时就绝不会遇到这种问题。
  • ALT+ENTER 提供的修复:这个特性真的非常棒,在很多场景下都提供了巨大的帮助,真是震到我了。有时,我甚至怀疑他们是不是在我旁边安插了一个亚马逊土耳其机器人监视我的输入——IntelliJ 给出的建议实在是太帅了。

语言支持。IntelliJ 在处理不同内容类型的方式上看起来是那么自然和统一。无论我使用 Java、JavaScript,还是 HTML 或是 JPA 查询,IntelliJ 提供的语法支持都是那么棒,并且我所执行的操作在各种语言间也是高度统一的。每次从 Java 切换到其他语言时,我都不需要学习新的快捷键。IntelliJ 提供的代码完成支持,特别是对 JavaScript 的支持是 Eclipse 力所不逮的,Eclipse 在这方面没法与 IntelliJ 相提并论。

透视图。实际上,IntelliJ 并没有提供什么透视图的概念。当我在处理不同的内容时,Eclipse 总是试图为我提供“最佳的透视图”。对于我来说,我看到的只是每次从开发切换到调试或是重构透视图时,屏幕的布局就会变得一团糟,Eclipse 每次这么做都会让我心烦意乱。IntelliJ 则针对操作提供了一个专门的与内容相关的窗口,这让我感到非常舒服,我也很喜欢 IntelliJ 的这种处理方式。

调试器。IntelliJ 的调试器快得没法说,我也不打算再使用 Eclipse 的调试透视图了。它所提供的特性集也很不错,我最喜欢的是“Smart step into”,这样如果一行中存在多个方法调用,我就可以选择进入到哪个方法中了。

支持。Eclipse 是由一个基金会提供支持的。这本身没什么问题,不过这个基金会的不同利益集团会使得管理与执行变得有些困难。对于我这样一个开发者来说,直接的结果就是看到 Eclipse 对于问题的支持要推迟几个星期,甚至不了了之。IntelliJ 则不存在这样的问题,我的问题总是能得到及时的回答,他们也不会互相扯皮。

下面我再列出几个最近发现的不错的小特性:

  • JPA 查询语法会在输入时得到纠正。这可以给我节省大量的时间,不用非得等到运行时才检查错误。
  • 属性文件集成。在属性文件中,我可以看到某个属性在源代码的哪个地方被使用了,还能快速检测出未被使用的属性。
  • 与不同浏览器的集成。为了测试 HTML,我可以从 IDE 中启动不同的浏览器,这样就不必再单独打开浏览器和测试了。
  • 从 IDE 中可以直接看到 CSS 颜色,因此无需再打开浏览器查看了。

我可以保证,在你 IntelliJ 一个月的试用期结束后就再也不想回到过去了。不过坦诚地说,我还漏掉了 Eclipse 的一个特性——“保存动作”。在按下快捷键 CTRL+S 时可以创建一系列的触发动作,比如说可以组织导入、完成代码格式化以及添加 @Override 注解,一切都是自动进行的,这一点我还没有在 IntelliJ 中发现。

虽然我们还没有度量从 Eclipse 转移到 IntelliJ 之后生产力是否有了提升,不过我们非常喜欢手头上的这个新工具。我们也深信,好的工匠需要用最好的工具才能创造出最棒的艺术品。

读者 Alexandro Blanco 给出了这样的留言:

我使用 Eclipse 有 8 年多的时间,前一阵转向了 IntelliJ 进行 Android 开发(Android Studio),现在在公司从事 Web 开发使用的是 NetBean。我要说的是,一旦突破使用上的障碍,这两款 IDE 都要好于 Eclipse。

读者 Pron 则说到:

我同时在使用 IntelliJ 与 NetBeans(很长时间以前就放弃了 Eclipse),很多时候我更喜欢 NetBeans。它更加漂亮、整洁、并且与 Gradle 集成度更好,这正是我急需的,不过 IntelliJ 对于 Clojure 则提供了完美的支持。

诸位 InfoQ 读者,相信国内的开发者还是使用 Eclipse 的居多。目前,占据主流市场的 Java IDE 有 NetBeans、Eclipse 与 IntelliJ IDEA,其中前两个是免费的,而 IntelliJ IDEA 则提供了免费的社区版与收费的旗舰版,社区版在功能上会有一些限制。国内也有一些公司采用 IntelliJ IDA 进行开发,还有些开发者使用过其中两种,甚至多种 IDE。那么你觉得从功能上、特性上、使用便利性上、速度上、以及更新发展等角度来看,哪个 IDE 是你最心仪的呢?原因有哪些?哪个 IDE 提供了其他 IDE 没有提供的优秀特性呢?对于多语言支持,哪个 IDE 又更胜一筹呢?欢迎各位读者一起讨论。

2013-11-14 01:0835140
用户头像

发布了 88 篇内容, 共 273.2 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

为什么财务团队要注重数据管理?

智达方通

企业管理 全面预算管理

揭秘 CDC 技术:让数据库同步快人一步

谷云科技RestCloud

数据传输 数据同步 ETL CDC 数据集成工具

腾讯会议AI功能用户量同比增长超150%

极客天地

RPA哪家强?权威榜单揭晓!

Techinsight

电信SD-WAN 在跨境线路方面的优势

宽炜网络

以数生智、以智驭数,矩阵起源产品发布会圆满落幕

MatrixOrigin

人工智能 AI 湖仓一体 多模态数据 AI-ready

最新 RPA 权威榜单出炉!排名对比,一文看懂谁在领跑市场

Techinsight

时序数据库 Apache IoTDB 毕业五周年,“对暗号”获取你的蛇年 T 恤!

Apache IoTDB

重要:Java25正式发布(长期支持版)!

王磊

鸿蒙5.0项目开发——V2装饰器@Event的使用

高心星

鸿蒙 装饰器 HarmonyOS5.0 V2装饰器 @Event

ADManager Plus:面向微软的全面活动目录管理解决方案

运维有小邓

AD域 AD域管理

Playwright MCP浏览器自动化教程

测吧(北京)科技有限公司

Java Agent 启动耗时性能评测排行榜

乘云数字DataBuff

腾讯集团副总裁李强:AI加速全球化竞争从规模扩张转向效率比拼

ToB行业头条

电商接口之电子面单API接口对接以及调用:以快递鸟为例

快递鸟

恒图科技×火山引擎:为全球用户打造智能创作新体验

新消费日报

金融保险行业 AD 域自动化管理解决方案

运维有小邓

AD域 AD域管理

解锁抖音商品详情API:从技术数据采集到商业变现的完整路径

tbapi

抖音商品数据采集 抖音API 抖音商品详情接口 抖音数据接口

快速搞定Dify+Chrome MCP:打造能操作网页的AI助手

测试人

局域网部署的团队协作工具推荐,助力高效办公

BeeWorks

即时通讯 IM 私有化部署

MySQL 31 误删数据怎么办?

伤感汤姆布利柏

Windows Defender防火墙配置错误与GPO:梳理关键点

运维有小邓

日志管理 日志审计 #日志分析

速卖通商品API实战:Python采集价格监控与选品分析系统

tbapi

速卖通API 速卖通商品详情接口 速卖通数据采集 速卖通数据挖掘

不仅仅是“局域网聊天”:BeeWorks 重新定义企业内网通信

BeeWorks

即时通讯 IM 私有化部署

OpenTiny NEXT 内核新生:生成式UI × MCP,重塑前端交互新范式!

OpenTiny社区

AI 前端 智能化 OpenTiny MCP

嘉银科技基于阿里云 Kafka Serverless 提升业务弹性能力,节省成本超过 20%

阿里巴巴云原生

kafka 阿里云 Serverless 云原生

【喜报】矩阵起源 2 款深度合成服务算法顺利通过国家网信办备案

MatrixOrigin

人工智能 AI 算力 AI-ready

【云栖大会】AI原生、AI可观测、AI Serverless、AI中间件,4场论坛20+议题公布!

阿里巴巴云原生

阿里云 云原生 云栖大会

【云栖大会】AI原生、AI可观测、AI Serverless、AI中间件,4场论坛20+议题公布!

阿里云云效

云栖大会

跨境数据传输:ETL如何处理时区与日期格式差异

谷云科技RestCloud

MySQL API 数据传输 数据同步 ETL

我们为何放弃Eclipse,投奔IntelliJ IDEA_Java_张龙_InfoQ精选文章