我从Windows迁移,并听说Linux程序员不使用IDE来开发程序,比如Visual Studio.这句话是真的吗?Linux程序员是否使用IDE进行实际开发?
谢谢.
即使一些有胡须的真人可能会说Emacs(或vi)> Eclipse> Netbeans> all,但许多用户确实使用IDE.实际上,前一个陈述的真实性并不重要,只需使用一个你很有效率的工具,理想情况下,这个工具是正确的.这是一个快速选择列表:
Emacs,vi(m):多语言,我确信它们仍然用于C/C++开发
gedit:多语言,高级文本编辑器,非常适合Rails(可以拉皮条来模仿Textmate)
Geany:另一个基于GTK2工具包的文本编辑器
Eclipse,Netbeans,Intellij IDEA面向Java,但得到了C/C++(以及PHP,Groovy,Grails,Rails)的良好支持
MonoDevelop:用于.NET开发(即支持一堆语言)
QT Creator:用于... QT开发
Anjuta,KDevelop:Gnome和KDE的C/C++ IDE(分别)
Code :: Blocks:跨平台C++ IDE
如您所见,GNU/Linux并不意味着在80列shell中编码(可能通过ssh打开).Linux也有一些kick ass工具.说实话,我发现Linux是一个比Windows更好的开发平台:它有许多优秀的IDE,至少是相同的(除了.NET,我不确定MonoDevelop是否可以与Visual Studio竞争),它有更多的命令行工具,更多的脚本功能,它提供了更好的控制......换句话说,我觉得Linux比Windows更强大.
不,这不是真的.人们只是使用他们最喜欢的东西.IDE的定义也有点弱.在Linux上,许多文本编辑器都非常强大,例如Emacs.您也许可以将该文本编辑器称为IDE.虽然,为了指出一个区别,Emacs(和其他文本编辑器)最初是非常通用的,只是用它编写任何东西,以及用于开发C/C++ /后来添加的任何方便的工具/函数.他们的编程语言主要支持*仅涵盖语法高亮,而不是更多.
像KDevelop或Eclipse这样的应用程序最初是作为一个开发环境开发的,其中大多数仍然具有更多/更好的功能来开发.我称之为IDE.
Linux上有许多不同的IDE,一些更强大,一些功能不强,一些用于一种特定的编程语言,一些用于许多不同的IDE.根据您要写的语言,有些语言比其他语言更好.
此外,有些人比其他人更臃肿.这是人们使用文本编辑器的主要原因之一,因为它非常活泼,非常稳定且非常快.
我将列出一些我认为在该语言特定功能方面最好的IDE(如代码完成和许多其他东西).
对于C/C++:
KDevelop的
据我所知,没有IDE可以更好地支持C/C++.我没有找到任何其他处理C++的工具,它真正理解STL,重要的是你可以使用自动完成STL容器和这样的东西.它甚至可以理解宏,因此自动完成甚至可以在非常复杂的情况下工作,并且有许多宏功能.我在一个~250k loc C++项目上工作,它已经理解了完整的代码.(要使用扩展的C/C++支持,你必须在项目设置中激活它,默认情况下它被禁用.另外,为了获得完整的STL支持,我预先准备了STL头文件并将其添加到项目设置中的C++支持中不知道是否还需要它.但我想它仍然无法开箱即用.)
此外,与许多其他IDE相比,KDevelop非常快速和快速(用C++开发).它的加载速度几乎与任何其他简单的文本编辑器一样快,并且感觉像这样快速.对于非常大的项目而言,这也没有改变.因此,我自己只是用它来编辑/编写代码,而不是管理项目的编译.它有自动支持,但我更喜欢使用CMake.但是KDevelop可以正常工作:当我在KDevelop中按下编译时,它只是启动一个make.
最初,KDevelop是作为KDE应用程序的开发工具开发的,但它适用于任何C/C++项目.我实际上从未做过任何Qt/KDE项目.此外,稍后添加了对Ada等其他语言的支持,但我还没有尝试过.
我不知道任何其他IDE更好地支持C++.如果我在这里错了,请评论我.在过去的一两年里,我没有检查过很多其他的IDE.
日食
你可能已经知道了.最初它是为Java开发的.后来,增加了对C/C++的支持.
我想要注意这个IDE,因为我知道有很多人使用它.我并不是真的推荐它,因为我主要经历过糟糕的经历.
C++支持很好,但并不完美; 有些情况下自动完成功能不起作用.
IDE本身的可能性和功能非常丰富.我不知道很多其他IDE如此大(臃肿).它与Java一起,使它经常感觉非常缓慢,有时在你写东西时会挂起.内存使用率也非常高.
Qt Creator
最初用于Qt开发,但也适用于任何其他C/C++项目.非常好的qmake支持.
C++支持很好,只有一些小问题.此外,IDE也很快速.
毕竟,我发现自己在这个IDE中有点太有限了,KDevelop中的C++支持仍然更好,所以我一直在大多数C++项目中使用KDevelop.但是当你做一个Qt项目时,Qt Creator非常棒,因为它还为Qt和其他不错的Qt工具提供了一些不错的GUI构建器.
克利翁
(商业版,但免费版.)JetBrains的新人.非常有希望.
对于Java:
日食
请参阅上面的评论.
对于Java,我认为这是Linux上最常用的IDE.上面提到的相同缺点也适用于此,但我不知道任何更好的IDE,所以当我使用Java开发时,我一直在使用Eclipse.
NetBeans的
也适用于Java.从来没有尝试过,因为我的Linux发行版并没有真正支持它(我认为由于许可问题,我不再记得了).
我在过去看到过很多关于NetBeans-vs-Eclipse的问题.实际上并不知道当前的状态.
对于C#:
MonoDevelop的
也没有尝试过我自己,只听说它是C#的最佳工具之一.只是想注意,因为你提到了Visual Studio,你可能对C#感兴趣.
我想在终端的使用中添加一些词:
除了这样的IDE之外,在IDE上并行使用终端是很常见的.终端及其所有shell以及所有Unix工具和其他工具非常强大,您可以以非常简单的方式完成许多任务.一旦您对所有Unix工具以及如何使用它们进行了很好的概述,它们就可以为您节省大量的工作.
项目中经常需要一次又一次地完成任务.这可以是简单的任务,例如您如何管理源代码并将其与队友一起分发,或者执行更复杂的任务.
例如,当你做一些服务器 - 客户端工作并在不同的机器上启动10个服务器和100个客户端时,让他们都做一些事情; 然后grep一些正则表达式的输出并收集所有这些,并在10秒内进行一些性能测试,并多次重复这个进度 - 一旦你管理终端,这些都是微不足道的.
您将发现自己最终只编写了几个脚本,可以为您完成所有这些操作.编写这样的脚本大多是直截了当的.
这可能有点偏离主题,但我只想说明这一点,因为它是一种常见且强大的工作方式.当您作为开发人员从Windows切换到Linux时,您应该看看您现在拥有的所有其他可能性.这些是我(和许多其他人)为什么我更喜欢在Linux/Unix上开发而不是在任何其他系统上的主要原因.
(*)再一些对Emacs的说法:Emacs可以扩展我的许多工具和插件,使其成为一个非常丰富的系统,具有与IDE相同的功能.例如,CEDET具有真正的语言支持,即您还具有智能单词完成/智能感知以及项目管理系统等功能.我自己没有尝试过,但我会在接下来的几周内完成.
在Linux(以及其他Unix系统)上运行了大量的IDE ...
您所听到的可能与整个Unix系统是一种开发环境有关."小"程序,如id-utils
,vi
,vim
,和emacs
,加上CLI工具,使整个系统变成了一种混合式开发系统.这种理念与IDE风格完全不同,所以不要指望立即理解它.
我花了很多年在Windows下用Eclipse开发Java,我很享受.但在此之前和之后,我使用Unix,NetBSD和Linux进行开发.我很高兴使用vi(1)和其他CLI工具开发C,C++,PHP或Ruby.我从来没有在Unix上尝试过严肃的Java开发.这可能会让我回到IDE,部分原因是需要大量的样板,部分原因是Java拥有相当精细的IDE支持.但是要获得边缘IDE的附加价值!Java不值得痛苦或者值得放弃vi(1)和终端以及所有其他Unix元素的即时启动特性,当你启动IDE时它会消失.
一旦进入IDE,外部操作系统就不再重要了.我想,嗯,这就是为什么我喜欢在Win上使用IDE而不是在Unix上使用IDE.Unix非常灵活且有趣,不需要作为环境替换.
我们通常直接编写机器代码.
玩笑.
许多Linux开发人员使用可用于该平台的许多优秀IDE之一,例如Anjuta,Eclipse,NetBeans等.但是在Linux上,您更有可能遇到使用文本编辑器(如vi或emacs)进行编程的开发人员. .这是你可能听说过的.
JetBrains产品是最好的.JetBrains公司