每天凌晨00点00分, 第一时间与你相约

每日英文

Smile and stop complaining about the things you can't change. Time keeps ticking whether you're happy or sad.

保持微笑,停止抱怨那些改变不了的事。无论你开心与否,时间总是不等人的。

每日掏心话

你不努力,机会有可能遇到。努力,会增加了遇见机会的概率。吴闲云说:所谓努力,其实就是愿意白干。不求回报做很多事的人,一般都能获得更多的机会。

来自:公众号 读芯术 | 责编:乐乐

程序员小乐(ID:study_tech)第 849 次推文 图源:Pexels

往日回顾:去掉烦人的 “ ! = null " (判空语句)

正文

Python这两年非常火,随处可见的广告让它逐渐变成了一种老少皆知的存在。

虽然问世几十年后,Python才得到编程社区的重视。 但是,其发展的势头似乎无人能及。 自2010年年初以来,Python一直在蓬勃发展——在流行趋势方面,它最终超过了C、C#、Java和Javascript,成为计算机语言中的“大热门”。 它为人们提供了优质的服务——但这样的趋势会持续到什么时候呢?Python何时会被其他语言取代?为什么会这样? 关于Python的确切有效期众说纷纭,这些猜测可能会像科幻小说一样荒诞不经。与其猜测,不如评估一下当前促进Python流行的优势,以及未来会阻碍其流行的劣势。

是什么让Python在当下如此流行

Python的成功体现在Stack Overflow趋势上,该趋势测量了平台上帖子的标签数量。考虑到Stack Overflow的大小,这确实是衡量语言受欢迎程度的良好指标。

Stack Overflow上各种编程语言的标签快照 尽管R语言在过去几年一直处于平稳状态,而且很多其他语言也处于稳步下降趋势,但Python的增长却似乎势不可挡。在所有的Stack Overflow问题中,几乎有14%被标记上了“python”,而且这种趋势越来越明显。以下是出现这种情况的几个原因: 1. 出现时间早 Python大约诞生于90年代。这不仅意味着它有足够的时间成长,还获得了一个庞大的粉丝群体。 所以如果人们在用Python编码时遇到了问题,那么很可能只需用谷歌搜索一下便能解决。这不过是有些人已经遇到了相同的问题,写了一些有助于解决问题的内容而已。 2. 适合初学者 Python已经存在了数十年,程序员们可利用这段时间写出优质的教程。除此之外,Python的语法也很容易理解。 首先,无需指定数据类型。指定变量即可;Python会根据语境判断它是整数、浮点值、布尔值还是其他值。对于初学者来说,这是一个很大的优势。如果是C++语言,那么用浮点值替换整数时,程序将不会进行编译,曾经使用该语言编程的初学者应该对这种情况带来的挫败感深有体会。 如果初学者曾经并行阅读过Python和C++代码,那么会明白Python是多么容易理解。 即使C++语言在设计时考虑到了英语,但是和Python代码相比,它还是难以看懂。 3. 用途广泛 Python已经存在了相当长的时间,开发人员们根据不同目的制作出了不同的程序包。现在,几乎所有的东西都能打包。 想处理数字、向量和矩阵?Numpy是个好帮手。 想对技术和工程进行计算?用Scipy。 想在数据处理和分析领域大展身手?试试Pandas。 想从人工智能入手?为什么不用Scikit-Learn。 无论人们要管理什么样的计算任务,都有可能用到Python程序包。从机器学习在过去几年间的迅猛发展便可看出,自身用途的广泛让Python处于近期发展的前列。

Python的缺点——以及它们是否致命

来源:Pexels

根据先前的论述,可以想象Python会在很长一段时间之内保持发展的迅猛势头。但和其他技术一样,Python也有自己的弱点。笔者将一一介绍其最值得关注的缺点,并分析这些缺点是否致命。 1. 速度 Python的速度很慢。真的很慢。和其他语言相比,Python需要花2-10倍的时间来完成任务。 速度慢有多种原因。其中一个原因是Python属于动态类型——请记住,无需像其他语言一样指定数据类型。这意味着需要占用大量内存,因为程序需要为那些可在任何情况下运行的变量保留足够的空间。大量的内存占用转化为大量的计算时间。 另一个原因是Python一次只能执行一个任务。灵活的数据集会出现这样的结果——Python需要确保每个变量只有一个数据类型,平行进程可能会造成混乱。 相比之下,普通的网络浏览器一次可以运行十二个不同的线程。还有一些其他的理论。 但归根结底,所有的速度问题都无关紧要。电脑和服务器的价格十分便宜,所以人们讨论的只是关于几分之一秒的运行速度。而且终端用户并不在意自己是用0.001秒还是0.01秒加载应用程序。 2. 范围 起初,Python使用动态作用域。这基本上意味着,为了评估表达式,编译系统首先要搜索当前块,然后依次搜索所有调用函数。 动态作用域方面的问题在于,每个表达式都需要在每个可能的语境中进行测试——这相当繁琐。这就是大多数现代编程语言都使用静态作用域的原因。 Python曾试图过渡到静态作用域,但却造成了混乱。通常情况下,内部作用域——比如函数中的函数——将能够查看并更改外部作用域。但Python中的内部作用域只能查看外部作用域,却不能对其进行更改。这会导致严重的混乱。 3. Lambdas 尽管Python具有很高的灵活性,但Lambdas的使用还是有一定的局限性。在Python中,Lambdas只能是表达式,而不能是语句。 另一方面,变量声明和语句始终是语句。这意味着Lambdas不能为它们所用。 表达式和语句之间的区别相当随意,而其他语言并没有这样的情况。

