热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

挑战Python的四个语言:Swift、Go、Julia、R

没什么是永恒的——包括编程语言。很多看起来可能是将来的佼佼者,到头来可能被人们遗忘。无论是因为不可抗拒的原因,还是因为自身发展的原因。Python时下正在最热门的编程语言榜上春
文章目录[隐藏]
  •  Swift
  •  Go
  •  Julia
  •  R

没什么是永恒的——包括编程语言。很多看起来可能是将来的佼佼者,到头来可能被人们遗忘。无论是因为不可抗拒的原因,还是因为自身发展的原因。

  Python时下正在“最热门的编程语言榜”上春风得意,看起来将会成为一门不朽的语言。但是现在,很多其他语言也逐渐显现出Python的一些优点:编程方便,对数学和科学计算拥有强来&[email protected]!ma.com搞$代^码%网大的处理能力,庞大的第三方库。

  下面是Python的一些潜在的挑战者,并讨论了Python是如何保住它第一的席位的。

 Swift

  它是什么:苹果公司的一种编程语言,主要用于原生的iOS开发,但是现在已经开源,并有向服务器端发展的倾向。

  它的优点:使用Swift编程是一种毫无障碍的体验!用起来相比于编译型语言(比如,它间接的前任Objective-C)更像是一种脚本语言(比如Python)。Swift的决定性的优点是它的速度——它是由LLVM编译框架编译成机器码的,所以它具备真正的多线程。Python还在这方面挣扎。

  如果说开发速度要比执行速度重要的话,Python在方面更有优势。但是Swift有XCode IDE的“Playground”模式。

  Python的优点:一方面,相比于Python来说,Swift是一门新型的编程语言,Python有所有成熟的语言所具备的有点——大量的用户基础,大量的库,成熟的多平台支持。Swift现在甚至还不能支持Windows(如果不算上第三方库的话),虽然这是将来必定会实现的特性。Swift还会产生对苹果工具链的依赖(比如Xcode),而Python的依赖就少的很。

 Go

  **它是什么:**Google的“表现力强、简洁、干净、高效”的语言,从Docker及其相关项目到InfluxDB数据库,Ethereum坏链系统和Canonical的Snappy包管理工具都是用Go写成的。

  它的优势:和Swift一样,Go语言也会编译成平台相关的机器码,所以它不仅可以在多任务方面比Python快很多,还还可以在运行时不像Python那样生成额外的目标。Go代码编译速度非常快,开发速度也很快,所以它更像一门解释性的语言。

  Python的优势:虽然Go不像Swift那么新——它在2009年发布——Python在用户和库的数量方面还是占有优势。此外,Go的语法和错误处理方式和Python相去甚远。所以,现在Python用户很难转移到Go,但是不会阻止新用户选择这样一门语言。现阶段,Python的安装器让使用和构建Python应用非常简单——更不必说像Linux这样的系统,Python已经成为了标准。

 Julia

  它是什么:在2012年发布,是面向技术应用的一门编程语言,例如数据分析和线性代数。

  它的优点: Python一个很大的用处是数学和科学应用——多亏了Numpy这样的库和交互式的IPython编辑程序。Julia的目标用户也是同样的群体,和Go、Swift一样,它也比Python快。它还有一个正在不断扩展的包,不仅仅包括科学和数学计算的应用,还有很多Python的功能,比如从云端提供商那里取得数据。

  Python的优点: Julia有和Python类似的库,但是Python并不满足现状,还在马不停蹄地优化语言的核心和开发环境。Python的速度并非一定不及Julia(或者其他Python的竞争者),只要针对不同的工作选择恰当的库完成,速度还是客观的。

  Julia语言本身还存在一些争议。比如,Julia的数组下标是从1开始的,而不是0——这不仅和Python比是一个缺点,很其他语言比起来也是。(很多第三方的包索引也是从1开始,但是仍让人很不习惯。)

 R

  它是什么:无论是就开发环境还是语言本身来说,这都是一个很老的语言了。它专为统计学设计。

  它的优点: R有很多Python的优点,比如有丰富的第三方库等。但是R是专门为统计学而生的,并且在后面的发展中依然专注于此。Python也可以做数学和统计学方面的计算,但是在这方面被R语言完全碾压。 

  R语言还引起了很多大公司的注意,微软收购了一个R语言标准实现的开发商开服务它的云端数据。Hewlett-Packard开发了一种分布式的R语言计算产品,可以同时跨多个节点运行。这个产品在将来可以把Python完全挤出这个领域。

  Python的优点:有时候,作为一个多用途的语言也有它的好处。R语言的功能局限在统计学计算方面。由于开发环境的限制,构建R语言应用也很麻烦,使用Python创建应用就很简单。而且通过像RPy2这样的包可以轻松地将R语言和Python联合起来。

  微软对R语言的投入很多,但是同时微软也对Python提供了很多支持,所以这两种语言都能在Azure上工作的很好。

  原文:4 languages poised to out-Python Python

