开场
Python被Julia语言社区“誉”为在数据科学领域中最受欢迎的另一种语言。
曾在某语言社区闻人发玩笑帖:在Romeo(罗密欧)语言出现之前,
大蟒蛇Python应该是Julia(朱丽叶Juliet的变体)的最佳备胎,
当然这顶多是个冷笑话了,姑且当作一个谐音梗。
而在今年的一项Julia编程语言的用户调查中,许多人坦言:
如果不想使用Julia了,很可能会选择Python。
难道这是一语成谶么。
一份有趣的调查
Julia语言,源于麻省理工学院(MIT),经过这些年的进化,
已成为一种实至名归的数据科学语言,高效,而且灵活。
今年(2020)夏季,在一年一度的Julia年会中,该社区发布了一个用户编程语言使用偏好的调查:
https://julialang.org/assets/2020-julia-user-developer-survey.pdfjulialang.org
涉及2565名Julia用户和开发者,参与者数量比2019年的1844名有所增加。
从该调查结果来看:Python,对大多数据科学家而言,是进行机器学习应用程序开发的一种非常有亲和力的语言,
如果Julia的开发人员需要使用另一种语言,无疑会是Python。
近年来,无论看哪一家编程语言受欢迎和流行程度的榜单,Python都能排到前三名。
而且,目前Python模块在各个领域中广泛使用,有人分析过,如此优势形成于:
数据科学家的偏好,机器学习应用程序不断增长的需求,以及Python团队的有效推广这三大因素。
RedMonk,是一家专注于进行编程语言和开发者分析的第三方咨询公司 ,已经将Julia列为值得关注的语言(2018),而且该语言背后也有不错的支持力量。
除了Julia Computing在进行该语言的商业化活动,还有麻省理工学院计算机科学与人工智能实验室(CSAIL)的Julia实验室,和一个为其长期成功而努力的开源社区
这两者也都是极其强大的存在。
调查
调查出了什么?
就具体数字而言,在去年(2019)的调查中,73%的Julia用户表示,如果他们不使用Julia,则会使用Python,
但今年(2020)则有76%的人表示已把Python作为另一种备选语言。
可见,Python成为了Julia用户群体的首选备胎语言,而Viral Shah,其人为Julia的联合创始人,Julia Computing公司的联合创始人和首席执行官,则力挺Julia:在学习过程中,只要用户了解Julia的特点和功能足够多,就不太可能立即转向其他语言。
事实上,用户从Julia上获得的实践经验越多,就越能感受到这是何等优秀的一种语言,因而不忍放弃。
这也就使得Julia语言在IEEE的排名迅速上升,短短几年来,已经跻身前20名。”
MATLAB,为Julia在统计分析方面的另一个竞争对手,
在过去的一年里,在作为Julia用户的备用语言方面,其份额从35%下降到了31%,
而C++在这方面的份额从28%上升到了31%。
与此同时,颇受学院派爱戴的经典统计编程语言R也从27%下降到25%。
不知道大家能从这里读出什么,
仔细看来,这体现了各种语言的使用者在语言的代码产量和运行性能方面所进行的权衡。
尽管Python作为数据科学家的首选语言,对Julia呈现竞争态势,
但从对Julia长期的生存和发展来看,这是不可避免的,
同时也并非是负面的影响,反而对Julia定向成长有很强的促进作用。
从调查结果分析,如果在2012年,Julia没有出现的话,
除了Python,大多数用户将会使用C++、MATLAB、R、C、Fortran、Bash/Shell/PowerShell和Mathematica。
同时,被调查的Julia用户表达了各自对这种编程语言的喜爱和认为不足之处。
支持者们表示,对于使用CSV文件进行大数据分析,
例如查看股价状态和分析抵押贷款风险等,Julia确实比Python和R快得多。
总的来看,Julia最受欢迎的特性包括其优秀的速度和性能、易用性、开源状态,以及使用两种语言解决问题的能力。
不像Matlab,Maple,Mathe-matica,SAS等商业软件,Julia是免费和开源的,
拥有一个活跃,友好,而又高效的开发人员社区,
同时具有麻省理工学院许可(MIT license),而为这使得Julia创建各种功能模块变得相对容易。
Julia用户提及的主要缺点是,在进行可视化时,生成第一个图的 时间过长,编译时间也太慢。
还有人抱怨很多功能包还是不够成熟(而这一点确实不如Python生态系统),
而且开发人员不能生成自包含的二进制文件或库(self-contained binaries or libraries)。
而到了实际工作中,由于同事和合作者可能在使用其他语言,Julia则面临着被选择与否的障碍。
这实在令人沮丧。
Rust,作为另一种在系统编程中流行起来的新一代语言,
在使用过程中也遇到了类似的窘境,因为很多公司尚未打算大规模使用。
结语
技术发展有一个趋势,消耗能量更低,传输信息量更大,运行效率更高,
使用方式更加便利者会最终胜出,获得广泛应用,
以此观之,Julia和Rust在各自的领域中对其他语言有着明显和绝对的优势,
更能代表技术和应用发展的方向,因此短期的障碍会很快得到化解,
Julia,以及Rust也必然会在合适的时机下为用户和市场所接受。