使用Linux作为主要开发人员桌面的优势

时间:2010-05-22 01:55:06

标签: linux desktop

我希望得到一些关于为什么开发人员应该并且需要在日常基础上使用Linux作为主要开发桌面而不是使用Windows的优点的一些输入。当您的Dev,QA和Production环境是Linux时,这非常有用。

我一直回到的当前类比是。如果我将我的演示车作为福特Escort制造,但我的项目车是福特野马,它根本没有意义。

我目前在一个允许使用Windows和Linux双启动的IT部门,但有些运行Linux,而绝大多数使用Windows。

自从将Linux用作主桌面以来,我提出了几个优点。

  • 与Dev,QA和Production
  • 相同的Exact操作系统
  • 相同的脚本( .sh)而不是维护( .bat和* .sh)。使用cygwin有所缓解,但仍然有点不同。
  • 团队学习简单的命令,例如:cd,ls,cat,top
  • 团队学习高级命令,例如:pkill,pgrep,chmod,su,sudo,ssh,scp
  • 通常对Linux进行安装的完全访问权限,例如RPM,DEB安装就像目标环境一样。

列表可以继续下去,但我希望得到一些我可能错过的任何反馈,甚至是任何不利因素(当然还有一些)。对我来说,将整个团队迁移到使用Linux,并使用Virtual Box运行Windows XP VM来测试95%的大多数人使用的功能项是有意义的。

这是类似的,但这里也有一个不同的主题。 link text

5 个答案:

答案 0 :(得分:5)

我不得不说,为了开发PHP(以前只在Windows XP中作为开发环境工作),开发人员(以前只在Windows XP中作为开发环境工作),我被迫进入SSH访问Linux开发盒以进行PHP / MySQL开发作为开发和系统管理员任务之间的一些知识差距的桥梁,这对开发人员来说非常有用,尤其是如果你最终陷入单人军队的境地。

我所有关于windows / eclipse和点击,现在我都是关于VIM和键盘快捷键。这些天,颜色编码/自动标签完成的东西非常好。

在我工作的地方,我们使用Rackspace Cloud服务器进行生产和开发。我为开发服务器拍摄了生产服务器(2G ram / CentOS 5.2堆栈)(因此环境完全相同但不是关闭但是非常接近)并在最小的实例(256M ram)上运行它,这对我的开发只有大约12个月的时间框。我的好友有一个mac,他为同一个代码库做了本地开发,并且由于mac环境,他在代码中经历了微妙的错误,我没有在我的云开发盒(或生产)上体验过。

所以我得到的是这种类型的转变(对于没有GUI的linux dev的云)可移植性和从硬件故障中快速恢复,并且生产力(键盘快捷键规则优于点/点击/拖动选择)是一些其他主要优点。如果您也可以在Windows中学习键盘快捷键,但是当被迫仅在终端窗口中工作时,您需要学习更多这些快捷键。我在笔记本电脑上运行Windows 7(本质上是作为我的云devbox的哑终端),但我用putty SSH进入我的devbox并使用VIM处理代码并使用git进行管理。如果我的笔记本电脑出现故障或被盗,我真正需要的是任何具有SSH客户端(和互联网连接)的计算机,我可以在30分钟内在临时借出的计算机上高效工作,直到我的首选硬件被修复/更换。 (我在笔记本电脑上的所有密码都在一个keepass加密的数据库中,它在dropbox.com以及外部HD上备份,偶尔也可以通过自己的gmail备份)。当然,配置putty有漂亮的字体/字体大小和全屏窗口大小。

相比之下,将一个从干净安装到开发环境的窗口框完全按照你想要的方式进行调整可能会花费几个全天的时间加上几个小时在这里和那里一个月,而且仍然没有根据你的需要复制生产环境。

好的,结束有偏见的咆哮 - 我想我的观点是我不知道我作为一个Windows家伙缺少什么,用于web开发的简单的非GUI linux工具已经证明对我们的工作方式优于我。但是请注意我的笔记本电脑是Windows 7,因此当工作完成或需要进行一些IE测试时,我处于“正常”操作系统。但是,我怀疑,如果没有明显的收获或迫切需要,很多人愿意做出这样的改变。

答案 1 :(得分:4)

我刚刚从Windows XP转而使用Ubuntu,这是我发现的:

Linux的专业版

  • Linux不太可能受到病毒的影响。当我使用XP时,我失去了一些病毒。
  • 正如你所说,与Dev / QA / Prod相同的环境很不错。当我连接到其中一台机器时,它不再是思维方式的改变
  • Linux更稳定。我通常每周或两周重启XP。
  • 您可以使用unix工具(find,pkill,grep等)。 Cygwin是一种解决方法,但似乎比本机运行unix慢得多。
  • Linux上的性能似乎好一点。这对我来说可能是最大的胜利,我有一个内存密集的Dev环境。

Linux的缺点

  • 与Word / Excel(我已使用多年)相比,Open Office对系统有点震撼。
  • 我想念Notepad ++
  • 我需要运行VirtualBox来托管我的本地Sql Server Dev数据库
  • 我需要在运行Internet Explorer时运行VirtualBox
  • 如果需要,在Sql Server Management Studio和IE之间复制/粘贴文本会更麻烦,因为它们在VirtualBox中运行
  • 远程桌面更让人痛苦。微软的远程桌面让我不必在工作之前退出工作,反之亦然
  • 我有一个仅与Wine模拟器一起运行的应用程序,当我在Linux上进行远程桌面操作时,它根本无法正常工作

我同意这位海报的说法,他们认为让开发人员做出选择是件好事 - 他们会欣赏而不是让一个或另一个操作系统撞到他们的喉咙。一个额外的好处是,你将能够区分好的开发者和坏人:)开个玩笑。

答案 2 :(得分:2)

在我第一次就职时,我们一直致力于HP UX系统。所以我真的学会了爱控制台的强大功能,它很优雅:

  • 使用find处理文件加载
  • 对于非常大的日志或数据文件没有延迟
  • for循环使用子字符串处理,可在几秒钟内重命名数千个文件。
  • 和许多其他漂亮的贝壳黑客为你节省时间和精力......

但在我以后的工作中似乎没有多少人同意......

然而。几年前我才有可能使用Fedora Linux机箱进行开发。这是他们存在的头几年的64位系统。也许这就是问题所在。我期待再次使用一个合适的shell,但由于Eclipse运行不稳定并且有很多错误,所以我感到很失望。这是一个可怜而且不可取的。从那时起,我再也没有机会使用linux作为开发操作系统。

当我几天开始从事新的工作时,我真的想再尝试一下。你会想,它还不稳定吗?我几乎无法想象。

答案 3 :(得分:1)

您不必使用Visual Studio。

由于这对您来说似乎不是问题,您可能会提供更多详细信息 - 您正在开发哪种语言?如果它是Java,那么你将把大部分时间花在Eclipse,Netbeans等上,所以它真的不会有太大的区别。您的转换预算是多少,或者您希望获得哪些节省?

从你的理由看,你已经很好地承诺了UNIX。

为什么不给开发者一个选择?

答案 4 :(得分:1)

git运行得更快。

...

好吧,没那么大的优势......