zoukankan      html  css  js  c++  java
  • 【高软作业2】:Java IDE调研分析

    一 序言

        随着软件项目开发需求的增多,拥有一款优秀的、顺手的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。
    • 配置信息线上同步。每次重新安装软件都要重新配置一遍,这样很烦。可以像众多浏览器一样,让用户登陆账号,然后记录用户的配置信息(快捷键、插件等),等用户换了一台电脑,安装该软件后可以马上得到同步。
  • 相关阅读:
    3.4.4 反射和泛型
    4.4.2 空合并操作符让比较不再痛苦
    NPOI导出EXCEL 打印设置分页及打印标题
    20、异常和状态管理
    14 字符字符串和文本处理
    15、枚举类型和标志位
    Oracle 数据库连接的一些坑
    17、委托
    《山鬼·九歌》——屈原
    每周一卦测感情,还是这么凶
  • 原文地址:https://www.cnblogs.com/southday/p/9688667.html
Copyright © 2011-2022 走看看