有数百种编程语言。如果你想学习编码,你必须首先确定你的目的是什么。其他的都是用来写网页的……有最适合各种用途的语言。C++、JavaScript、VB、VC、Matlab、Python等常见语言,但实际上,像WhatsApp这样流行的应用程序并不是用上述语言编写的。为什么有这么多编程语言?本文作者ChrisDannen,同时是知名科技媒体《Fast Company Digital》和《FastCo.Labs》的编辑。曾任管理顾问、户外运动记者、红牛能量饮料品牌代表。他写了两本关于iOS开发和设计的书。以下内容以作者***名义所写。世界上有那么多编程语言,为什么我们需要更多?6月初,Apple发布了一种新语言Swift,主要为构建MacApps而开发。你有没有想过为什么需要这么多的编程语言??还不够发达吗?是的,原因很简单:只要有人想学,就会有各种不同的语言被开发出来。由于科学技术的进步,以及使用语言的目的不同,它变得越来越广泛和完整。如果将此问题应用于“chickenoregg”,则此问题的答案将是eggorchicken。许多语言的开始是为了让编写程序的概念更简单,更适合初学者和有兴趣的朋友。实际上,计算机将语言设置为二进制代码(计算机在存储和计算时使用二进制,即所有信息都用二进制字符串代替)。你为什么这么做?原因很简单:如果你把所有的指令都转换成是或否的问题,并分别表示为1和0,这样计算机就不会把它搞混了(除非一开始编码就错了)。在第二次世界大战期间,无线电信号被用来通过非常差和不可靠的无线电导航来传输重要信息,而二进制代码是一项如此巧妙的创新,以至于克劳德·香农(美国数学家、电子工程师和密码学家,被称为由创始人发现的信息论),只要使用二进制代码,计算机就可以存储和处理信息。自从二进制代码诞生以来,很多语言都设计了它,使工程师能够写得更流畅,更容易阅读,尽管可能会觉得无聊或者觉得写二进制代码很乏味。例如大写字母A,二进制编码为01000001。如果是小写的a,就是01100001。写个程序会费点时间,但是不要介意几千行的长度,因为大部分程序都是这么来的。当一种语言用易于理解的英语书写时,它更容易阅读,但另一方面会非常冗长;像Apple的编程语言Objective-C(一种通用的、高级的、面向对象的编程语言,任何原始的C语言都可以不加修改直接通过Objective-C的编译器),过于冗长,但主要目的是为了满足用户友好的特性,语言本身非常易于使用。即使你一生中从未写过程序,你也或多或少能理解工程师想要告诉计算机做什么。它看起来像这样:[someInstancedoSomethingWithObject:aandAnotherParam:b];事实上,为什么在物理电子领域有这么多黑客工具,主要是因为制造现实世界设备的概念通常以最自然的方式转化为编程,至少对于编程初学者来说,这类编程语言是更合适,即使它非常冗长。编程语言是开发人员自身个性的副本。与其他创新一样,编程语言通常始于一个偏执狂的人试图走自己的路。例如,1971年,这个领域的大多数人都在Lisp(来自列表处理器,ListProcessor的缩写,是一个历史悠久的计算机编程语言家族,于1958年基于lambda演算创建,以及是第一个函数式语言编程语言)来编写程序,斯坦福大学的一位工程师想出了如何编辑Lisp代码,这就是我们今天所说的原始编辑器。想象一下,它是Mac上的TextEditApp,但当然不如现在好用。然后你要按Escape键跳出页面,检查你所做的修改,比如在博文中保存或查看草稿等,是否符合你的预期;事实证明,这简直就是一件让人头疼的事情。另一位麻省理工学院的工程师看到了PaloAlto的创新,决定回剑桥自己复制,做一些改进和调整。而其他同事终于开始为新的界面编写宏(macros,根据一系列预先确定的规则替换某些文本模式)——可重用的编码位,以节省时间。当他们以编程方式将一组宏组合到一个系统中时,他们称之为EMACS——EditingMACroS的首字母缩写词。太抽象了。如果您学习语法,请不要被这样的术语吓倒。它代表程序的生命周期。从另一个角度,想象一下,我们在写作的时候,把词和句子的组合称为段落。从写文章的角度来看,也是一个抽象的概念。当我们想告诉别人我们正在讨论文章的哪一部分时,我们不会重新引用整个段落的文本,而只是告诉他们前几段,这些段落在一天结束时是抽象的。同样,编写程序的工程师经常尝试创建可重用的代码字符,因为和其他人一样,他们很懒惰,不想做重复的事情。大约30年前有一个很大的变化,对于通过可重用的部分创建计算机程序,称其为对象(如果是建筑、汽车或家具设计,很类似于模块化),这样的设计模式被称为对象-面向编程,在NeXT(史蒂夫·乔布斯创立苹果公司后创办的公司)时期颇具创新性。当时也被看成是未来程序开发的领头羊,所以他们出售了这样的面向对象的程序,并决定将其作为自己C语言架构下版本的名称,所以Objective-C等等出生。当Apple收购NeXT时,他们继承了Objective-C并将他们公司的操作系统变成了MacOSX。云时代,语言也需要新的架构。当本质发生变化时,您必须适应它,因此有时您需要一种新的语言。云时代的到来更是如此。传统上,程序会根据下载位置在您的计算机(设备)上运行,就像您下载的App和计算机上安装的软件一样。然而,有时,有一种叫做Internet的东西可以神奇地将在一台计算机上运行的应用程序转移到另一台计算机上。这些是网络应用程序,例如Facebook.com或It'sTwitter.com等。在网络应用程序中,你可以做很多事情并实时查看变化,Facebook.com应用程序在某处的服务器上运行,而不是在你的实际计算机上。创建一个应用程序需要付出很多努力。您需要的不仅仅是计算机功率和带宽传输。软件是一种服务。该服务来自云端。这些云需要花费大量资金来运营。所以最近一群聪明人聚在一起创建了一个名为Node.js的开源平台,通过网络运行应用程序以大大降低成本。很多开发者更喜欢把他们的App当作一种服务,因为一个网站有很多下载App的优势,比如免费下载,让App更便宜,在一定规模上运行,这在Node.js中引起了轰动,而Node.js是用JavaScript编写的,Node解释了为什么JavaScript作为一种语言最近如此流行。并不是说上图中的流行语言已经占据了大部分市场。自从应用程序开始迁移到云端后,Erlang等其他语言重新引起了人们的兴趣。事实上,与图中的语言相比,流行度相当低的Erlang是WhatsApp创建的最大贡献者。一门编程语言承载着一群创造者的文化。一些人创造的编程语言是为另一些人创造的,所以承载着所有创造者的文化产物。一些文化产品不同于其他工程师群体。他们每个人都走自己版本的自己的文化产品。这在计算机科学史上发生过无数次,也形成了***语言中的运算符重载(重新定义已有的运算符号,赋予其另一种功能以适应不同的数据类型)。有些语言有助于逻辑思维的类型,你使用的语言会改变你的思维方式。正如RichardPattis(加州大学欧文分校信息学高级讲师)所说,“不仅针对不同的任务有不同的语言工具,而且它们还塑造了你如何看待编写程序的技术。”这就是为什么有这么多编程语言的原因。不同的语言代表了一群工程师大脑中的思维逻辑模式。当然,如果你是语言使用者而不是语言创造者,你必须从众多选择中选择一个最有效的,最能达到目标的那个。原文:为什么世界需要更多的编程语言?资料来源:技术橙子
