【高软做业2】:Java IDE调研分析

一 序言

    随着软件项目开发需求的增多,拥有一款优秀的、顺手的IDE(Integrated Development Environment)对程序员来讲显得格外重要。本文就Java程序开发,选择了3款IDE来作调研分析,其中两款比较有表明性的是:Eclipse、IntelliJ IDEA,另一款是我我的比较喜欢的轻量级编辑器:Sublime Text  3。下面是这些工具的下载地址:html

二 简介

 1. Eclipse前端

  • Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,如今它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。
  • 从2006年起,Eclipse基金会每一年都会安排同步发布(simultaneous release)。 每一个版本一般在6月份发布,并在9月份(* .1),12月份(* .2)和3月份(* .3)发布后续更新版本。在Neon(4.6)以前,每一个发行版在9月份(SR1)和次年2月份(SR2)发布了两个服务版本。

2. IntelliJ IDEAjava

  • IntelliJ IDEA是一种商业化销售的Java集成开发环境(Integrated Development Environment,IDE)工具软件,由JetBrains软件公司(前称为IntelliJ)发展,提供Apache 2.0开放式受权的社区版本以及专有软件的商业版本,开发者可选择其所需来下载使用。
  • 最第一版于2001年1月时推出,当时是少数使用前阶代码浏览及代码重构的Java集成开发环境之一。在2010年的Infoworld报告中,比较当时市面上的主流Java集成开发环境,包括:Eclipse、IntelliJ、NetBeans、JDeveloper,IntelliJ得到该媒体实测中的最高评比。

3. Sublime Textgit

  • Sublime Text 是一个代码编辑器,由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具备丰富扩展功能的Vim。
  • Sublime Text 为收费软件,建议有能力的人付费使用,以支持开发者。不过不购买也能够一直使用。

4. 版本发布史程序员

    我从官网中获取各IDE版本发布历史,统计在一张表上,因为发布规格不同,全部只用了数字代号来表示。以下:github

    从上表能够看出:编程

  • Eclipse发布比较稳定,每一年都会出一个版本(包括后序更新版本)。
  • IntelliJ IDEA出现的最先,前期发布稳定,后期版本迭代很快。(我的以为201五、201六、2018这3年发布的版本号和发布时间有点混乱,但官网就是这么写的)
  • Sublime Text出现的最晚,Sublime Text 2在2013年后就没有更新,转向了Sublime Text 3。其发布的显著特色就是:更新快!

三 比较

1. 使用前准备vim

    不像Eclipse和IntelliJ IDEA,Sublime Text 3初始是一个文本编辑器,要让它变成Java IDE须要安装些插件。教程可参考:https://blog.csdn.net/coderbean/article/details/50582624windows

2. 功能对比浏览器

    注:我并非这3款IDE的资深用户,下面所列举的功能只是基于我我的使用经验所总结的,而事实上它们具有的功能要比我列举的更全面。对于模糊不清的东西,我也尽可能去查阅资料和亲自实践来确保其正确性,即便是这样,依旧会有错误的地方,请谅解。

    一样是✔,但性能可能不同,这里我不对各功能进行性能测试。(时间成本过高)

    从上表能够看出:

  • 若是要开发中大型的Java项目(如:JavaWeb项目),仍是选择像Eclipse、IntelliJ IDEA这类重量级的IDE。Sublime Text 3虽然能够经过安装各种插件来构造一个IDE,但这过程过于繁琐,并且构造好的IDE所具有的功能估计没有上述两款的全面。
  • Eclipse和IntelliJ IDEA的功能都很全面,看起来IntelliJ IDEA更胜一筹。“智能代码”能够帮助程序员写出更加精简和高效的代码,而“代码排版定制”能够打造本身的代码排版风格。

3. 占用资源

    好多网友评价Eclipse太卡,而IntelliJ IDEA吃配置。有朋友回答:“IDEA使用的是内存空间,会把创建的索引都保存在内存中,而实际占用的CPU少;Eclipse使用的内存空间少,但占用的CPU多,这就是致使Eclipse比较卡的缘由。”

    这里我列出这3款IDE在我电脑(Win10 )上运行时所占用的CPU资源和内存资源。测试代码就是:while (true) System.out.println("hello world!");我是让3个IDE同时运行测试代码,没有排除其余影响因素,并且测试也比较单一,因此测试结果并不严谨。能够很容易看出,IntelliJ IDEA 果真很占内存。

四 生态区

