和其他答主一样,首推IntelliJ IDEA,包括其他的Python、前端开发、PHP、Go等等都推荐使用JetBrains全家桶,这么多人都在推荐,肯定是有道理的。IntelliJ是收费的,推荐有能力的去购买服务。如果是学生的话则可以使用公开的授权服务器(https://www.imsxm.com/)或者自己搭建授权服务器,或者使用EDU邮箱获取一年免费激活码(http://www.bewindoweb.com/169.html)。
三款IDE对比这里主要对比三款经典IDE:Eclipse、MyEclipse、IDEA。
(1)官网对比
看看官网的审美差别吧,你就能大概知道这些软件背后的UI也会是什么类型:
Eclipse:开源软件典型界面,简单、单调,不花钱。(https://www.eclipse.org/downloads/)
MyEclipse:还活在上个世纪,丑到了一定境界,老一辈最喜欢的深蓝庄重颜色。(https://www.genuitec.com/products/myeclipse/)
IDEA:90后,优秀的配色,独特的UI交互。(https://www.jetbrains.com/idea/)
当然它以前的logo也是很丑的(如下图),这是后来设计师重新设计的,但至少人家努力了。
(2)使用对比
相信所有人最开始学JAVA都是老师推荐的Eclipse,因为开源免费。Eclipse确实功能强大,而且有很多插件,但是操作并不人性化。界面也很丑陋。Eclipse的独特之处在于,你想要什么功能,都可以自己去找插件,它都能支持,自己去配置就行。一项一项配置下来,程序还没开动,人先累崩了。不同的插件还有不同的交互方式、一些特殊的处理,你都需要铭记在心,一不小心点到个不同的view(比如切换到了Hadoop的开发界面),你就不知道怎么点回去了,要查半天资料。
然后时代变化,开始学JAVA WEB,最开始用JSP+Servlet,后来用Struts+Spring+Hibernate来搭建Web工程,就开始使用MyEclipse了,因为它有Java Web一些独特的东西,比如自动根据类的属性生成Get/Set方法,不用手动一个一个去写,当时觉得好高级呀。然而界面一样地丑。
再后来偶然接触到JetBrains全家桶,只要你用一次,你就会想用亿次。
说说它的好处吧:
完全无需担心点错
这就是IDEA人性化的地方,它知道你的想法。
比如在接口的左侧有个按钮,画了一个向下的箭头,哪怕你第一次使用,你也八九不离十能够猜到点击它可以看到有哪些类实现了这个接口。
比如右上角有一系列启动按钮,哪怕你第一次使用,你也知道哪个是开始,哪个是DEBUG,哪个是停止,应该点哪里去配置启动参数。
比如你意外地双击类的名字把整个编辑界面全屏了,左侧的project树形结构没有了,一般的IDE都会让你重新选择【视图】→【Project】来把左侧的窗口找回来,IDEA知道你想什么,你想再双击一次让它恢复对不对!是的,再双击就恢复了。
还有很多细节,几乎0成本上手。
强大的生态支持
你想用Maven 3,它支持,而且还能编辑POM文件的时候自动去更新;
你想用Lombok,它支持,只需要简单装一个插件,就可以一个注解替代Get/Set/构造方法/日志/ToString/HashCode的冗余代码编写;
你想用Docker,它支持,能够自动识别Dockerfile;
你想写YML,它支持,还能帮你排除严格的语法错误;
你想用Git,它支持,还能帮你图形化地切换分支;
你想用Spring全家桶,它支持,还能帮你扫描哪些类没有写Component注解
你想用SSH自动同步代码到云上去,它支持,还能选择每次Ctrl+S保存一次就同步一次。
不管你想用什么最新的技术,它都支持,甚至能够帮你把关系型数据库的关联用图画出来。
就算你想用IDEA写Lua程序,它都能搞定……
强大的基础功能IDEA还有JetBrains提供的全家桶基础功能。
比如你修改一个类的名字,它会自动帮你扫描哪些类用到了这个名字,让你选择是否需要一起都改了。
比如你要找某条语句,直接Ctrl+Shift+F在整个项目查找,不用每个页面去翻,哪怕写在注释里也能找到。
比如你新New了一个List,它会自动补全你想要命名为XXXXList,还是XXXXs,还是什么,供你选择,如果没有特殊需求,你一个回车就能完成这条语句的编写了。
你按住Ctrl,就能翻看每个类的具体实现。
你选到了依赖库的代码,它会提示你不应该修改依赖库的代码,防止你错误地修改了库。
你可以在上面编写JAVA DOC的注解,它会自动解析编写的类并上色,如果你JAVA DOC编写的参数和具体的方法参数不对应,还会提示你有语法问题:
如果你写了太多重复语句,它会提示你是否应该写成一个方法来调用。
还能够支持查看Test的覆盖率。
自动补全好用到你颅内高潮,想站起来给它鼓掌……
你还可以自定义注释,在编写的时候自动生成一些注释。
这些功能是全家桶都支持的,只要用熟一个,其他的都会用了,交互逻辑一致。
好看的界面
这些都不说了,都能看出来。
IDEA的配色网上一抓一大把(http://www.riaway.com/theme.php?page=3)
如果你觉得太麻烦,喜欢偶的配色的话(偶是参考之前用VS的习惯配置的颜色,比如字符串和数字用黄色,类型用蓝色,变量用白色,其余关键字统一绿色,为了区别方法调用和方法定义,定义的时候用的紫色),关注偶后私信“IDEA配色”,就会得到偶的IDEA配色方案下载地址。
总结不管怎样,不要说什么自己觉得好用的才是最好的,IDEA就是JAVA最好的IDE,没有之一。IDEA做的就是大家一直想做的事情,比如大家总是想这个功能不好用,那个界面不好看,只是一直在吐槽,却没有人动手去做一个又好用又好看的IDE,这一切JetBrains帮大家做了,把其他所有IDE的缺点都改掉了,提供了所有想要的功能,你能吐槽IDEA的点少之又少。
至于C到底用Visual Studio还是用JetBrains系列,倒是要好好考虑下了~