Julia 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Julia 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Julia 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Julia 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Julia 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 MIT
开发语言 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 编程语言
开源组织
地区 不详
投 递 者 NorthGod
适用人群 未知
收录时间 2012-02-27

软件简介

Julia是一个新的高性能动态高级编程语言。语法和其他编程语言类似,易于其他语言用户学习。Julia拥有丰富的函数库,提供了数字精度、精致的增幅器(sophisticated amplifier)和分布式并行运行方式。核心函数库等大多数库是由Julia编写,但也用成熟的C和FORTRAN库来处理线性代数、随机数产生和字符串处理等问题。Julia语言可定义函数并且根据用户自定义的参数类型组合再进行重载。

JIT高性能编译器

Julia使用的JIT(Just-in-Time)实时编译器很有效地提高了它的运行效率,在某些地方甚至能比得上C和C++。

下面通过标准测试程序来测试下它的效率,你可以自己比较下各语言的运行效率。

注:运行环境是MacBook Pro,2.53GHz,Intel Core2 Duo CPU和8G 1066MHz,DDR3内存。

上表中只有C++运行时间是绝对时间,其它都是相对于C++的相对时间,数值越小代表用时越少。除少数几项测试Julia惜败于Matlab和JavaScript外,Julia完胜其他高级语言,甚至在pi summation上,成功以25%的优势击败C++。通过使用Intel核心数学库(MKL),MatLabs在矩阵乘法运算中稍占便宜,但是拥有MKL授权的Julia同样可以使用Intel MKL库,不过默认的开源BLAS库性能也不错。

这个测试表是通过编译器性能对一系列常用代码模式进行分析而得出的。比如:字符串解析、函数调用/回调、排序和数值循环、生成随机数和数组运算等。

Julia克服了高级语言一直难以逾越的难关:标量算数循环(在pi summation上就能体现出来。)。Matlab的浮点运算JIT和 V8 JS引擎对此也处理得很好。但JS不支持LAPACK等线性代数库导致了在矩阵运算中的低性能,而Julia有比较多的方法消除负载(overhead),使得它可以轻松支持任何函数库。

矩阵统计的Julia代码虽然性能上比不上C++但却要简洁得多。然而,规范和编制太过随意可能会在将来成为一个问题。

Julia代码示例:

function mandel(z)  
    c = z 
    maxiter = 80 
    for n = 1:maxiter  
        if abs(z) > 2  
            return n-1  
        end  
        zz = z^2 + c  
    end  
    return maxiter  
end  

