哪門程式語言最流行?用程式設計師夢寐以求的程式語言,實現完美開發

2020-12-08 科學傳美

我的朋友曾對一位著名的作業系統專家說他想要設計一種真正優秀的程式語言。那位專家回答,這是浪費時間,優秀的語言不一定會被市場接受,很可能無人使用,因為語言的流行不取決於它本身。至少,那位專家設計的語言就遭遇到了這種情況。

那麼,語言的流行到底取決於什麼因素呢?流行的語言是否真的值得流行呢?還有必要嘗試設計一種更好的語言嗎?如果有必要的話,怎樣才能做到這一點呢?

為了找到這些問題的答案,我想我們可以觀察黑客,了解他們使用什麼語言。程式語言本來就是為了滿足黑客的需要而產生的,若且唯若黑客喜歡一種語言時,這種語言才能成為合格的程式語言,而不是被當作「指稱語義」(denotational semantics)或者編譯器設計。

流行的秘訣

沒錯,大多數人選擇某一種程式語言,不是因為這種語言有什麼獨特的特點,而是因為聽說其他人使用這種語言。但是我認為,外界因素對於程式語言的流行其實沒有想像中那麼大的影響力。我倒是覺得,問題出在對於什麼是優秀程式語言,黑客的看法與大多數的語言設計者不一樣。

大多數程式設計師也許無法分辨語言的好壞。但是,這不代表優秀的程式語言會被埋沒,專家級黑客一眼就能認出它們,並且會拿來使用。雖然他們人數很少,但就是這樣一小群人寫出了人類所有優秀軟體。他們有著巨大的影響力,他們使用什麼語言,其他程式設計師往往就會跟著使用。老實說,很多時候這種影響力更像是一種命令,對於其他程式設計師來說,專家級黑客就像自己的老闆或導師,他們說哪種語言好用,自己就會乖乖地跟進。

專家級黑客的看法不是決定一種語言流行程度的唯一因素,某些古老的軟體(Fortran和Cobol的情況)和鋪天蓋地的廣告宣傳(Ada和Java的情況)也會起到作用。但是,我認為從長期來看,專家級黑客的看法是最重要的因素

即使不考慮語言本身的優秀是否能帶動流行,我想單單流行本身就肯定會使得這種語言變得更好,只有流行才會讓它保持優秀。程式語言的最高境界一直在發展之中。雖然語言的核心功能就像大海的深處,很少有變化,但是函數庫和開發環境之類的東西就像大海的表面,一直在洶湧澎湃。

外部因素會影響到語言的流行。一種語言必須是某一個流行的計算機系統的腳本語言(scripting language),才會變得流行。Fortran和Cobol是早期IBM大型機的腳本語言。C是Unix的腳本語言,後來的Perl和Python也是如此。Tcl是Tk的腳本語言,Visual Basic是Windows的腳本語言,(某種形式的)Lisp是Emacs的腳本語言,PHP是網絡伺服器的腳本語言,Java和JavaScript是瀏覽器的腳本語言。

如果一種程式語言只有語法規則,沒有一個好的實現(implementation),那麼它就不能算完整的程式語言。這些都是很正常很合理的事情,程式語言本來就該如此。

當然,程式語言本來就需要一個好的實現,而且這個實現必須是免費的。商業公司願意出錢購買軟體,但是黑客作為個人不會願意這樣做,而你想讓一種語言成功,恰恰就是需要吸引黑客。

程式語言還需要有一本介紹它的書。這本書應該不厚,文筆流暢,而且包含大量優秀的範例。布賴恩 · 柯尼漢和丹尼斯 · 裡奇合寫的《C程序設計語言》(C Programming Language)就是這方面的典範

程式語言還應該有在線文檔。事實上,在線文檔可以當作一本書來寫,但是目前它還無法取代實體書。實體書並沒有過時,它們讀起來很方便,而且出版社對書籍內容的審核是一種很有用的質量保證機制(雖然做得很不完美)。書店則是程式設計師發現和學習新語言的最重要的場所之一

假定你的語言已經能夠滿足上面三項條件——一種免費的實現,一本相關書籍,以及語言所依附的計算機系統——那麼還需要做什麼才能使得黑客喜歡上你的語言?

黑客欣賞的一個特點就是簡潔。黑客都是懶人,他們同數學家和現代主義建築師一樣,痛恨任何冗餘的東西或事情。

不要覺得為用戶著想就是讓他們使用像英語一樣又長又囉嗦的語法。這是不正確的做法,Cobol就是因為這個毛病而聲名狼藉。如果你讓黑客像下面這樣求和:

add x to y giving z

而不是寫成:

z=x+y

那麼你就是在侮辱黑客的智商,或者自己作孽了。

簡潔性是靜態類型語言的力所不及之處。不考慮其他因素時,沒人願意在程序的頭部寫上一大堆的聲明語句。只要計算機可以自己推斷出來的事情,都應該讓計算機自己去推斷。舉例來說,hello-world本應該是一個很簡單的程序,但是在Java語言中卻要寫上一大堆東西,這本身就差不多可以說明Java語言設計得有問題了。

