不要为 Linux 编写代码
为单一平台开发应用程序的时代已经成为历史。为什么呢?因为每个平台都至少提供一项在其他平台无法获得的关键优势;Windows、Linux/UNIX、Mac OS X、嵌入式 Linux 和其他平台都各自提供独特的优势。但是,鉴于不断变化的市场条件,不可能预测哪个平台会为您提供所需的竞争优势。
我们的答案是:为什么要选择?我们认为,开发人员可以并且应该通过拥抱多平台开发来利用每个平台的最佳品质。这不仅适用于桌面,也适用于服务器、网络、移动设备以及连接我们的所有其他工具。我们日益增长的移动工作方式要求便携式数据和便携式应用程序与当今的分布式网络和全球组织相匹配。
想要竞争和生存的组织必须认识到碎片化的操作系统环境是既定的事实,并且他们必须通过开发能够在尽可能多的平台上快速、干净且原生运行的应用程序来做出回应。以这种方式编写的应用程序可以利用每个平台提供的最佳功能,而无需为每个实例编写和重写。这个过程限制了您的公司,并且造成了巨大的时间浪费。具有前瞻性的公司已经认识到单平台开发注定要失败,并且他们已经接受了一种更好的方法。以下是我们认为这份关于单平台开发消亡的报告并非夸大其词的原因。
如果您希望为多个平台开发,从而扩大您的目标市场,那么您的成本将急剧上升。您需要一个完整的团队为每个平台进行开发。也许更重要的是,您需要一个完整的团队来维护和支持每个平台。这代表着每个平台的成本呈线性增长——这是一种非常低效的经商方式。
为一个平台开发应用程序会增加您的风险,因为您必须在市场潜力尚不明确之前在市场中做出选择。谁能说您会是对的?软件公司已经因为这种选择而兴衰。在最近的过去,人们说 Windows(凭借其势头和市场主导地位)是显而易见的选择——但是等等!Linux 已经证明自己是服务器领域的有力竞争者,并且正在桌面和嵌入式领域获得强大的势头。世界一流的消费者和企业公司正在拥抱其强大功能、灵活性、安全性和低成本。因此,曾经显而易见的平台决策现在不再那么显而易见了。您知道这种快速转型何时(或何地)会再次发生吗?我不知道。
也许最重要的是,如果您将开发限制在单个桌面或服务器平台上,您将立即限制您访问世界上增长最快的软件市场:移动系统。例如,如果您为 Microsoft Windows NT/2000 编写应用程序,您将自动消除在移动设备上经济高效地运行应用程序的任何方式,因为您必须重写源代码。鉴于使应用程序移动化几乎是必不可少的,因此在单个桌面/服务器平台上开发应用程序对于该应用程序来说可能是一种判决,甚至在其完成之前就是如此。
软件行业已经努力了一段时间,以开发商业上可行的多平台开发策略,并且其历史中充斥着试图这样做但失败的公司。为什么?
一个困难是缺乏完整的功能。许多工具包仅在多个平台上提供部分功能,而不是全部功能。另一个问题是依赖模拟或虚拟机。这两者都会带来显着的且通常是不可接受的性能损失,特别是对于最需要高性能的移动设备而言。
众所周知,虚拟机之间的差异会导致实现上的变通方法和调整,以及增加维护工作。这是另一项开支,它使必须做这项工作的开发人员感到痛苦。
但是,今天,已经存在成熟的方法可以一次编写应用程序,编译并在任何地方运行它。进行多平台开发的公司创造了一个环境,在这个环境中,开发创新将再次成为日常——而不是例外。
Haavard Nord,Trolltech 的联合创始人兼首席执行官,他的编程生涯始于尝试为数据库开发寻找可接受的多平台工具包。他现在推动 Trolltech 在单源、多平台软件开发方面的努力。该公司的产品通过让开发人员编写可在 Windows、Linux、UNIX、Mac OS X 和嵌入式 Linux 上原生运行的单源应用程序来鼓励创新。