在两个或多个不同平台上开发应用程序是否有好处?即使在同一平台上使用不同的编译器也有好处吗?
答案 0 :(得分:3)
是的,特别是如果您计划为多个平台分发代码。
但即使你不跨平台开发也是一种未来的防范形式;如果它今天在多个(不同的)平台上运行,它更有可能在未来的平台上运行,而不是经过调整,调整和专门工作的版本7.8.3清洁安装供应商X的Q系列盒子(补丁级别1452)并没有别的。
答案 1 :(得分:2)
使用不同的编译器和不同的操作系统查找并简单地防止错误似乎有一个好处。不同的CPU可以尽早确定端序问题。如果你想在这个级别保持原生,那么GUI级别会有痛苦。
答案 2 :(得分:1)
简短回答:是的。
如果没有克隆磁盘,几乎不可能使两个系统完全相同,所以无论你是否愿意,你最终都会在“不同平台”上运行。通过专门面对和解决“如果系统A不做B之类的事情怎么办?”问题在于你更有可能找到代码所做的那些关键假设。</ p>
那就是说,我会说你应该在系统A上获得大量的基本代码,然后花一天时间(或一周或......)让它在系统B上运行。它可以非常教育
当我将源代码级C调试器移植到100多种U * NX时,我的教育在80年代回归。 GACK!
答案 3 :(得分:1)
在两个或多个不同平台上开发应用程序是否有好处?
如果这是生产软件,那么显而易见的原因就是更大客户群的诱惑。当客户听到您支持多个平台时,您的产品的吸引力就会被放大。请记住,大多数企业不使用单个操作系统,甚至不使用单个版本的操作系统。通常使用Windows,另一台Mac以及一些较小版本的Linux来查找部分。
还可以看出,为单个平台定制产品通常比在多平台上运行要繁琐得多。收益递减法甚至在你知道之前就开始了。
当然,如果您正在为客户的专有硬件进行现有产品的定制工作,那么所有这一切都没有意义。但即便如此,请密切关注客户在其保留节目中所使用的所有硬件 - 您永远不知道他何时会要求它。
在同一平台上使用不同的编译器是否有好处?
是的,再次。不同的编译器实现不同的扩展。请确保您不依赖于特定编译器的特定版本。
此外,编译器本身可能存在一两个错误。使用多个编译器有助于对它们进行排序。
我进一步看到了使用两个不同编译器的(跨平台)产品的位 - 一个用于那些浮点操作需要非常高精度的模块。 (有一段时间我听说过其他人这样做,但是......)
答案 4 :(得分:1)
我已将一个大型C ++程序(最初是Win32)移植到Linux上。这不是很困难。主要处理编译器不兼容问题,因为当时的MS C ++编译器以各种方式不兼容。我预计这个问题现在已基本消失(直到C ++ 0x功能开始逐渐出现)。还要编写一个简单的平台抽象库,将特定于平台的代码集中在一个地方。这取决于您在多大程度上依赖于操作系统上难以模仿新平台的服务。
您不必从头开始构建可移植性。这就是为什么“移植”通常被描述为您在最重要的平台上首次发布后可以一次性执行的活动。您不必从一开始就不断地这样做。纯粹出于经济原因,如果你能避免从事可能永远不会得到回报的工作,显然你应该这样做。稍后移植的成本,当真的有必要时,结果并没有那么糟糕。
答案 5 :(得分:1)
大多数情况下,存在一个为其编写应用程序的现有平台(个人软件)。但是,如果您决定提供独立语言,那么可以解决更多开发人员(两个平台)。
如果中小企业的产品(标准软件)可以更好地销售,如果它们在不同的平台上运行!您可以访问WIN&amp; LINUX这两个市场! (和MacOSx等......)
大公司主要购买产品供应商支持/认证的硬件,仅用于部署指定产品。
答案 6 :(得分:1)
如果您在多个平台上同时开发,则可以获得使用不同工具的优势。例如,我曾经有一次内存覆盖(我仍然发誓我不需要空字节的+1!)导致“free”崩溃。我在Windows上加快了代码的速度,发现在大约1分钟内使用Rational Purify进行覆盖......在Linux下我花了一个星期来追逐它(valgrind可能已经找到它了......但我不知道它当时)。
对于我来说,相同或不同平台上的不同编译器是必须的,因为每个编译器都会报告不同的内容,有时一个编译器关于错误的报告将是乱码,但另一个编译器非常清楚。
在开发过程中使用多个数据库之类的东西意味着您不太可能将自己绑定到特定数据库,这意味着如果有理由可以更换数据库。如果你想将使用Oracle的东西集成到使用SQL Server的现有基础设施中,例如它真的很糟糕 - 如果可以将Oracle或SQL Server部分移动到另一个系统(我知道一些有3种不同的地方)他们的金融系统的数据库... ick)。
一般来说,总是开发两三件事意味着你发现错误的几率更好,系统更灵活的几率更好。
另一方面,所有这些都需要花费时间和精力,而这在短时间内被视为不必要的开支。
答案 7 :(得分:0)
有些平台有非常糟糕的开发工具。我曾经在IB工作,而不是使用Sun的可怕工具集,在VC ++中开发代码然后移植到Solaris。