这不是咆哮;这是一个技术问题。
各种能力的 Haskell 编码人员似乎都同意构建 gtk 是一个巨大的障碍。甚至专家在阴谋安装它时似乎也心存疑虑。这是一个包含许多组件的大型系统;在安装 gtk 的系统上,组件的年龄和版本差异很大;有些部分和配置在不同的操作系统上是完全不同的,等等。
这些技术限制会永远伴随我们吗?或者是否还有其他导致构建不可靠性的原因,可以在未来解决?
这不是咆哮;这是一个技术问题。
各种能力的 Haskell 编码人员似乎都同意构建 gtk 是一个巨大的障碍。甚至专家在阴谋安装它时似乎也心存疑虑。这是一个包含许多组件的大型系统;在安装 gtk 的系统上,组件的年龄和版本差异很大;有些部分和配置在不同的操作系统上是完全不同的,等等。
这些技术限制会永远伴随我们吗?或者是否还有其他导致构建不可靠性的原因,可以在未来解决?
我认为一个主要问题是 gtk2hs 依赖于 Cabal 范围之外的资源——它需要外部库才能正常工作。Cabal 非常适合仅用于 Haskell 的东西,但它并不是特别擅长支持外部资源和依赖项。
我认为稳定 gtk2hs 构建的最大希望是使用系统的包管理器,主要是因为这些包管理器在处理所有这些不同的依赖项方面要好得多。
但是,请对我所说的一切持保留态度:我几乎没有第一手经验;我的想法主要基于我读过的东西,比如这篇文章。
Gtk2Hs 实际上做了很大的努力来变得更容易安装,目前在 Windows 上这样做很容易:你从 GTK 安装“all-in-one-package”,然后“cabal install gtk2hs-buildtools”,然后“cabal”安装 gtk” 并且它可以工作......在 linux 上它并不难:你只需要在 cabal 序列之前安装 gtk 的开发包。
我不会说这是完美的并且每次都有效(必须避免使用 GTK 的某些版本,尽管不是最新版本),但现在的情况比过去好得多(在 cabalization 之前)。
当然,在所有这些情况下,主要问题并不在于 Haskell,而是库的 C 部分,Haskell 和 Cabal 带来了他们自己的问题,但它们并没有真正相关,我继续希望有一些改进cabal-install 尤其是 ghc-pkg 将来会有所帮助(关于潜在问题的优秀文章:http ://www.vex.net/~trebla/haskell/sicp.xhtml ,每个人都应该被迫阅读在使用阴谋集团之前!)。