成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

編程語言那么多,為什么Google偏愛 JS?

移動開發(fā)
我從事軟件開發(fā)的相關(guān)工作已經(jīng)有15年了。目前的工作主要集中于Web和移動應(yīng)用方面。在這么多年里,我對JavaScript的態(tài)度可能比較能代表一大群程序員的看法:從一開始對JS的不屑一顧到最后驚奇它的表現(xiàn)和潛力。

我從事軟件開發(fā)的相關(guān)工作已經(jīng)有15年了。目前的工作主要集中于Web和移動應(yīng)用方面。在這么多年里,我對JavaScript的態(tài)度可能比較能代表一大群程序員的看法:從一開始對JS的不屑一顧到最后驚奇它的表現(xiàn)和潛力。

曾經(jīng)的JavaScript像玩具一樣

在 2000年那會兒,我也從事過一段web應(yīng)用開發(fā)。開發(fā)平臺是Windows,主要使用Asp。那個時候的JavaScript主要用途是檢驗頁面輸入數(shù) 據(jù)是否正確。錯誤的時候,會彈出個警告窗口。當(dāng)時整個Web開發(fā)、應(yīng)用環(huán)境,實(shí)際上都是十分簡陋的。Web開發(fā)者看待JavaScript估計就如同玩具 一般。因為它能做的真的是十分有限。如果你能找到2000年時候的有關(guān)JS的IT圖書,內(nèi)容多半大同小異,充斥著告訴你怎么用JS做個什么跑馬燈,怎么制 造煩死人的彈窗,如此這般。這些內(nèi)容也進(jìn)一步抑制了大家對js的期望。

后來,我轉(zhuǎn)向C/C++,因為“真正的程序員使用C++”。這一轉(zhuǎn)身就是很多年,我對JS的印象,也就止于那點(diǎn)功用了。

這 幾年,因為種種變化,我又轉(zhuǎn)回來了。這個時候再回顧Web開發(fā),已經(jīng)可以用天翻地覆來形容。相關(guān)的概念層出不窮,發(fā)展出的各種技術(shù)、工具,五花八門,讓人 眼花繚亂。而且更要命的是,這些知識除了基礎(chǔ)的幾類,大部分都十分的不穩(wěn)定,并且在這種不穩(wěn)定的情況下迅速發(fā)展,以瘋狂的速度淘汰更新。今天還在用的工 具,可能明天就有更新、更好的了。

為什么會這樣?因為社會需要的熱點(diǎn)在這里:需求推動。這個社會的生活、生產(chǎn),逐漸轉(zhuǎn)移到了網(wǎng)站上、移動端,這就是這些領(lǐng)域快速發(fā)展進(jìn)步的主因。

這個時候再回頭看當(dāng)年的玩具語言:JavaScript,也早已今非昔比。

它已經(jīng)成長為網(wǎng)絡(luò)時代不可或缺的前端頂梁柱。現(xiàn)在已經(jīng)不可想象沒有JS的網(wǎng)站是否還能正常運(yùn)行。不僅如此,它的觸角居然還深入到了后端服務(wù),Node.js方興未艾。一些新一代的產(chǎn)品,如MongoDB,甚至內(nèi)置了JS語言支持,作為應(yīng)用交互的工具。

這是很多人都無法想象到的情景,包括我在內(nèi)。對此,我不得不回過頭看一下,思考JavaScript為什么會擁有現(xiàn)在的地位。

[[150842]]

冥冥之中注定的語言

JavaScript的總體設(shè)計有亮點(diǎn),但問題也很多。它是作者在10天內(nèi)設(shè)計出來的。因為時間倉促,很多細(xì)節(jié)未及推敲、深思熟慮就推上了市場,以至于充斥了漏洞、糟粕。Douglas Crockford在《JavaScript語言精粹》(英文名《JavaScript:The Good Parts》)里面提到:“Javascript中糟粕的比重超出了預(yù)期。”(注:Douglas Crockford,JavaScript開發(fā)社區(qū)最知名的權(quán)威,是JSON、JSLint、JSMin和ADSafe之父,著有《JavaScript: The Good Parts》。)

