『Python』Python 什么时候会被取代?( 二 )
其中的原因有很多 。 其中之一是因为Python是动态类型的 , 别忘了你不需要像其他语言一样指定数据类型 。 这意味着内存的耗费非常大 , 因为在任何情况下程序都需要为每个变量保留足够的空间 。 而巨大的内存使用量必然需要耗费大量的计算时间 。
另一个原因是Python一次只能执行一个任务 。 这是灵活的数据类型带来的结果 , Python需要确保每个变量只有一个数据类型 , 而并行进程可能会在这一点上出问题 。
相比之下 , 普通的Web浏览器一次可以运行十几个不同的线程 。 当然其中还涉及别的因素 。
但最终所有的速度问题都不打紧 。 因为电脑和服务器的价格越来越低 , 我们谈论的也只不过是几分之一秒的问题 。 最终用户并不真正在乎他们的应用加载需要0.001还是0.01秒 。
范围
最初 , Python是动态作用域 。 这基本上意味着 , 为了评估表达式 , 编译器首先需要搜索当前块 , 然后依次搜索所有调用函数 。
动态作用域的问题在于 , 每个表达式都需要在所有上下文中进行测试 , 这很繁琐 。 这就是为什么大多数现代编程语言都使用静态作用域 。
Python曾尝试过渡到静态作用域 , 但搞砸了 。 通常 , 内部作用域(例如函数中的函数)能够查看和更改外部作用域 。 在Python中 , 内部作用域只能看到外部作用域 , 但不能更改 。 因此引发了很多混乱 。
Lambdas
尽管Python非常灵活 , 但Lambdas的使用还是有一定的局限性 。 Lambda只能是Python中的表达式 , 而不能是语句 。
另一方面 , 变量声明和语句始终是语句 , 这意味着它们不能使用Lambda 。
在Python中 , 表达式和语句之间的区别相当随意 , 这是其他编程语言都没有的问题 。
空白
在Python中 , 你需要使用空白和缩进来表示不同级别的代码 。 这种格式具有视觉吸引力 , 而且易于理解 。
其他编程语言(例如C++)都需要依赖大括号和分号 。 尽管这可能在视觉上没有那么强的吸引力 , 而且对初学者不够友好 , 但可以提高代码的可维护性 。 在大型项目中 , 这种方式更为妥当 。
Haskell等新兴的编程语言解决了这个问题:它们依赖空白 , 但同时也为那些希望不用空白的人提供了另一种语法 。
移动开发
我们目睹了从台式机向智能手机的转变 , 很明显 , 我们需要强大的语言来构建移动软件 。
然而 , 使用Python开发的移动应用并不多 。 这并不意味着Python无法开发移动应用 , 你可以试试看一个名为 Kivy 的 Python 包 。
但是 , Python的设计被没有考虑到移动设备 。 因此 , 即使Python可以应付基本的任务 , 但我们最好还是选择专门为移动应用程序开发而创建的语言 。 广泛用于移动编程的语言包括:React Native、Flutter、Iconic和Cordova 。
我们需要明确的是 , 笔记本电脑和台式计算机已经存在很多年了 。 然而 , 由于移动设备的使用已然超越了桌面设备 , 因此我们肯定地说 , 学习Python不足以成为经验丰富的全方面开发人员 。
运行时错误
Python不需要首先编译 , 然后再执行 。 相反 , 它会在每次执行时编译 , 因此所有编程上的错误都会在运行时显示出来 。 这会导致性能下降、浪费时间 , 而且还需要进行大量测试 。
对于初学者来说 , 这未必是坏事 , 因为测试可以教会他们很多知识 。 然而 , 对于经验丰富的开发人员而言 , 必须使用Python调试复杂的程序很令人头疼 。 性能欠缺是Python最大的问题 。
本文插图
Python什么时候会被取代?
如今 , 编程语言市场上涌现了新的竞争力量:
- Rust提供了与Python相同的安全性——不会意外覆盖任何变量 。 但是 , 它通过所有权和借用的概念解决了效率的问题 。 根据StackOverflow Insights , Rust是近几年最受欢迎的编程语言 。
推荐阅读
- 「木星」为什么木卫二这个卫星会被科学家认为“一定会有生命”?
- ■奶奶大学同学让我别学Python了,吃枣药丸,劝我学汇编,说是时髦
- 「程序员小助手」奶奶大学同学让我别学Python了,吃枣药丸,劝我学汇编,说是时髦
- 『Python』用Python编写FPGA以太网MAC(附源码下载方式)
- 机器之心:几行代码搞定ML模型,低代码机器学习Python库正式开源
- 太阳能:阳光迟早会被用作能源
- [Python]战“疫”期,阿里云云效团队在家高效开发实录
- 「」中国移动 5g 什么时候出?先来看海外公布一加 8 参数配置
- 『字符串』Python正则表达式由浅入深(三)
- #CDA数据分析师#2020年软件工程现状:Python或将成为第一大编程语言