根据我以前的一个问题,我正在刷新我的C技能.
我的问题是,人们用什么来开发C?
很多人使用Emacs,并且已经这么做了多年,但学习emacs比使用像Geany或KDevelop这样的IDE更好吗?
还有兴趣听听那些仍在使用emacs的人,以及为什么他们将其用于其他应用程序?
请注意,我只对免费的IDE /编辑感兴趣.
编辑:
感谢您发布回答我的一些问题的链接,但我想我真正想知道的是:
是否学习使用emacs/vim进行编辑以及使用gcc-toolchain进行编译/调试是否值得,而不仅仅是使用IDE,为什么?
人们不迁移到IDE的原因是什么?
有没有人从以终端为中心的开发转向IDE开发,为什么他们会移动?
我开始使用IDE,微软与否.然后,在很久以前使用QNX时,我被迫使用文本编辑器+编译器/链接器.现在我更喜欢这种简单的组合 - 语法高亮编辑器+ C编译器和链接器cli + make - 任何IDE,即使环境允许它们.
原因是,对我来说:
它无处不在.如果你用C编程,你就有了编译器,通常你可以自己编辑.我做的第一件事 - 我在Windows上使用Linux或Notepad ++.我会使用vi,但GUI编辑器提供了更好的字体,这对于整天查看代码非常重要
您可以在需要时通过ssh远程编程.而且它有时能帮助我们进入目标并在那里做一些快速的事情
它使我接近CLI,最好是UNIX/Linux CLI.因此,所有命令都在我的指尖,当我需要它们时,我不必去阅读参考书.UNIX CLI可以做IDE经常无法做到的事情 - 因为他们的开发人员并不认为你需要它们
最重要的是,它非常像在原始代码中查看Matrix.我操作文件,所以我不得不让它们易于管理.我手动在代码中找到了东西,这使我保持简单和有条理.我明确地进行了Config Management,所以我知道我何时同步以及如何同步.我知道我的Makefiles因为我写了它们,而且它们只做我告诉他们的事情
(如果你想知道它是否适用于"真正的大项目" - 它确实有效,项目越大,它就越有利于我)
当人们让我看他们的代码时,我不必学习他们使用的IDE
对于我的大多数项目,我已经从终端文本编辑器+ make环境转移到了Eclipse.从C和C++扩展到Java和Python,我所使用的语言很少.
原因只是生产力.随着其他事情变得更加重要,我无法花费时间和精力将所有项目"保持在我的脑海中".
使用"硬核"方法(终端)有一些好处 - 比如你自己和代码之间有一层薄得多的层,这样当你在项目内"所有"内部时,你的工作效率会更高一些.在你的头顶.但是,当你在其他地方需要你的思想时,我认为不可能仅仅为了它本身而捍卫这种工作方式.
通常,当您使用命令行工具时,您将经常需要解决许多样板问题,这些问题会使您无法提高工作效率.您需要详细了解这些工具才能充分发挥其潜力.维护项目也需要付出更多努力.重构将导致make文件等的更新.
总结一下:如果您只处理一个或两个项目,最好是全职,而不会有太多干扰,"基于终端的编码"可以比完整的IDE更高效.但是,如果您需要将精力投入到更重要的事情上,那么IDE绝对是保持生产力的方法.
做出相应的选择.
Emacs 是一个IDE.
编辑:好的,我会详细说明.什么是IDE?
作为一个起点,让我们扩展首字母缩略词:Integrated Development Environment.为了分析这一点,我从头开始.
一个环境,一般来说,围绕来看世界的一部分.在这种情况下,它是我们在显示器上看到的(可能是从我们的扬声器听到)并通过我们的键盘(也许是鼠标)进行操作.
如果您愿意,开发就是我们想要在这种环境中实现的目标.我们使用环境来开发软件.这定义了我们需要的子部分:编辑器,REPL的接口,resp.编译器,调试器的接口以及对在线文档的访问(此列表可能并非详尽无遗).
集成意味着环境的所有部分都以某种方式在均匀的表面下.在IDE中,我们可以以最少的切换访问和使用不同的子部分; 我们不必离开我们定义的环境.这种集成使不同的子部分更好地交互.例如,编辑器可以了解我们写什么语言,给我们的符号自动完成,跳转到定义,自动缩进,语法高亮,等等.它可以从编译器获取信息,自动跳转到错误,突出他们.在大多数(如果不是全部)IDE中,编辑器自然是开发过程的核心.
Emacs的这一切,它也具有广泛的语言和任务,它是卓越的,因为它是由何处,他错过任何用户无缝地扩展.
反例:你可以开发使用类似记事本,通过Firefox和XPDF访问文档,并引导从shell的编译器和调试器.这将是一个开发环境,但它不会被集成.
我已经非常成功地使用了Eclipse和CDT插件.
如果它有一个文本编辑器,Emacs会更好...... :-)
使用Code :: Blocks.它拥有您需要的一切和非常干净的GUI.
Netbeans具有出色的C和C++支持.有些人抱怨它臃肿而缓慢,但我几乎专门用于个人项目,并喜欢它.代码辅助功能是我见过的最好的功能之一.