空格让代码更容易看懂,但也让其更难以维护。图源:Unsplash

4. 空格 Python使用空格和缩进来表示不同级别的代码。这使得代码在视觉上更具有吸引力,能够直观理解。 其他语言,比如C++语言,更多使用的是大括号和分号。虽然在视觉上没有什么吸引力,对初学者也并不友好,但这样做让代码更易于维护。对于较大的项目来说,这大有帮助。 Haskell这样较新的语言解决了这个问题:该语言多使用空格,但又为那些不想使用空格的人提供了另一种语法。 5. 移动开发 人们见证了从台式机到智能手机的转变,很明显,人们需要强大的语言来构建移动软件。 但正在使用Python进行开发的移动应用软件并不多。这并不意味着用Python进行移动开发无法实现——名为Kivy的Python程序包就可以做到移动开发。 但Python并没有考虑到移动设备。所以即使它有可能完成一些基本任务,也最好使用为移动应用程序开发而创建的语言。广泛使用的移动编程框架包括React Native、Flutter、Iconic和Cordova。 需要明确的是,在未来的很多年,笔记本和台式机应该都会继续存在。但是,移动设备在通信量方面已远远超越了桌面设备,因此可以肯定地说,想要成为经验丰富的全能型开发人员,只学习Python是不够的。 6. 运行错误 Python脚本并不是遵循先编译后执行的流程。相反,它在每次执行时进行编译,所以任何编码错误在运行时都会显现出来。这会导致性能下降、浪费时间以及需要进行大量测试。真的是大量的测试。 对于初学者来说,这是一件好事,因为他们可以从测试中学到很多。但对于经验丰富的开发人员来说,对Python中的复杂程序进行调试会让他们感到无所适从。性能不佳是在Python上设置时戳的最大原因。

什么会在未来取代Python——具体是什么时候

来源:Pexels

编程语言市场上出现了几个新的竞争者: · Rust具备与Python相同的安全性——不会意外覆盖任何变量。但它通过所有权和借用的概念解决了性能问题。Stack OverflowInsights显示,它还是过去几年当中最受人们喜爱的编程语言。

· Go非常适合初学者,就像Python一样。它是如此简单,甚至连维护代码都变得更加容易。有趣的一点是:Go开发人员是市场上收入最高的程序员之一。

· Julia是一种非常新的语言,可与Python展开正面竞争。它填补了大规模技术计算的空白:以前,人们通常会使用Python或Matlab,并使用C++库对整个程序进行修补,这一过程在大规模技术计算中是必需的。现在,人们可以使用Julia,而不必费力使用两种语言。 虽然市面上还有其他的语言,但Rust、Go和Julia却是弥补了Python弱项的语言。所有这些语言都在尚未投入使用的技术中表现出色,在人工智能领域的表现尤其亮眼。Stack Overflow标签的数量显示,这些语言的市场份额仍然很小,尽管如此,它们未来的上升趋势却显而易见。

Stack Overflow上各种编程语言的标签快照 目前,Python十分流行,可以说是无处不在,新语言要想取代它,肯定需要五年(甚至可能是十年)的时间。 这个时候,很难说会是哪种语言取代Python(Rust、Go、Julia还是未来的某种新语言)。但考虑到Python体系结构中最基本的性能问题,一定会有某种语言取代它的位置。 你觉得呢?

欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,学习能力的提升上有新的认识,欢迎转发分享给更多人。

