当前位置: 首页 > 科技观察

Python是前浪,Julia是后浪?

时间:2023-03-21 19:30:25 科技观察

【雷风网(公众号:雷风网)注:图片来源:Pixabay所有者:Devanath】本文转载自雷风网。如需转载,请在雷锋网官网申请授权。随着Python停滞不前,一个炙手可热的新竞争对手出现了。不要误会我的意思。Python的流行仍然得到计算机科学家、数据科学家和人工智能专家的坚定支持。但是如果你曾经和这些人共进过晚餐,你就会知道他们对Python的弱点有多不满。从运行缓慢,到要求太多测试,再到不顾之前的测试而产生运行时错误——这些都足以让你烦恼。这就是为什么越来越多的程序员正在采用其他语言的原因——顶级程序员是Julia、Go和Rust。Julia擅长数学和技术任务,而Go擅长模块化程序,Rust是系统编程的首选。由于数据科学家和AI专家处理许多数学问题,因此Julia是其中的赢家。即使在严格审查下,Julia也有Python无法超越的优势。Python的禅宗和Julia的贪婪当人们创造一种新的编程语言时,他们这样做是因为他们想保留旧语言的好的特性并修复不好的特性。从这个意义上说,出生于1956年的GuidovanRossum在80年代后期创建了Python以改进ABC语言。后者对于编程语言来说太完美了——虽然它的特性使它易于教学,但在现实生活中却很难使用。相比之下,Python非常实用。你可以从Python的禅思中看到这一点,它反映了它的创造者的意图:美胜于丑。显式优于隐式。简单胜于复杂。复杂总比难懂好。扁平比嵌套好。稀疏比密集好。可读性很重要。例外不足以打破规则。实用性胜过纯粹。【雷锋网注:图片来源:Pixabay站主:大虾】Python依然保留着ABC的良好特性:比如可读性、简洁性、对初学者友好。但Python比ABC更健壮,更能适应现实生活。同样的道理,Julia的创造者想要保留其他语言好的部分,去掉不好的部分。但Julia的创造者是这样说的:我们很贪婪:我们想要更多。我们想要一种开源语言,一种免费许可证。我们想要速度与红宝石的活力。我们想要一种谐音语言,具有像Lisp这样的真正的宏,但具有像Matlab这样明显、熟悉的数学符号。我们想要像Python一样适用于通用编程,像R一样易于统计,像Perl一样自然地处理字符串,像Matlab一样强大的线性代数,像shell一样擅长将程序粘合在一起的东西。有些东西很容易学,但会让最认真的黑客高兴。我们希望它是交互式的,我们希望它是可编译的。Julia想要结合现有语言的所有优点,而不是去交易其他语言的缺点。尽管Julia是一门年轻的语言,但它已经实现了其创建者设定的许多目标。Julia开发人员喜欢什么Julia的多功能性可用于从简单的机器学习应用程序到巨大的超级计算机模拟的任何事物。在某种程度上,Python也可以做到这一点——但Python以某种方式进化成了这种方式。相比之下,朱莉娅正是为这种东西而生。自下而上。Julia的创建者想要创建一种与C一样快的语言——但更快。尽管近年来Python变得更容易提速,但它的性能仍然远远落后于Julia。2017年,Julia甚至加入了“考试俱乐部”,这是一个小型语言俱乐部,在巅峰时期可以达到每秒超??过10亿次运算的速度。现在俱乐部里除了Julia,就只有C、C++、Fortran了。社区Python拥有30多年的历史,拥有庞大的支持社区。几乎所有与Python相关的问题都可以在一次Google搜索中得到解答。相比之下,Julia社区非常小。虽然这意味着您可能需要进一步挖掘才能找到答案,但您最终可能会一遍又一遍地与同一个人联系。这可以变成一种超越价值的程序员关系??。代码转换你甚至不需要知道一个Julia命令来编写Julia。您不仅可以在Julia中使用Python和C代码。您甚至可以将Julia与Python结合使用!不用说,这使得修补Python代码中的弱点变得非常容易。或者在学习Julia的同时保持高效。[雷锋网注:图片来源:Pixabay所有者:izoca]库这是Python最大的优势之一——它拥有无数维护良好的库。Julia没有很多库,而且用户抱怨它们的维护不足。但是当你考虑到Julia是一门非常年轻的语言,资源有限时,他们已经拥有的库数量是相当可观的。除了Julia中的库数量在增长之外,它还可以与C和Fortran中的库进行接口,例如处理图形。动态类型和静态类型Python是100%动态类型的。这意味着程序在运行时决定变量是浮点数还是整数。虽然这对初学者来说很好,但它也引入了大量可能的错误。这意味着您需要在所有可能的场景中测试您的Python代码——这是一项相当愚蠢的任务,需要花费大量时间。由于Julia的创建者也希望它易于学习,因此Julia完全支持动态编译。但与Python不同的是,您可以根据需要引入静态类型——例如,以它们在C或Fortran中的方式。这为您节省了大量时间:您可以在任何有意义的地方指定类型,而不是找借口不测试您的代码。趁小投资[雷锋网注:StackOverflow上问题数量的比较和趋势]虽然这一切听起来不错,但重要的是要记住,与Python相比,Julia仍然很小。StackOverflow上的问题数量是一个很好的衡量标准:此时Python被标记的数量是Julia的20倍!这并不意味着Julia不受欢迎——相反,程序员自然需要一些时间来接受它。想一想——你真的想用不同的语言编写你的整个代码吗?不,您宁愿在未来的项目中尝试一种新语言。这在每种编程语言的发布和采用之间造成了时间滞后。但如果你现在采用它——这很容易,因为Julia允许大量的语言切换——你就是在投资未来。随着越来越多的人接受Julia,您已经获得了足够的经验来回答他们的问题。另外,随着越来越多的Python代码被Julia取代,您的代码将持续更长时间。[雷锋网注:图片来源:Pixabay所有者:OmniMatryx]底线:让Julia成为你的优势四十年前,人工智能只不过是一种小众现象。行业和投资者并不买账,而且大部分技术笨重且难以使用。但是那些在当时学习的人是今天的巨人——那些要求很高以至于他们赚得和NFL球员一样多的人。同样,朱莉娅今天仍然非常适合。但当它成长起来时,最大的赢家将是那些早期采用它的人。我并不是说如果你现在拥抱朱莉娅,你就可以保证在十年内赚到很多钱。但是你在增加几率。想一想:大多数程序员的简历上都有Python。在接下来的几年里,我们将在就业市场上看到更多的Python程序员。但如果企业对Python的需求放缓,Python程序员的前景将黯淡。起步缓慢,但不可避免。另一方面,如果你能把Julia写进你的简历,你就有了真正的优势。因为老实说,是什么让您与其他Python程序员不同?没有什么。但即使是三年后,也不会有那么多的Julia程序员。凭借Julia技能,您不仅可以表现出工作要求以外的兴趣。您还表现出了对学习的渴望,并且对成为一名程序员意味着什么有了更广泛的理解。换句话说,你是这份工作的合适人选。你——和其他Julia程序员——是未来的摇滚明星,你知道这一点。或者,正如Julia的创造者在2012年所说的那样:即使我们认识到我们不可原谅的贪婪,我们仍然想要拥有一切。大约两年半前,我们开始创建我们的贪婪语言。它还没有完成,但现在是1.0版的时候了——我们创建的语言叫做Julia。它已经满足了我们90%的不礼貌,现在它需要其他人的不礼貌来进一步塑造它。所以,如果你也是一个贪心、不讲道理、要求苛刻的程序员,我们希望你试一试。Python仍然很流行。但是如果你现在学习Julia,它可能会成为你以后的金票。从这个意义上说,可以说:再见Python。你好朱莉娅!本文由正在攻读博士学位的RheaMoutafis撰写。拥有物理学博士学位,对艺术、音乐和美好事物充满热情。