xxleyi / learning_list

聚集自己的学习笔记
11 stars 3 forks source link

程序员为什么要不断学习新语言?该如何学习新语言? #270

Open xxleyi opened 3 years ago

xxleyi commented 3 years ago

作为程序员,为什么要不断新语言呢?

这个问题成立的前提是,编程世界在不断地涌现出新语言。

那编程世界为什么要不断涌现出新的语言呢?只使用一门或少数的几门语言不行吗?新发明一种语言难道是一件很简单的事情吗?

是的,新发明一门语言确实是一门新语言出现到流行过程中最简单(同时代价也最小)的一部分,最困难同时代价最大的部分是有足够数量的程序员学习并迁移到新语言,同时,这部分高昂的代价真真切切的带来了足够多的收益(起码比代价高一两个数量级)。

既然搞新语言代价这么大,为什么还好搞?很简单,搞新语言的代价,不一定比扩展旧语言的代价高,同时其回报很可能比扩展旧语言大。换句话说,有很大的可能,搞新语言的代价更低,回报更大。

为什么旧的编程语言需要不断扩展呢?因为要满足新的需求。

在满足新的需求方面,为什么搞新语言能够做到低价更低,回报更大呢?这是一个关键性问题

这个问题肯定是编程世界的现状导致,是什么现状导致呢?

每隔一段时间,就会有新的编程领域出现,新的编程领域有自己特定的编程问题需要被解决,这些特定的编程问题足够新,或者足够独特,导致既有语言对此新的编程领域要么力不从心,要么根本就无能为力。

要验证这个,最好的办法是看看历史:

理论上通用的图灵编程语言,在现实意义上却是 面向特定领域的 DSL,这甚是有趣。

所以,程序员为什么不断学习新的编程语言呢?因为新的编程语言很可能意味着新的编程领域,新的编程领域很可能带来超出预期的回报。

换句话说:学习新的编程语言所付出的代价足够低或者有上限,但带来的回报足够高,甚至没有上限。

所以,归根结底一句话:怎样才能降低自己学习一门新语言的成本呢?

答案就是:学习编程语言自身的知识,学习语言实现相关的编译器,学习编程思想相关的编程范式和设计模式。