rust

编程语言的好坏,没那么重要?

…衆ロ難τιáo~ 提交于 2020-10-01 14:53:22
作者 | Aleksey Kladov 译者 | 弯月,责编 | 杨碧玉 头图 | CSDN 下载自视觉中国 出品 | CSDN(ID:CSDNnews) 以下为译文: 前言 这篇文章表达了我 对编程语言流行度的看法 。我认为,没有人知道为什么某些语言受欢迎,而另一些不受欢迎,因此,我也可以在这一片纷争中表达自己的想法。当然,这完全出自我个人的猜测,并没有任何数据支持我的研究。 我的中心论点是,实际使用何种编程语言(语法、语义、范例)并不重要。 重要的是运行时的特性 ,简单来说,就是正在运行中的进程的内存是什么样的? 首先,我们来观察一个现象。许多软件都是用 vimscript 和 emacs lisp 编写的(比如我个人就离不开 magit )。客观地说,这些语言都不怎么样。即便没有不那么小众的语言也是如此,比如 PHP 和 JavaScript 。尽管 JavaScript 在某些方面很出色(这是第一个支持 lambda 的主流语言!),但肯定不难想象它本来可建立一个更好的版本(例如,不存在两个不同的 null 值)。 这是一条通用规则:只要你的语言是图灵完备的,并且具有构建抽象的能力,人们就愿意使用。当然,有些语言的生产力比较高,而有些语言则比较低,但是总的来说,选用函数式编程还是面向对象编程,静态类型还是动态类型,似乎并没有太大关系。我们花一些时间总是能够克服这种语言的难点

Python到底是强类型语言,还是弱类型语言?

给你一囗甜甜゛ 提交于 2020-09-30 06:47:44
作者 | 豌豆花下猫 来源 | Python猫 前言 我在上一篇文章中分析了为什么 Python 没有 void 类型的话题,在文章发布后,有读者跟我讨论起了另一个关于类型的问题,但是,我们很快就出现了重大分歧。 我们主要的分歧就在于: Python 到底是不是强类型语言? 我认为是,而他认为不是。 他写了一篇很长的文章《谁告诉的你们Python是强类型语言!站出来,保证不打你!》,专门重申了他的观点,但可惜错漏百出。 我曾有想法要写写关于 Python 类型的问题,现在借着这个机会,就来系统地梳理一下吧。 (PS:在我写作进行到差不多一半的时候,微信读者群里恰好也讨论到“强弱类型”的话题!在与大家讨论时,我的一些想法得到了验证,同时我也学到了很多新知识,所以本文的部分内容有群友们的功劳,特此鸣谢!) 动静类型与强弱类型 很多读者应该都熟悉动态类型与静态类型,但是很多人也会把它们跟强弱类型混为一谈,所以我们有必要先作一下概念上的澄清。 这两组类型都是针对于编程语言而言的,但关注的核心问题不同。 对于“动静类型”概念,它的核心问题是“什么时候知道一个变量是哪种类型”? 一般而言,在编译期就确定变量类型的是静态类型语言,在运行期才确定变量类型的则是动态类型语言。 例如,某些语言中定义函数“int func(int a){…}”,在编译时就能确定知道它的参数和返回值是 int 类型