連Brendan Eich(JavaScript的創(chuàng)造者)自己都說:"與 其說我愛它,不如說我恨它。它是C語言和Self語言一夜情的產(chǎn)物。十八世紀(jì)英國文學(xué)家約翰遜博士說得好:'它的優(yōu)秀之處并非原創(chuàng),它的原創(chuàng)之處并不優(yōu) 秀。'(the part that is good is not original, and the part that is original is not good.)"

但是,似乎是在冥冥之中注定,JavaScript在一開始就抓到了未來編程語言的方向:函數(shù)式編程。

“JavaScript設(shè)計的最出色的就是它的函數(shù)的實(shí)現(xiàn)。它近乎接近于完美。...... 函數(shù)在javascript中是頂級對象,它是第一個成為主流的Lambada語言,它是披著C外衣的Lisp。”

—— Douglas Crockford

讀過《黑客與畫家:硅谷創(chuàng)業(yè)之父Paul Graham文集》(主要介紹黑客即優(yōu)秀程序員的愛好和動機(jī),討論黑客成長、黑客對世界的貢獻(xiàn)以及編程語言和黑客工作方法等話題)的人,都會記得作者的預(yù)言:Lisp才是語言的終極趨向。(注:LISP源自列表處理LISt Processing的縮寫,由來自麻省理工學(xué)院的人工智能研究先驅(qū)John McCarthy在1958年基于λ演算所創(chuàng)造,是一種通用高級計算機(jī)程序語言,長期以來壟斷人工智能領(lǐng)域的應(yīng)用,也是第一個函數(shù)式程序設(shè)計語言。)

[[150843]]

硅谷創(chuàng)業(yè)之父Paul Graham

函數(shù)式編程的流行之勢

函 數(shù)式編程并不是新發(fā)明,它的歷史甚至比一些主流語言還早。因為性能和實(shí)現(xiàn)等問題,一直飽受冷落。而如今,計算機(jī)的硬件性能大大提高,改變了很多事物。原本 不夠經(jīng)濟(jì)的,變得可行;原本不夠好的,在新條件下變得不錯。鑒于函數(shù)式編程的優(yōu)良特性和強(qiáng)大能力,它的流行其實(shí)并不意外。“過程化->面向?qū)ο?>函數(shù)式”的應(yīng)用開發(fā)范型發(fā)展趨勢是可以預(yù)見的。

這 些年,腳本語言大行其道,使用Python/Ruby/PHP代替原本靜態(tài)語言開發(fā)的應(yīng)用比比皆是,傳統(tǒng)的C/C++應(yīng)用開始逐漸縮減到桌面應(yīng)用、高性能 服務(wù)器應(yīng)用、驅(qū)動、系統(tǒng)接口等領(lǐng)域。因為大部分的應(yīng)用的性能已經(jīng)不是問題,CPU相對過剩,I/O、網(wǎng)速才是瓶頸,因為人們總是更重視開發(fā)效率。而 JavaScript因為一開始就有這樣的設(shè)計能力,把握住了技術(shù)的先機(jī),緊隨了這股浪潮。

當(dāng)然,運(yùn)氣也不可或缺。世界上的編程語言至少也有個幾百種。一種語言想獲得認(rèn)可并得到流行,光有好的技術(shù)設(shè)計是不夠的,它還需要位置乃至契機(jī)。

編程語言要找到適合自己應(yīng)用的領(lǐng)域,深深的扎下根來,并以此為基地,向外伸展。這個時間,有時候需要20年以上。比如PHP專注于Web開發(fā),C對于系統(tǒng)開發(fā)不可缺少,Python在科學(xué)計算、網(wǎng)絡(luò)編程有諸多應(yīng)用。

在2004年,JavaScript就得到了一次契機(jī):Google推出了使用Ajax技術(shù)的Gmail郵箱,那堪比桌面的無刷體驗,引發(fā)了業(yè)界轟動和模仿浪潮。而Ajax的操作核心就是JavaScript。此后,JS在瀏覽器中的地位變得十分穩(wěn)固,已經(jīng)成了事實(shí)標(biāo)準(zhǔn)。在2009年,基于Google強(qiáng)大V8 JS引擎的Node.js出現(xiàn)了,它意味著JS向其它領(lǐng)域開始進(jìn)軍,發(fā)揮它的語言威力。微軟當(dāng)年也宣稱在服務(wù)器端可以內(nèi)置支持JavaScript,不過這完全不可比。

