偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

世界上的程序語言已這么豐富,為什么還不夠?

移動(dòng)開發(fā) 后端 前端
程序語言百百種,想要學(xué) Coding 就必須先確定你的目的是什么,有的是拿來寫App的,有的是專寫操作系統(tǒng),有的則是拿來寫網(wǎng)頁的 …… 各種不同的目的都有其最適合的語言。常見的語言如 C++、JavaScript、VB、VC、Matlab、Python 等,但其實(shí)像WhatsApp如此受歡迎的App就不是前述這幾種語言寫的,為什么要有那么多的程序語言?

程序語言百百種,想要學(xué) Coding 就必須先確定你的目的是什么,有的是拿來寫App的,有的是專寫操作系統(tǒng),有的則是拿來寫網(wǎng)頁的 …… 各種不同的目的都有其最適合的語言。常見的語言如 C++、JavaScript、VB、VC、Matlab、Python 等,但其實(shí)像WhatsApp如此受歡迎的App就不是前述這幾種語言寫的,為什么要有那么多的程序語言?

[[114937]]

本文作者 Chris Dannen 同時(shí)是知名科技媒體《Fast Company Digital》 和《FastCo.Labs》 的編輯,曾經(jīng)做過管理顧問、戶外運(yùn)動(dòng)的採訪記者以及 Red Bull Energy Drink 的品牌代表,曾寫過兩本關(guān)于 iOS 開發(fā)與設(shè)計(jì)的書。以下以作者***人稱撰寫。

世界上的程序語言已這么豐富,為什么我們還需要更多?

六月初,Apple 發(fā)布了一個(gè)新的語言Swift,主要是為了建立 Mac Apps 而開發(fā)的,你有想過為什么需要這么多的程序語言嗎?難道現(xiàn)在開發(fā)的都還不夠用嗎?沒錯(cuò),就是一個(gè)簡單到不行的原因:只要有人想要學(xué)習(xí),就會(huì)有各種不同的語言被開發(fā)出來。因?yàn)榭萍歼M(jìn)步,加上使用語言的目的性不同,越來越廣泛也越齊全。

如果把這個(gè)問題套用到「雞生蛋還是蛋生雞」,這個(gè)問題的解答會(huì)是蛋生雞。許多語言的開端,都是要讓編寫程序的概念變得更簡單、更適合初學(xué)者和有興趣的朋友。事實(shí)上,電腦把語言設(shè)成二元碼(電腦進(jìn)行儲(chǔ)存和運(yùn)算時(shí),采用二進(jìn)位,也就是所有資訊都被替代成二進(jìn)位字串),為什么要這么做呢?

原因很簡單:如果你把你所有的指示轉(zhuǎn)換成 Yes 或 No 的問題,并分別以 1 和 0 表示,這么一來電腦就不會(huì)搞混了(除非一開始的編碼是錯(cuò)的)。在第二次世界大戰(zhàn)時(shí),廣播訊號是以非常糟糕又不可靠的無線電導(dǎo)航來傳重要訊息,而二元碼如此 聰明的創(chuàng)新是 Claude Shannon (美國數(shù)學(xué)家、電子工程師和密碼學(xué)家,被譽(yù)為資訊理論的創(chuàng)始人)所發(fā)現(xiàn)的,只要用二元碼,電腦就可以把資訊儲(chǔ)存與進(jìn)行處理。

自從二元碼誕生,非常多的語言都以它來設(shè)計(jì),使工程師能夠?qū)懙酶鲿秤指菀鬃x,雖然會(huì)感到無聊或是覺得寫二元碼很冗長。比如說大寫字母 A 好了,以二元碼表示成 01000001 ,如果是小寫 a 呢,則是 01100001 ,寫完一個(gè)程序要花一些時(shí)間,但不用介意長度有幾千行,因?yàn)榇蠖鄶?shù)的程序都是這樣來的。

當(dāng)一個(gè)語言以易懂的英文寫,就更容易讀了,但另一方面就會(huì)顯得相當(dāng)冗長;像是 Apple 的程序語言 Objective-C(是一種通用、高階、物件導(dǎo)向的程序語言,任何原始的 C 語言承是不需要經(jīng)過修改就能直接通過 Objective-C 的編譯器),就是冗長到不行,但主要也是為了要滿足對使用者友善的特色,語言本身就是非常容易使用的。即使在你的生命中從來沒有寫過程序,或多或少你也能 了解一點(diǎn)工程師想要告訴電腦要做什么,它長的大概是像這個(gè)樣子:[someInstance doSomethingWithObject:a andAnotherParam:b];

