再见,Eclipse。
阅读本文大概需要 5 分钟。
来源:cnblogs.com/ouyida3/p/9901312.html
最近,改用了 IDEA,同事都说我投敌了。当然,这些同事都是和我一样的“老”程序员。不说毕业生,公司里的 90 后基本电脑都不会安装 Eclipse。
Eclipse的三足鼎立时期
开始我写 Java 程序,用的并不是 Eclipse,而是用的一款叫做 JBuilder 的工具。当时使用这个工具的时候,我已经觉得非常好用了,因为在此之前,我记得好像只是用个简单的文本工具来编辑。后来才发现,那些喜欢宣扬文本编辑器才能精通 Java 的“高手”真的有点不敢恭维,至少于我而言,一个好的工具太重要了。
并没有过了多久,我发现一款叫做 Eclipse 的工具,而且身边用的人还越来越多,于是我决定试一试。尝试的结果就是我发现它实在是太好用了,界面变得更漂亮之余,里面的功能感觉就是为程序员量身定做的一样,最激动人心的功能是他竟然支持源源不断的插件,而且这个插件还可以自己来编写。
Eclipse 2001 年由 IBM 创立,2003 年就成立了基金会,可惜国内在那个时代总归要慢一步,而我则更落后——直到 07、08 年才开始真正使用。《程序员》在 2006 年还出了一期专题——Eclipse 风暴。
那时,Eclipse、JBuilder、NetBean 三足鼎立的局面已经基本形成了。
Eclipse 称霸
再后来出现了更加厉害的 MyEclipse,它集成了所有常用插件,只要你一键安装完就啥都有了,通过它你基本上可以开发出 Java 的任何东西(虽然它不是免费的)。
慢慢地,JBuilder 已经没什么人再使用了;至于 NetBean,不知道是不因为处于国内还是我圈子太窄,身边用的人总是很少,倒是在国外翻译的技术书里经常和 Eclipse 一同出现。
重构的流行,让 Eclipse 更受青睐。熊节在《重构》译本里推荐 Eclipse,后来我亲眼看了他使用 Eclipse 纯键盘(基本不用鼠标)飞快地重构代码,有点傻了眼。后来背诵快捷键成了我的一项课题。
在接下来接近 10 年的日子里,就是它陪着我度过了漫长又有意思的编程生涯。虽然经常有人争论用简单版的 Eclipse 好还是用丰富的 MyEclipse 好,用丰富版的经常会嘲笑用简单的,什么都没有,什么插件都得重新来一遍,用简单版的又会鄙视使用丰富版的,什么插件都不会安装。
我曾经见过有一个同事,使用时对一切都滚瓜烂熟——每一个插件在文件夹下叫什么名字、应该删除哪些文件、应该放在什么地方、应该增加哪些配置、怎么安装怎么卸载都倒背如流,随后我也慢慢学会了这招。再后来插件安装,已经不需要这么麻烦了,只需要在市场上搜索再点击一下安装就可以了。但这些功能的改进并没有令其免除用户群慢慢转移的危机。
Intellij IDEA 横空出世
其实很久之前我就听说 IDEA 非常好用,说只要使用过后就不会在使用 Eclipse 了。还说 JetBrains 这家公司怎么这么懂 Java 程序员。但是,我实在找不到什么改变的理由,所以一直没有尝试使用。况且我还需要开发 C++、Python 这些语言,Eclipse 都有完善相应的版本插件支持。
其实在这段过程中,我也曾不断询问已经转向 IDEA 的同事,想知道它究竟特别/好在哪里,但没有一个同事能够清晰地回答我这个问题。大部分同事只是说就是很好用,你如果细细地问好在哪儿,他却说不出来。
还有一些同事确实列举了一些他认为更为好用的功能,但我听完之后会告诉他,其实这些功能 Eclipse 也有。还有一个同事更搞笑,用了两个月之后表示非常好用,然后我叫他把字体调大一些让我看看,他竟然说不知道怎么调——这些经历实在让我想不出什么要改变的理由。
但是契机出现在不久前的一次公司组织的培训,这几位培训不约而同的是都使用 IDEA 来培训。其实,工具的不同并对培训知识的吸收并没有太大影响,但我实在忍受不了我明明花了一个小时听培训,但是只听了 55 分钟的知识,剩余 5 分钟关于工具的使用技巧也应该吸收过来。再加之早就听说 Robert C Martin 也许已从 Eclipse 转向了这个工具,我终于决定要改变一下了。
改变第一天的安装过程非常顺利,官网提供免费版和试用版,我当然毫不犹豫地选择试用版,至于 30 天以后,咱们心照不宣——再说。安装过后当然是黑糊糊的一个界面,上面的所有按钮实在是非常陌生,我使用了 10 年的那些快捷键发现全部不好使了,我甚至连怎么导入一个现有的工程都不会了。
我有点受不了了,我受不了的不是对新知识的学习与掌握,而是效率迅速降低 20 倍,甚至一百倍。没办法,一个一个问题百度吧。大概过去了半天到一天,神奇的事情发生了,我竟然不再想继续用 Eclipse 了,甚至产生了一种如果没有 IDEA 一切会更麻烦的感觉。于是接下来的四天里,我开始越来越顺畅地编写起了我的代码。
对于只是使用了五天的,我来说,我说的什么,其实都只是一个新手的废话,但是我还是喜欢总结一下。
Eclipse 和 IDEA 哪个更好?
个人觉得 IDEA 确实比 Eclipse 要更好,但是它的好处并不主要是多了哪些功能,从功能的多少数量上来说,他们俩其实是差不多,IDEA 更优秀的关键点不过在于它在细节上更为人性化,做得更优秀而已。
比如配置 Tomcat,我竟然不用百度,自己尝试点点,就成功跑起来了,那一刻感觉它像是真的懂我的心一样。
开始使用的一些注意事项
如果你是刚开始编程,那就没什么关系,但是像我一样是用了 Eclipse 很多年的老程序员,那么快捷键一定会是一个障碍,但是 IDEA 已经做了很人性化的设置,默认的快捷键可以一键改成 Eclipse 的快捷键,但是我尝试后发现,虽然确实改变了大部分,但并不是百分之百,所以我放弃了。
还有就是对工程和模块要理解好,以前的 Eclipse 都是做工程的概念并没有模块的概念,所以你可以把很多的工程都导入进去,但是 IDEA 完全不一样,它只能导入一个工程,如果你要再导入另外一个工程,必须新开一个界面,当然你不用担心耗费内存的问题,已经优化好了。但是在一个工程里面你可以导入多个模块,其实这更适合我们平常的开发,因为 Maven 就是模块化的配置。
Tomcat 的设置也非常人性化,通过勾选 Tomcat 实例,就可以一个 Tomcat 多个工程使用了。当然,端口要不同,才能同时启动。
三个很常用的设置按钮:
Preperences
Project structure
Run configuration
常用的快捷键(Mac):
cmd+shift+f 全project或模块等查找某个字符串
cmd+shift+o 查找文件
cmd+0 查找类
cmd+f 本文件中查找字符串
cmd+x 删除一行
cmd+c 选中该行并且复制
alt+enter 自动提示错误修复
ctrl+alt+h 显示调用该方法的方法
cmd+7 显示该类的全部方法
cmd+alt+l 整理代码格式
ctrl+alt+o 整理import
shift+f6 重构rename
……
还有很多,基本都和 Eclipse 不同,但是我必须一个个“寻找”回来。
我喜欢的特色功能
DEA 默认下面显示了 teminal,很好用,现在我很少用 Mac 自带的终端(虽然 Eclipse 找找也有,但实在不好用)
右手边有个数据库连接,我现在也很少用 Navicat 和 MySQL Workbench 了
同样右边的 Maven 也很好用,不像 Eclipse 要右键,而且默认的还不齐全
JetBrains 确实是伟大的公司,后来我写 JS,也用了它的 WebStorm;写 Python 也用了它的 PyCharm 而不是 Eclipse 的 PyDev 了。
又断断续续用了一段时间之后,我发现它并没有想象中完美:
偶尔有些卡,毕竟太多东西放内存,而且也出现过闪退;
快捷键实在还有些记不住,有个快捷键要按四个键太难记了。有些个别功能感觉还是有点不如 Eclipse 方便,比如改字符集(也可能只是我不熟悉),断点调试也还不习惯;
也有很多功能真的要把 Eclipse 彻底忘记,比如重构 rename,IDEA 竟然默认把同名的都 rename 掉。我重构个我自己写的类的 get 方法,它把 map.get 的 get 也 rename 掉了,真的有点无语。不过习惯就好,总比漏了一些 rename 自己慢慢改好。
再见,Eclipse。
·END·
程序员的成长之路
路虽远,行则必至
本文原发于 同名微信公众号「程序员的成长之路」,回复「1024」你懂得,给个赞呗。
往期精彩回顾
再见,Eclipse。的更多相关文章
- eclipse再见,android studio 新手新手教程(一)基本设置
写在前面: 作为一个刚半仅仅脚踏入android开发的新手,在使用eclipse开发了两个自我感觉不甚成熟的商城类app之后.遇到了一些问题,总结为例如以下: 1,代码复用性. findviewByI ...
- eclipse再见,android studio 新手入门教程(一)基本设置
写在前面: 作为一个刚半只脚踏入android开发的新手,在使用eclipse开发了两个自我感觉不甚成熟的商城类app之后,遇到了一些问题,总结为如下: 代码复用性.findviewById,oncl ...
- Eclipse,到了说再见的时候了——Android Studio最全解析
转自:http://blog.jobbole.com/77635/ 去年的Google大会上,Google带给我们一个小玩具——Android Studio,说它是玩具,是因为它确实比较菜,界面过时, ...
- eclipse 再见,android studio 新手入门教程(三)Github(ignore 忽略规则)的使用
上传代码到github android studio里集成了上传代码到github的功能,所以使用上还是很简单的,设置里添加账号并测试,之后就可以很方便地上传代码到github了 如果你的项目是使用a ...
- eclipse再见,android studio 新手入门教程(二)项目的导入
上一篇博客介绍了AS的一些常用设置方法,当工具调教妥当后,自然就要开始项目的开发啦.从零开始新建一个项目,这个简单,不必多说,这篇博客会分享我从旧平台eclipse导入项目到AS的过程,以及遇到的一些 ...
- 。。。珍惜生命,远离Eclipse。。。
今天上午就这么过去了,我的人生中有这样一个半天,献给了一个叫做Eclipse的家伙!!!今天是周末,我本应该休息的,但是又犯贱了!!!我竟然主动要加班!!!本来是个很不错心情,现在很不开心!早上来做了 ...
- eclipse环境下,java操作MySQL的简单演示
首先先通过power shell 进入MySQL 查看现在数据库的状态(博主是win10系统) 右键开始,选择Windows powershell ,输入MySQL -u用户名 -p密码 选择数据库( ...
- eclipse集成Python开发环境
话说近期听说 Python 非常牛, 非常强大, 至于到底有多强大, 俺作为一枚菜鸟也就不好发表太多评价. 言归正传, 本文教你在eclipse中安装 Python 插件, 以下我们就跟着步骤一起做吧 ...
- 【.net开发者自学java系列】使用Eclipse开发SpringMVC(2)
大概熟悉了 Eclipse. 然后先上Spring MVC 官网看看. 可是英文太差?翻译咯.现在翻译可屌了,真高兴生活在现在科技发达的时代.活着在中国太美好了. 没出过国门就能看懂英文.我都崇拜自己 ...
随机推荐
- JavaScript 的内置对象和浏览器对象
JavaScript 中对象通常包括两种类型:内置对象和浏览器对象,此外用户还可以自定义对象. 在 ECMAScript 中,更精确的定义应该分为:本地对象.内置对象和宿主对象. 对象包含两个要素: ...
- 两种方法实现在HTML页面加载完毕后运行JS
JS默认方法: <script type=”text/javascript”> window.onload=function (){ /*代码区域*/ } </script> ...
- 【兼容调试】cffi library '_openssl' has no function, constant or global variable named 'Cryptography_HAS
重装cryptography就好了. conda uninstall cryptography conda install cryptography https://github.com/pyca/c ...
- Scala快速入门 - 基础语法篇
本篇文章首发于头条号Scala快速入门 - 基础语法篇,欢迎关注我的头条号和微信公众号"大数据技术和人工智能"(微信搜索bigdata_ai_tech)获取更多干货,也欢迎关注我的 ...
- Trunk 实现跨交换机 VLAN 通信
当网络中有多台交换机时,位于不同交换机上的相同VLAN的主机之间时如何通信的呢?我们使用Trunk实现跨交换机VLAN通信.还有以太网通道的操作哦. 实验拓扑 两台交换机直连,每台下面再连接两台VPC ...
- linux虚拟串口及远程访问
1. 虚拟终端概念 linux中有很多终端,如下简单介绍下各种终端或串口的概念. 1.1 tty:终端设备的统称 tty是Teletype或TeletypeWriter的缩写,中文翻译为电传打字机.电 ...
- static 关键字在java语言中的特性
一,将自己注入到一个静态变量中实现静态类,如下写法 以上方法的目的是要实现一个静态类,方便用类名获取对象实例,一般情况下调用普通方法需要对象实例.这对象要么new出来,要么spring的注入如下是 ...
- (安全之路)从头开始学python编程之文件操作
0x00 python学习路径 b站(哔哩哔哩)视频,w3cschool(详情百度),官方文档,各大群内获取资料等等方式 0x01 python的学习要点 open()函数:有两个参数,文件名跟模式, ...
- java 的任意进制间转换
直接上代码: public class Main { public static void main(String[] args) { // TODO Auto-generated method st ...
- Java调用Kotlin程序深度解析
异常: 在之前我们已经学习在Kotlin中的所有异常都是运行期的,而不像Java分为运行期和非运行期,下面用代码来演示一下,先建一个Java的异常: 然后在Kotlin中来调用一下该Java中的方法 ...