網(wǎng)絡(luò)時代的需要,JavaScript捷足先登。瀏覽器一開始就綁定了JS腳本技術(shù),這讓它取得先發(fā)優(yōu)勢。當(dāng)年的瀏覽器大戰(zhàn)后,微軟的瀏覽器占據(jù)統(tǒng)治地位,IE里面是可以編寫vbscript的,但微軟在網(wǎng)絡(luò)時代的停滯不前,讓他丟失了很多機(jī)會。

[[150844]]

由 于網(wǎng)絡(luò)帶來的低成本信息交互以及更低的開發(fā)、部署成本,越來越多的產(chǎn)品基于瀏覽器做為界面。JS在應(yīng)用開發(fā)上當(dāng)仁不讓。業(yè)界出于需求,制定了幾版相關(guān)的技 術(shù)標(biāo)準(zhǔn),比如HTML、CSS、JS便都有了自己的位置和開發(fā)標(biāo)準(zhǔn)規(guī)范,它們相互緊密協(xié)作,融為一體。Web應(yīng)用開始侵蝕以往的桌面應(yīng)用。

時間證明了JavaScript的價值,它并沒有被淹沒在歷史的發(fā)展里。只要應(yīng)用領(lǐng)域有足夠的渴求,原本有很多不足的東西也會獲得強(qiáng)大的推動力,把它改造的更好。

Brendan Eich在今年年5月份做了一個PPT,回顧了JS語言的創(chuàng)造過程和這20年的發(fā)展、前景。(觀看地址:http://brendaneich.github.io/ModernWeb.tw-2015/ )

那么我也借用他的話來結(jié)尾吧:

My advice:always bet on JS. 

責(zé)任編輯:倪明 來源: 雷鋒網(wǎng)
相關(guān)推薦

2023-01-24 16:13:22

編程語言JavaIT

2019-12-02 14:22:01

浪費(fèi)云計算支出

2020-11-02 07:05:54

虛擬內(nèi)存Go

2017-08-14 18:00:13

共享單車摩拜

2017-01-21 14:57:43

Linuxsystemd

2025-06-26 02:29:00

C語言void*機(jī)制

2023-05-26 00:25:53

2017-09-18 14:39:31

溝通培訓(xùn)學(xué)習(xí)

2011-12-31 14:47:10

Web App

2020-08-26 17:03:52

同型號顯卡產(chǎn)品

2013-06-17 10:45:34

2020-07-13 08:40:21

BAT模具設(shè)計

2022-07-26 23:43:29

編程語言開發(fā)Java

2023-08-30 10:20:34

編程語言Python

2014-07-14 09:51:09

創(chuàng)始人谷歌項目

2024-04-18 11:53:59

通訊協(xié)議網(wǎng)絡(luò)

2020-03-05 17:38:19

物聯(lián)網(wǎng)安全網(wǎng)絡(luò)安全

2013-01-15 09:41:45

編程語言

2019-10-08 14:40:53

Java線程

2020-04-24 08:15:51

代碼 if else數(shù)組
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 日本综合在线观看 | 亚洲精品一区二区三区丝袜 | 精品久久久久久久人人人人传媒 | a国产视频 | 观看av| 91精品国产乱码久久蜜臀 | 免费观看羞羞视频网站 | av一级在线观看 | 国产清纯白嫩初高生在线播放视频 | 青青草原综合久久大伊人精品 | 男女羞羞免费网站 | 久久成人国产精品 | 日本激情视频在线播放 | 久久亚洲一区二区三区四区 | 成人av播放 | 亚洲精品国产成人 | 三级视频在线观看电影 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 亚洲精品乱码 | 色久五月| 亚洲精品福利在线 | 精品欧美乱码久久久久久 | 国产精品久久久久久久久久免费看 | 一区二区三区在线观看免费视频 | 精品亚洲一区二区三区 | 欧美色视频免费 | 久久伊人一区二区 | 亚洲一区 中文字幕 | 色av一区二区三区 | 一区二区中文字幕 | 日日噜噜噜夜夜爽爽狠狠视频97 | 在线视频一区二区 | 免费一级做a爰片久久毛片潮喷 | 欧美电影在线观看网站 | 天天草天天干 | 天天操网 | 免费国产黄网站在线观看视频 | 成人一区二区三区 | 欧美亚洲一区二区三区 | 天天拍天天草 | 欧美精品一级 |