读芯术python讲的怎么样_Python这么火,为什么说它不是未来的编程语言?相关推荐

  1. 读芯术python讲得怎么样_翟天临的噩梦:怎样用Python检测抄袭行为?

    本教程将介绍如何使用机器学习技术(如word2vec和余弦相似度等),在Python中用几行代码制作抄袭检测器.搭建完成后,抄袭检测器将会从文件中载入学生们的作业,然后通过计算相似度来判断学生有无相互 ...

  2. 读芯术python教程答案_攻略Python的免费书单:走进编程,从这五本书开始

    全文共1245字,预计学习时长5分钟 图源:unsplash Python一向是数据科学家最青睐的编程语言,它的语法相对简单.易于学习.除了机器学习数据库之外,还有非常活跃的开发人员社区,维护着各种库 ...

  3. 读芯术python数据处理答案_python数据处理(二)

    一.csv 文件格式 看下.csv文件的定义: 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数 ...

  4. 读芯术python答案_你爱 “Python”的身体,还是“R”的灵魂?

    全文共2337字,预计学习时长6分钟 数据科学界有三大宝: Python.SAS和R,不过像SAS这种高端物种,不是我们这些平民能供养得起的啊. 根据 IEEE Spectrum的最新排名,R和Pyt ...

  5. “读芯术”精华文章汇总:专业知识

    学习资源 & 学习方法 1. 17门AI课程,为你前途加分 2. 超级大汇总!200多个最好的机器学习.NLP和Python教程 3. 从理论到学习时间表:教你正月30天速成Python 4. ...

  6. “读芯术”精华文章汇总:前程规划

    面试经验 1. 这样面试,你的成功率将达到90% 2. 这样写简历,数据科学HR主动加你为好友 3. 技能修炼+简历打造,offer统统都到碗里来 4. 1分钟200份简历!NLP如何快速筛选最佳求职 ...

  7. “读芯术”精华文章汇总:学术报告

    AI未来说*青年学术论坛 第一期 数据挖掘专场 1. 抢票,只剩两天 | AI未来说学术论坛 数据挖掘专场 2. "AI未来说·青年学术论坛"正式启动,第一期论坛圆满落幕 3. 李 ...

  8. 微信公众号读芯术中的python_你好,程序员;再见,交易者!Jupyter即是新的Excel...

    全文共3246字,预计学习时长8分钟 如果你从事的是商业交易或者在金融机构工作,Excel是必备技能. 你可以用它分析价格及其他tick数据.评估投资组合.计算风险价值.进行事后检等等.你熟练掌握数据 ...

  9. python大神能干什么_Python这么火,能干什么?这四大主要用途是你必须得知道的!...

    如果你想学Python,或者你刚开始学习Python,那么你可能会问:"我能用Python做什么?" 这个问题不好回答,因为Python有很多用途. 大家都知道,当下全栈工程师的概 ...

  10. python可以用来写什么_python这么火,到底可以用来做什么?

    原标题:python这么火,到底可以用来做什么? python学习交流君羊:245648132 你用 Python 做什么,你选 Python 3 还是 Python 2? 如果你正在考虑学习 Pyt ...

最新文章

  1. node重命名文件名_利用Node.js对文件进行重命名
  2. day29(对象转xml(使用java))
  3. struts2的action之间和action向jsp的参数传递
  4. SAP 权限对象设置及在程序中的应用
  5. C++:C++在图片特定区域之外产生随机数
  6. mysql ERROR 1045 (28000): 错误解决办法
  7. html打印代码_惊呆了,我的 Python 代码里面出现了薛定谔的 Bug
  8. python处理HTML的函数库,【整理】关于Python中的html处理库函数BeautifulSoup使用注意事项...
  9. centos7系统开启ftp服务器,centos7 开启ftp服务器
  10. php 左右分栏,如何设置分栏格式
  11. 【DDR3_Electrical Characteristics and AC Timing】_ Setup,Hold and Slew Rate Derating
  12. java实现会员注册_java 实现会员注册
  13. 查看QQ空间秘密的发布时间
  14. Mac 终端打开jupyter notebook,用这句话就对了
  15. javascript实现简单拖曳功能
  16. TCP之系统调用listen()
  17. 微信充值页面开发总结
  18. proteus仿真——四路抢答器
  19. 【概率论与数理统计】猴博士 笔记 p17-20 一、二维连续型:已知F,求f;已知f,求f
  20. make menuconfig缺少ncurses

热门文章

  1. Excel如何将汉字转成拼音
  2. 计算机用户文件夹怎么重命名,win10修改账户文件夹名方法_windows10用户文件夹改名怎么操作...
  3. 云流化技术应用之K12VR云课堂
  4. 最近智商拙计,做做题补一下
  5. 推荐 :一小时建立数据分析平台
  6. 拉里·佩奇(Larry Page)的伟大归来
  7. ZigBee网络数据传递流程_基于ZigBee远程通信的水质监测系统设计
  8. HDU 5773 (DP)
  9. lzg_ad: XPE操作系统镜像尺寸优化
  10. 最小生成树求最大比率 UVALive - 5713