Julia语言程序设计
上QQ阅读APP看书,第一时间看更新

1.1 有用的资源

Julia语言的设计者们显然是聪明的一群人,但笔者认为他们更具有符合时代的智慧。他们在设计实现这门包罗万象又简洁高效的语言时,便建立了开放的包管理机制,从而能够借助强大的开源社区,让Julia以前所未有的速度发展与普及。

截至本书成稿时,官方注册的包已近2000个,已经成为Julia生态系统的重要组成部分。笔者相信,随着Julia的快速发展,第三方包的规模与质量也会不断地提升。

Julia的贡献者来自世界各地,提供了大量各自领域有针对性的包,在这些包中要找到我们想要的支持并不困难。为了更好地管理这些包,让这些包更好地服务于各种应用场景,Julia将这些包分成多个频道,列举如下:

通用类:

·JuliaDocs—Julia文档系统相关的包。

·Julia-i18n—国际化(i18n)与本地化(L10n)支持。

·JuliaTime—日期与时间相关的库。

·JuliaPraxis—最佳实践案例与支持。

·JuliaEditorSupport—文本编辑器与IDE的扩展及插件。

·Juno—基于Atom编辑器的Juno IDE。

基础计算:

·JuliaArrays—自定义的数组类型及相关工具。

·JuliaBerry—Raspberry Pi[1]相关的资源与支持组件。

·JuliaCI—用于Julia包的持续集成工具。

·JuliaGPU—GPU计算支持。

·JuliaInterop—与其他语言进行混合编程的相关支持包。

·JuliaIO—包括序列化、通信协议及文件格式等IO相关的包。

·JuliaParallel—并行与分布式计算支持。

·JuliaWeb—Web技术栈

数学:

·JuliaDiff—微分数值计算。

·JuliaDiffEq—微分方程求解与分析。

·JuliaGeometry—计算几何。

·JuliaGraphs—图理论与实现。

·JuliaIntervals—计算机精准算术支持。

·JuliaMath—包括积分、傅里叶变换、插值等在内的数学包。

·JuliaOpt—最优化。

·JuliaPolyhedra—多面体计算(polyhedral computation)。

·JuliaSparse—稀疏矩阵求解等支持。

科学:

·BioJulia—生物学。

·EcoJulia—生态学。

·JuliaAstro—天文学。

·JuliaDSP—数字信号处理。

·JuliaQuant—金融。

·JuliaQuantum—量子科学与技术。

·JuliaPhysics—物理学。

·JuliaDynamics—线性及非线性动态系统、混沌等。

数据:

·JuliaML—机器学习。

·JuliaStats—数理与统计。

·JuliaImages—图像处理。

·JuliaText—自然语言处理、计算语言学及信息检索。

·JuliaDatabases—数据库及数据仓库驱动支持。

·JuliaData—数据操纵、存取及IO相关。

可视化:

·GiovineItalia—图表支持。

·JuliaPlots—数据可视化。

·JuliaGL—OpenGL API及其生态。

·JuliaGraphics—绘图、色彩及GUI相关支持。

在官网中,我们可以通过这些频道快速地找到感兴趣的内容。另外,Julia社区提供了论坛、年会等线下活动,也提供Twitter、新闻组等线上方式,帮助开发者参与并了解Julia语言,并能够促进参与者的交流互动。而且在YouTube等平台提供了各种教程,帮助新学者熟悉Julia语言。

官方提供的开发文档、GitHub中开源的代码,还有耗费心思撰写的本书,都可以成为我们学习这门语言的起点。

[1] 树莓派基金会(Raspberry Pi)是英国一个小型的慈善组织,旨在推广科技,且不以技术销售营利为目的。同名的Raspberry Pi则是该基金会提供的一款针对电脑业余爱好者、教师、小学生以及小型企业等用户的迷你电脑,预装Linux系统,体积仅信用卡大小,搭载ARM 架构处理器,运算性能和智能手机相仿。