设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 IT综合资讯 查看内容

世上的程序语言已这么丰富,为什么还不够?

2014-6-24 14:20| 发布者: joejoe0332| 查看: 2540| 评论: 0|原作者: Techorange|来自: Techorange

摘要: 程序语言百百种,想要学 Coding 就必须先确定你的目的是什么,有的是拿来写App的,有的是专写操作系统,有的则是拿来写网页的 …… 各种不同的目的都有其最适合的语言。常见的语言如 C++、JavaScript、VB、VC、Matla ...


  抽象到不行


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


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


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


  大约 30 年前有个大改变,对于藉由可重复使用的部分来建立电脑程序,将它称作为物件(若是在建筑、车子或是家具设计,就很像是模组化),这样的设计模式称作为物件导向的程序编写,在 NeXT(Steve Jobs 在创立苹果后所成立的公司)的那段期间,这可是相当创新的,当时还将它视为未来程序发展的领航者。所以他们就将这样物件导向的程序拿去卖,并且决定将它取为在 C 语言架构下属于他们自己版本的名称,于是 Objective-C 就这样诞生了。


  当 Apple 买下 NeXT 后继承了 Objective-C,并把他们公司的 OS 变成 Mac OSX。


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


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


  传统上来说,程序会依下载位置在你的电脑(装置)上跑,就像你所下载的 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 最近可以如此受欢迎。


3031443-inline-githubnewrepos-custom.png


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


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


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


  有些语言对于逻辑思考的类型是有一定帮助的,一个你所用的语言会改变你的思考模式。就像是 Richard Pattis(一个加州大学尔湾分校资讯学的资深讲师)所说,「不只是为了不同的任务而有不同的语言工具,同时它们也形塑着你如何看待写程序的科技」。


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


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部