十年之前,IDE都是一个奢侈品;十年之后,易用的界面、强大的功能、飞快的速度已经不再能够触动Jolt奖评委们的眼球。现在的IDE应该带给人们一些更多的东西——更多的边际价值,这是JBuilder和Visual Studio们逐渐淡出Jolt视野的原因:它们提供的东西仍然很棒,但是已经不足以令人震撼。
Eclipse首先是一个功能强大的IDE。单就IDE(准确说,JDT)而言,它与JBuilder算是各擅胜场。在某些方面(例如对JSP和EJB的支持),JDT本身不如JBuilder,所以很多人对Eclipse持怀疑的态度。
Martin Fowler说软件开发的两种态度
(http://martinfowler.com/bliki/SoftwareDevelopmentAttitude.html)。大多数IDE选择了Directing Attitude,也就是说,在一个all-in-one的环境里提供用户需要的一切功能。如果你有新的需要,请告诉Borland,我们会考虑在下一个版本中加上一个feature——当然,也有可能不睬你,因为你的需要太偏门。但Eclipse选择了Enabling Attitude:它提供你一个开放的平台、一个平等参与的机会,以及一些需要遵守的总体规则,然后你可以尽情挥洒自己的才情,以Eclipse开发者们都想不到的方式来使用Eclipse。如果你有新的需要,不用客气,自己做个plug-in好了,那将是对整个Eclipse社群的贡献。
Eclipse每一部分的规划和设计都遵循三个重要原则:
- 邀请法则(Invitation Rule):只要可能,尽量邀请别人在你作品的基础上继续作出贡献。
- 公平竞赛法则(Fair Play Rule):对于一项功能,所有使用者遵守同一套规则,包括这功能的作者本人。
- 整合法则(Integration Rule):新的功能应该尽量与既有环境整合,提供统一的用户体验,而不要显得格格不入。
这三条法则保证整个Eclipse平台以一种“自由城邦”的方式生长,并且始终提供熟悉而一致的用户体验。实际上,大多数Eclipse的抱怨者仅仅是没有充分利用其他人的贡献。譬如JSP和EJB,Lomboz(http://sourceforge.net/projects/lomboz)已经提供了很好的支持。我甚至曾经找到过一个用于可视化开发JSR-168兼容的portlet的plug-in,相信这是其他任何一款IDE都不可能提供的。这是只有在Open Source社群才会出现的奇景。
另外,Eclipse的“微核心+插件”机制实际上为开发者提供了很多的可能性,唯一的局限只是你的想象力。譬如说,可以把整个Eclipse workbench作为desktop application的GUI基础,在上面开发自己的业务功能。甚至于,如果你不喜欢SWT,可以把Eclipse作为一个组件容器,把workspace作为资源容器,从这里开始做自己的GUI。
Enabling Attitude需要使用者具有相当的主观能动性——Eclipse提供你基本的功能和扩展的手段,你需要发挥自己的想象力和技术,与全世界的社群协作,把Eclipse变成你所喜欢的样子。如果你仅仅想要一个IDE,如果你不愿意在这里动脑筋,如果你没兴趣在这个开放的环境中施展技艺,那么你不需要Enabling Attitude也不需要Eclipse,JBuilder或许是更好的选择。
分享到:
相关推荐
JOLTS职位空缺率和NFIB小企业招聘计划指数这两个指标均创历史新高,说明企业招聘岗位数量大幅增加,但就业市场需求与实际就业人数之间仍然存在较大差距。 进一步分析,这份报告指出失业人口主要分布于以下几个方面...
现在需要访问JSON文件的用户代理添加了用于Windows脚本自动化的任务计划程序2021-03-19 [v0.11] 为即时广播添加了回测代码添加了迭代老式日期的代码将JOLTS数据添加到模型输入添加了用于诊断因子权重的格式化表格在...
基于springboot个人公务员考试管理系统源码数据库文档.zip
bimdata_api_client-4.2.1-py3-none-any.whl
numpy-1.20.2-cp39-cp39-linux_armv7l.whl
matplotlib-3.3.2-cp39-cp39-linux_armv7l.whl
bimdata_api_client-4.0.0-py3-none-any.whl
ta_lib-0.5.1-cp312-cp312-win32.whl
基于springboot的非学勿扰学习交流平台源码数据库文档.zip
基于springboot云平台的信息安全攻防实训平台源码数据库文档.zip
pillow-10.4.0-cp311-cp311-linux_armv7l.whl
论文描述:该论文研究了某一特定领域的问题,并提出了新的解决方案。论文首先对问题进行了详细的分析和理解,并对已有的研究成果进行了综述。然后,论文提出了一种全新的解决方案,包括算法、模型或方法。在整个研究过程中,论文使用了合适的实验设计和数据集,并进行了充分的实验验证。最后,论文对解决方案的性能进行了全面的评估和分析,并提出了进一步的研究方向。 源码内容描述:该源码实现了论文中提出的新的解决方案。源码中包含了算法、模型或方法的具体实现代码,以及相关的数据预处理、实验设计和性能评估代码。源码中还包括了合适的注释和文档,以方便其他研究者理解和使用。源码的实现应该具有可读性、可维护性和高效性,并能够复现论文中的实验结果。此外,源码还应该尽可能具有通用性,以便在其他类似问题上进行进一步的应用和扩展。
基于springboot+web的学生作业管理系统源码数据库文档.zip
论文描述:该论文研究了某一特定领域的问题,并提出了新的解决方案。论文首先对问题进行了详细的分析和理解,并对已有的研究成果进行了综述。然后,论文提出了一种全新的解决方案,包括算法、模型或方法。在整个研究过程中,论文使用了合适的实验设计和数据集,并进行了充分的实验验证。最后,论文对解决方案的性能进行了全面的评估和分析,并提出了进一步的研究方向。 源码内容描述:该源码实现了论文中提出的新的解决方案。源码中包含了算法、模型或方法的具体实现代码,以及相关的数据预处理、实验设计和性能评估代码。源码中还包括了合适的注释和文档,以方便其他研究者理解和使用。源码的实现应该具有可读性、可维护性和高效性,并能够复现论文中的实验结果。此外,源码还应该尽可能具有通用性,以便在其他类似问题上进行进一步的应用和扩展。
基于springboot网上书店源码数据库文档.zip
numpy-2.1.3-cp311-cp311-linux_armv7l.whl
基于springboot的校园消费点评系统源码数据库文档.zip
ta_lib-0.5.1-cp37-cp37m-win32.whl
Java高校学生信息管理系统源码 一、源码介绍 高校学生信息管理系统设计主要应用JAVA语言编程和mysql数据库连接等相关知识,需要熟练掌握Struts2、Spring、Hibernate基础 二、主要功能 高校学生信息管理系统设计主要应用JAVA语言编程和mysql数据库连接等相关知识,需要熟练掌握Struts2、Spring、Hibernate基础,将所 学知识在生活中灵活运用,高校学生信息管理系统的主要设计功能如下: (1)学生信息管理模块:包括所有学生信息的查询(用分页列表显示)、查看某个学生的详细信息、删除某学生信息、修改某学生信息以及学生信息的录入等子功能 (2)学生成绩管理模块:包括成绩信息录入、学生成绩查询、查看某个学生的成绩表以及删除学生
opencv_python-4.4.0.42-cp39-cp39-linux_armv7l.whl