什么时候使用IDE?
我知道有些人曾经反对使用特定于语言的IDE(vim / emacs或者die!类型的东西),并且有些人根本不喜欢在终端中进行编码/编译,所以我的问题包括以下部分。
- 什么时候从一个切换到另一个
- 甚至有必要两者都知道吗?如果没有,我们应该知道什么?
- 轻量级或者重型IDE? (只需突出显示代码或者我们可以想象的每个功能)
- 我们一般建议使用哪种IDE,为什么?
随意回答全部,部分或者不回答。
到目前为止的简短摘要:
集成开发环境
- 大项目
- 图形用户界面
- 易于版本控制集成?
文字编辑器
- 快速/小型项目
- 更轻松地适应其他语言
- 减少开销
解决方案
我通常仅将IDE用于调试(该IDE取决于语言/平台),而使用我的个人编辑器进行代码的实际编辑。
我觉得使用一个编辑器进行所有操作比重新学习我对每种语言/平台所做的键绑定要好得多。
以我的经验,如果项目涉及构建GUI,那么IDE是无价的工具。
如果是小型,"肠道级"或者Web服务,我将专门使用文本编辑器。
我都做过,但是调试器确实是一个很棒的工具。
只需添加调试输出并进行重建,我们就可以走得很远,甚至迫使我们多使用一些面条和科学方法,但最后(imo)调试器是无法否认的……它使我们真正地在那里,并在运行时浏览系统。
我使用IDE进行调试,或者用于需要处理许多不同文件的每个大型项目。许多IDE都可以快速单击以从一个类转移到另一个类。 IDE的工作效率更高。当我使用具有大量文件夹和文件,更易于管理的大型FrameWork时,我也会使用IDE。
更新,因为问题已更新
什么时候从一个切换到另一个?
我切换CSS或者其他小任务进行小改动,
甚至有必要两者都知道吗?如果没有,我们应该知道哪个?
有时在构建表单时(以C#为例),使用IDE会非常有利可图。与断点调试相同。我认为两者都是必需的。
轻量级或者重型IDE? (只需突出显示代码或者我们可以想象的每个功能)
代码摘要适合小型工作,但是当我们要做很多事情时,必须使用具有自动完成功能,实时错误检查和其他重构工具的更大的IDE,才能提高生产力。
我们一般建议使用哪种IDE,为什么?
Visual Studio非常适合.net和Eclipse for Java。
专业化和普遍性都有机会。在我自己的工作中,我发现灵活性和能够适应陡峭的学习曲线的效果很好。
每当我使用一种更适合由计算机而不是人类编写的语言(例如Java)时,都使用IDE。没有大量自动完成功能,用手写的方式写得太冗长了。 Vim的自动完成功能从来没有像特定语言的IDE那样出色。
但是对于少用的语言,我们无法击败像Vimor Emacs这样的优秀编辑器来快速生成纯文本。
我的经验法则是,如果将语言和IDE捆绑在一起,则使用IDE(使用MS项目文件查看所有内容)。否则,任何编辑器都可以。我个人喜欢可视化的Slickedit,或者如果公司不打算使用slickedit的话,则使用notepad ++。在Linux方面,我使用Emacs,我们可以考虑使用重量级的编辑器或者轻量级的OS。
如果项目超过两个或者三个源文件,则倾向于使用IDE。
一旦我们使用了良好的IDE(vs6不好,并且大多数通用文本编辑器对此的支持充其量都是粗略的),并且具有智能感知风格的提示并自动完成了几周,我们将不会再返回。
IDE的使用非常主观个人意见。有了免责声明,这是我的。
了解工具和平台。开发软件是专长,所以请精通它。
什么时候切换?当知识告诉直觉时,使用其他工具会更容易。
你们两个都知道吗我认为我们应该了解有关使用平台的所有知识。低层次的知识使高层次的应用程序更易于理解。
轻量级还是重量级取决于手头的任务。两者有时都是合适的。
我不能推荐任何一种IDE,这取决于我们应用程序的平台以及开发人员对适应程度。如果我们使用的是.NET,则Windows上的Visual Studio可能是最好的,但这并不意味着我们可以丢掉记事本。对于Linux上的Java,Eclipse很棒,但是请不要丢弃vim。
嘿,首页对于某些人来说可能是完成工作的正确工具(哎呀,是的,我说过。
当我使用VIM和非IDE类型的工具时,我不得不承认Visual Studio(尤其是2005/2008)可能是有史以来最好的程序之一。智能感知和调试工具非常值得。我发现自己能够非常快速地编写代码。如果我们使用的是框架(例如.NET),并且需要很少的额外指南来告诉我们对象可以使用哪些功能而无需参考帮助文档,则该功能特别有用。很难击败自动代码格式化,书签,沉浸式调试,重构,源代码控制集成和插件支持。
对于其他所有内容,我都使用VIM。我必须承认,我仍在学习如何很好地使用VIM,但是我已经知道它功能强大。确实是为工作选择合适的工具。
编辑:我要提到的一件事是,我们选择一种或者两种工具并学得很好。成为它的专家。了解输入/输出,并探索编辑器/ IDE可以完成的精妙的秘密工作。我们执行的越多,使用什么工具就越无关紧要。
我将vim用于除Objective-C以外的所有东西,而我使用xCode来实现。接口构建器,错误检查,调试非常有价值。
但是,我使用InputManager来在xCode中使用vim命令/键绑定,所以我从来没有真正将vim留给任何东西;)
对我来说,分类是基于技术。
我将Notepad ++或者vim用于LAMP堆栈中的任何内容,但从未在这些技术的IDE中找到任何特别有用的功能(除非我们可以将MySQL客户端工具用作IDE,我可以使用)。
另一方面,在WISC(Windows,IIS,SQL Server,C#)堆栈中工作时,我会根据所处理的项目使用Visual Studio产品之一的IDE。
其中很多可能与我从事的项目类型有关。我使用LAMP堆栈中的PHP工作,因此不必像使用perl时那样处理大量外部库,并且在LAMP上开发的项目通常比Windows开发更简单。另一方面,在.Net中,如果没有IDE,导航库可能会非常困难,并且调试(我发现)可能会更加复杂。另外,当使用SOAP开发Web服务时,我什至不想考虑没有Microsoft提供的工具。
我使用SciTE(我最喜欢的编辑器)来进行所有编码,它是轻量级的,具有突出的语法突出显示,并且具有我熟悉的快捷方式(或者我编码的快捷方式!)。
现在,在工作中要做很多Java工作,我也使用Eclipse,每个版本都有很大的改进。我很欣赏它的可定制性,并且在编码帮助方面非常灵活,但是我仍然在SciTE中进行大部分编辑...幸运的是,自动检测/更新在其他地方编辑的文件在Eclipse中效果很好(尽管有时很明智)延迟分析重新加载的类:我们有大型项目,但没有那么多的内存(1GB))。
我主要是从两方面感谢Eclipse(我们使用特殊的ant程序进行编译,但实际上并没有进行重构):在项目中进行快速导航,特别是查找类和调用层次结构,以及调试。
我不认为这些世界有那么多不同,它们只是工具,非常互补:我不会解雇Eclipse快速编辑一个小的HTML文件,我无法在SciTE中调试。所以我两者都用。
自从我上次创建本机GUI应用以来,我就没有使用过IDE。而且,即使那样,当我弄清楚如何将替代编辑器插入IDE时,我几乎也只是使用IDE来创建GUI表单和我自己的实际代码编辑器。
我不是"给我病毒,或者给我死亡!"狂热,但是我使用过IDE并使用过很多运行vim的xterms的经验给我留下了印象,IDE真正对我而言唯一贡献的就是拖放式表格编辑,这是我不希望做的。鉴于我上次使用非基于Web的GUI进行操作已有多长时间了,因此不需要。
就个人而言,我几乎从不使用IDE。我几乎只使用vim / make。有很多好处:
- 完全与语言无关。记住一些命令和快捷方式后,它们就可以用于我的所有项目
- 零件易于更换。如果要切换编译器,请更改makefile中的变量。
- "不可知的配置"。无论设置如何,我都可以开发。没有GUI?没问题。不同的桌面环境?没问题。甚至还有vim到Windows的端口。我在本地计算机上进行开发,并且以相同的方式将其SSH到服务器中。
还有一些缺点:
- Vim很难学习。我什至不会说谎。获得动力需要时间。
- 主要限于* NIX。是的,有些像cygwin。是的,有Vim到Windows的端口。某种程度上不完全相同。
- 如果我学习了专注于特定语言的IDE,则可能会有一些功能对于该语言而言非常强大。
回复:什么时候?我将Eclipse用于Java和调试。我通过各种可用的Groovy脚本使jEdit保持打开状态。我还在3个Shell窗口中使用Cygwin的bash执行Ant任务,搜索等。对于运行服务器和客户端的某些真正强大的功能,我可以使用Bash别名。
回复:两者都?是的,同时了解IDE和非IDE开发至关重要。哪个IDE无关紧要,但是调试器是必不可少的。
回复:哪个?对于Java,如果我们是付费的,则为Eclipse;如果其他人是付费的,则为Idea ;-)实际上,我更喜欢Eclipse,但我认为Idea对Groovy具有更好的支持,因此对我有吸引力。
正如其他几个人所说的,使用哪种IDE或者完全使用哪种IDE在很大程度上取决于我们使用的开发语言,项目的规模以及所使用的平台。尽管我从不扎根于Vi或者Emacs,但在这种语言上,我确实使用了许多其他编辑工具:
C#或者其他任何.Net:Visual Studio。没有激烈的竞争,CLR语言乞求语法突出显示,重构和高级文件管理。值得庆幸的是,微软正确地做到了这一点,而Express版本具有令人难以置信的价值。
C ++:我已经有一段时间没有接触过它了,但是我通常会在Visual Studio中查看代码,但是会通过批处理文件进行编译,这与我正在使用的特定嵌入式平台的怪癖有很大关系。
Python:如果我们需要带有花哨的东西,我建议使用Stani的Python编辑器,但是Python的结构是如此直接,以至于我通常只使用Scite。它可以完成我们在Python编辑器中真正需要的一切。
SQL:记事本++,或者,如果我们需要进行繁重的工作,则可以使用任何受支持的编辑器+ SQL Prompt。
Java:我听说过有关Eclipse的好消息,但是Java是邪恶的,因此我不予理会。
PHP,Perl,Javascript,BASH或者大多数其他语言:Windows上为Notepad ++,Linux上为Scite。
尽管在所有这些IDE之间进行切换可能会很麻烦,尤其是当我们互不喜欢的一项功能被另一项丢失时,使用最佳平衡工具来完成工作会发现很多好处。随着需求的变化,我一直都在切换IDE,我也鼓励其他人也这样做。在特定平台上处理了数量有限,规模有限的项目后,我几乎不了解所有用例,而且我敢肯定还有很多其他情况和代码编辑器会以独特且功能强大的方式进行配对。
我发现C和Python的IDE买的不多,至少是Linux可用的。因此,当我编写C和Python代码时,通常会使用GVIM + Ctags +独立调试器+ make。
但是,就Java而言,Eclipse提供了太多的Java程序员,以至于很难不使用它,并且过了一会儿就变坏了,以至于不能再回到用VIM编写Java代码了。
奇怪的是,使用Visual Studio for C项目时,我没有同样的经验(即使我确实发现它的调试器是必不可少的)。原因之一是我更喜欢自己管理构建脚本。即使使用Eclipse,我仍然会使用ant,以便我确切地知道每个构建过程中发生了什么。诚然,我们当然可以在Visual Studio和Eclipse中查看构建配置,但这并不像看到所使用的确切命令那样直接。话虽如此,主要是因为约定,我仍然被迫使用Visual Studio进行构建,因为其他人正在从事这些项目,但是我仍然会在GVIM中(借助ctags)编辑代码。
唯一必须使用命令行进行编译/链接的时间是在没有安装GUI的纯Linux服务器上工作时,在这种情况下,ONLY REAL OPTION是emacs。 (使用其他任何东西都是纯受虐狂)。
在所有其他时间,不使用成熟的IDE绝对是愚蠢的。
你的问题:
什么时候从一个切换到另一个
(以上回答)
甚至有必要两者都知道吗?如果没有,我们应该知道哪个?
这取决于我们对成为程序员以及系统管理员的热情。呼吁后者支持前者并执行一切必要措施以保持所有系统平稳运行。要知道两者永远都不会有害,但是如果我们坚持只做程序员,那么很明显了解所选平台的特定IDE是必要的。
轻量级或者重型IDE? (只需突出显示代码或者我们可以想象的每个功能)
我认为这里的选择仅针对程序员:毫无疑问,编程工具/环境可以给我们提供更多的支持,并且我们可以获得的支持越多,我们就可以专注于实现程序规范。更好。是的:重量是唯一明智的选择。
我们一般建议使用哪种IDE,为什么?
在Windows平台上,这个问题是没有意义的:无论Mictrosoft建议如何(以及我们是否拥有$$$)。在Linux上,我们有多种选择:基于GTK的(Gnome和公司),基于QT的(KDE和公司),(如果我们喜欢惩罚,那么我们可以选择纯X,然后我们或者多或者少会一段有趣的时间)Gnome和KDE都可以使用IDE。第三方Eclipse(例如eclipse)可用。它们都使我们能够开发可在用户选择的GUI环境中运行的GUI应用程序。其中一些IDE甚至允许多种编程语言(这是Linux和FOSS的荣耀:我们可以选择;我们不会固定在"地域"上,也不会导致屠杀……)。
我个人对IDE(仅C ++)的选择是Ultimate ++。它与Windows和Linux源兼容。 IDE正在走向成熟,它提供了其他C ++-IDE所渴望的"一切"。 (我知道这是一个插件,但是我有充分的理由:尝试一下。)
高温超导
我只使用一个不错的代码突出显示编辑器。