以上就是挑战Python的四个语言:Swift、Go、Julia、R的详细内容,更多请关注gaodaima其它相关文章!



推荐阅读
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 本文深入探讨了Java多线程环境下的同步机制及其应用,重点介绍了`synchronized`关键字的使用方法和原理。`synchronized`关键字主要用于确保多个线程在访问共享资源时的互斥性和原子性。通过具体示例,如在一个类中使用`synchronized`修饰方法,展示了如何实现线程安全的代码块。此外,文章还讨论了`ReentrantLock`等其他同步工具的优缺点,并提供了实际应用场景中的最佳实践。 ... [详细]
  • 并发编程入门:初探多任务处理技术
    并发编程入门:探索多任务处理技术并发编程是指在单个处理器上高效地管理多个任务的执行过程。其核心在于通过合理分配和协调任务,提高系统的整体性能。主要应用场景包括:1) 将复杂任务分解为多个子任务,并分配给不同的线程,实现并行处理;2) 通过同步机制确保线程间协调一致,避免资源竞争和数据不一致问题。此外,理解并发编程还涉及锁机制、线程池和异步编程等关键技术。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 深入解析:Synchronized 关键字在 Java 中对 int 和 Integer 对象的作用与影响
    深入探讨了 `Synchronized` 关键字在 Java 中对 `int` 和 `Integer` 对象的影响。尽管初看此题似乎简单,但其实质在于理解对象的概念。根据《Java编程思想》第二章的观点,一切皆为对象。本文详细分析了 `Synchronized` 关键字在不同数据类型上的作用机制,特别是对基本数据类型 `int` 和包装类 `Integer` 的区别处理,帮助读者深入理解 Java 中的同步机制及其在多线程环境中的应用。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • FreeBSD环境下PHP GD库安装问题的详细解决方案
    在 FreeBSD 环境下,安装 PHP GD 库时可能会遇到一些常见的问题。本文详细介绍了从配置到编译的完整步骤,包括解决依赖关系、配置选项以及常见错误的处理方法。通过这些详细的指导,开发者可以顺利地在 FreeBSD 上完成 PHP GD 库的安装,确保其正常运行。此外,本文还提供了一些优化建议,帮助提高安装过程的效率和稳定性。 ... [详细]
  • Linux基础知识:Vi与Vim编辑器详解
    Linux基础知识:Vi与Vim编辑器详解 ... [详细]
  • 字节跳动深圳研发中心安全业务团队正在火热招募人才! ... [详细]
  • CentOS 7 中 iptables 过滤表实例与 NAT 表应用详解
    在 CentOS 7 系统中,iptables 的过滤表和 NAT 表具有重要的应用价值。本文通过具体实例详细介绍了如何配置 iptables 的过滤表,包括编写脚本文件 `/usr/local/sbin/iptables.sh`,并使用 `iptables -F` 清空现有规则。此外,还深入探讨了 NAT 表的配置方法,帮助读者更好地理解和应用这些网络防火墙技术。 ... [详细]
  • 本文对SQL Server系统进行了基本概述,并深入解析了其核心功能。SQL Server不仅提供了强大的数据存储和管理能力,还支持复杂的查询操作和事务处理。通过MyEclipse、SQL Server和Tomcat的集成开发环境,可以高效地构建银行转账系统。在实现过程中,需要确保表单参数与后台代码中的属性值一致,同时在Servlet中处理用户登录验证,以确保系统的安全性和可靠性。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • Unity3D 中 AsyncOperation 实现异步场景加载及进度显示优化技巧
    在Unity3D中,通过使用`AsyncOperation`可以实现高效的异步场景加载,并结合进度条显示来提升用户体验。本文详细介绍了如何利用`AsyncOperation`进行异步加载,并提供了优化技巧,包括进度条的动态更新和加载过程中的性能优化方法。此外,还探讨了如何处理加载过程中可能出现的异常情况,确保加载过程的稳定性和可靠性。 ... [详细]
  • Swoole加密机制的安全性分析与破解可能性探讨
    本文深入分析了Swoole框架的加密机制,探讨了其在实际应用中的安全性,并评估了潜在的破解可能性。研究结果表明,尽管Swoole的加密算法在大多数情况下能够提供有效的安全保护,但在特定场景下仍存在被攻击的风险。文章还提出了一些改进措施,以增强系统的整体安全性。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
author-avatar
小Q理性的激情农_885
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有