桌面系统和程序员
本周我出席了OpenStack峰会。在峰会上绝大多数应用部署都是基于Linux的,然而,大家使用的笔记本电脑最多的还是苹果产的。人们写代码,最终要把代码部署到Linux上,但在编码时却使用另外一种不同的操作系统。
最有趣的还是他们使用的开发工具。我在他们的背后看他们开发,看到的是命令行终端和浏览器。他们并没有使用Macs,他们的部署工具需要Linux 环境,他们之所以用Macs,是因为其它原因——漂亮的操作系统,ITunes,以及最炫的超薄设备。有些人在公司和在家里是用同一台电脑。他们在地铁里用它,玩游戏时用它,加班时用它。他们使用苹果电脑,是因为他们不想在工作和娱乐时使用不同的电脑。
我身边的这群程序员跟你在10年前的技术大会上看到的程序员不一样。他们成长在一个越来越重视用户体验的年代,Linux的可配置/灵活性对他们不再有吸引力。人们工作的时候使用免费软件(并且开发或维护免费软件),却运行在一个不免费的操作系统上,因为如果不这样会使他们另外一些很在意的活动体验上打折扣。Linux里有命令行终端和浏览器,但Linux的糟糕的多触点控制功能足以影响在其上的工作。使用Linux会减慢他们的工作。
但是,就算我们改进了所有这些提到的问题,人们为什么要是有Linux做开发环境?Linux的最大优点是提供了一个相当自由的环境,能够让使用者修改他们的软件。我们可以想象,这并不具有巨大的吸引力。否则,其它的劣势也就不是问题了。
当我们在讨论一个程序员的经验时,我们基本上是在说这个人用桌面电脑编程的经验,而不是指他们偶尔使用Linux的经历。这些人并不需要一个更好的 API文档,他们并不需要一个好用的IDE。他们需要的是一个好的桌面环境,能够让他们访问他们日常所需的各种服务。如果有人在他的问题库里提交了一个 bug,他会收到一封Email。他们需要点击邮件里的连接,进入一个web页面,看到关于这个bug的描述。如果他知道这个bug已经在另外一个分支里修复了,它会切换到gihub页面,找到bug修复的ID,然后切换回来,将其粘贴到bug修复描述里。这很无聊,很讨厌。这让人分心。
如果桌面环境能内置一个智能的问题跟踪系统,它能够呈现各种相关的信息,不需要人去在两个系统间切换。如果git提交能够在本地存放索引,程序员不需要打开浏览器就能找到相关信息。这样一来,一个简单的任务,虽然需要牵连多个环境内容,也能够很快速的完成。
这只是一个简单的例子。更进一步分析。使用各种web服务来管理各种开发过程,省去了公司维护自己的基础系统,但是,在使用过程中,需要程序员在多个拥有不同界面的系统间来回跳跃。时间浪费在其中。这让程序员不高兴。
一方面改进桌面环境的可用性,一方面优化程序员的工作流程,避免他们在终端和浏览器间浪费精力,用更多的时间来开发,这样能很大程度的防止程序员从这个桌面环境中流失。这能够让Linux从其它操作系统中脱颖而出,苹果和微软都在花大力气改进他们的程序员开发工具,但这些工具只是针对他们的平台。能够更方便执行常见的开发工作,这将会成为一个桌面系统的独特卖点。
我在这次峰会上跟很多人说了这个观点,让人宽心的是,有不少人也在思考这个问题,希望能在这些事情上给予帮助。我在期待,我也在期待有更多能够让程序员的开发更轻松的观点提出,但同时也不能让其它用户的体验有损伤。看起来这是一个有趣的挑战。
来自:程序师网