我想提供我个人的理由,解释为什么你可能会选择任何一个这些编辑器(至少是我熟悉的)。只是说“用这个,用那个”一点也不有帮助。在很大程度上,这个问题是错误的。对于一种语言,很少有“最好的IDE”; 相反,有多种环境,每种环境适合特定的需求。以下是介绍:
1)Dreamweaver
使用它的原因:它作为设计工具的历史使得“非编码”类型的人更容易开始制作网站。如果你是一个单独开发者,构建许多“汤姆角落商店”类型的网站,即使它们需要一些CF编码(邮件列表,订阅者,当前特价,轻量级内容管理等),它的设计工具,“模板”功能和易部署性(ftp)使它成为一个有吸引力的选择。它具有足够好的代码着色和代码完成内置CF标签和函数。它可以在同一页中查询用户定义的函数。它具有出色的CSS支持,并且您还可以找到大量扩展。它非常稳定,在我的经验中,没有太多“崩溃”。它还会为您生成相当多的代码(该代码是否“好”的问题有争议)。总的来说,Dreamweaver是网站设计师不可或缺的软件。
你不使用它的原因:它不是免费的,当然也不是“编码器编辑器”。虽然它提供了扩展,但它们通常是面向接口的(javascript验证等),而不像Eclipse插件那样可以涵盖所有领域。对于大型项目,它根本没有许多编码器所期望的代码导航功能。它是面向Web的。因此,如果你是多语言人士,甚至只是喜欢涉猎编译语言(如Java等),那么你需要在手边保留另一个编辑器来完成这些任务... 你无法在同一个编辑器中完成所有任务。 Dreamweaver中不存在ColdFusion单元测试支持。 ColdFusion没有步骤调试。
2)CFEclipse插入Eclipse中。
使用它的原因:CFEclipse现在已经有6年历史,并且已经显著成熟。在过去几年中,它非常稳定,大部分崩溃是由于Eclipse本身而不是CFEclipse(这在早期并不正确)。最近,CFEclipse看到了一股新鲜血液,正在添加功能,使在其中编码更加高效。它包含大量的键盘快捷键,许多工具栏功能是人们喜欢的ColdFusion Studio,以及Eclipse内置的代码导航功能(即Ctrl-Shift-R快速查找文件)。它支持原生CF标签和函数的内容辅助,对于页面变量也有一些支持,但并不完美。它不支持页面函数,也不提供真正的组件洞察力(即对你编写并在其他代码中使用的组件的了解)。它将通过字典在一定程度上支持组件洞察力,但即使如此,它也需要字典创建者付出大量的工作。根据我的经验,大多数人认为维护字典过于繁琐。
CFEclipse的最新版本包含最佳的CFML格式化。
对我而言,“方法浏览器”和“片段树视图”,特别是插入片段的键盘快捷键,都是提高生产力的好帮手。
如果你使用ColdSpring、ModelGlue、Mach-II、ColdBox等具有XML配置文件的框架,则CFEclipse的框架浏览器非常出色。
由于它是Eclipse的插件,你可以在Eclipse中完成任何其他想做的事情。你想编写Java?没问题。你需要Web服务支持?也可以。你想进行步骤调试,则可以使用Adobe提供的免费Eclipse扩展程序。
Eclipse的大型插件生态系统是其最吸引人的功能之一,在选择编辑器时不应忽视这一点。例如,我不想没有Mylyn工具,它与问题跟踪集成,在我的经验中已经彻底改变了我的工作方式。
Eclipse的版本控制系统支持也非常出色。Subversion得到很好的支持;有一个VSS插件;最近,一个或两个git插件已被接受进入Eclipse基金会,所以我们很快就可以看到原生的git支持(你现在可以使用插件获取)。
Eclipse的ANT支持也非常出色。
你可以轻松地将MXUnit Eclipse插件插入到Eclipse中,用于对你的CFML进行单元测试(完全透明:我为MXUnit做出了贡献)。
最后,我对于CFEclipse的开发人员——Denny、Mark、Jim、Peter等人——持有充分的信心,他们将继续努力保持CFEclipse作为最好的开源CFML IDE可用。这些都是ColdFusion社区中最聪明的头脑,并且对他们的使命充满热情。如果你选择使用CFEclipse,则不会选择一款将被ColdFusion Builder取代的IDE。这个项目发展得很好。
为什么你不会使用它:它是一个代码IDE,而不是像Dreamweaver那样的设计工具。它并不完美……代码辅助功能可能太过于主动提供建议。Eclipse本身,特别是当你将其与各种插件堆叠在一起时,在较差的机器上可能会不稳定。最后,那些不喜欢“项目”视图的人通常会对它提出抱怨,因为他们习惯于直接使用文件系统视图。尽管可以找到接近Dreamweaver的插件,但它的部署支持远不及Dreamweaver简单。
3)ColdFusion Builder为什么要使用CFBuilder:如果作为Eclipse插件使用,CFBuilder的所有优点都适用于Eclipse自身。我不清楚独立版本是否支持插件,因为截至本文撰写时,它仍然无法非常好地支持插件。这个问题肯定会在发布时得到解决,但我不想猜测独立版本将会做什么或不做什么。
CFBuilder最大的优点之一是“扩展”。这是一种将CFML代码插入编辑器的方式。很难描述,建议搜索“ColdFusion Builder扩展”,你会感到惊讶。Adobe的Terry Ryan创建了“Apptacular”,可以通过数据库搭建应用程序,Brian Rinaldi则发布了一系列关于构建CFBuilder扩展的文章。这些对开发者来说非常有帮助,在CFBuilder发布后会成为他们最好的朋友。
在我看来,CFBuilder的部署支持与Dreamweaver不相上下,甚至更胜一筹。
CFBuilder不需要额外的插件即可进行步进式调试。只需点击调试按钮即可开始使用。
CFBuilder包含真正的组件洞察力,即它可以自省你编写的组件并提供内容协助。它可能有些奇怪,并且需要一些配置。但请记住,CFBuilder目前仍处于测试版。我最好的猜测是,至少需要几个版本才能完全解决这个功能的问题。不过,对于自己的组件获得内容协助,将会大大提高生产力和学习效率。
CFBuilder为停止/启动CF服务器提供“服务器”视图。它基于Aptana构建,因此包含Aptana的“tail log”视图,非常适合观看日志文件。就像CFEclipse一样,它还有一个“Snip Tree View”。
CFBuilder的愿景由Adobe的Adam Lehman领导。他热爱CF,是一股强大的力量。我对CFBuilder充满期望,因为有了Adam的领导。
为什么不使用它:
首先,它不是免费的。除了Adobe以外没有人知道它的价格,但“扩展”和部署功能本身可能已经值得购买。时间会证明一切。
因为它是Adobe产品,我认为可以合理地假设发布频率与大多数Adobe产品一样,并不是非常频繁。虽然CFEclipse最近部署频繁,并为勇敢的用户提供“夜间”站点,但CFBuilder很可能不会这样做。CFEclipse可以向公众提供潜在的不稳定版本,而CFBuilder这样做可能不符合Adobe的最佳利益。
最终,它仍处于Beta版阶段,可能需要一些时间才能发布。如果你现在使用它并开始使用,请记住:根据我的经验,调试时有点不稳定,内容辅助有时有效,有时无效,并且很多人遇到了崩溃的问题。这是免费的Beta软件...你得到的就是你所付出的代价。但要知道,你越多地使用这个Beta版本,特别是如果你通过公共Bug数据库提供反馈意见,那么如果它为CFML提供了领先的编辑器,我们所有人都会受益。
个人而言:
在家里做“设计”工作时,我使用Dreamweaver,当我觉得它的模板可以帮助我尽快构建一个站点时。对于需要维护编码和简便部署的现有项目,我使用ColdFusion builder。
在工作中,我基本不做设计工作,自2006年以来,CFEclipse一直是我的IDE。虽然我已经开始广泛使用ColdFusion builder,但目前我还在CFBuilder和CFEclipse之间切换使用。其中一个原因是,截至撰写本文时,CFEclipse更为稳定(即它不会崩溃,我也不会失去工作)。我完全期待着在CFBuilder成本上涨之前,稳定性问题将得到缓解。
CFBuilder和CFEclipse都有公共Bug数据库。CFEclipse有一个参与度很高的公共邮件列表,如果你有问题,你会很快得到答案。我还不能确认CFBuilder的问题解答速度。
最后,对于“编码人员”来说,我的经验是,一旦你投入时间学习工具和快捷键,Eclipse相比Dreamweaver等设计师工具提供了更高的生产力。对于制作设计网站而言,像Dreamweaver这样的设计工具具有显著的优势。
对于最佳ColdFusion IDE的答案并不是答案,而是一个问题:“你想用ColdFusion做什么?”这个问题的答案将引导你选择适合特定项目需求的IDE。不同的情况或项目可能会导致您选择不同的工具,以更好地满足您的需求。