一 序言

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

二 简介

 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 IDEA

  • 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 Text

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

4. 版本发布史

我从官网中获取各IDE版本发布历史,统计在一张表上,由于发布规格不一样,所有只用了数字代号来表示。如下:

从上表可以看出:

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

三 比较

1. 使用前准备

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

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。
  • 配置信息线上同步。每次重新安装软件都要重新配置一遍,这样很烦。可以像众多浏览器一样,让用户登陆账号,然后记录用户的配置信息(快捷键、插件等),等用户换了一台电脑,安装该软件后可以马上得到同步。

【高软作业2】:Java IDE调研分析的更多相关文章

  1. 【高软作业4】:Tomcat 观察者模式解析 之 Lifecycle

    一. 预备 如果你是Windows用户,使用Eclipse,并且想自行导入源码进行分析,你可能需要:Eclipse 导入 Tomcat 源码 如果你已遗忘 观察者模式,那么你可以通过该文章回顾:设计模 ...

  2. 【高软作业3】:原型化系统 DevTools

    原型化系统:DevTools       密码:lcx 1. 这是一个什么样的平台? DevTools,可译为:开发者工具库.初衷是聚集各类开发工具,方便开发者获取:此外,大家可以分享自己的工具库与工 ...

  3. Java IDE选择,常用Java IDE排行榜

    Java IDE众多,java开发主要用.最多用.国内较流行.本人常用的java IDE如下: 开发java大项目的IDE一般都用eclipse或netbeans(几乎我所在的公司都是在用eclips ...

  4. 《ABCD组》第四次作业:项目需求调研与分析

    <ABCD组>第四次作业:项目需求调研与分析 项目 内容 这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https:// ...

  5. 【1414软工助教】团队作业10——复审与事后分析(Beta版本) 得分榜

    题目 团队作业10--复审与事后分析(Beta版本) 往期成绩 个人作业1:四则运算控制台 结对项目1:GUI 个人作业2:案例分析 结对项目2:单元测试 团队作业1:团队展示 团队作业2:需求分析& ...

  6. 阅读作业2&CI/CD调研

    说明 项目 内容 这个作业属于哪个课程 2021春季软件工程 (罗杰 任健) 这个作业的要求在哪里 个人阅读作业#2 我在这个课程的目标是 初步获得软件工程师的能力 这个作业在哪个具体方面帮助我实现目 ...

  7. 性能分析之-- JAVA Thread Dump 分析综述

    性能分析之-- JAVA Thread Dump 分析综述       一.Thread Dump介绍 1.1什么是Thread Dump? Thread Dump是非常有用的诊断Java应用问题的工 ...

  8. 常用 Java 静态代码分析工具的分析与比较

    常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...

  9. 最好的Java IDE之争:Eclipse PK IntelliJ IDEA

    话说,好马配好鞍,一个好的工匠,必定要有一套好的工具才能打造出最好的工艺给大家.之前,Plumbr团队里的所有成员都使用Eclipse编辑器,而如今,大家都成为IntelliJ IDEA用户.那么,到 ...

随机推荐

  1. WinForm开发(4)——使用Visual-Studio-2010-打包安装程序

    打包程序: 1,解决方案—右键菜单“添加”—新建项目—其他项目类型—安装和部署—Visual Studio Installer—安装项目,输入名称Setup1,点“确定” 2,添加开始程序中的文件夹: ...

  2. Hibernate学习(五)

    自关联测试案例 1.创建表 drop table if exists t_category ; create table t_category ( id ) primary key , name ) ...

  3. MSP430 CCS6.2无法启动仿真

    前几天在淘宝买了个msp430的仿真器 因为熟悉eclipse的开发环境,所以选择用ccs6.2进行开发 拿到手的时候,仿真器的固件是v2版本的 对新版本的iar和ccs都不支持 随后我使用Lite ...

  4. Hive的学习之路(理论篇)

    一.Hive介绍 Apache官网给出的logo,一半是Hadoop大象的头,一半是蜜蜂的身体,也是寓意着它是基于Hadoop,哈哈,纯属个人理解,进入正题. Hive是基于Hadoop的一个数据仓库 ...

  5. 一次从Github向Gitee迁库踩坑记录

    先上结论:gitee的lfs功能收费,直接从github迁移包含lfs管理的文件会出错,配置lfs.url即可解决问题 Q: 为什么要迁库呢? A: github访问太慢了,不然我也不想费这个功夫! ...

  6. ZkApi的方法跨域访问ZkResource的静态资源文件出现的问题

    问题:ZkApi的方法跨域访问ZkResource的静态资源文件出现下面的情况 解决方法: cd /usr/local/apache/conf/vhost vim .conf 将上面的文件php_ad ...

  7. 操作系统OS - 重装Windows7卡在completing installation

    1. shift + f10 2. cd oobe 3. Msoobe

  8. HashMap中推荐使用entrySet方式遍历Map类集合KV而不是keySet方式遍历

    我们先来做一个测试 public class HashMapTest { private HashMap<String, String> map = new HashMap<> ...

  9. selenium webdriver 屏幕滚动

    //山寨法 String setscroll = "document.documentElement.scrollTop=100"; JavascriptExecutor jse= ...

  10. SpringBoot + redis + @Cacheable注解实现缓存清除缓存

    一.Application启动类添加注解 @EnableCaching 二.注入配置 @Bean public CacheManager cacheManager(RedisTemplate redi ...