许多软件框架,语言,平台都声称平台独立,并称之为销售功能。但是,我无法理解这怎么可能这么重要的特征。例如,据说Java与平台无关 - 但是当我知道我的webapp只能在一个平台上运行时,我为什么要关心?使应用程序平台独立的开销真的值得吗?
答案 0 :(得分:6)
对于webapps,它主要不是问题,因为根据定义它们几乎是“平台无关的”。我的意思是,应用程序的用户大多不依赖于任何特定平台。
对于桌面应用,这是您潜在客户群的问题。如果您认为自己将受益于多平台定位,那么值得让您的应用程序平台独立,否则最好远离它:)
答案 1 :(得分:5)
如果您知道您的应用只能在一个平台上运行,那么您应该不关心 - 您应该使用与目标平台上每个其他框架相同的标准来评估框架。
答案 2 :(得分:3)
这当然取决于相关的应用程序。如果您知道应用程序将仅在一个平台上运行,那么显然没有理由要求它与平台无关。另一方面,如果您正在构建一个应该可用于,例如,未来15年的应用程序,您怎么知道您选择的平台将会存在呢?很难预测未来,因此让您的应用程序平台独立会让您头疼不已。
平台独立性并不一定意味着开销。相反,它意味着良好的编程实践;如果你让你的应用程序与平台正交,那么改变平台是轻而易举的。
有时,不可能避免与平台相关的函数调用,例如,因为必须直接与低级别的某些硬件设备进行通信。即使这样,它也可能使应用程序“几乎与平台无关”。而不是将平台相关的东西散布到各处,将它们全部包装成一个类/包/任何东西。然后,您需要更改该单元才能将您的应用转换为其他平台。
答案 3 :(得分:2)
我们开发的Java B2B应用程序仅适用于Unix,但适用于所有Unix风格(Java可用)。
拥有多平台应用程序的优势在于我们的客户有时掌握Linux知识,有时在Solaris中,有时在FreeBSD中,...
通过这种方式,我们可以适应客户,而不是强迫他们使用一个特定的平台答案 4 :(得分:2)
例如,据说Java与平台无关 - 但是当我知道我的webapp只能在一个平台上运行时,我为什么要关心呢?
对你不利的事实并不意味着它没有任何好处。我相信很多Java开发人员都喜欢这样一个事实:他们不必为每个平台重新编译应用程序(因此它是一个卖点)。专门针对某些组件使用Active X的网络应用程序将面临更多障碍如果,将来其他平台也会受到关注。
使应用程序平台独立的开销真的值得吗?
取决于您的开销意味着什么。如果它是一个好的框架,可能会有最小的开销。当然,如果其他平台对您不感兴趣,那么是的,这是一个开销。然而,事实是,与大约十年前相比,现在有更多的平台开始变得重要(至少对于网络和桌面应用程序而言)。因此,从长远来看,开销可能是值得的。
答案 5 :(得分:1)
如果您只是在服务器端开发,那么您现在可能不需要处理它。但是,如果需要,您可能会非常高兴地发现您可以在另一个操作系统上无缝运行您的应用程序(例如,如果客户要求,或者您有特定的性能/功能需求)。
对于客户端应用程序,平台独立性意味着能够为Mac和Linux发布的工作少得多,是的,这可能是值得的。
答案 6 :(得分:1)
你几乎回答了自己的问题。如果您希望应用程序在多个平台上运行,则平台独立性非常重要。如果你不这样做,那就不用担心了。
以OpenOffice或Firefox为例。您可以在每个主要平台上使用它们。这对他们来说很重要,因为他们希望每个人都能够使用它们,无论他们的操作系统是什么,都能获得相同的体验。
如果您的项目较小并且不需要在每个平台上,那么请不要担心。这对你开发的每个项目都是一种判断力。
答案 7 :(得分:1)
但是,当我知道这一点时,我为什么要关心 我的webapp只能运行一个 平台?
你不应该。如果您知道您将只在一个平台上运行,那么平台独立性与您无关。
但是,你不等于潜在用户的所有人口。其他人会想要在多个平台上定位电脑。
就像有一个中文版本。如果你打算只用英语出售,那就无关紧要了。如果你想在中国销售,可能会有所帮助。
答案 8 :(得分:1)
从理论上讲,平台独立性可以帮助您避免所谓的“供应商锁定”,同时为您提供更广泛的覆盖范围和更多的客户。
实际上,您应该评估您的目标受众,并对能够提供给多个平台的利润潜力是否超过采用独立于平台的框架的成本进行良好的业务计算。毕竟,该框架可能声称在所有平台上都可以正常工作,但您必须验证该声明。更不用说没有框架可以解决交付应用程序的所有问题,例如部署,配置,集中管理,更新/升级等。
当然,如果您的产品是基于服务器的,并且最终用户将通过HTTP代理使用它,您不必担心它。在大多数情况下,只要你保持在[相对]安全的HTML,JavaScript和Flash领域。
答案 9 :(得分:1)
平台独立性对于软件供应商来说是一个理想的功能,因为他们投入大量资金开发现代化的复杂应用程序,因此他们不想人为地削减任何细分市场。他们想把他们的孩子卖给尽可能多的组织。
软件供应商试图说服IT部门平台独立性是一件好事,因为它可以避免供应商锁定。从理论上讲,我确信这很重要;然而,在实践中,大多数IT部门都会自己强迫供应商锁定他们的态度,通常涉及一个特别突出的技术供应商。
答案 10 :(得分:1)
“平台独立性”对不同的人来说意味着不同的东西。例如,“Windows XP”是否与“XP 64”,Vista或Windows 7不同?这取决于您是编写应用程序软件还是驱动程序,以及您依赖的预安装库和服务。
在最一般意义上,没有应用程序可以真正独立于平台 - 您不希望在烤箱中的嵌入式Linux上运行Web应用程序,或者在16 MB的Windows上运行3.11机器。
但是,当您的平台发生变化时,通常可以更好地准备具有平台独立性作为架构目标的软件框架,并且在任何长期项目中,将更改,如果仅因为硬件将被替换每个3 - 5年,新硬件通常带有新的操作系统版本。
答案 11 :(得分:1)
您总是为灵活性付出代价。
始终
确定成本是否合理(收益可能非常高)完全取决于手头的个人/公司的需求,但总是有成本。其中许多是隐含的假设,例如:
大多数人编码到文件系统不可知[1] api,而不是假设某个特定实现,并且这种选择是正确的,因此在该区域没有任何特定要求的情况下,这种选择通常是合理的默认选择。
尽管如此,有时值得重新审视您的核心假设,通常只是为了了解它们是什么
[1]至少说它是一个带路径分隔符'/'的树,而不是说ext3,NTFS,ReiserFS等......
答案 12 :(得分:0)
对于只有您将要使用的Web应用程序,与平台无关的唯一一点是,如果您更换服务器,它可以让您更轻松。
当然,像Java这样的语言不仅仅用于Web应用程序 - 人们也在其中编写独立的( - )桌面程序,而对于那些与平台无关的软件来说,它们更有用。 Sun可以完成确保Java在一大堆不同计算机上运行的工作,并且每个Java应用程序开发人员基本上都可以免费分享这项工作的好处。这对手机应用程序的开发人员(不是iPhone或Android,但是旧的基本手机)特别有益:为每个不同的手机编写不同的代码,这将是一场噩梦。许多手机都包含JRE来运行应用程序这一事实使开发人员的工作变得更容易。
答案 13 :(得分:0)
即使桌面应用程序存在跨平台问题,也是科学界的软件。根据我的经验,学院中的桌面比你在家里,办公室等所看到的更加异构。
答案 14 :(得分:0)
当您定位某个平台时,平台独立性不是问题,但是当您编写应用程序时。有一些库和框架可以解决您可能遇到的任何问题。只有你不能使用它们,除非它们是为你的目标平台编写的。
这就是为什么图书馆或框架尽可能独立于平台通常是一件好事,因为地球上的每个开发人员都是可能的客户。在下一步中,它使应用程序开发人员更容易编写在任何平台上运行的代码。在过去几年中,我们看到Mac和Linux的用户数量稳步增长。所以,如果你能以少许额外费用向他们出售,为什么不呢?