最佳编程编辑器(没有明确胜利者的永无止境的战斗)

本文概述

  • IDE与通用文本编辑器
  • 是什么让一个优秀的程序编辑器成为了一个?
  • 用户界面, 功能和工作流程
  • 热门编程编辑器概述
  • 我的结论
不管有何相反的明显证据, 程序员都是人类。而且, 作为所有人, 我们喜欢利用我们的选择自由。无论是服用红色药丸还是蓝色药丸, 穿裙子或裤子, 还是在另一个开发环境上使用一个开发环境, 我们所做的选择都将我们置于一群人或另一群人中。选择不可避免地来自我们对选择权的评估。在做出选择之后, 我们倾向于认为任何选择不同的人都会犯错。
你可以轻松地在互联网上搜索并找到数百篇有关Emacs vs Vim的辩论。即使你阅读了所有内容, 也不可能客观地选择获胜者。但是, 选择开发环境是否可以告诉你有关开发人员可以交付的工作质量的任何信息?绝对不!
优秀的开发人员可以将她的代码编写到记事本中, 并且仍然可以提供出色的功能。
当然, 专业人员在选择工作工具时会考虑很多事情。这对于包括软件开发在内的每个专业都是如此。但是, 选择通常是基于个人的品味, 而不是容易理解的东西。
程序员大部分时间都花在开发环境上, 所以我们自然需要既漂亮又实用的东西。每个开发环境都有其优点和缺点。总体而言, 它们是软件开发行业的驱动力。
最佳编程编辑器(没有明确胜利者的永无止境的战斗)

