Julia 小白 Day 10: 如何科学的找程序包
前情提要:
- 概述
- 本地环境教程
- Julia1.0.0安装指南(含 Juno IDE)
- 目前兼容的机器学习程序包
- 在线环境教程
由于休假原因,这是笔者第一次完全在手机上写作。所以接下来看到的截屏都是手机界面。
我们现在学习好多的语言,不管是Python、R还是Julia,小白们都会面临一个巨大的挑战:就是哪里去找到合适的程序包,来完成要做的事情。或者是怎么去找到一些程序包来进行学习?
为什么要找程序包?
牛人实现过的功能可以直接拿过来用,不需要自己从零开始开发。
笔者把程序包比作乐高积木,你可以把不同的乐高积木拼接成你心目中的世界。
第一个要介绍的资源,那就是全球最大的同性社交平台Github
Julia in Github方法很简单,选择语言为Julia,然后选Most Stars
这样能找到目前最多人使用的Julia程序包。
为什么要找最多人使用的包?
因为越多人使用,说明这个程序包越有价值,越有价值,越多人使用。越多人使用,开发这个程序包的作者自然有动力继续维护升级做得更好。
这就像天天写文章,没有人看,没有人赞,那么时间一长,除了自己跟自己较劲,作者也不会有动力继续更新下去。
第二个要推荐给大家的是这个网站:
https://juliaobserver.com
这是一个专门针对Julia语言程序包的观察站
每周最受关注
每月最受关注
最多星星的包
最热门的包
最新出现的包
说白了是个程序包排行榜,从时间、热度的角度来观察程序包的情况。
不过不管是哪个程序包,你点进去之后会发现基本上都会进入Github……
那这么说岂不是只需要关注Github就好了?
当然不是,既然专门有网站来做观察,一定有过人之处:
IJulia的依赖包
我们可以看到一个包的依赖关系,也就是说这个包需要别的包支持才能运转。
也可以看到这个包支持其他包的情况,也就是被依赖关系:
IJulia被依赖的包
看这个有什么用?之前说过,目前Julia的版本比较混乱,所以一个程序包是否能及时更新兼容新版本,不仅仅要看这个程序包本身的努力,还需要看它依赖的其他包的更新情况。
简单的说,如果一个包依赖其他3个包,理论上需要等其他3个包都更新兼容新版本才有可能更新它自己。当然并不完全是这样,如果能找到替换的程序包或者更换实现方式,也可以做到更新自己的目的,不过这样花的成本就很高,开源作者很多是基于兴趣爱好的,所以会看到历史上有好些程序包由于各种原因不能更新,最后就归档了(就是挂了)。
所以一般情况是依赖度越小的,被依赖度越高的往往是更新最快,可用度最高的。
为什么?
因为依赖度低,或者完全不依赖,那自主更新能力强,同时又被需要的多,自然也就有动力继续贡献。
这就像天天写文章,多给作者一些鼓励,自然动力就强很多。对吧?
KevinZhang
Aug 28, 2018