`
withyou
  • 浏览: 457514 次
社区版块
存档分类
最新评论

平台相关性与平台无关性

阅读更多
这是一篇写给初学者看的文章。在前一段时间的招聘软件设计师的过程中,我对每一个看似初学者的人都会问这个问题,“您觉得平台相关性和平台无关性哪个更好 一些”,呵呵(偷笑),其实这是唬人的,多数回答者都会顺着出题者假装的思路回答“我个人认为平台无关性比较好”,可是只要有点软件设计经验或是对这个问 题有所思考的人都知道其实这个问题不只两个标准答案。

关于平台无关性,我不想说什么,说什么也没用。大量软件设计或软件架构以此来标榜自己的优秀和出众,其实这没什么,因为大部分平台无关性的工作不是由你来 做的。如果你正在写一个Java程序,并依照Sun的100% Pure Java的要求来做,那么应该就是平台无关的,如果你正在写一个Eclipse应用或直接用SWT/JFace组合来写应用程序,那么也是平台无关的,如 果你喜欢C/C++,并在用wxWidget写应用程序,那么也是平台无关的,如果你实在是很牛,在依照OSGi的规范写代码,那么ok,你的程序已经可 以从微设备到大型机统统可以用。

平台无关也是一个相对的概念,在多个操作系统上运行可以称为平台无关的,以往在多个不同品种的CPU上运行可以称为平台无关性,还有一件搞笑的事情,某个 公司出了一套系统,可以在Java和.NET两个平台上运行,但却只能依赖于Windows系统(因而只能依赖于x86芯片),居然还可以称平台无关性, 可见这个概念有多么混乱。我个人评价是不是平台无关的仅有一个标准,那就是——你有没有为平台无关做出贡献!如果你为了能在多个平台上跑出你的代码而做了 很多工作,那么你就可以称自己为平台无关的,而如果你仅仅依赖SWT工作,那就不能称自己为平台无关的。不过话又说回来,如果你把SWT包含在自己的软件 中,并为此出了该软件的多个版本(每个SWT的版本是一个发行包),那么你也可以称此为平台无关的,虽然这个贡献并非出自你手。

平台无关也不见得总是个优点,很多系统为了坚持平台无关而牺牲了很多特性,或不必要的提高了成本。比如前几年很多系统原意搞WEB界面,导致了很多易用性 方面的问题,Cooper说Web使人机交互技术倒退了10年,的确如此。我还读过一段源码,大概是一个单机版个人软件的源码,令人惊奇的是,该软件很 小,却把很多笔墨花在了业务对象和JDBC访问层之间的一个“抽象数据存储层”,理由是便于将来移至非JDBC平台,天哪!会有多少用户有机会使用不支持 JDBC的数据库??!!这种设计和下面一种设计是一样的效用:“为了让这段代码支持非OO语境,我决定整个软件只用一个类!”。这种追求可以用四个字来 表述就是:“过渡设计”或者“吃饱撑着”!

相反,这个世界上有80%的软件是平台相关的,这没什么不能理解的。就像“民主和专制的TCO哪个高”这个问题的答案一样,如果我现在要招聘的是部门经理 或副总裁,我很可能会问这个问题。事实上是,在整个人类的发展历程中,总成本最低(即总效率最高)的几个“社会时期”,几乎全是专制,但如果你不假思索,你的 答案一定是民主!当然,平台相关也是相对的概念。

说到这里,有兴趣的读者可能会说结合二者是最好的选择,我不喜欢这种说法,因为太辨证了,我喜欢的是首先考虑依赖于哪个框架,再找寻该框架的平台无关性, 如果没有必要,尽量不要为平台无关(实际上是一种优先级非常低的非功能性需求)做任何事情,但如果有必要且成本允许,再做少许考虑,最好还是能够重用开源 世界的产品。

仍以OSGi为例,这个例子很好,它对Java语言本身(还不是面向对象的公共语义)非常依赖,直接依赖至VM的spec,当然也写了些代码以避开 ClassLoader的个性,即使如此,OSGi事实上实现了从微设备到大型机全套支持,借助Java的平台无关性,既没有易用性、性能和成本方面的丝 毫损失,也为上层平台提供了平台无关的环境。同样,为Mac OSX设计的很多非常优秀的软件都没有考虑平台无关的问题,而是用在PC上再做一套的方式来解决,这些都是值得思考和借鉴的解决方案。

有点忙的泡泡
(转载本文需注明出处:Brian Sun @ 爬树的泡泡[http://www.briansun.com])




Brian Sun 2005-11-17 09:19 发表评论
分享到:
评论
1 楼 norwaywoods 2010-06-07  
扯淡。。。

相关推荐

    cor_信号相关性_相关性_

    在IT领域,尤其是在信号处理和数据分析中,"信号相关性"是一个至关重要的概念。相关性是用来衡量两个或多个变量...在实际应用中,这种相关性分析可以帮助我们识别信号间的相似性,检测噪声,甚至预测未来信号的行为。

    相关性、最小二乘估计、回归分析与独立性检验.pptx

    本资料主要涵盖了统计学中的相关性分析、最小二乘估计以及独立性检验这三个核心概念,这些都是在数据分析和企业管理中极为重要的工具。 1. 相关性分析: - 散点图是展示两个变量关系的直观方式,通过观察散点的...

    向量组的线性相关性教案.doc

    本教案旨在帮助学生理解并掌握向量组的线性表示、线性相关性和线性无关性等相关知识,以及它们在解决线性方程组问题中的应用。 1. **向量和线性组合**: - 在n维空间中,向量是由n个有序数构成的数组,这些数称为...

    论文研究-极端事件下相关性风险对冲策略研究.pdf

    而个股期权价格仅受个股波动率影响, 与相关性的变动无关, 此时股指期权价格比个股期权价格高出来的部分就包含了“相关性风险”的溢价. 从理论上说, 股指期权价格因为包含了相关性风险的溢价, 所以可以用来对冲个股...

    向量组的线性相关性.pdf

    向量组的线性相关性是线性代数中的一个重要概念,它描述了一组向量之间是否可以相互线性表示,以及这种表示的唯一性。在考研数学中,理解向量组的线性相关性对于解决方程组问题尤其重要。 首先,需要明确什么是向量...

    组织芯片检测星形胶质细胞上调基因1与原发性肝细胞癌病理因素的相关性.pdf

    此外,研究发现AEG-1蛋白高表达与患者的性别和年龄无显著相关性,这表明AEG-1在癌症中的作用可能与性别和年龄无关,从而进一步强调了AEG-1作为癌症早期诊断和预后指标的潜在价值。 研究中还提到了国家自然科学基金...

    论文研究 - 尼日利亚乔斯市成年艾滋病毒/艾滋病患者腹部超声检查结果与CD4细胞计数的相关性

    获得性免疫缺陷综合症(AIDS)是由人类免疫缺陷病毒(HIV)引起的... 除淋巴结肿大和腹水外,大多数发现与患者的CD + 4计数无关。 尽管腹部超声检查对这些患者的治疗非常重要,但尚未显示出对预测患者免疫状态的作用。

    图像相关性处理:使用图像相关性匹配来确定两个实体之间的相似性-matlab开发

    当我们谈论“图像相关性处理:使用图像相关性匹配来确定两个实体之间的相似性-matlab开发”时,我们聚焦的是如何利用MATLAB这个强大的计算平台来实现这种匹配算法。 图像相关性匹配是一种基于像素级别的比较方法,...

    4.3 向量组的线性相关性1

    总结起来,向量组的线性相关性和线性无关性是理解线性代数的基础,它涉及向量的空间分布、矩阵的性质以及线性方程组的解的存在性。这些概念在几何、工程、物理以及计算机科学等多个领域都有着广泛的应用。

    搜索引擎如何判断链接网站的相关性.docx

    6. **外链质量与多样性**:外链的相关性不仅限于锚文本和被链接页面,还涉及到整个链接网络。来自权威、相关网站的链接可以显著提升目标网站的权重。而与主题无关的大量低质量链接可能会对网站造成负面影响。 总的...

    Python-特征去噪提高对抗鲁棒性

    特征去噪是一种预处理技术,其目标是消除输入数据中的噪声或无关信息,使模型能够更专注于具有辨别力的关键特征。在深度学习模型中,尤其是在图像识别任务中,去噪可以减少对抗性噪声对模型决策的影响。 Python作为...

    线性代数A-向量组的线性相关性-答案.doc

    - 最后一部分的证明题进一步阐述了线性相关性和无关性的性质,比如如果向量组线性无关,那么其子集也线性无关,反之则不一定成立。 总结,向量组的线性相关性是线性代数中的核心概念,它涉及到向量的线性组合、...

    同济线性代数 向量组的线性相关性PPT学习教案.pptx

    总结来说,向量组的线性相关性和线性无关性是理解线性代数中的基本概念,它们与矩阵的秩、线性方程组的解以及几何空间中的向量分布密切相关。掌握这些概念有助于我们解决涉及线性关系的实际问题。

    02-7.2 向量组的线性相关性.pptx

    在数学的线性代数领域,向量组的线性相关性和线性无关性是基本概念,它们描述了向量间的关系。线性相关性指的是一个向量组可以通过线性组合(即乘以不同的标量然后求和)来表示零向量。线性无关性则是指向量组中的...

    正常女大学生经期穴位体表温度与室内温度和湿度相关性的研究

    选取了与胞宫功能相关的经穴(如血海、地机、中都、三阴交等)以及与胞宫功能无关的穴位(如悬钟)和非穴位区域,进行连续60分钟的动态温度探测。同时,每10分钟记录一次室内温度和湿度数据。 在统计分析过程中,...

    Lec09-线性相关性、基和维数1

    首先,我们要了解线性相关性和线性无关性的概念。线性相关性是指一组向量能否通过线性组合(乘以常数并相加)得到其他向量。如果一个向量组中没有任何一个向量可以通过其他向量的线性组合得到,且唯一解是所有系数都...

    EDM的模型无关性确定以及反磁性原子的作用

    我们基于包括电子相关性效应在内的电子狄拉克波函数,采用混合的微扰和变分方法,以超细致诱导的时间逆对称性打破了一般原子中的S-PS核子-电子相互作用。 将该方法应用于Hg原子,从而得出抗磁系统中S-PS核子-电子...

    考虑污染物浓度深度分布相关性的湖泊水质评价

    最后,文章强调了采用Copula函数相较于传统的Pearson相关系数在计算相关性方面的两个优势:一是Copula函数能够更准确地反映随机变量之间的相关结构,二是Copula函数的计算结果与随机变量的边缘分布无关。这使得其在...

Global site tag (gtag.js) - Google Analytics