1. 用户支持

    良好的用户支持是促进IDE不断更新和完善的重要条件(我本身说的)。用户越多,软件Bug被发现的概率就越大,进而加速软件完善。此外,开发出的软件被众人确定和使用,这对开发者来讲是极大的知足和鼓舞。如此一来,就会造成软件迭代更新的良性循环。

    下面是我在网上搜索到的近期的一些统计数据(点击图片能够查看详细信息):

    从这些数据中,咱们能够看到:

  • 对于Java开发来讲,Eclipse和IntelliJ IDEA的支持度仍是很高的,而Sublime Text 我更倾向于把它定义为文本编辑器。
  • 在中国使用Eclipse的开发者占据更大的比重,多是由于种种缘由吧,好比:Eclipse开源且免费、项目组开发工具未更新、你们不肯跳出熟悉的环境去尝试新事物等。
  • Sublime Text 虽然在Java开发方面不行,但使用者也不少,这说明也有适合它的开发项目,好比:前端开发。

2. 开发者社区

  • Eclipse 是开源项目,拥有庞大的开发者社区致力于项目与插件的开发,其中不乏专业的开发者社区,如:IBM developerWorksOracle Eclipse 开发人员中心,还有来自世界各地的开发者齐聚GitHub为其贡献本身的知识和才华(Eclipse GitHub)。
  • IntelliJ IDEA
    • 旗舰版:因为旗舰版并不开源,开发者基本都是JetBrains公司的员工(JetBrains Product Support)。
    • 社区版:社区版是开源且免费的(只是功能不如旗舰版强大),除了JetBrains的员工外,还有来自各地的开源爱好者参与开发(JetBrains GitHub)。
  • Sublime Text 虽然不是开源的,但其社区却是很活跃(众多插件开发),如:官方论坛(Sublime Forum)SublimeText GitHub 等。

 五 结尾

1. 问:你第一次用这些软件是何时?当时是怎么获得它们的?你如今还在使用它们吗?

  • 第一次使用Eclipse是大一下学期,当时因为课程须要,因此下载了该IDE(官网下载)。
  • 第一次使用Sublime Text是大二的时候,当时看到同窗在他的Mac上调出这个软件,而后就被这个软件的黑色主题和高亮语法吸引到了。因而我就去官网下载了(当时是ST2),顺便找了个注册码。
  • 第一次使用IntelliJ IDEA是在大四实习期间,只是出于好奇下载来试试看。也是去官网下载了旗舰版,而后在网上找了序列号,不过如今过时了。
  • Eclipse和Sublime Text 我到如今还在使用,IntelliJ IDEA是在老师布置了做业后去下载来玩玩的。

2. 问:你如何精通这些软件?它们给你什么好处?坏处?

  • Emmmmm.... 对于这些软件的使用,我连熟悉都谈不上,更不用说精通了。我只是个知足于实现目前需求的小白用户。
  • 给个人好处,固然是为我编程开发提供支持。全面而强大的功能帮我节省了没必要要的时间,如:查看JDK源码、查找/替换、调试代码等。
  • 给个人坏处,“路径依赖”,就是当人们熟悉了一种事物后,就很难跳出那个熟悉的环境去接触新事物。我如今编辑基本都是vim模式,若是一个IDE不支持vim,我应该不会考虑使用它。正由于太依赖于vim,才致使我在百度搜索输入错字时,潜意识的就去按Esc,而后按daw。其实这就和你在和朋友QQ聊天时,时不时ctrl+s保存同样。

3. 问:这类软件再过10年、20年还会存在吗,为何?

  • 再过10年,我以为还会存在的,由于人工敲代码这种形式的编程还存在,因此IDE也会存在。
  • 再过20年,我不肯定。即便存在,编程形式和如今应该也有很大的不一样。会不会在一些领域,咱们把全部可能的工做都模块化,到时候直接配置便可?或者是人工智能编程?语义识别(语音编程)?

4. 问:面向将来,你以为这些软件还需作哪些改进?

  • 外观,要符合程序员的审美主题;内在,功能强大、运行高效、灵活配置;能开源的尽可能开源
  • 结合人工智能、机器学习,打造个性化IDE。就像输入法能够把你经常使用的字词放到前面,根据你的输入习惯来猜想你要输入的字同样,若是一款IDE能够采集用户操做信息,进行分析,而后给出适合该用户的反馈,变成该用户的专属IDE。
  • 配置信息线上同步。每次从新安装软件都要从新配置一遍,这样很烦。能够像众多浏览器同样,让用户登录帐号,而后记录用户的配置信息(快捷键、插件等),等用户换了一台电脑,安装该软件后能够立刻获得同步。
相关文章
相关标签/搜索