使用 Adob​​e 的“亚当和夏娃”C++ GUI 库的经验?

Posted

技术标签:

【中文标题】使用 Adob​​e 的“亚当和夏娃”C++ GUI 库的经验?【英文标题】:Experiences with Adobe's "Adam and Eve" C++ GUI library? 【发布时间】:2010-12-12 01:10:55 【问题描述】:

我试用了令人印象深刻的演示应用程序。然而,构建它并将其与我自己的代码集成很困难,因为它是一个如此大的项目。

有没有人成功地将它用于自己的项目?很难构建并与您自己的 C++ 代码集成吗?

链接:STLab。

对于感兴趣的人:还有一个Google Tech Talk 阐明了项目背后的哲学思想。

【问题讨论】:

真的是GUI库吗?在我看来,它是对 STL 的封装——类似于 Rogue Wave tools.h++ 和 Boost,因此这里不涉及图形工具包。 【参考方案1】:

ASL 在 Adob​​e 中被大量使用。布局库 (Eve) 用于许多 Adob​​e 产品,它的变体自 Photoshop 5 以来一直在使用。属性模型库 (Adam) 在 CS4 中得到了一些使用,并且可能会在未来的产品中更多地使用。我不能再肯定地说,因为几个月前我离开了 Adob​​e,现在在谷歌工作。我仍然在 ASL 上投入了一些时间,并继续与 Jarvi 教授和他的一些学生合作开发属性模型库(参见 ASL wiki 上的论文)。

与您的产品集成可能有点困难。 ASL 中的平台库(Windows 和 Mac Carbon 的 Adam 和 Eve 的后端)开始是一些小的示例代码,然后社区开始对其进行改进(Windows 移植最初是社区的努力),然后我们有一些雄心壮志要做它一个真实的、受支持的库。但后来 Apple 放弃了 Carbon 64 位,并且 Adob​​e 的框架计划发生了变化,因此我们无法在 Adob​​e 内部利用我们的努力。因此,平台库有点不稳定 - 如果您的代码库已经在使用框架,您可能会考虑直接集成 Adam 和 Eve(这两个库的 API 非常小)。与框架集成有两个挑战。 Eve 需要好的指标来做一个好的布局,包括基线之类的东西——从你的 UI 工具包中获取它可能很困难。属性模型库采用大多数 UI 工具包不遵循的严格模型/视图/控制器模式,因此您必须进行一些调整。随时在 ASL 邮件列表上提问。我们还可以帮助构建 - 它实际上并不像看起来那么复杂。

【讨论】:

你不是苹果可以利用它吗? 所以,Adobe Photoshop for Linux 平台是可能的。由于 Adob​​e Lightroom 使用 Lua 语言作为图形界面,而且它是跨平台的,我认为使用 ASL 和 Adob​​e 产品可以移植到 Linux 平台。【参考方案2】:

我观看了技术讲座。当他展示真实世界的示例代码,然后使用他的模型大幅缩短版本时,他有点迷失了我......我怀疑他的实现,就像其他任何东西一样,实际上会是如果真正追求解决实际问题,就会因现实世界的考虑而陷入困境......

也就是说,这很有趣……演讲的前半部分很棒……我特别喜欢他关于通用编程是编码的数学的断言……

【讨论】:

另一方面,Adobe 是一家拥有开发人员的公司,他们必须生产真正的软件并且必须按时完成。在我看来,这增加了项目的可信度。具体来说,亚当和夏娃项目在我看来基本上是一个 XUL 变体,这当然不是不切实际的努力。然而,Adobe 之外缺乏更多真实世界的例子并不是很令人鼓舞。 我认为缺乏 Adob​​e 之外的示例是因为了解 ASL 等的人并不多,而且更抽象的通用代码通常不那么受欢迎。据我所知,无论出于何种原因,大多数公司仍然主要坚持使用非通用代码。

以上是关于使用 Adob​​e 的“亚当和夏娃”C++ GUI 库的经验?的主要内容,如果未能解决你的问题,请参考以下文章

nim

[51nod1605]棋盘问题

Minor GCMajor GCFull GC

Minor GCMajor GCFull GC

通俗易懂理解TCP和UDP(转)

51nod 棋盘问题(博弈论)