何处写，如何写：选择最好的免费在线代码编辑器
================================================================================
> 深入了解一下Cloud9，Koding和Nitrous.IO。

![](http://a2.files.readwrite.com/image/upload/c_fill,h_900,q_70,w_1600/MTIzMDQ5NjYzODM4NDU1MzA4.jpg)

已经准备好开始你的第一个编程项目了吗？很好！只要配置一下终端或命令行，学习如何使用它，然后安装所有要用到的编程语言，插件库和API函数库。当最终准备好一切以后，再安装好[Visual Studio][1]就可以开始了，然后才可以预览自己的工作。

至少这是大家过去已经熟悉的方式。

也难怪初学程序员们逐渐喜欢上在线的集成开发环境(IDE)了。IDE是一个代码编辑器，不过已经准备好编程语言以及所有需要的依赖，可以让你避免把它们一一安装到电脑上的麻烦。

我想搞清楚到底是哪些因素能组成一个典型的IDE，所以我试用了一下免费级别的时下最受欢迎的三款集成开发环境：[Cloud9][2]，[Koding][3]和[Nitrous.IO][4]。在这个过程中，我了解了许多程序员应该或不应该使用IDE的各种情形。

### 为什么要用IDE？ ###

假如有一个像Microsoft Word那样的文字编辑器，想想类似Google Drive那样的IDE吧。你可以拥有类似的功能，但是它还能支持从任意电脑上访问，还能随时共享。因为因特网在项目工作流中的影响已经越来越重要，IDE也让生活更轻松。

在我最近的一篇ReadWrite教程中我使用了Nitrous.IO，这是在文章“[创建一个你自己的像Yo那样的极端简单的聊天应用][5]”里的一个Python应用。当使用IDE的时候，你只要选择你要用的编程语言，然后通过IDE特别为运行这种语言程序而设计的虚拟机（VM），你就可以测试和预览你的应用了。

如果你读过那篇教程，就会知道我的那个应用只用到了两个API库－信息服务Twilio和Python微框架Flask。在我的电脑上就算是使用文字编辑器和终端来做也是很简单的，不过我选择使用IDE还有一个方便的地方：如果大家都使用同样的开发环境，跟着教程一步步走下去就更简单了。

### IDE不能做的事情 ###

到目前为止，IDE还不是一个长期托管方案。

当你使用IDE工作的时候，你可以在云上构建，测试和预览你的应用。你甚至还可以直接通过链接共享你的最终作品。

但是不能用IDE来永久存储你的整个项目。把帖子保存在Google Drive文件中不会让你的博客丢失。类似Google Drive，IDE可以让你创建链接用于共享内容，但是任何一个都还不足以替代真正的托管服务器。

还有，IDE并不是设计成方便广泛共享。尽管各种IDE都在不断改善大多数文字编辑器的预览功能，还只能用来给你的朋友或同事展示一下应用的预览，而不是像Hacker News一样的主页。那样的话，占用太多带宽的IDE也许会让你崩溃。

这样说吧：IDE只是构建和测试你的应用的地方，托管服务器才是它们生存的地方。所以一旦完成了你的应用，你会希望把它布置到能长期托管的云服务器上，最好是能免费托管的那种，例如[Heroku][6]。

### 选择一个IDE ###

![](http://a2.files.readwrite.com/image/upload/c_fit,w_630/MTIzNjEzMTg5MjA2NDc2MzAy.png)

随着IDE变得越来越流行，选择也越来越多。在我眼里，没有一个是完美的。不过，还是有些IDE在完成某些工作方面相对来说有些优势。

我尝试了一下免费级别的三个最受欢迎的集成开发环境：Cloud9，Koding和Nitrous.IO。每一个都有自己的优点，当然跟你用来做的事情有关系。下面就是我的发现。

### Cloud9：乐于协作 ###

当我完成了Cloud9的注册后，它提示的第一件事情就是添加我的GitHub和BitBucket账号。马上，所有我的GitHub项目，个人的和协作的，都可以直接克隆到本地并使用Cloud9的开发工具开始工作。其他的IDE在和GitHub集成的方面都没有达到这种水准。

在我测试的这三款IDE中，Cloud9看起来更加侧重于一个可以让协同工作的人们无缝衔接工作的环境。在这里，它并不是角落里放个聊天窗口。实际上，按照其CEO Ruben Daniels说的，试用Cloud9的协作者可以互相看到其他人实时的编码情况，就像Google Drive上的合作者那样。

“大多数IDE服务的协同功能只能操作单一文件”，Daniels说，“而我们的产品可以支持整个项目中的不同文件。协同功能被完美集成到了我们的IDE中。”

### Koding：在你需要的时候能提供帮助 ###

IDE可以提供你所需的工具来构建和测试所有开源编程语言的应用。对于初学者来说，看起来有点吓人。举个例子，如果我要做一个项目同时用到Python和Ruby组件，那我要用哪个VM来测试？

答案是两个都要，尽管使用免费账号的话，只能够同时打开一个VM用于测试。我就在Koding的控制面板里找到了答案，一个折叠起来的地方，用户可以提供或获得他们Koding项目的各种经验。在这三者中间，它是最容易使用的，拥有一个你可以寻求帮助并很快有人回答的地方。

“我们在这款产品里加入了一个积极的社区功能”，Koding的首席商务官Nitin Gupta说，“我们希望搭建一个环境，真正吸引那些希望得到帮助和愿意提供帮助的人们。”

### Nitrous.IO: An IDE Wherever You Want ###

相对于自己的桌面环境，使用IDE的最大优势是它是自足的。你不需要安装任何其他的东西就可以使用。而另一方面，使用自己的桌面环境的最大优势就是你可以在本地工作，甚至在没有互联网的情况下。

Nitrous.IO结合了这两个优势。“你可以在网站上在线使用这个IDE，你也可以把它下载到自己的电脑上”，其共同创始人AJ Solimine这样说。优点是你可以结合Nitrous的集成性和你最喜欢的文字编辑器的熟悉。

他说：“你可以使用任意现代浏览器访问Nitrous.IO的在线IDE网站，但我们仍然提供了方便的Windows和Mac桌面应用，可以让你使用你最喜欢的编辑器来写代码。”

### 底线 ###

这一个星期[使用][7]三个不同IDE的最让我意外的收获是什么？它们是如此相似。[当用来做最基本的代码编辑的时候][8]，它们都一样的好用。

Cloud9，Koding，[和Nitrous.IO都支持][9]所有主流的开源编程语言，从Ruby到Python到PHP到HTML5。你可以选择任何一种VM。

Cloud9和Nitrous.IO都实现了GitHub的一键集成。Koding需要[多几个步骤][10]，不过也是可以实现的。

每一个都轻松地集成了我需要的API。每一个也都可以让我自己安装喜欢的包（Koding需要超级用户权限）。它们都带有内置的终端，可以用来轻松地测试和布置项目。三个都支持轻松地预览项目。当然，它们也都把我的项目托管在云服务器中，所以我在任意地方都可以在上边工作。

不好的一面，它们都有相同的缺陷，不过考虑到它们都是免费的也还合理。你每次只能同时运行一个VM来测试特定编程语言写出的程序。而当你一段时间没有使用VM之后，IDE会把VM切换成休眠模式以节省带宽，而下次要用的时候就得等它重新加载（Cloud9在这一点上更加费力）。它们中也没有任何一个为已完成的项目提供像样的永久托管服务。

所以，对咨询我是否有一个完美的免费IDE的人来说，答案是可能没有。但是这也要看你侧重的地方，对你的某个项目来说也许有一个完美的IDE。

图片由[Shutterstock][11]友情提供

--------------------------------------------------------------------------------

via: http://readwrite.com/2014/08/14/cloud9-koding-nitrousio-integrated-development-environment-ide-coding

作者：[Lauren Orsini][a]
译者：[zpl1025](https://github.com/zpl1025)
校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出

[a]:http://readwrite.com/author/lauren-orsini
[1]:http://www.visualstudio.com/
[2]:http://c9.io/
[3]:https://koding.com/
[4]:http://nitrous.io/
[5]:http://readwrite.com/2014/07/11/one-click-messaging-app
[6]:http://heroku.com/
[7]:http://help.nitrous.io/ide-general/
[8]:https://www.nitrous.io/desktop
[9]:https://www.nitrous.io/desktop
[10]:https://koding.com/Activity/steps-clone-projects-github-koding-1-create-account-github-2-open-your-terminal-3
[11]:http://www.shutterstock.com/
