Julia的优势

短暂的用了Julia,我觉得Julia的优势有8个:
1、pkg管理非常系统,所以包安装上非常简单,不像R语言在linux下需要本地编译,并且在升级R版本的时候,各种包无法使用,并且也没法全部直接升级,因为包依赖太过于麻烦,而且有二进制依赖的包也有编译后的版本,也不会因为二进制库版本不同而导致一些莫名其妙的问题。
2、由于启用了jit,所以计算速度会很快。
3、调用各种语言也很方便,c,c++,r语言都有对应的调用方式。
4、社区活跃度高,水平也良好。
5、中文文档做的完善。
6、基础库和三方库也比较完善了。
7、类型推导和多重分发以及类型树使得包的编写很容易。
8、语言的各种基础工具充分利用了现代的编程工具(比如BinaryBuilder包使用了docker和Travis CI,包管理使用了github作为注册包元数据存放点),使得语言本身现代化,使得使用Julia完成工作的时候简单方便快捷,提高开发效率,由于其现代化的特点,也没有c++和r那样的兼容造成的累赘问题,使得语言充满活力。
总的来说,Julia语言是一门现代化语言,充满活力,简单方便快捷,开发效率很高,与r,py三足鼎立的场景指日可待。

希望大佬们来说一下目前Julia语言还有哪些不足之处,优势其实都总结的差不多了。

(1)丝滑的IDE了;(2)缓存jit后的成果。
头一次运行实在太慢了。

我觉得最大的优势可能是 :站在巨人的肩膀上!

jit在lua5.0中就有,guile3.0也会使用git。

包管理目前太差劲了,特别是对国内的开发者来说,包安装失败率奇高

包管理目前太差劲了,特别是对国内的开发者来说,包安装失败率奇高

你这个问题只能等待拆墙或者github国内CDN来解决

没有好的IDE,Atom真的是丑而且垃圾,希望能给VScode出个能用的debug插件。

包管理有点缺陷啊,每次更新包都全部重新下载一遍,明明有些依赖的二进制资源没有更新。
比如CSV包下面有个test文件夹,里面文件几乎不更新,每次都要重下,网络不好就会卡好久。
这些虽然是build.jl的问题,可是包管理应该规定一下。

你有用1.3吗?1.3有artifact了

1 个赞

原来1.3改善了吗,我还在用1.1:rofl:

就没人像我一样敲Emacs吗

请问atifact是干什么用的呢?
上次up一下,搞了很多*_jll的更新,以为出啥bug了。
总感觉这玩意乱糟糟的。
还有我的Atom.jl莫名其妙的被降级的v0.9.1。

https://julialang.github.io/Pkg.jl/dev/artifacts/
用来随包分发一些二进制依赖的
在有artifacts之前,很多包是通过build的过程自己下载的。

被降级可能是因为你引入了新的包,然后这个包对Atom的依赖有版本上界。

现在的新版本注册都要求写清楚完整的package版本上界。所以如果有人忘了update他们的compat,就会导致用户把这些包安装到一起以后Julia认为新版本不兼容,自动给你降级。

等过一阵新的自动更新机器人把所有的兼容版本号update以后这个问题估计就完全消失了。不过我觉得应该不会影响你使用,因为降级一般只会发生在minor version里,patch update都是兼容的(按照语义化版本的约定)。

确实有这样的问题。一般早上进行包更新会比较快。

  1. R语言包在linux下需要本地编译,但编译都是自动的,且几年来我还没试过编译不成功的。

  2. 升级R版本,R官网有专门对应Linux发行版的源,我从来没有试过有一个包升级了不能用,而且sudo apt upgrade一条命令可以把R升级到最新版本,在R内update.packages(ask=FALSE)一条命令可以把R的包全部直接升级。另外R的包依赖还没试过有问题。遇到有依赖系统内libxxx这种的,直接apt安装相应的库就OK,也没有几个。

都是CRAN那种令开发者恶心的提交流程搞出来的,当然没问题了 :roll_eyes:

我觉得julia除了生态差点功能不太好找,其余完美