function randmatstat(t)  
    n = 5 
    v = zeros(t)  
    w = zeros(t)  
    for i = 1:t  
        a = randn(n,n)  
        b = randn(n,n)  
        c = randn(n,n)  
        d = randn(n,n)  
        P = [a b c d]  
        Q = [a b; c d]  
        v[i] = trace((P.'*P)^4)  
        w[i] = trace((Q.'*Q)^4)  
    end  
    std(v)/mean(v), std(w)/mean(w)  
end

为并行处理和云计算而生

Julia为分布式计算提供很多关键模块,使得它可以更加灵活地支持多种并行处理。

虽然还是早期版本,Julia已经支持了云计算。下面是基于交互性的Julia会话截图:

Julia将提供更加完整的性能支持云计算操作,比如分享和编辑,包括数据管理、数据挖掘和可视化操作等。它还允许用户操作大数据类型而不用关心数据操作行为。

免费、开源和Library Friendly

TJulia的核心代码遵循MIT协议,而其他库各自遵循GPL/LGPL/BSD等协议。用户还可以方便地将Julia作为核心功能共享库与C/FORTRAN代码联合使用。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (19)

加载中
上车看看
2020/12/02 17:53
回复
举报
我* ,julia
2020/12/02 16:49
回复
举报
julia,从入门到开车
2019/12/16 16:13
回复
举报
2019/07/16 13:51
回复
举报
2019/07/09 15:30
回复
举报

引用来自“拾光TM”的评论

京香大法好~~~
借一部说话
2019/01/29 09:29
回复
举报
打分: 力荐
非常有潜力
2018/10/28 14:56
回复
举报
京香大法好~~~
2018/09/03 14:40
回复
举报
我推荐#Julia#
2018/09/03 14:22
回复
举报
更多评论
03/26 07:57

Julia 1.6.0 发布,高性能动态高级编程语言

Julia 1.6.0 现已发布。Julia 是一个高性能动态高级编程语言。其拥有丰富的函数库,提供了数字精度、精致的增幅器和分布式并行运行方式。核心函数库等大多数库由 Julia 编写,但也用成熟的 C 和 FORTRAN 库来处理线性代数、随机数产生和字符串处理等问题。 官方表示,Julia 1.6.0 很可能会成为下一个长期支持(LTS)版本。因此,其花了很多时间来开发这个版本,以确保那些对生态系统未来健康发展所需的功能能够被纳入到这个版本...

6
6
发表于程序人生专区
2020/08/27 08:46

76% 的 Julia 用户将 Python 作为首选替代语言

Julia 语言官网分享了其 2020 年用户及开发者调查的结果。该调查以英语、西班牙语、中文和德语这四种语言进行,中文流利者占 11%;共有 2,565 名来自 102 个国家和地区的受访者,去年的参与人数为 1,844 人。 与其他大多数语言调查不同的是,Julia 语言调查的受访者中,学者占比 60%,业界人士仅有 43%。这也与它在数据分析和计算科学方面的作用强相关。将 Julia 用作生产的开发者相对较少。调查显示,使用 Julia 超过 6 个月以...

4
2
发表了资讯
2020/08/04 08:00

Julia 1.5.0 发布,高性能动态高级编程语言

Julia 1.5.0 现已发布。Julia 是一个高性能动态高级编程语言。其拥有丰富的函数库,提供了数字精度、精致的增幅器和分布式并行运行方式。核心函数库等大多数库由 Julia 编写,但也用成熟的 C 和 FORTRAN 库来处理线性代数、随机数产生和字符串处理等问题。 作为次要发行版,v1.5.0 不包含重大更改,仅包含一些新功能、性能改进以及少量更改。一些重点更新内容如下: 结构布局和分配优化 多线程 API 的稳定和改进 在每个模块中提...

6
2
发表了资讯
2020/05/30 07:48

Julia 1.5.0-beta1 发布,高性能动态高级编程语言

Julia 1.5.0-beta1 现已发布。Julia 是一个高性能动态高级编程语言。其拥有丰富的函数库,提供了数字精度、精致的增幅器和分布式并行运行方式。核心函数库等大多数库由 Julia 编写,但也用成熟的 C 和 FORTRAN 库来处理线性代数、随机数产生和字符串处理等问题。 更新内容如下: 新语言特性 现在也可以将 @foo{...} 宏调用写入 @foo{...} (不带空格)(#34498)。 ⨟现在被解析为具有时间优先级的二进制运算符。可以在 REPL 中...

3
2
发表了资讯
2020/03/24 07:13

Julia 1.4 发布,高性能动态高级编程语言

Julia 1.4.0 现已发布。 Julia 是一个高性能动态高级编程语言。其拥有丰富的函数库,提供了数字精度、精致的增幅器和分布式并行运行方式。核心函数库等大多数库由 Julia 编写,但也用成熟的 C 和 FORTRAN 库来处理线性代数、随机数产生和字符串处理等问题。 更新内容如下: 新的语言特性 现在,将具有所有 isbits 和 isbitsunion 字段的结构内联存储在数组中(#32448)。 import现在允许带引号的符号,例如import Base.:+(#3...

4
7
发表了资讯
2019/11/28 07:28

Julia 1.3 发布,高性能动态高级编程语言

Julia 1.3.0 发布了, Julia 是一个高性能动态高级编程语言。其拥有丰富的函数库,提供了数字精度、精致的增幅器和分布式并行运行方式。核心函数库等大多数库由 Julia 编写,但也用成熟的 C 和 FORTRAN 库来处理线性代数、随机数产生和字符串处理等问题。 更新内容如下: 新的语言特性 支持 Unicode 12.1.0 (#32002) 现在可以将方法添加到抽象类型中 (#31916) 支持将 Unicode 粗体数字和双位数 0 到 9 作为有效标识符 (#32838) 添...

6
5
发表了资讯
2019/08/21 07:40

Julia 1.2.0 发布,高性能动态高级编程语言

Julia 1.2.0 发布了, Julia 是一个高性能动态高级编程语言。其拥有丰富的函数库,提供了数字精度、精致的增幅器和分布式并行运行方式。核心函数库等大多数库由 Julia 编写,但也用成熟的 C 和 FORTRAN 库来处理线性代数、随机数产生和字符串处理等问题。 1.2.0 包含新特性和性能改进等内容,如下: 语言新的特性: splatting (x...)现在可以用于调用构造函数中的新伪函数 对 Unicode 12.0.0 的支持 添加 ⋆ (\star) 作为一元运...

18
7
发表了资讯
2019/08/09 08:30

Julia 语言调查报告:用户的喜欢与吐槽

近年来,由麻省理工学院创建的编程语言 Julia 越来越受欢迎,但仍然远远落后于 Java、C 和 Python。 根据 Tiobe 2019 年 8 月的编程语言排名,Julia 在其基于搜索引擎的搜索结果中排名第 39 位,高于一年前的第 50 位,与去年 10 月的排名相同。 Julia Computing 公司最近就对 1800 多名 Julia 用户进行了一项调查,找出他们喜欢和不喜欢这种语言的地方。结果显示,93% 的受访者总体上表示喜欢。在 Julia 用户中第二喜欢的语言是...

8
17
发表了资讯
2019/07/31 08:04

Julia Computing 和 MIT 引入可微编程系统,连接人工智能和科学计算

科学计算,是使用计算模型来解决科学和工程问题,它近年来从人工智能机器学习技术的迅速发展中获益良多。现在,研究人员正在探索连接这两个世界的方法。 Julia Computing & MIT 的一个研究小组提出,广泛的科学计算和机器学习领域都需要在其底层结构上支持线性代数。该团队引入了一种新的可微编程(∂P)形式的计算基础结构,它可以计算模型梯度,并将自动微分集成到语言中作为一种一流的特性。程序员可以直接用 Julia 编程语言和...

2
12
发表了资讯
2019/01/29 07:07

Julia 1.1 发布,高性能动态高级编程语言

Julia 1.1 发布了, Julia 是一个高性能动态高级编程语言。其拥有丰富的函数库,提供了数字精度、精致的增幅器和分布式并行运行方式。核心函数库等大多数库由 Julia 编写,但也用成熟的 C 和 FORTRAN 库来处理线性代数、随机数产生和字符串处理等问题。 此版本带来的新特性包括: 维护一个异常堆栈 exception stack,作用于每一个任务,以使异常处理更加健壮,并且可以分析根本原因。可以使用实验性函数 Base.catch_stack 访问堆...

4
3
发表了资讯
2018/12/28 08:28

Julia 语言三位作者获得 Wilkinson 数字软件奖

麻省理工学院孵化的 Julia 语言的的三个作者获得 2019年的 James H. Wilkinson 数字软件奖。 Julia 是由 Jeff Bezanson 博士、前麻省理工学院 Julia Lab 研究院Stefan Karpinski和Viral B. Shah和艾伦埃德尔曼教授于2009年建立,是计算机科学和人工智能实验室(CSAIL)和数学系的成员之一。 Julia 于 2012 年公布下载量超过 300 万,有超过 1500 所大学用它进行科学计算。「我为 Julia 实验室的贡献感到自豪,该实验室将最新的计...

10
9
发表了资讯
2018/10/02 14:35

Julia 1.0.1 发布,高性能动态高级编程语言

Julia 1.0.1 发布了,这是 Julia 1.0 的第一个补丁版本。它仅包含错误修正和性能改进,没有新功能或其他变更。 Bug fixes #28568 - Fix vec of adjoint vector #28592 - fix #28576, parsing ? at end of input in conditional expression #28620 - Fix #28619, logabsdet for singular matrices #28642 - Keep parametric information when constructing a SparseMatrixCSC from … #28655 - fix #28641, passing typev...

0
2
发表了资讯
2018/08/31 07:44

优化过程 PK :Julia 能打败 Python 和 R 笑到最后吗?

编译自:Julia vs R vs Python: simple optimization 作者:ZJ,数据科学家,全栈工程师,信用风险模型团队负责人。 在这篇文章中,作者通过一个简单的似然函数优化(Maximum Likelihood Optimization)问题来对比 Julia,R 和 Python。这是一个比较小的优化问题,性能上的差异表现可能不太明显,但解决问题的过程能很好地反应三者各自的优劣势。 作者在撰写本文时,对这三种语言的熟悉程度如下: 语言 实战经验 R 9 年 Julia ...

13
10
发表了资讯
2018/08/19 07:57

关于编程语言 Julia,开发团队有这些想告诉你

Julia 1.0 正式版发布已过去一周多,官方表示 1.0 版本积累了富有野心的程序员们的十年心血。Julia 可以看作是一门集众家之所长的编程语言,在首次公开时开发团队就已明确其需求: 我们想要一种拥有自由许可的开源语言,同时拥有 C 的速度和 Ruby 的灵活。我们想要一种同像性语言,有像 Lisp 这样真正的宏,也有像 Matlab 这样的浅显熟悉的数学符号。我们想要一门像 Python 一样可用于通用编程,像 R 一样易于统计,像 Perl 一样...

16
14
发表了资讯
2018/08/11 07:08

集 Python、C、R、Ruby 之所长,Julia 1.0 正式发布

动态编程语言 Julia 迎来了 1.0 正式版本,你可以通过这里下载 Julia 1.0 正式版。 Julia 可以看作是一门集众家之所长的编程语言,在首次公开时开发团队就已明确其需求: 我们想要一种拥有自由许可的开源语言,同时拥有 C 的速度和 Ruby 的灵活。我们想要一种同像性语言,有像 Lisp 这样真正的宏,也有像 Matlab 这样的浅显熟悉的数学符号。我们想要一门像 Python 一样可用于通用编程,像 R 一样易于统计,像 Perl 一样自然地用...

41
25
发表了资讯
2018/06/03 07:45

动态编程语言 Julia 0.7 alpha 版本新增许多语言特性

动态编程语言 Julia 0.7 alpha 版本已发布,供开发者开始升级软件包。v0.7 包含 v1.0 弃用的功能,所以当 alpha / beta 阶段结束时,所有的 depwarns 都会被取出。 官方原话是 "An intermediate release feature-equivalent to 1.0 but with deprecations." 0.7 新增了许多语言特性,并进行了不少的更新,详见 https://github.com/JuliaLang/julia/blob/master/NEWS.md 距离 Julia 上次更新 0.6 已过去了差不多一年。Julia 是一...

0
0
发表了资讯
2017/06/21 07:48

Julia 0.6.0 发布,动态编程语言

Julia 0.6.0 发布了。Julia是一个新的高性能动态高级编程语言。语法和其他编程语言类似,易于其他语言用户学习。Julia拥有丰富的函数库,提供了数字精度、精致的增幅 器(sophisticated amplifier)和分布式并行运行方式。核心函数库等大多数库是由Julia编写,但也用成熟的C和FORTRAN库来处理线性代数、随机数产生和字 符串处理等问题。Julia语言可定义函数并且根据用户自定义的参数类型组合再进行重载。 新的语言特性: New ty...

15
8
发表了资讯
2017/05/10 07:53

Julia 0.5.2 和 0.6.0-rc1 发布,动态编程语言

Julia 0.5.2 和 0.6.0-rc1 发布了,本次更新包括了很多新的语言特性。 Julia是一个新的高性能动态高级编程语言。语法和其他编程语言类似,易于其他语言用户学习。Julia拥有丰富的函数库,提供了数字精度、精致的增幅 器(sophisticated amplifier)和分布式并行运行方式。核心函数库等大多数库是由Julia编写,但也用成熟的C和FORTRAN库来处理线性代数、随机数产生和字 符串处理等问题。Julia语言可定义函数并且根据用户自定义的...

6
5
发表了资讯
2016/09/20 00:00

Julia 0.5.0 发布,动态编程语言

Julia 0.5.0 发布了,本次更新包括了很多新的语言特性。 Julia是一个新的高性能动态高级编程语言。语法和其他编程语言类似,易于其他语言用户学习。Julia拥有丰富的函数库,提供了数字精度、精致的增幅 器(sophisticated amplifier)和分布式并行运行方式。核心函数库等大多数库是由Julia编写,但也用成熟的C和FORTRAN库来处理线性代数、随机数产生和字 符串处理等问题。Julia语言可定义函数并且根据用户自定义的参数类型组合再...

14
7
发表了资讯
2016/07/04 00:00

Julia 0.4.6 发布,动态编程语言

Julia 0.4.6 发布了。 Julia是一个新的高性能动态高级编程语言。语法和其他编程语言类似,易于其他语言用户学习。Julia拥有丰富的函数库,提供了数字精度、精致的增幅 器(sophisticated amplifier)和分布式并行运行方式。核心函数库等大多数库是由Julia编写,但也用成熟的C和FORTRAN库来处理线性代数、随机数产生和字 符串处理等问题。Julia语言可定义函数并且根据用户自定义的参数类型组合再进行重载。 暂无相关改进说明,了...

10
8
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2018/08/24 22:00

Ten minutes to let you know the Julia language

Introduction Julia is a flexible dynamic language for science and numerical computing with performance comparable to traditional statically typed languages. Perhaps you can use it for the computation of machine learning that has recently received much attention.This blog takes 10 minutes to let you know the language. Then you will be attracted by the language. Modules,Variables and Functions Mo...

0
0
2020/09/07 18:22

Julia language 配置源和 idea 安装 Julia 插件

本文假设已完成 Julia 安装,Windows 安装文件下载地址 https://mirrors.tuna.tsinghua.edu.cn/julia-releases/bin/winnt/x64/ 。 其他下载地址 https://mirrors.tuna.tsinghua.edu.cn/julia-releases/bin/ 。 首先打开 Julia 软件控制台窗口。本文以 Windows 10 环境为例。如图所示 本文演示安装环境时,Julia 已更新至1.5.0,具体安装和显示界面以本机实际安装情况为准。 依次输入如下命令。 _ _ _...

0
0
发表了博客
2014/01/07 02:32

Julia的IDE已经推出Julia Studio

Julia的IDE已经推出Julia Studio,Julia Studio 目前版本为0.43,内置Julia 0.2 下载地址为: http://forio.com/products/julia-studio/

0
0
发表了博客
2018/07/04 15:59

Julia篇(外传)-Julia常用函数

Julia Manual - Function List and Reference View by functional groups ``` Functions : :, :@allocated, :[@assert](https://my.oschina.net/u/1785891), :[@async](https://my.oschina.net/553709938), :@code_llvm, :@code_lowered, :@code_native, :@code_typed, :@code_warntype, :@edit, :@elapsed, :@enum, :@eval, :@evalpoly, :@everywhere, :@fetch, :@fetchfrom, :@gensym, :@less, :@linux, :@osx, :@parallel, :...

0
0
发表了博客
2018/08/17 21:31

Julia - 复数

全局变量 im 即复数 i ,为复数的虚数单位,表示 -1 的正平方根 Julia 允许数值作为代数系数,这也适用于复数 julia> 1 + 2im 1 + 2im 复数的运算 julia> (1 + 2im) + (2 - 3im) 3 - 1im julia> (1 + 2im) - (2 - 3im) -1 + 5im julia> (1 + 2im) * (2 - 3im) 8 + 1im julia> (1 + 2im) / (2 - 3im) -0.30769230769230776 + 0.5384615384615384im julia> (1 + 2im)^2 -3 + 4im julia> (1 + 2im)^(2 - 3...

0
0
发表了博客
2018/08/18 14:30

Julia - 字符串

字符 字符使用单引号括起来,字符是 32 位整数 julia> 'a' 'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase) julia> typeof(ans) Char julia> Int('a') 97 julia> typeof(ans) Int64 字符对应的整数是相对应的 ASCII 码值 也可以把整数转换为相对应的字符 julia> Char(97) 'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase) 对字符进行比较 julia> 'a' > 'C' true 对字符进行算术运...

0
0
发表了博客
2016/10/15 07:31

Julia 简介

Julia 的泛型设计,函数名称和每个参数的类型绑定在一起,相同名字的函数名称可以定义多个函数: 这在算法上很容易实现,而且验证起来也比较容易,虽然这种特性大部分语言都没有。 Julia 的 vim 插件下载地址: https://github.com/JuliaEditorSupport/julia-vim 因为 vim 不自带 julia 的高亮语法,看样 julia 成为主流语言还有一段路。 字符定义支持: `const EOF = '\0' ` const EOF = Char(0) Julia 的核心开发者大都是外国...

1
0
发表了博客
2016/10/13 23:43

Julia 学习心得

Julia 语言简洁,而且快速。 Julia 的宏在编译期间自动变换句法,会在编译后消失痕迹。所以使用宏来进行类型检测和代码展开,不会增加运行时间的开销,是缩减有效代码的好东西。 注:宏只能检测语法层面的东西,不能检测计算后的数据类型,也就是只能检测编译期能够确 定的东西,例如 is_str(x), is_int(x), is_rstr(x). ``` macro assert(ex, msgs...) msg_body = isempty(msgs) ? ex : msgs[1] msg = string(msg_body) retur...

0
0
2019/03/30 17:46

6 Julia 类型

类型 Julia中没有class,也没有子类型的继承关系,所有具体类型都是最终的,并且只有抽象类型可以作为其超类型。Julia中的继承是继承行为,而不是继承结构。 类型声明 声明某个变量的类型,也可以用来断言变量类型是否正确 (2+4)::Float64 >> ERROR: ... (2+4)::Int64 6 类型声明常用的两个地方在函数中的参数类型和返回类型 function f9(x::Int64)::Float64     x/10 end f9(10) >>1.0 抽象类型 抽象类型不能被实例化,...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
19 评论
150 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部