① hello-world程序的唯一作用就是顯示出「Hello, world!」這句話。使用Java語言,你需要這樣寫:

public class Hello {

public static void main(String[] args) {

System.out.println("Hello, world!");

}

}

如果你從來沒有接觸過編程,看到上面的代碼可能會很奇怪,讓計算機顯示一句話為什麼要搞得這麼複雜?有意思的是,資深程式設計師的反應與你一樣。

(未完待續,具體查看上文圖書連結)——本文節選自《黑客與畫家:矽谷創業之父Paul Graham文集》[美]Paul Graham 著

相關焦點

  • 零基礎準備學習編程,應該從哪門語言學起?
    在學習編程之前,我們還是要搞清楚一件事情,那就是你為什麼要學習編程?是想要獲得高額的薪水呢?還是自己對編程感興趣呢?或者兩者都是。目前在國內只要你是個程式設計師,那麼你基本上都能夠拿到一份不錯的薪資。對於大多數的轉行者來說,學習編程的目的就是想找一份高薪的工作,那麼肯定是哪個程式語言的就業前景好,就越值得學習。下面我們分析一下現在比較流行的程式語言,看看你到底適合哪門程式語言!目前主流的程式語言分別是:C語言、C++、Java、PHP、HTML5+JS、Python。這些也是目前市面上最流行的程式語言。
  • 機器語言的世界,成為一名合格的程式設計師,這些程式語言你學會了?
    相信對於一位程式設計師來說,能夠學會世界上最頂級、最難的程式語言,是夢寐以求的事情。但是世界上的各種程式語言實在是太多了,而人力卻十分有限,因此對於一位合格的程式設計師來講,能夠學會C、C++以及JAVA這三種基礎的程式語言了,就算相當成功的了。
  • 哪些是IT行業有前景的程式語言!
    最近和不少30多歲的程式設計師朋友們聊天,發現大家普遍非常焦慮,對於初學編程的人來說,最大的困難是不知道從何處入手,不知道應該選擇哪門程式語言。接下來小千給大家詳細介紹一下2020年最有前景的程式語言,不論你是剛入門,還是打算再學一門語言提升一下自己,你一定需要了解一下哪些是當前最有前景的程式語言。
  • 2020年最流行的10種程式語言是什麼?
    技術是通過程式語言來實現的,技術領域中有600多種程式語言。程式語言的命令和識別每年都在變化。此外,新的程式語言還具有引人注目的特性和功能。為了促進軟體開發服務和Web應用程式的需求,以下急需提及的十大最受歡迎的程式語言。1.
  • 還在糾結該從哪門程式語言學起?先來聊聊JavaScript
    圖表:「我該先學哪門程式語言?」答案自測 決定你所學的第一門程式語言可能是一個有趣的過程----就像是玩「你是金庸小說裡的哪個角色?」(註:Ruby因其功能簡單但應用靈活而常被比作橡皮泥) 你將會花數百個小時來學習你的第一門程式語言(而且這也只是入門所需罷了),所以你需要慎重考慮以下幾點: 這門語言的就業市場 這門語言的長遠發展前景 學習這門語言的難易程度 你可以用這門語言開發什麼項目(而且和你的朋友們分享,以便你能保持足夠的學習動力) 每一年都會有新的程式語言湧現而出
  • 低學歷的人學習哪門程式語言更容易進入IT行業從事程式設計師崗位
    程式設計師在編寫程序目前IT行業內對於程式設計師的需求量還是比較大的,隨著大數據、物聯網和人工智慧等技術的快速發展,未來程式設計師群體將進一步壯大,程式設計師的工作邊界也將不斷得到拓展,不僅IT行業需要大量的程式設計師人才
  • 程式設計師應該學習的5種程式語言
    了解一種或者真正的編碼語言是很好的,但作為一個真正的多語言開發人員是如何實現真正的主要狀態。我在某處讀到程式設計師應該每年學習一種新的程式語言(我認為它的代碼完整,但不確定),但如果你不能這樣做,我建議你至少學習以下五種程式語言,以便在你的職業生涯中取得好成績。 。
  • 機器人十大流行程式語言
    世界上有超過1500種程式語言,這是目前機器人技術中十種最流行的程式語言。近年來,像ROS Industrial這樣的編程選項開始為程式設計師提供更多的標準化選項。但是,如果您是技術人員,則您更有可能使用製造商的語言。LISP是世界上第二大最古老的程式語言(FORTRAN年齡較大,但只有一年)。它不像這個列表上許多其他程式語言那麼廣泛使用; 然而,在人工智慧編程中仍然非常重要。ROS的一部分是用LISP編寫的,儘管你不需要知道使用ROS。
  • 最受程式設計師歡迎的十大程式語言
    最受程式設計師歡迎的十大程式語言 IT程序猿的科技營 發表於 2020-06-29 11:23:30   1、Java   相關職位:Java應用程式開發人員
  • 90%的公司都在用!百萬開發者最需要的程式語言
    對於很多想通過學習程式語言,進入IT行業發展的人來說,最大的困難是不知從何入手?不知道應該選擇哪門程式語言?有人告訴你要學java,因為現在用的人比較多;也有人告訴你要先學python,簡單易學,它是人工智慧時代的首選語言;有人會告訴你先學習JavaScript,掌握他便可無敵。
  • 程式設計師學習編程,學習這四門程式語言就夠了
    中國程式設計師都有一個讓人難於理解的問題,特別是新手程式設計師,都有喜歡不斷學習最近熱門的程式語言,比如近一年的來的python超過java成為熱度排名第一,同時我們也發現很多程式設計師開始學習盲目ython,作為一名專業的程式設計師,沒有必要把程式語言都學完,比較目前程式語言有不少200種,每種程式語言都有成為熱度的可能性
  • 2021 年,這8種程式語言最流行
    實際上,由於各種原因,不同的開發人員喜歡不同的程式語言,當你認為一種程式語言可能佔主導地位時,一種新的程式語言出現了,或者一種老的語言與新的應用聯繫起來了。2021 年最流行的程式語言將基於相關開發人員想要完成的任務以及他們已經學習或完成的工作。對希望獲得加薪的有經驗的程式設計師來說,最流行的程式語言將不同於那些剛開始工作的程式設計師,這些人在參加了編程訓練營後想要從事初級編程工作。
  • 機器人十大流行程式語言的介紹及機器人編程系統以及操作方法
    計算機視覺程式設計師會給出不同於認知機器人的答案。每個人都不同意什麼是「最好的程式語言」,語言首先學習,即使這是最現實的答案,因為它取決於您要開發的應用程式類型以及您正在使用的系統。 」 世界上有超過1500種程式語言,這是目前機器人技術中十種最流行的程式語言。每種語言對機器人有不同的優勢: 10.
  • 2017 年度程式語言榜,Java 最流行、JavaScript 最沒價值?
    GitHub:GitHub 是當今最活躍的的代碼庫之一,每年他們都會創建一個年度回顧報告,分享他們程式設計師社區的統計數據。本文引用他們的度量標準「Pull Requests Opened」作為語言流行度的另一個指標。本文也預測了程式語言的未來,我們使用各種各樣的資源來預測增長最快的語言、最有影響力的語言、以及最有可能失去人氣的語言。
  • 機器人10大流行程式語言 你精通哪種?
    我究竟應該先學哪種程式語言?這是一個許多新入行的機器人工程師在他們職業生涯中至少會問一次的問題。不幸的是,這也是一個沒有簡單答案的問題。  也許更恰當的問題應該是先從哪種程式語言開始學起?但是,你仍然會得到不同的看法,但是許多機器人專家會同意從關鍵程式語言開始學。
  • 開發者眼中的程式語言……
    對於想加入開發隊伍的初學者來說,入門的程式語言究竟要先選哪一個呢?是永恆經典的C語言,還是方興未艾的Object-C抑或其它神器?若想直接得出確切的答案,這無疑是程式設計師界的哥德巴赫猜想;蘿蔔白菜,各有所愛,每種語言都有自己的優點和缺點。不過,對於初學者來說,先為自己做個初步定位,是有一定參考意義的。
  • 運維人員學習哪門程式語言比較好
    目前IT行業內比較流行的程式語言有Java、Python、PHP、JavaScript、C、Go等,不同的程式語言往往都有特定的應用場景,其中Java和Python的應用場景比較多,語言生態也比較健全。
  • 機器人10大流行程式語言對比,你掌握了哪種?
    在本文中,我們將會審視在機器人學中最流行的10種程式語言,深入探討它們各自的優缺點以及使用和棄用它們的原因。這實際上是個很有道理的問題——畢竟,如果你從不付諸實踐,那為什麼要花大量的時間和精力去學習一種新的程式語言呢?如果作為一名機器人學新人,你當然會想學習一種確實對你的職業生涯很有用的程式語言。為什麼「這個取決於。。。」
  • 最受歡迎的12種程式語言
    只有一組指令需要藉助程式語言來提供。 對於那裡的所有技術專家來說,通過學習以下任何程式語言來囊括最好的工作。   Java   Java 在1991年發明的一種用於智能電視的程式語言, 但目前是900萬多名開發人員使用最廣泛的語言。TIOBE 編程社區已經指出, Java 是最常用的程式語言。
  • 機器人10大流行程式語言對比 你掌握了哪種?
    在本文中,我們將會審視在機器人學中最流行的10種程式語言,深入探討它們各自的優缺點以及使用和棄用它們的原因。計算機視覺程式設計師給出的答案會跟認知機器人專家給出的不一樣。而且,每個人都會對什麼是最好的程式語言有自己的看法。對於一個新入行正在試圖決定要先學哪種語言的機器人學者來說,這是一個相當無用的答案。即使這是最現實的回答——因為它的確取決於你想要開發的應用程式和你在使用的系統。  對於機器人專家來說,最重要的事情是開拓你的」編程思維」,而不是精通一種特定的程式語言。