javascript
javascript笔记:javascript的前世,至于今生嘛地球人都知道了哈
(引子:javascript其實是個私生子)我在上一篇博文最后說道,想寫一篇關于javascript基礎語法的文章,原因是我在讀很多優秀的javascript源碼時候常常被javascript詭異的語法搞的精疲力盡,所以時不時的加固javascript基礎知識是十分有必要的,這些知識每次溫故或者你換個角度去思考都能收獲頗多,那么如此深不可測的語言是怎么誕生的呢?它的祖師爺在創造它的時候是基于什么思考的呢?我想如果大伙知道了這段歷史,或許理解起javascript來就會感覺跟輕松些跟愜意些,說不定很多人因此而想好好的學習它。人總有點八卦的小毛病,回顧下一件事情或一個東西的歷史,探尋他們歷史過程中的種種有趣的細節,一定是件很有意思的事情,我想這篇文章應該會吸引很多人的眼球吧。
大家看看下面這兩張照片:
這位就是javascript的開山祖師爺:Bremdan Eich(布蘭登·艾奇),現在在Mozilla公司擔任CTO。(額頭好長啊,又寬,要是希特勒在世一定會說這是太標準的雅利安人)。
javascript的誕生于瀏覽器的鼻祖網景公司(Netscape),大約是1994年左右,網景公司(Netscape)發布了Navigator瀏覽器0.9版,這是一款很經典的瀏覽器,網景公司(Netscape)的用戶數因此而出現了井噴的態勢,但是Navigator0.9不具備和訪問者互動的能力,在那個上網速度比蝸牛還慢的時代,網景公司(Netscape)急需一種腳本語言,使得瀏覽器和網頁進行交互,從而提升用戶的體驗。
針對這個問題,網景公司(Netscape)有兩種選擇,一是采用現有的腳本語言,二是自己發明一個新的腳本語言。當時網景公司(Netscape)的高層對這個問題爭論不休。在這些喋喋不休的爭論里,時間走到了1995年,這一年發生了一件創造歷史的大事件我的本家語言java橫空出世,java憑借“一次編寫,到處運行的”強大宣傳,大有未來主宰的霸氣,這些讓網景公司(Netscape)高層們一下子被java所俘獲,如是網景公司(Netscape)和sun公司結盟,網景公司(Netscape)不僅允許java程序以applet的形式嵌入到瀏覽器,直接在瀏覽器里面運行,甚至還打算把java作為腳本嵌入到網頁,只是最后發現網頁會變的過于復雜而放棄,但是javascript的java印記永遠都揮之不去。(這段歷史讀的我十分自豪,我雖然想以后遠離一些java但是畢竟現在我還是一名java工程師)。
事情的轉折發生在1995年4月,網景公司(Netscape)錄用了Bremdan Eich(布蘭登·艾奇)(雖然Bremdan Eich(布蘭登·艾奇),是javascript的祖師爺,但是他的介入或許也是javascript悲劇的開始)。我們還是接著說網景公司(Netscape)吧,1995年5月,網景公司(Netscape)做出了決策,未來的網頁腳本語言必須看上去和java足夠相似,但是比java簡單,使得非專業的網頁作者能很快的上手。
Bremdan Eich(布蘭登·艾奇)被任命為這個簡化版的java的設計師。但是Bremdan Eich(布蘭登·艾奇)對java一點興趣都沒有,為了應付公司的安排的任務,他只用10天時間就設計出了javascript。悲劇就這么誕生了。
為什么Bremdan Eich(布蘭登·艾奇)對java一點興趣都沒有了,大家接著往下讀哈。
Brendan Eich的主要方向和興趣是函數式編程,網景公司招聘他的目的,是研究將Scheme語言作為網頁腳本語言的可能性。Brendan Eich本人也是這樣想的,以為進入新公司后,會主要與Scheme語言打交道。(沒想到美國公司也有這樣的惡習,我以前有家公司非常的BT,特別是對剛畢業或者工作時間不長的程序員,你想做java我偏偏不給你做,讓你做C#,你想做C#,別天真,你去倒騰java,很多程序員就是這么被致殘的)。
10天誕生一種語言,不管怎么說我還是把Brendan Eich當神看。但是神創造世界也不能太一蹴而就了,我們這些凡夫俗子很多時候做個小功能模塊如果領導就給你10天時間,也會叫苦連天的,10天誕生一種語言這不是神還是啥啊。由于javascript設計的時間實在太短,導致很多細節考慮不周,因此javascript寫出的程序混亂不堪,成了許多程序員的夢魘,差點被人拋棄,直到ajax的出世,才讓人們終于找到理由忍受他的畸形。
總的來說啊,Brendan Eich設計思路是這樣的:
1.借鑒C語言的基本語法;
2.借鑒Java語言的數據類型和內存管理;
3.借鑒Scheme語言,將函數提升到"第一等公民"(first class)的地位;
4.借鑒Self語言,使用基于原型(prototype)的繼承機制。
???? 所以,Javascript語言實際上是兩種語言風格的混合產物(簡化的)函數式編程+(簡化的)面向對象編程。這是由Brendan Eich(函數式編程)與網景公司(面向對象編程)共同決定的。
不管怎么說,javascript和java是有關系的,javascript里面有java的思想所以說javascript和java無關是不正確的。
其實一直到現在Brendan Eich還是看不起討厭java。假如不是公司決策Brendan Eich絕對不會把java作為javascript的設計原型,即使是現在,Brendan Eich還是討厭自己的作品。他曾經說過:“與其說我愛Javascript,不如說我恨它。它是C語言和Self語言***的產物。十八世紀英國文學家約翰遜博士說得好:'它的優秀之處并非原創,它的原創之處并不優秀。”
哎,可憐的javascript啊,不管你做的如何好,你就是一個永遠不討父親喜歡的私生子啊!大家應該多多疼愛下他,他很需要大家的關懷啊。
?
總結
以上是生活随笔為你收集整理的javascript笔记:javascript的前世,至于今生嘛地球人都知道了哈的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 研究者展示黑客通过GPU绕过防毒软件查杀
- 下一篇: 梦到自己门牙掉了是什么预兆