Julia 是一种多范式函数编程语言, 主要用于机器学习和统计编程.
Python 是另一种用于机器学习的多范式编程语言, 尽管大家通常认为 Python 是面向对象的.
另一方面, Julia 更多的是基于功能范式. 虽然 Julia 当然没有 Python 那么受欢迎, 但是将 Julia 用于数据科学有一些巨大的好处, 使得它在 Python 的许多情况下都是一个更好的选择.
1, 广泛
Python 的应用范围很广泛, 很多事情可以用 Python 做, 但不能用 Julia 做. 当然, 这只是本地语言, 因为我们现在讨论的多功能性指的是语言的多功能性. Julia 代码在 R,Latex,Python 和 C 中都是通用的可执行代码, 这意味着典型的数据科学项目有可能只编写一次, 并从包装器中的另一种语言以 Julia 为本机进行编译, 或者只发送字符串.
PyCall 和 RCall 也是相当大的交易. 考虑到 Julia 的一个严重缺点实际上是包, 因此在需要时调用 Python 和 R 非常方便. PyCall 在 Julia 中得到了很好的实现, 而且做得非常好, 非常有用.
2, 多分派
Julia 是一种非常独特的类型语言, 它有自己的怪癖和特性, 但其中最酷的特性之一是 Julia 的多分派. 首先也是最重要的是, Julia 的多分派速度很快. 除此之外, 使用 Julia 的多分派使得函数定义作为结构的属性应用成为可能.
不仅如此, 使用 Julia 的多分派使得函数可扩展. 这对包扩展是一个很大的好处, 因为无论何时显示导入方法, 用户都可以更改它. 显式导入方法并将其扩展为将结构路由到新函数会很容易.
3, 速度
谈到 Julia 不谈速度是很难的. Julia 以速度快而自豪. Julia 与 Python 不同, Python 是一种编译语言, 它主要是用自己的基础编写的. 然而, 与 C 等其他编译语言不同, Julia 是在运行时编译的, 而传统语言是在执行之前编译的. Julia, 特别是写得好的时候, 可以和 C 语言一样快, 有时甚至比 C 语言更快. Julia 使用即时 (JIT) 编译器, 编译速度非常快, 尽管它编译起来更像是一种解释语言, 而不是像 C 语言或 Fortran 这样的传统低级编译语言.
4. 包管理器(Package Manager)
首先要说的是, Julia 的 Pkg 包管理器是 Python 的 Pip 包管理器之上的整个世界. Pkg 附带了自己的 REPL 和 Julia 包, 可以从中构建, 添加, 删除和实例化包. 这特别方便, 因为 Pkg 与 Git 的连接. 更新很容易, 添加软件包总是很容易的, 而且总的来说 Pkg 在 Python 的 Pip 上随时都可以使用.
5. 在机器学习中的应用
- Python -> y =np.dot(array1,array2)
- R -> y <- array1 * array2
- Julia -> y = array1 .* array2
来源: http://news.51cto.com/art/202004/614702.htm