FP Complete 推出了 FP Haskell Center ,这是他们新的 Haskell IDE 和应用程序服务器。该 IDE 基于浏览器实现,开发者能够通过该 IDE 和应用程序服务器更加容易地创建并运行基于 Web 的 Haskell 程序。
为什么要选择 Haskell 呢?FP Complete强调了Haskell 的“强类型检查能力,能够在编译时捕捉到所有的错误,而不是像传统语言那样在运行时捕捉,这让Haskell 程序员能够从一开始就创建干净、简洁和正确的代码”。它们还宣称“Haskell 把产品的上市时间提升了30% 到50%,大大提高了程序员的生产力,降低了成本,提高了产品质量”。但是到目前为止Haskell 的使用已经受阻,因为Haskell 是通过一组开源的国产工具集部署的,用户必须通过一个复杂且耗时的流程才能将它们拼凑到一起。
InfoQ 对函数式编程障碍的研究结果表明,匮乏的工具支持是限制其发展的第二大障碍。因此这就Haskell IDE 发挥作用的地方。虽然它现在依然缺少很多传统的IDE 所具有的功能,但是它已经具有增量编译、错误报告、语法高亮和代码完成功能,同时还集成了 Hoogle (Haskell API 搜索引擎)。基于 CodeMirror 的编辑器还集成了 Git 和 GitHub,当然也提供了部署程序所需要的操作。作为另一种选择,你还能够下载一个独立的你应用程序的二进制包。
为了了解构建该 IDE 过程中所面对的挑战,InfoQ 采访了 FP Complete 的相关负责人。
构建一个 Haskell IDE 的挑战在于帮助开发者利用 Haskell 所拥有的所有能力。我们想要为类型错误和语法错误提供即时反馈,消除对单独的解释器的需要,例如用于测试表达式的 GHCi。我们还想利用现有的工具,例如 Hoogle 和 Haskell 的类型签名,从而能够在编辑器中搜索数据库为开发者提供额外的帮助。随着时间的推移,我们将非常有机会提供更加实时的反馈让开发者能够纠正常见的编码错误。
其他的挑战是创建匹配 GHC 构建系统的项目管理以及消除使用 cabal 所带来的诸多复杂性。这样能够帮助 Haskell 新手越过一些初始的障碍和学习 Haskell 的挫折。对我们而言,让所有人都感觉 Haskell 是容易的、可接近的是最大的挑战,但是来自于用户的大量反馈让我们相信我们在很多重要的方面上都取得了成功。
InfoQ:为什么你们要选择创建一个基于浏览器的 IDE 而不是基于一个已有的 IDE 平台构建呢?
我们最初的目标是让更多的开发者能够使用这个优秀的语言和生态系统。我们感觉提供仅需要很少设置的工具能够减少学习和使用 Haskell 的挑战。我们现在正在做的大部分工作是为用户提供经过测试的、修正的、审查过的类库,让 Haskell 应用程序的部署更加容易。我们的系统不仅仅是一个 IDE。它是一个稳定的、提供商业支持的系统,它集成了 Haskell 平台,包含一个云构建系统和一个部署系统。今年秋天我们将会添加向防火墙后的系统进行部署的功能,从而简化对基于 Haskell 的应用程序和服务的构建、配置、部署和管理的任务,让用户不需要关注它们在哪里运行。
InfoQ:该 IDE 依然缺少很多典型的 IDE 所具有的功能,例如,它不支持反射、调试和单元测试。那么你们将来在这方面有什么计划?
是的,我们计划在下一个发布版中包含所有这些功能,该版本大约会在今年年底发布,而这期间的更新版本可能会包含其中的一部分功能。我们还计划添加一些功能从而支持那些由很多子项目构造而成或者依赖于其他项目的大型项目。大型项目需要一个大型项目构建系统。我们还打算在任何可能的时机利用已有的工具和类库。
此外,我们还打算创建一些 API 和插件从而能够在已有的 IDE 和编辑器中使用我们的系统。Emacs 和 VIM 就非常受 Haskell 社区欢迎。随着时间的推移,我们将会添加更多的内容,并且会利用 Haskell 社区成员所完成的优秀工作成果。
FP Complete 提供了 30 天的产品免费试用期,同时还有一些其他的选择(每一个授权许可每月75 美元)。学生和老师能够获取到免费帐号。你是一名Haskell 程序员么,或者说你想要成为其中的一份子么?那么请让我们知道你的想法!
评论