过去,编程语言的设计者可以设计一些语法和语义,实现一个编译器,然后就可以收工了。—— Sean McDirmid
自从 Julia 语言 最初发布 以来,在短短几年内取得了长足的进步。超过 四百位贡献者 (并且还在不断增加)贡献了他们的时间,开发了激动人心的现代语言特性,例如用于并发的 通道、本地文档系统、分阶段函数、编译后的包、线程 等等。在 1.0 版本发布之前,我们拥有了更快、更稳定的运行时环境、更全面的标准库以及前所未有的热情的社区。
然而,编程语言不仅仅是真空中的编译器或规范。越来越多的,围绕一门语言的生态系统——支持你的包、工具和社区——成为决定一门语言能够应用于何处以及谁能够使用它的巨大因素。让每个人都能使用 Julia 意味着要直面这些问题。特别是,我们将投入大量精力构建一个全面的 IDE,Juno,它将为用户提供诸如智能自动完成、绘图和数据处理、交互式实时编码和调试等功能。
Julia 用户不仅仅是程序员——他们是工程师、科学家、数据处理人员、金融家、统计学家、研究人员等等,因此,我们的 IDE 必须足够灵活和可扩展,才能流畅地支持他们所有不同的工作流程。同时,我们希望避免重新发明轮子,并且不希望损害人们期望获得的强大而可靠的核心编辑体验。幸运的是,我们认为我们可以通过构建在优秀的 Atom 编辑器之上来做到鱼与熊掌兼得。
Atom 社区在构建一个功能强大且灵活的编辑器方面做出了惊人的工作,同时也没有牺牲愉悦和直观的体验。Web 技术不仅使新贡献者能够非常轻松地参与编辑器的开发,而且也使我们能够轻松地尝试激动人心的现代功能,例如实时编码,这使得它成为我们工作的一个非常有希望的选择。
我们的首要任务是使基本的交互式使用能够真正良好地工作,包括对显示和图形的强大多媒体支持。不久之后,我们将拥有一个包含 Juno、Julia 和许多用于绘图等的有用包的全面的 IDE 包,我们的目标是让任何人都能在几分钟内高效地开始使用 Julia。一旦基础工作到位,我们将集成文档系统和即将推出的调试器,实现性能 lint,并确保提供帮助和教程,以便每个人都能轻松上手。
Juno 实现为 大量独立模块和插件的集合;虽然这增加了一些开发开销,但我们认为确保其他项目能够从我们的工作中受益是值得的。例如,我们为 Atom 编写的 IDE 组件集合,Ink,是完全与语言无关的,应该可以被其他语言重用。
我们始终欢迎新的贡献,所以如果你有兴趣帮助推动这个激动人心的项目向前发展,请查看 开发者安装说明 并向我们发送 PR!