事實(shí)上,為什么在物理電子學(xué)的范疇里有這么多的駭客套件,主要是因?yàn)橐尙F(xiàn)實(shí)世界的裝置通常能以最自然的方式轉(zhuǎn)換成寫程序的概念,至少對于寫程序的初學(xué)者而言,這類的程序語言是比較適合的,即使它很冗長。

程序語言就是開發(fā)者自我性格的復(fù)制

就像其他的創(chuàng)新一樣,程序語言通常都是從一個(gè)偏執(zhí)頑固的人開始,試圖要走一條只屬于自己的路。

舉例來說1971年,在這個(gè)領(lǐng)域的大多數(shù)人都在 Lisp(源于列表處理器,List Processor 的縮寫,是歷史悠久的電腦程序語言家族,于 1958 年基于 λ 演算創(chuàng)造,是***個(gè)函數(shù)語言程序設(shè)計(jì)的語言)寫程序,一個(gè)在 Stanford 的工程師明白了要如何編輯 Lisp 的編碼,也就是我們今天所謂的原始的編輯器。想像一下,就是一個(gè)在 Mac 上的 TextEdit App,但當(dāng)然不是像現(xiàn)在一樣可以直接簡單的使用。

然后你必須按 Escape 鍵跳出頁面,檢查你所做的那些改變,像是儲(chǔ)存或?yàn)g覽在部落格貼文的草稿等,是否跟你預(yù)想中的一樣;不管怎么說,重復(fù)對照你所想的與結(jié)果,這簡直是一件痛苦的事。

另一個(gè)從 MIT 來的工程師看到在 Palo Alto 的創(chuàng)新后,決定要回 Cambridge 后靠自己把它復(fù)製下來,并且做一些改善與調(diào)整。而其他同事們?yōu)榱诵陆缑娼K于開始寫 macros(巨集,根據(jù)一系列預(yù)定的規(guī)則替換一定的文字模式)--可重復(fù)使用的編碼位元以節(jié)省時(shí)間。當(dāng)他們將巨集的集合程序化,結(jié)合到一個(gè)系統(tǒng)內(nèi),他們 把這個(gè)叫做 EMACS--Editing MACroS 的縮寫。

抽象到不行

如果你是念文法商的,別被這樣的名詞嚇到,它代表著一個(gè)程序的生命。

換個(gè)角度想像,在寫作時(shí),我們會(huì)把字句的結(jié)合叫做段落,這是就寫文章的觀點(diǎn)來看,它也是一個(gè)抽象的概念,當(dāng)我們要告訴其他人正在討論文章的哪部份時(shí),我們不需要再重新引述整個(gè)段落的文字內(nèi)容,而是告訴他們第幾段就好,說到底它也是抽象的。

同樣地,寫程序的工程師經(jīng)常會(huì)試著要?jiǎng)?chuàng)造可重復(fù)使用的編碼字元,因?yàn)榫拖衿渌艘粯?,?huì)懶惰,會(huì)不想做重復(fù)的事情。

大約 30 年前有個(gè)大改變,對于藉由可重復(fù)使用的部分來建立電腦程序,將它稱作為物件(若是在建筑、車子或是家具設(shè)計(jì),就很像是模組化), 這樣的設(shè)計(jì)模式稱作為物件導(dǎo)向的程序編寫,在 NeXT(Steve Jobs 在創(chuàng)立蘋果后所成立的公司)的那段期間,這可是相當(dāng)創(chuàng)新的。當(dāng)時(shí)還將它視為未來程序發(fā)展的***者,所以他們就將這樣物件導(dǎo)向的程序拿去賣,并且決定將它取 為在 C 語言架構(gòu)下屬于他們自己版本的名稱,于是 Objective-C 就這樣誕生了。

當(dāng) Apple 買下 NeXT 后繼承了 Objective-C,并把他們公司的 OS 變成 Mac OSX。

云端時(shí)代,語言也需要新架構(gòu)

當(dāng)本質(zhì)上發(fā)生改變的時(shí)候,你必須要去適應(yīng)它,因此有時(shí)候你會(huì)需要一個(gè)新的語言。伴隨著云端時(shí)代的來臨,更是如此。

傳統(tǒng)上來說,程序會(huì)依下載位置在你的電腦(裝置)上跑,就像你所下載的 Apps 和安裝到你電腦內(nèi)的軟體。然而有時(shí)候,某個(gè)叫作網(wǎng)絡(luò)的東西,它有無限神奇的功能,能夠把在某一臺(tái)電腦運(yùn)作的 App 傳送到另一臺(tái)電腦上,這些是網(wǎng)絡(luò) App,比如說像是 Facebook.com 或是 Twitter.com 等等。

