随着摩尔定律的通过,您是否可能会偏离框架?

时间:2008-09-17 01:52:50

标签: .net c winapi

框架以操作系统的速度和混淆为代价简化编码。随着摩尔定律的通过,您是否可能会偏离框架?

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

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

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

8 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

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

是什么让你认为摩尔定律已经死了?与麻省理工学院的学生一起种植自组装纳米线电路的细菌,摩尔尚未死...

答案 2 :(得分:1)

我认为要实现这一目标的挑战将是找到足够的开发人员,他们有信心编写代码而没有当今存在的许多框架的“拐杖”。越来越多的计算机科学/软件工程学术课程忽视了世界的C,支持Java和.NET(不是我有任何针对Java或.NET的东西,我以.NET为生,因为我相信很多,其他许多人都这样做,因为这是当今行业所要求的。

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

所以我同意之前的帖子,可能是由于框架的编写者想出了创造性的方法来确保他们的东西有效运行。我的印象是,相当多的开发人员并不真正对框架如何处理X感兴趣,他们只是希望它为他们做,以便它可以帮助他们更快地完成工作。在我看来,对于许多人来说,摆脱框架并不容易。

答案 3 :(得分:1)

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

问题通常在于选择正确的框架并决定您愿意牺牲多少性能以便于开发。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

“frameworks”究竟是什么意思?这个词在我们的行业中超载了很多。如果你的意思是像MFC或.Net那么我认为他们会留下来。它们与运行时的性能无关。 它们与代码重用,可维护性和关注点分离有关。

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

答案 6 :(得分:0)

“这个词在我们的行业中已经超载了。如果你的意思是像MFC或.Net那么我认为它们就在这里。它们与运行时的性能无关。它们与代码重用有关,可维护性和关注点分离。“

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

另外,我不得不承认,希望尊重原始海报,Vista 的一步倒退。由于DRM之类的东西不是“功能”,因此速度很慢。在许多方面,Windows XP实际上比Windows 2000更快。 Vista当然不是。

答案 7 :(得分:0)

WinRT不是完全解决这个问题,即尝试吃蛋糕并吃掉它吗?我的理解是,WinRT应该在保持速度的同时为我们提供更高级别的交互,因为它不是一个额外的层,而是C / C ++ baselevel OS api的替代品,可以直接由.NET使用?