Fortran Coder
标题: 科学计算的新神器Julia [打印本页]
作者: weixing1531 时间: 2019-1-28 22:38
标题: 科学计算的新神器Julia
本帖最后由 weixing1531 于 2019-1-28 23:19 编辑
相比于Matlab的又贵又慢、Python的缩进与慢、Fortran的落后整个时代
科学计算的新神器Julia似乎是不错的选择,其特点如下:
- 免费开源
- 核心语言非常小。标准库用的是 Julia 语言本身写的
- 调用许多其它成熟的高性能基础代码。如线性代数、随机数生成、快速傅里叶变换、字符串处理。(还在增加中……)
- 丰富的用于建立或描述对象的类型语法
- 高性能,接近于静态编译型语言。包括用户自定义类型等
- 为并行计算和分布式计算而设计
- 轻量级“绿色”协程
- 优雅的可扩展的类型转换/提升
- 支持Unicode, 包括但不限于UTF-8
- 可直接调用 C 函数(不需要包装或是借助特殊的API)
- 有类似shell的进程管理能力
- 有类似Lisp的宏以及其它元编程工具
在 Julia 中,数组、字符串等的索引从 1 开始,而不是从 0 开始。这点跟Fortran一样!我个人很不喜欢C家族语言,总觉得科学计算必须从 1 开始,从 0 开始的都是异类!
在数值计算领域,尽管有很多用 C 语言或 Fortran 写的高质量且成熟的库都可以用 Julia 重写,但为了便捷利用现有的 C 或 Fortran 代码,Julia 提供简洁且高效的调用方式。Julia 的哲学是 no boilerplate。Julia 可以直接调用 C/Fortran 的函数,不需要任何"胶水"代码,代码生成或其它编译过程 – 即使在交互式会话 (REPL/Jupyter notebook) 中使用也一样. 在 Julia 中,上述特性可以仅仅通过调用 ccall 实现,它的语法看起来就像是普通的函数调用。
Julia 中文社区:https://cn.julialang.org/
作者: vvt 时间: 2019-1-28 23:00
所以他到底是编译型语言还是解释型语言?
作者: weixing1531 时间: 2019-1-28 23:17
Julia 程序被 LLVM 编译成高效的多平台机器码。
应该只比纯编译慢一点
作者: pasuka 时间: 2019-1-29 09:02
Matlab的又贵又慢、Python的缩进与慢、Fortran的落后整个时代
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Matlab价钱不菲,简单优化后的代码速度与C、C++一个数量级,开发效率则要高得多;
Python的缩进可以4个空格,也有2个空格,青菜萝卜各有所好,怎么变成糟点?觉得python慢,可以cpython、ctypes、numba等等途径加速;
Fortran落后整个时代,夕阳无限好,只是近黄昏。
十年前就了解过开发中的Julia,能否创造历史,知我罪我,其惟春秋。
作者: vvt 时间: 2019-1-29 10:18
你还是没有回答我的问题。
我的问题并不是,他的执行效率有多高?
而是,他到底是编译型语言?还是解释型语言?
作者: lixingde0526 时间: 2019-2-8 21:32
上面的网址说是复杂的编译。。。
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) |
Powered by Discuz! X3.2 |