探秘编程语言数百种,为什么我们还需要更多?

编程语言百百种,想要学 Coding 就必须先确定你的目的是什么,有的是拿来写 App 的,有的是专写作业系统,有的则是拿来写网页的 …… 各种不同的目的都有其最适合的语言。

常见的语言如 C++、JavaScript、VB、VC、Matlab、Python 等,但其实像 WhatsApp 如此受欢迎的 App 就不是前述这几种语言写的,为什么要有那么多的编程语言?

世界上的编程语言已这么丰富,为什么我们还需要更多?

自己是做开发的,明白每一个编程语言都有其重要性。但是,每一年会都有新的语言出现。你有想过为什么需要这么多的编程语言吗?难道现在开发的都还不够用吗?没错,就是一个简单到不行的原因:只要有人想要学习,就会有各种不同的语言被开发出来。

因为科技进步,加上因为使用语言的目的性不同,越来越广泛也越齐全。

如果把这个问题套用到「鸡生蛋还是蛋生鸡」,这个问题的解答会是蛋生鸡。许多语言的开端,都是要让编写程式的概念变得更简单、更适合初学者和有兴趣的朋友。事实上,电脑把语言设成二元码(电脑进行储存和运算时,採用二进位,也就是所有资讯都被替代成二进位字串),为什么要这么做呢?

原因很简单:如果你把你所有的指示转换成 Yes 或 No 的问题,并分别以 1 和 0 表示,这么一来电脑就不会搞混了(除非一开始的编码是错的)。

在第二次世界大战时,广播讯号是以非常糟糕又不可靠的无线电导航来传重要讯息,而二元码如此聪明的创新是 Claude Shannon (美国数学家、电子工程师和密码学家,被誉为资讯理论的创始人)所发想的,只要用二元码,电脑就可以把资讯储存与进行处理。

编程语言就是开发者自我性格的复制

就像其他的创新一样,编程语言通常都是从一个偏执顽固的人开始,试图要走一条只属于自己的路。

举例来说 1971 年,在这个领域的大多数人都在 Lisp(源于列表处理器,List Processor
的缩写,是歷史悠久的电脑编程语言家族,于 1958 年基于 λ 演算创造,是第一个函数语言程式设计的语言)写程式,一个在 Stanford 的工程师明白了要如何编辑 Lisp 的编码,也就是我们今天所谓的原始的编辑器;想像一下,就是一个在 Mac 上的 TextEdit App,但当然不是像现在一样可以直接简单的使用。

然后你必须按 Escape 键跳出页面,检查你所做的那些改变,像是储存或浏览在部落格贴文的草稿等,是否跟你预想中的一样;不管怎么说,重复对照你所想的与结果,这简直是一件痛苦的事,。

另一个从 MIT 来的工程师看到在 Palo Alto 的创新后,决定要回 Cambridge 后靠自己把它复制下来,并且做一些改善与调整;而其他同事们为了新介面终于开始写 macros(巨集,根据一系列预定的规则替换一定的文字模式)—— 可重复使用的编码位元以节省时间。当他们将巨集的集合程序化,结合到一个系统内,他们把这个叫做 EMACS,Editing MACroS 的缩写。

抽象到不行

如果你是念文法商的,别被这样的名词吓到,它代表着一个程式的生命。

换个角度想像,在写作时,我们会把字句的结合叫做段落,这是就写文章的观点来看,它也是一个抽象的概念,当我们要告诉其他人正在讨论文章的哪部份时,我们不需要再重新引述整个段落的文字内容,而是告诉他们第几段就好;说到底它也是抽象的。

同样地,写程式的工程师经常会试着要创造可重复使用的编码字元,因为就像其他人一样,会懒惰,会不想做重复的事情。

云端时代,语言也需要新架构

当本质上发生改变的时候,你必须要去适应它,因此有时候你会需要一个新的语言。伴随着云端时代的来临,更是如此。

传统上来说,程式会依下载位置在你的电脑(装置)上跑,就像你所下载的 Apps 和安装到你电脑内的软体。然而有时候,某个叫作网路的东西,它有无限神奇的功能,能够把在某一台电脑运作的 App 传送到另一台电脑上,这些是网路 App,比如说像是 Facebook.com 或是 Twitter.com 等等。

在网路 App 你能够做很多事情并且看到即时的变化,Facebook.com 的 App 是在某处的伺服器运作,而不是你实际的电脑上。

要创一个 App 其实是需要花好一番功夫的,你需要不只是电脑能力和频宽传输,软体是一种服务,从云端来的服务,这些云端是需要花一大笔成本来操作的,所以最近一群聪明的人聚集在一起,然后创造叫作 Node.js 的开源平台,透过网路跑 App 以大幅降低成本。

许多开发商偏好将他们的 App 视为一种服务,因为一个网站有非常多的下载 App 的优势,像是免费下载,使 App 更便宜且在一定规模下运作,已经造成了 Node.js 一阵轰动,而 Node.js 是由 JavaScript 写出来的,Node 解释了为什么身为一个语言的 JavaScript 最近可以如此受欢迎。

自己是从事五年的前端工程师了,不少人私下问我,2019年前端该怎么学啊,方法有没有?

没错,年初我花了一个多月的时间整理出来的学习资料,希望能帮助那些想学习前端,却又不知道怎么开始学习的童鞋。

这里推荐一下我的前端学习交流群:731771211,里面都是学习前端的从最基础的HTML+CSS+JS【炫酷特效,游戏,插件封装,设计模式】到移动端HTML5的项目实战的学习资料都有整理,送给每一位前端小伙伴。2019最新技术,与企业需求同步。好友都在里面学习交流,每天都会有大牛定时讲解前端技术!

点击:加入

并不是要说上图这几个受欢迎的语言已经霸佔了大部分的市场,其他的语言像是 Erlang,自从 App 开始移往云端后,它又重新的引起大家的兴趣。事实上,相较于图上这几个语言来说,受欢迎程度相当低的 Erlang 是创造 WhatsApp 的最大功臣。

一个编程语言,乘载了一群自造者的文化

一部份人创造的编程语言是为了其他人,因此他们承载着所有自造者的文化产物,部份文化产物又和其他的工程师群不同,他们各自走着属于自身文化产物下的版本,在电脑科学的歷史上这已经发生过无数次,也形成着最受欢迎语言的运算子重载(对已有的运算符号重新定义,赋予它另一种功能以适应不同的数据类型)。

有些语言对于逻辑思考的类型是有一定帮助的,一个你所用的语言会改变你的思考模式。

这也是为什么会有这么多编程语言存在着,不同的语言代表着一群工程师脑中的思考逻辑模式,当然如果身为语言的使用者而非语言的创造者,太多的选择中要选择一个对工作最有帮助的,最能达成目标的那个。

猜你喜欢

转载自blog.csdn.net/mm782642353/article/details/86707981