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 架构处理器,运算性能和智能手机相仿。