在網(wǎng)絡(luò) App 你能夠做很多事情并且看到即時(shí)的變化,F(xiàn)acebook.com 的 App 是在某處的伺服器運(yùn)作,而不是你實(shí)際的電腦上。

要?jiǎng)?chuàng)一個(gè) App 其實(shí)是需要花好一番功夫的,你需要不只是電腦能力和頻寬傳輸,軟體是一種服務(wù),從云端來的服務(wù),這些云端是需要花一大筆成本來操作的,所以最近一群聰明的人聚集在一起,然后創(chuàng)造叫作 Node.js 的開源平臺(tái),通過網(wǎng)絡(luò)跑 App 以大幅降低成本。

許多開發(fā)商偏好將他們的 App 視為一種服務(wù),因?yàn)橐粋€(gè)網(wǎng)站有非常多的下載 App 的優(yōu)勢,像是免費(fèi)下載,使 App 更便宜且在一定規(guī)模下運(yùn)作,已經(jīng)造成了 Node.js 一陣轟動(dòng),而 Node.js 是由 JavaScript 寫出來的,Node 解釋了為什么身為一個(gè)語言的 JavaScript 最近可以如此受歡迎。

 

并不是要說上圖這幾個(gè)受歡迎的語言已經(jīng)霸占了大部分市場,其他的語言像是 Erlang,自從 App 開始移往云端后,它又重新的引起大家的興趣。事實(shí)上,相較于圖上這幾個(gè)語言來說,受歡迎程度相當(dāng)?shù)偷?Erlang 是創(chuàng)造 WhatsApp 的***功臣。

一個(gè)程序語言,承載了一群自造者的文化

一部份人創(chuàng)造的程序語言是為了其他人,因此他們承載著所有自造者的文化產(chǎn)物,部份文化產(chǎn)物又和其他的工程師群不同,他們各自走著屬于自身文化產(chǎn) 物下的版本,在電腦科學(xué)的歷史上這已經(jīng)發(fā)生過無數(shù)次,也形成著***語言的運(yùn)算子重載(對已有的運(yùn)算符號重新定義,賦予它另一種功能以適應(yīng)不同的數(shù)據(jù)類 型)。

有些語言對于邏輯思考的類型是有一定幫助的,一個(gè)你所用的語言會(huì)改變你的思考模式。就像是 Richard Pattis(一個(gè)加州大學(xué)爾灣分校資訊學(xué)的資深講師)所說,「不只是為了不同的任務(wù)而有不同的語言工具,同時(shí)它們也形塑著你如何看待寫程序的科技」。

這也是為什么會(huì)有這么多程序語言存在著,不同的語言代表著一群工程師腦中的思考邏輯模式,當(dāng)然如果身為語言的使用者而非語言的創(chuàng)造者,太多的選擇中要選擇一個(gè)對工作最有幫助的,最能達(dá)成目標(biāo)的那個(gè)。

原文:Why Does The World Need More Programming Languages?

來源:techorange

責(zé)任編輯:閆佳明 來源: cocoachina
相關(guān)推薦

2015-08-11 09:18:44

程序員最好

2016-06-06 11:14:21

DockerDelphix

2015-10-09 16:14:37

數(shù)據(jù)開放

2018-12-04 15:46:53

編程語言Python

2018-07-19 19:07:33

語言編程語言程序

2019-11-18 15:07:54

編程語言C#

2020-06-08 10:21:56

操作系統(tǒng)C語言Unix

2015-09-21 14:29:33

物聯(lián)網(wǎng)智能設(shè)備

2013-09-12 15:39:30

編程語言BANCStar

2025-03-13 00:35:00

2017-04-05 08:41:49

2018-11-06 12:22:18

排序算法代碼

2012-08-13 09:31:33

程序

2022-09-19 21:34:04

PHPFacebook語言

2020-11-16 09:38:08

編程語言EmojiEmojicode

2013-07-09 10:11:41

程序設(shè)計(jì)大賽程序員

2013-05-08 09:38:28

InteropNetSDN網(wǎng)絡(luò)設(shè)備供應(yīng)商

2021-09-13 10:03:54

藍(lán)牙連接藍(lán)牙藍(lán)牙設(shè)備

2023-07-31 08:59:46

軟件FossilSQLite

2023-10-08 09:38:06

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號