文章图片
当选择一组编程工具(如所选的编程编辑器)时, 开发人员应评估哪些内容?这个问题的答案并不像听起来那么简单。软件开发接近艺术, 几乎没有” 模糊” 因素将杰作与价格过高的收藏品区分开。
每种编程语言(包括Java, C#, PHP, Python, Ruby, JavaScript等)都具有与项目结构, 调试和部署相关的自己的开发实践。但是, 它们共有的一件事是编辑代码。在本文中, 我们将从软件开发中最常见的任务:编写代码的角度评估不同的开发平台。
IDE与通用文本编辑器 集成开发环境(IDE)(或交互式开发环境)是一种软件应用程序, 可为计算机程序员提供用于软件开发的全面功能。 IDE通常包括源代码编辑器, 构建自动化工具和调试器, 并且许多支持许多其他插件和扩展。
文本编辑器是更简单的应用程序。与IDE相比, 它们通常仅对应于IDE的代码编辑器部分。但是, 它们通常不止于此。创建IDE是为了服务于软件开发的目的, 而许多文本编辑器也被设计为供非开发人员使用。
静态类型的语言可以从IDE中获得很多好处。由于严格的键入规则, IDE可能会在编译之前直接在编辑器中检测类和模块甚至文件之间的错误和命名不一致。此功能是许多IDE的标准配置, 因此, IDE对于静态类型的语言非常流行。
但是, 对于动态类型的语言, 不可能做相同的事情。例如, 如果方法名称可以由代码本身生成, 并由一系列字符串连接构建而成, 则尝试检测动态语言中的命名错误只需要运行实际程序即可。因为IDE的主要优点之一不适用于动态语言程序员, 所以他们倾向于使用Sublime之类的文本编辑器。顺带一提, 这也是测试驱动的开发运动在动态语言社区周围成长, 而在静态语言中没有那么强大的追随者的主要原因。
是什么让一个优秀的程序编辑器成为了一个人? 除了各种语言的许多不同功能之外, 每个编程编辑器都需要具有组织良好和整洁的用户界面。同样, 整体美学吸引力也不容忽视。设计精美的编辑器具有正确的字体和颜色选择, 这不仅可以使外观看起来好看, 而且还可以使眼睛保持疲劳并提高工作效率。
在当今的开发环境中, 无论功能集如何, 陡峭的学习曲线都是一个责任。时间总是很宝贵的, 所以一个好的编辑器应该很容易习惯。理想情况下, 程序员应该能够立即开始工作, 而不必经历过多的麻烦。瑞士军刀是一种实用且有用的工具, 但是任何人都可以在几分钟内掌握它。同样, 对于编程编辑人员来说, 简单是一种优点。
用户界面, 功能和工作流程 让我们仔细研究一下UI, 不同的特性和功能以及应该作为任何编程编辑器一部分的常用工具。
当然, 行号默认应为开, 并且易于打开或关闭。
片段对于在固定布局中插入标准化文本块很有用。但是, 编程很多时候只讲一次, 所以要注意片段, 因为它们可能使将来的代码难以维护。
【最佳编程编辑器(没有明确胜利者的永无止境的战斗)】整理或语法检查当前文件的功能以及启动它的功能都是有用的。没有此功能, 程序员必须切换到外部命令行窗口, 选择并运行正确的命令, 然后逐步浏览错误消息以查找错误源。但是, 棉绒必须在程序员的控制之下, 因为棉绒引起的延迟可能会在关键时刻中断编码器。
最佳编程编辑器(没有明确胜利者的永无止境的战斗)

文章图片
内联doc只要不碍事就很有用, 但是在类定义上打开浏览器页面有时会更有用, 尤其是当有很多不直接相互扩展的相关类时。将代码从浏览器文档剪切和粘贴到正在编写的代码非常容易, 因此, 随着程序员对文档的了解增加, 内联文档的额外复杂性通常变得不那么有用, 甚至变得更烦人。
单词补全功能非常有用, 因为它速度快, 几乎与编辑文档一样可靠, 同时不那么麻烦。只需输入一个单词的几个字符, 然后按Enter键即可得到满意的结果。否则, 一个人会在过度键入的压力下工作, 而懒惰的程序员则不愿意, 他们想键入ee而不是冗长的exponentialFunctionSquared。字词补全通过最小化键入, 强制执行连贯的命名以及避免妨碍来满足。
在整个程序中重命名变量和函数很有用, 但是你需要能够检查更改并确保代码没有损坏。同样, 单词补全是有用的中间语言, 因为它适用于所有语言。你可以将长名称用于使用寿命长的项目, 而不会产生输入开销。你可以在本地通过较短的名称使用对它们的引用, 以缩短可能分散在太多行中的表达式。如果需要重命名, 则长名称是唯一的, 因此该方法适用于所有语言和所有文件。
源文件有时会增长很多。代码折叠是一个很好的功能, 可简化对长文件的读取。
如今, 将范围限制为带有元字符和正则表达式的局部, 增量或全局查找/更改已成为最低要求的一部分, 语法高亮也是如此。
热门编程编辑器概述 多年来, 我经历了许多编辑, 这就是我对他们的看法:
  • Emacs:世界上最受欢迎的编辑之一。尽管扩展语言很复杂, 但Emacs的最大特点是其可扩展性(你甚至可以使用M-x tetris在其中玩Tetris)。 Emacs爱好者认为其基于终端的界面是一项很棒的功能, 而其他人则可能会争论说这是一个缺点。从我的亲身经历中, 我发现要采用和学习太多了。我敢肯定, 如果你知道如何使用Emacs, 那么你将永远不会使用任何其他东西, 但是继续学习整个文化比我想做的更多。但是, 它在开发人员中的流行证明了它远非昔日的遗物, 并且仍然是我们未来的一部分。
  • Vi / Vim:Vim是另一个强大的基于终端的编辑器, 它是大多数xNIX操作系统的标准配置。除了具有与Emacs不同的界面之外, 我的观点实际上是相同的。如果你长大了, 我相信你永远不会使用其他任何东西。拥有Vi技能, 可以使通过SSH和其他漏洞进行操作时的生活变得更加简单, 并且一旦你熟悉击键操作, 就不会遇到速度方面的问题。虽然不像Emacs那样难破解, 但是学习曲线仍然相当陡峭, 并且肯定可以使用窗口编辑器的一些不错的功能。
  • SublimeText:真正的名字, SublimeText是具有许多功能的漂亮文本编辑器。与某些类似的编辑器不同, SublimeText是封闭源代码, 因此不能在低级别进行修改。 SublimeText具有精简而快速的UI, 提供了传统文本编辑器的简便性。许多开发人员发现它比Vim更易于使用, 对于新手来说尤其如此。学习曲线并不那么陡峭。虽然UI最小且直接, 但SublimeText确实提供了一些漂亮的功能, 例如UI右侧的缩小显示代码, 使用户可以快速滚动其代码并相对轻松地进行导航。虽然它不是完全免费的, 但功能受限的演示版本是免费的。解锁所有功能将花费你70美元。
  • Atom是GitHub努力为新一代开发人员生产编程编辑器的结果。尽管仍在进行中, 但Atom是一个功能强大的编辑器, 拥有一个充满活力的开发人员社区, 他们热衷于新扩展, JavaScript库等。它的缺点包括一些UI怪癖, 某些附加软件包可能行为不当的可能性以及在处理(非常)大文件时报告的性能问题。但是该项目正在积极开发中, 目前的缺点可能会得到改善。 Atom是一个开源项目, 可以轻松地对其进行黑客入侵, 以满足你的需求。
  • Nano:在紧要关头上表现出色, 但功能不足以防止不可避免的思想潜入人们的脑海, 因为必须通过更快的方式来完成此操作, 因为人们要通过击键来缩进一段代码, 同时还要使注释排成一行在第80栏!它甚至没有高亮显示文本, 除了更改配置文件外, 不得用于其他任何用途。
  • TextMate2:TextMate的最大缺点是它只能在Mac上运行。正如其创建者所说的那样, ” TextMate将Apple的操作系统方法带入了文本编辑器的世界。” 通过将UNIX基础和GUI结合起来, TextMate充分发挥了两者的优势, 从而使专家脚本编写者和新手用户都受益。它是许多Ruby, Python和JavaScript开发人员的首选编辑器, 并且对Bash或Markdown也有很好的支持。在发布本文时, TextMate 2仍处于Beta版, 但它已经具有非常成熟的插件生态系统, 有望将其扩展到Emacs扩展之外。
  • jEdit:基于Java, 并且认为有些慢。开箱即用的配置可能会使某些人望而却步, 但如果配置正确, 则jEdit可能会非常快, 而且外观也非常好。
  • Eclipse:Eclipse是另一种广泛使用的IDE, 在Java开发人员中非常流行, 但是已经适应了许多不同的平台。我们可以争辩说, 它的整体架构是一块石头, 可以将它淹没在水下, 但是它仍然是开发人员中最受欢迎的平台之一。
  • Aptana Studio:全面的开源Web应用程序IDE。它可以作为Eclipse插件使用, 这使其在某些Java开发人员中很流行。独立版本更加精简, 并提供了一系列不同的主题和自定义选项。 Aptana的项目管理功能也可能会帮助在Eclipse中磨练技能的编码人员使用。尽管早期版本在某些硬件平台上会遇到性能问题, 但这些问题已在Aptana Studio 3中得到解决, 应该已经成为过去。
  • NetBeans:另一个具有跨平台支持的相对流行的开源IDE。与像SublimeText这样的精益编辑器相比, 它在启动时要慢一些, 并且与某些替代产品相比, 加载项的选择受到限制。由于无缝的SCM集成和HTML5支持, 许多Java开发人员已经开始喜欢NetBeans。 NetBeans对PHP的支持在最新版本中也得到了改进。
  • JetBrains:提供适用于Java, Ruby, Python和PHP的IDE系列。它们全部基于相同的核心引擎。 JetBrains IDE本身具有非常强大的功能, 因此获得了越来越多的关注。但是, 它们不是免费的开源解决方案, 尽管可以进行30天的试用, 而且价格合理。
  • Komodo Edit:Komodo Edit具有巨大的潜力, 但是充满了烦人的小” 陷阱” 和特质, 这些不足可能因缺乏正交性而令人沮丧。 Komodo Edit感到混乱, 这很可惜, 因为它显然具有巨大的功能。我继续回到Komodo Edit, 希望我错过了一些组织原则, 每次, 我都会被混乱的能力所折磨。
  • Geany:Geany不像该列表中的许多其他编辑一样是主要的力量参与者。用” 不是” 而不是” 是” 来定义它。它并不慢, 它没有太多的历史遗留, 它没有宏功能, 或者在缓冲能力上没有很多多窗口功能。然而, 它所做的事情却做得很好。也许, 这是我尝试过的所有编辑器中要求最低的, 但仍然可以完成程序员期望的90%的工作。 Geany在Ubuntu上看起来足够好, 这就是我选择它作为首选编辑器的原因之一。
我的结论 在这些出色的工具中, 只宣布其中一个为最佳编程编辑器是很自负的。并且有很多我什至没有尝试过的编辑器。没有一种万能的解决方案。这就是迫使我尝试许多不同编辑器的原因。
我目前正在使用Geany, 但这是因为它符合我的要求。借助Geany, 以及Perl / Gimp / Audacity / Sox的大量帮助, 我能够为自己开发的Android应用程序开发和维护Java代码库, 为在多个发行商, 源代码, 皮棉中以不同配置进行编译做准备, 编译, 处理和生成.apk文件, 然后在全球范围内交付这些应用。
你的开发线可能会设置不同的要求, 希望我为你节省了一些时间来研究最合适的编程编辑器。
相关:语言服务器协议教程:从VSCode到Vim

    推荐阅读