為什麼有些語言會生存下來,而另一些會消亡?
英文原文:http://www.wired.com/wiredenterprise/2012/06/berkeley-programming-languages/
翻譯:我不知道是誰翻譯的
校對:陳冰
谷歌打算要改變我們這個世界寫軟體的方法。近年來,這個搜尋引擎巨頭試圖在這個星球中已經最廣泛使用的程式語言上做改進,已經推出了2種新的程式語言。
通過一種叫Go的語言,谷歌試圖拿它來替換年事已高的C或C++語言,希望它能提供一種更加快捷的在資料中心裡開發大型軟體平臺的方法。而通過一種叫Dart的語言,谷歌想用它來替代JavaScript,改進我們開發執行在Web瀏覽器裡的軟體的方法。
但是,不管這些新的程式語言多麼的具有吸引力,我們不得不問一句,它們需要多久才能真正的流行起來——如果能夠的話。畢竟,新的程式語言不停的誕生。但只有很少一部分能被廣泛的接受。
在普林斯頓大學和加州大學伯克利分校,兩位研究人員試圖在為什麼有些程式語言能夠走進它們的黃金時代而眾多餘下的卻不能夠的原因上貢獻出自己的智慧。在一個他們自稱為“業餘研究”的工作中,Leo Meyerovich和 Ari Rabkin調查了數萬個程式設計師,梳理了流行的程式碼庫SourceForge上超過30萬個專案——所有的這些努力都是為了弄清楚為什麼老的程式語言仍然處於霸權地位。
“為什麼沒有語言能夠真正的超越C語言?”Rabkin問道。自從C語言誕生以來的35年裡,我們的作業系統和軟體設計都獲得了巨大的飛躍,但是,雖說C語言在這段時間裡有了加強,但也有很多新的非常成功的語言出現,可C語言仍然是開發語言中的中堅力量。
“為什麼我們不能真正的超越C語言?” — Ari Rabkin
部分的原因,他說,是因為語言的設計者並不都擁有一個讓這些語言實用化的目標。“學院派的一個習慣就是喜歡去研究解決沒有人真正遇到過的問題,”Rabkin說。 Rabkin最近剛剛獲得了加州大學伯克利分校的電腦科學博士學位,現在在普林斯頓大學做博士後研究工作。
Rabkin說,學院派的人經常想要開發出一種不同凡響的語言,但他們卻從來不思考如何能讓這種語言變的實用。在一些案例中,他們在一些最簡單的事情上都做的很失敗,比如說為這種新語言寫文件。在另一些案例中,設計者通過不停地往一種語言裡新增新特徵,成功的使試圖使用這種語言的技術人員的大腦因超載而當機。
“這樣的問題的解決辦法並非都是技術範疇,”Meyerovich說。“我們需要去發明一些能夠被‘大眾瞭解’的語言。”
張揚(Yang Zhang),Slice-Data分析公司的共同創始人,曾在攻讀麻省理工博士學位期間中途退學,他曾是眾多的追隨一種新的叫做Scala的語言的信徒之一,但他承認,這種語言誕生之初糟糕的文件和只能從語言的設計者那裡獲得幫助的情況給學習者造成了巨大的障礙。“我當時真是一個受虐狂,”他這樣描述2006年學習這種語言經歷。
Meyerovich說,他和Rabkin收集到的資料顯示,程式設計師在開始使用一種新的語言時並不總是會花時間好好學習它們——這使得他們的程式設計過程跌跌絆絆。例如,他舉例個例子,ActionScript,這是一個由Adobe公司開發的一個物件導向的程式語言。根據Meyerovich統計的資料顯示,程式設計師都認為ActionScript很容易。但是,當他們開始使用這種語言開發一些新的東西——比如他們從多媒體開發轉到遊戲開發時——問題就出現了。
另外一個問題是程式設計師的自滿。大部分的程式設計師都會學習3到4種程式語言,然後他們就停步了,這兩位研究者說。“隨著閱歷的增加,你會認為這些程式設計師年齡在增長,他們會變得更加智慧,他們會學更多的語言。但是我們發現這不是實情。他們在停步不前。”Meyerovich說。
部分的原因是,當程式設計師的年齡達到35、40年齡段時,他們通常會從親自動手程式設計的角色上轉移去管理其他的程式設計師。從這點上看,他們學習或實現新的程式語言的動機減少了。
Meyerovich認為,我們的程式語言還有很多問題,需要整個開發社群繼續為之奮鬥和探索。正向他和Rabkin挖掘這些資料一樣(你可以在網上分類查詢它們),他們不僅希望能找到產生這些問題的根源,還希望能在如何解決這些問題的方法上發現一些新的視角。
“這是一個很熱門的問題,我們甚至不認為從分析這些資料的過程中看到了事情的真相。”Meyerovich說。
相關文章
- 為什麼爬蟲語言大多都會選擇Python而不是Java?爬蟲PythonJava
- 為什麼會有這麼多的程式語言?
- 六星教育:Python為什麼這麼火?未來它將會被什麼語言取代?Python
- 為什麼機器學習會選擇Python語言?機器學習Python
- 雲生態大會,隨“峰”而來!
- 為什麼爬蟲語言選擇Python而不是Java?爬蟲PythonJava
- Python會消亡嗎?Python
- Python為什麼會成為人工智慧開發的首選語言?Python人工智慧
- 為什麼機器學習會選擇Python語言?很簡單!機器學習Python
- 為什麼 PHP 在 2024 年會越來越受歡迎:經典語言的意外迴歸PHP
- Python會在什麼時候被其他語言取代Python
- 為什麼程式設計初學者會選擇 Python 作為入門語言?程式設計Python
- 沒想到吧!Google 排名第一的程式語言,為什麼會這麼火?Go
- 何為程式語言?為什麼要學C語言?C語言
- 高德地圖靠什麼生存下來?地圖
- 豐田精益生產方式為什麼會成功?
- SSL證書很關鍵!為什麼有些公司會忽略SSL證書的部署?
- 豆瓣為什麼會崩?
- vue專案為什麼有些是pages有些是viewsVueView
- 為什麼說Typescript是必學語言以及如何學會TS全棧開發TypeScript全棧
- 為什麼Julia語言這麼棒?
- 為什麼sleeping的會話會造成阻塞會話
- 為什麼有些公司的IT很亂?
- 為什麼機器學習會選擇Python語言?這篇文章一定要看!機器學習Python
- Python能幹什麼?為什麼會火?Python
- 為什麼那麼多人要學習go語言?go語言有什麼特點?Go
- 為什麼sleeping的會話會造成阻塞(2)會話
- 為什麼 Lettuce 會帶來更長的故障時間?
- 為什麼機器學習模型會越來越糟? - Santiago機器學習模型Go
- 為什麼很多公司都轉型go語言開發?Go語言能做什麼Go
- 為什麼Web前端語言只有JavaScript?Web前端JavaScript
- 為何Python會被選用為駭客語言呢?Python
- 為什麼程式設計師會有最喜歡與最討厭的程式語言?(earthly)程式設計師
- 因果迷境:為什麼我們會問“為什麼”?
- 為什麼純函式式語言至今無法流行起來?函式
- 為什麼有些公司不讓用 Lombok ?Lombok
- 3 * 0.1 == 0.3將會返回什麼?為什麼?
- 跑批為什麼會這麼難?
- Python能幹什麼?為什麼會這麼火?Python