“平台”和“框架”这两个术语指的是什么?(涉及IT技术)

3

我很久以前就遇到过这个问题,现在又看到了这些术语,但不知道它们在计算机工程中的真正概念。

平台和框架是什么意思?

我看到许多术语,如跨平台和开发平台,还有同样的框架,但我无法安静地理解它们。它们是指库吗?它们是指不同类型的操作系统吗?

5个回答

4
术语“框架”有很明确的定义: 框架与库非常相似,唯一的区别在于控制权被倒置。 (控制反转是构成框架的关键特征。) 换句话说,你调用库,但框架会调用你。
另一种思考方式是,你编写一个应用程序,但留下所有不感兴趣的细节空白,并使用库来填充它们。框架则是一个应用程序。它是一个留下所有有趣细节供你填写的应用程序。(当然,在你用来填写空白的代码中,你可以反过来调用库。此外,框架本身将调用库来实现其内部工作。而且,框架通常捆绑了一组与框架紧密集成的丰富库。但是,区别仍然很清楚。仅仅因为框架和库一起打包在一个软件包中并不意味着没有区别。)
然而,“平台”这个术语并没有那么明确定义,也经常被重载。在移植本地应用程序的上下文中,它通常指的是CPU ISA(例如x86、AMD64、IA-64、POWER、MIPS、ARMv9、Sparc)、硬件架构(PC、CHRP、PReP、Mac)、内核(Linux、NT)和基本库(POSIX、Win32、Core Foundation)的组合。
在软件开发的更广泛上下文中,“平台”通常字面意思是“你的代码所依赖的东西”。对于本地应用程序,这可能基本上与上述相同;对于JVM应用程序,它可以是JVM加上JRE加上OSGI。
基本上,你可以把这个隐喻当成字面意思:平台允许你(即你的代码)站在比没有它更高的地方。

örg:我希望我能再次为这个答案投票:D,非常感谢你。 - Amir Zadeh
örg:框架的定义太狭隘了。例如,在Mac OS X和iOS平台上,框架是一个包含库和一组支持资源的捆绑包。这并不意味着控制反转。 - user23743

3

平台是一个模糊的术语,可以指:

  • 硬件(通常是CPU/架构)例如x86、Alpha等。
  • 操作系统例如Unix、Windows、Linux、Mac OS X等。
  • 虚拟机例如Java JVM、FlashPlayer AVM。

框架通常是一组工具:可以是软件、硬件、基于方法论/模式(但不一定全部都包含在任何特定框架中),这些工具结合起来提供了一种构建应用程序(或应用程序的特定层)的方式。

一些框架的例子如下:

软件

  • Java Swing
  • Microsoft WPF
  • Adobe Flex
  • Ruby on Rails
  • Django on Python

硬件/软件

  • Arduino(有争议)
  • Trusted ILLIAC

方法/模式(或过程)

  • SCRUM
  • IBM Rational Unified Process

我认为Arduino是一个平台。 - Matteo Italia
1
是的,我想不出一个硬件框架的好例子(Stack Overflow上的人们通常听说过),但Arduino(可以说)既是一个平台又是一个框架。 - ocodo

2

平台通常指软件运行的环境。因此,它通常指操作系统(如Windows或Linux),但有时也可能是体系结构(x86可能是一种平台,或者Java虚拟机)。框架通常是一组函数或类的集合,因此通常与库相同,或可以以大致相同的方式理解。


非常感谢,帮助我更好地理解。 - Amir Zadeh

1

我会尝试平台部分:平台是用来谈论你可以基于其“构建”或者可以想象为字面上的类比上“站立”,以完成某些事情的东西。我使用过“电话平台” - 它由软件和硬件组件组成,可以实现交互式语音响应系统的开发。


0

您可以在这里阅读有关平台和软件框架的内容: 链接文本


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接