0

框架以牺牲操作系统的速度和混淆为代价来简化编码。随着摩尔定律的通过,您是否认为框架可能会发生转变?

我怀疑 Vista 没有取得巨大成功的原因之一是它的运行速度比 XP 慢得多,而且由于计算机的速度没有像过去那样大幅度提高,这种变化似乎是一种倒退。

多年来,CPU 的速度超过了软件的速度,因此增加了操作系统混淆和膨胀层的新框架几乎没有造成什么伤害。想象一下 Windows 95 在今天的硬件上运行的速度有多快(给定一些内存调整)。Win2K 和 WinXP 是很大的改进,我们可以忍受它们因为更快的计算机而变得更慢。

然而,即使在几年前,我注意到用 MS 基础类编写的程序看起来并不像直接编写到 API 中的代码那样清晰。由于这些框架(如 .Net 和其他框架)的激增只会使这种情况变得更糟,我们是否可能会发现能够将“C”代码直接写入 Win32 API(或其他操作系统中的等价物)将成为强大的竞争优势,即使它确实需要更长的时间来写?或者在更长的开发时间中进行权衡是否不值得?

4

8 回答 8

2

如果存在使应用程序更快的选择压力,我认为人们会更好地编写封装功能的框架,而不会过多地减慢系统速度。

处理像素的 Boost::Gil 框架是一个很好的基于模板的系统,它归结为许多内联函数 - 编译器创建的输出与没有像素包装器并直接访问值时相同。

所以 - 至于你的问题,我认为框架编写者的职责是确保他们的框架快速而精简。这可能意味着他们会检测哪些功能正在使用并删除与未使用功能相关的代码。

于 2008-09-17T01:57:09.530 回答
1

我认为实现这一目标的挑战是找到足够多的开发人员,他们有信心编写代码,而无需借助当今许多框架的“拐杖”。越来越多的计算机科学/软件工程学术课程忽略了世界上的 C 语言,转而支持 Java 和 .NET(并不是说我反对 Java 或 .NET,我相信很多人都靠 .NET 谋生,许多其他人都这样做),因为这是当今行业的需求。

因此,应届毕业生认为许多框架是理所当然的(除非他们有足够的兴趣亲自了解“幕后”发生了什么)。自学成才的开发人员也很可能会选择更容易学习和使用的东西。同样,尽管人们非常热衷于并不厌其烦地了解他们使用的任何框架的幕后发生的事情,但仍然如此。

所以我同意之前的一篇文章,框架的作者可能会想出创造性的方法来确保他们的东西高效运行。我的印象是,相当多的开发人员对框架如何做 X 并不真正感兴趣,他们只是希望它为他们做这件事,以便帮助他们更快地完成工作。在我看来,对于许多人来说,必须摆脱框架并不容易。

于 2008-09-17T02:20:39.253 回答
1

对于许多软件来说,性能不是问题,是时候上市了。这通常是“内部”的情况,团队可能更关心快速将应用程序的初始版本呈现给用户,而不是它的速度(或什至稳定)。除此之外,编写良好的框架将简化作为框架设计目标的应用程序的开发,如果有可用的框架,您经常会因为不使用框架而发疯。当然,您冒着风险,框架将允许您完成 80% 的目标,然后让您高枕无忧,但是,您通常可以通过在框架之外为最后一个工作来缓解这种情况20%。就像软件中的所有优点一样,它通常都是关于分层的;您可能首先选择 .Net 作为“框架” 然后决定为您的应用程序的某些部分使用特定的.Net GUI“框架”,然后可能为其他部分使用单独的套接字“框架”。或者,您可能决定在 C++ 中工作并使用 boost 作为框架,或者,可能选择一个更专注的框架,为您提供更多抽象和(希望)更高的编码速度。

问题通常是选择正确的框架并决定您愿意牺牲多少性能来简化开发。

于 2008-09-17T07:54:43.583 回答
1

存在封装通用功能的框架;这永远不会改变

是什么让你认为摩尔定律已经死了?麻省理工学院的学生培育出能够自组装纳米线电路的细菌,摩尔还没有死……

于 2008-09-17T02:07:31.687 回答
0

“这个词在我们的行业中被过度使用了。如果你指的是 MFC 或 .Net 之类的东西,那么我认为它们会继续存在。它们与运行时的性能无关。它们与代码重用、可维护性和关注点分离。”

我不得不说,在很多情况下,它们确实与运行时的性能有很大关系。即使你调用了框架,它直接调用了 API 调用(在这种情况下没有意义,但这是速度最好的情况),仍然会有额外的函数调用的性能损失,这可以有时很重要。

另外,我不得不承认,希望对原帖的尊重,Vista退步了。由于 DRM 之类的东西不是“功能”,所以速度很慢。Windows XP 实际上在许多方面都比 Windows 2000 快。Vista当然不是。

于 2008-09-17T04:36:05.310 回答
0

WinRT 不就是为了解决这个问题,即尝试吃掉我们的蛋糕吗?据我了解,WinRT 应该在保持速度的同时为我们提供更高级别的交互,因为它不是附加层,而是替代 C/C++ 基础级 OS api 以供 .NET 直接使用?

于 2012-05-02T09:28:21.263 回答
0

离开框架将是一种倒退,我认为并希望这不会发生。

于 2008-09-17T01:56:26.427 回答
0

“框架”到底是什么意思。这个词在我们的行业中被过度使用了。如果您指的是 MFC 或 .Net 之类的东西,那么我认为它们会继续存在。它们与运行时的性能无关。它们与代码重用、可维护性和关注点分离有关。

顺便说一句,Vista 并不慢,因为它使用了框架;它很慢,因为它使用了很多无用的框架,例如 DRM。它也可能因质量低下而受到影响,因为 MS 正在慢慢成为一个更加官僚的公司——我的看法。Vista也缺乏目标。它没有带来任何值得升级的东西。它试图用 GUI 结霜来补偿。

于 2008-09-17T02:17:55.797 回答