Julia简介
历史
一群拥有各种语言丰富编程经验的Matlab高级用户,对现有的科学计算编程工具感到不满——这些软件对自己专长的领域表现得非常棒,但在其它领域却非常糟糕。他们想要的是一个开源的软件,它要像C语言一般快速而有拥有如同Ruby的动态性;要具有Lisp般真正的同像性而又有Matlab般熟悉的数学记号;要像Python般通用、像R般在统计分析上得心应手、像Perl般自然地处理字符串、像Matlab般具有强大的线性代数运算能力、像shell般胶水语言的能力,易于学习而又不让真正的黑客感到无聊;还有,它应该是交互式的,同时又是编译型的……
特点
- 核心语言非常小。标准库用的是Julia语言本身写的
- 调用许多其它成熟的高性能基础代码。如线性代数、随机数生成、快速傅里叶变换、字符串处理。
- 丰富的用于创建或描述对象的类型语法
- 高性能,接近于静态编译型语言。包括用户自定义类型等
- 为并行计算和分布式计算而设计
- 轻量级协程
- 优雅的可扩展的类型转换/提升
- 支持Unicode,包括但不限于UTF-8
- 可直接调用C函数(不需要包装或是借助特殊的API)
- 有类似shell的进程管理能力
- 有类似Lisp的宏以及其它元编程工具
使用场景
主要用于科学计算
- 机器学习
- 数据处理
- 算法仿真
- 数值分析
- etc
很多做算法的朋友应该都有这样的经历,在做一个项目时,先用Python/Matlab完成算法模型验证,再用其他编程语言(如C )来实现,而有了Julia,我们直接一步到位,模型验证和实现是一起的。
说明 本教程主要参考:
- Julia
- Mapt网站教程(收费的)
- Julia社区
- Julia中文社区
缺点
参考简书 每个语言都有优缺点,Julia的缺点在于:
- 基于JIT(Just-in-time,即时编译器,启动有预热时间,不适合小规模、只运行一次的任务;
- 新语言的生态还不够强,不适合调库党;
- CLI(command-line interface,命令行界面)工具缺乏,不适合在终端(Terminal)开发,需要借助能够热重启(reload)和IDE开发。
这是Julia官网给出的各种语言之间的速度评测,C的速度为10^0。可以看出,Julia的运行时间基本是除了C之外最快的,有的算法甚至比C还要快。
安装Julia
Julia官网
现在已经出了1.0.3版本,直接现在安装即可,安装完成后打开julia,可看到如下的界面:
(Windows)
(MAC)
但我们写程序时如果只用REPL太蛋疼,调试也不方便,还需要Julia的运行工具:
下图是官方给出的Julia的Editor和IDE
在我们的教程中,会给出下面三种方式的安装教程:
- Julia Pro(基于Atom,算是比较正式的IDE了)
- Jupyter notebook
- vscode的Julia插件
Julia Pro安装
官网 下载之后直接安装即可,Julia Pro安装的内容比较全,基本算是Julia的全家桶了,Jupyter、REPL和基于Atom的IDE都有,目前最新的也是v1.0.2。装完之后即可直接使用。
vscode Julia插件
在vscode中安装Julia插件和Code Runner插件,在User Settings中设置
代码语言:javascript复制"julia.executablePath": "D:\MyProgramFile\Julia-1.0.0\bin\julia.exe"
完成Julia文件后,直接右键Run Code即可。 在MAC上的vscode上,还不支持Julia 1.0版本,因此还不能运行1.0的Julia。相信不久就会出来了,大家耐心等待。等出来了第一时间会在公众号“从数据分析到量化投资”里通知大家。
Jupyter note
- 先安装Jupyter,对于已经安装过Anaconda的朋友来说,已经默认安装了jupyter
- 运行Julia的REPL,按
]
键进入Pkg模式
- 运行
add IJulia
,安装IJulia - 运行
using IJulia
,这时如果提示我们需要run Pkg.build("ZMQ")时,我们根据提示内容操作 - 在julia模式下先导入Pkg,
using Pkg
,再运行Pkg.build("ZMQ")
,这是时会自动下载安装GitHub上各种需要的文件,但经常会提示各种下载错误,需要我们根据提示的错误,找到相应的网址和文件,下载下来后放到提示的文件夹中,比如ZMQ.x86_64-w64-mingw32.tar.gz
文件,放到~.juliapackagesZMQABGOxdepsusrdownloads
目录(~是home目录,Windows上在C:UserUserName下,MAC上在UserUserName下)
,再次运行Pkg.build("ZMQ")
;如果提示不止"ZMQ"这一个package,我们只需要根据提示安装所有下载失败的文件即可。 - 在安装过程中可能会提示需要安装
Windows Management Framework 3.0
以上版本,我们也找到最新的版本安装即可 - 如果报的error中,需要运行
Pkg.build("IJUlia")
,那我们运行前要先把jupyter.exe添加进来,运行ENV["JUPYTER"]=“D:Anaconda3Scriptsjupyter.exe"
- 没有error后,运行
using IJulia
- 运行
IJulia.notebook()
即可打开支持1.0版本的Jupyter notebook
还有另外一种解决方案就是解决“根”上的问题:加速访问GitHub的速度。
这里给大家提供一个csdn上的参考方案
GitHub下载速度加速
mac上刷新dns:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
say DNS cache flushed
当听到语音说:dns cache flushed,说明成功刷新了
大家可以根据自己的情况,选择适合自己的方案。