Julia 入门

Julia 入门

最近在学习Julia,啃文档 Julia Documentation
Julia 是一个面向科学计算的高性能动态高级程序设计语言。其语法与其他科学计算语言相似。在许多情况下拥有能与编译型语言相媲美的性能。
JUlia 主要用于数值计算,有以下特点:

  • 核心语言非常小。标准库用的是Julia语言本身写的
  • 调用许多其它成熟的高性能基础代码。如线性代数、随机数生成、快速傅里叶变换、字符串处理。
  • 丰富的用于创建或描述对象的类型语法
  • 高性能,接近于静态编译型语言。包括用户自定义类型等
  • 为并行计算和分布式计算而设计
  • 轻量级协程
  • 优雅的可扩展的类型转换/提升
  • 支持Unicode,包括但不限于UTF-8
  • 可直接调用C函数(不需要包装或是借助特殊的API)
  • 有类似shell的进程管理能力
  • 有类似Lisp的宏以及其它元编程工具

目前数据挖掘、机器学习主流的无疑是Python和R。Python生态圈完整,三方的库很齐全,要完成什么功能都已经有很多的实现,直接调用就可以了;R更偏金融邻域,上手快,集成很多数据集。在工作中使用这两种语言进行数据挖掘、机器学习和量化计算肯定是绰绰有余的了。
但正是由于生态发展得太完善了,三方的实现太好了,自己又没有重复造轮子的动力和信心,想了解底层实现的时候,要么是因为代码历史太久远而且结构复杂不容易看懂,要么看着看着就会觉得没有目标而索然无味。这样只会使自己浮于了解API调用的表面,没法深入了解每一个数据挖掘、机器学习和量化计算算法实现背后的原理和思想。
Julia作为一门较新的语言,基础设计的很不错,性能好,速度快,支持分布式和并行计算,还支持元编程,可以说有着成为一门优秀语言的潜质,只是语言年轻,三方实现少才没有很流行。但这正是一个契机,期望能在熟悉Julia语言之后能自己动手实现一些三方库,即避免了重复造轮子,有可以在实践中增强学习。在这个新语言的领域做一个排头兵,作一个探索者会有意思的多。去学习这门语言的时候,查不到更多的资料,只能通过文档和源码来仔细分析,这才是学习程序的真正乐趣,而不是调用一大堆第三方库,却没有一个是自己一行行调试过的。

Comments are closed.