為什麼我會棄Java,選擇了Kotlin——Bruce Eckel

為什麼我會棄Java,選擇了Kotlin——Bruce Eckel

多少語言就是死在了取代Java的路上

Java:我活著的意義就是天天被取代

Java:我也不知道我為什麼有那麼多敵人

一個Kotlin初學者不希望Kotlin宣佈XX年後取代Java,(畢竟)20多年來立這個flag的語言都死了

Kotlin等語言的出現不會導致Java被徹底替代,只是縮小了Java的應用範圍,每個編程語言都有自己擅長的一面,都有存在的價值。所以大家不要擔心學Java以後沒飯吃

……

這是前不久我們發佈《Kotlin或將取代Java》一文之後,來自網友們的部分聲音。

可以看到:作為編程語言界的老大——Java仍然有一票鐵粉追隨。當然,從來沒有人說過學習編程語言是一個非此即彼的問題,也從來沒有人是為了學習編程語言而學習。歸咎到一點,儘管學習某種新的編程語言,有時是迫於就業形勢,是恰逢學習時機,是樂於追求新事物,但我們最終理想的狀態是能夠掌握所謂“編程的思想”。

“我從來不建議大家只學習一種編程語言,我個人是非常樂於追求新事物的,所以,對於Java,我會保留相關的一些資料以做不定期的更新,但我的興趣點已經確實不在Java身上了。”

《Java編程思想》之父Bruce Eckel如是說道。目前,他正不餘遺力地對外宣揚自己的Kotlin編程之道,並於今年秋季聯合出版新書“Atomic Kotlin”(暫且翻譯為《原子Kotlin》)。

為什麼我會棄Java,選擇了Kotlin——Bruce Eckel

Bruce認為,Java的下一個繼承者將是Kotlin,“儘管自己非常喜歡Python”。

實際上,在2017年5月Google I/O 大會上Android團隊宣佈Kotlin將成為官方頭等支持語言後,有關Kotlin或將替代Java、擺脫“流氓專利”Oracle的聲音就不絕於耳。

直到今年,根據Android團隊分享的數據顯示:

“在過去一年裡,有35%的專業Android開發者在使用Kotlin,其中95%的開發者都對Kotlin非常滿意”。

此外,無論是官方文檔上的代碼示例片段,還是Google最新開源demo的源代碼,Kotlin已赫然成為頭號用語。而7年前,JetBrains才剛剛推出Kotlin。

如今,不管你願不願意接受,因其實用與高效的基因特徵,使得Kotlin等眾多的新興編程語言正以最快速的方式被創業公司的技術開發團隊提上日程。

不過,使用群體的差異、歷史包袱的挑戰以及企業用人成本的考慮,成為其作為“小眾語言”能否在Android圈快速崛起最關鍵的問題。

“這是否意味著將有更多的人棄用Java?Java將何去何從?”

帶著這樣的疑問,近日,CSDN獨家訪問了《Java編程思想》之父Bruce Eckel:

為什麼我會棄Java,選擇了Kotlin——Bruce Eckel

左:CSDN記者 楊麗、 右:Bruce Eckel

在外人眼裡,Bruce Eckel是MindView公司總裁,是《C++編程思想》、《Java編程思想》的作者,是C++標準委員會擁有表決權的成員之一,是已經發表了超過150篇計算機技術文章,出版了6本書的技術思想大牛。

或許,起初寫書只是Bruce為了成為一個更好的諮詢顧問。但目前看來,寫作成了他的終身事項。他還會經常遊訪各地與讀者見面,這或許也激勵了他要做得更好,在寫作這件事情上下更大的功夫。

而在管理自己的公司事務上,Bruce將MindView這家公司形容為“是為我寫作、諮詢、舉辦會議等活動的保護傘”。事實上,這家公司以開源的方式,力求為開發者構建一個開源且有償的工作,可以稱之為“研究機構”或者實驗。

與那些追求利潤的企業創辦的目的不同,他更為關注的是讓工作成為人們生活中可以帶來快樂的方式。

▌Kotlin是接下來的關注點

CSDN:您最近正在忙於何事?

Bruce:在過去的一年到一年半的時間裡,我正在與另外一位女性技術作家Svetlana Isakova聯合撰寫《Atomic Kotlin》一書,因為Svetlana本身是JetBrains公司的其中一個負責人,而且同樣也是Kotlin語言的核心開發者,由於她遠在俄羅斯,所以我們通過在線的方式進行溝通。

另一方面,我也在同步有關Java資料的更新,這是一本新書,其主要內容基於Java11。

CSDN:不過,此前您的一本基於Java8的書耗費了您近兩年的時間,實際情況卻是Java版本的迭代開始變得更為迅速,現在Java11路線圖也發佈了。您是如何看待這一趨勢?是否會影響讀者的選擇判斷?

Bruce:儘管Java版本的迭代開始變得更為迅速,但這都是相對小的改變。從Java8到Java11的迭代不會特別困難,因為我們關注的是語言的進步,而非隱藏在下面其他東西。所以,這個現狀也不會影響到那些會看我的書的編程人員。

CSDN:那接下來您將如何跟進這一改變?

Bruce:我有一位年輕人與我共事,他會幫我整理有關Java的新資料以加快速度。當然,我可能確實擅長於寫作,所以我還在考慮聘請一位編輯幫我整理資料。

因為關於Kotlin這本書需要在今年10月阿姆斯特丹舉辦的Kotlin大會之前完成,我更需要全身心投入到後者身上。

CSDN:

這兩天與中國讀者的互動中,能發現仍然有很多人是因為《Java編程思想》這本書前來的,就您看來,這本書為何能收穫包括初學者在內廣大讀者的喜愛?

為什麼我會棄Java,選擇了Kotlin——Bruce Eckel

Bruce:無論是《Java編程思想》還是《C++編程思想》都是為專業的編程人員準備的。

不過,在過去的這些年裡,有很多人告訴我他們正是因為這本書而選擇學習編程。所以,我認為讀者喜歡這本書還是出於對Java的直覺。當然,我隨後也有別的著書希望能為初學者學習,但畢竟這仍不是一本初學讀物。所以,

如果你一開始便有志於編程,你必須意識到想要讀懂該書需要具備一定的能力。

CSDN:看得出來您目前對Kotlin非常關注,不過這是否意味著您不會鼓勵讀者讀《Java編程思想》這本書?

Bruce:儘管這本書仍非常有用,但確實有一些東西已經改變了。而且另一個問題是,當我在寫別的版本的書時,又會遇到篇幅的限制。所以,總有一些內容需要提取出來,再重新介紹一遍,因為我寫這本書的目的是僅作為電子版本。而且我確信,這本書在翻譯成另一個版本時,很可能轉換成兩卷,因為這本書實在太龐大了。我希望結束對Java的(寫作)工作,或許在未來做些小的修繕。但我確實不想再寫任何有關Java的文章了。

而目前像Python、Kotlin、Julia都是大家更為關注的語言。如Julia,其設計之初就是為了提高效率,並且可用於深度學習、大數據等領域。所以,我感興趣的是這些語言將如何用於解決實際問題。回到Java這個問題上,我仍會保留Java的相關資料,但確實不是我接下來感興趣的事情。

▌很多企業仍在使用Java

CSDN:我曾問過一位IT從業者,如果要他來選擇作為學習的第一種編程語言,會選擇哪個?他給出了Java的答案。而實際情況也是Java的學習者和從業者人數都佔有較高的比重。對此您如何看待?

Bruce:這並非不合理,畢竟如今有很多企業正在應用該語言。

不過這還是要基於實際情況。如果你創辦了一家企業,會苦惱於究竟是否需要使用一種更為現代的語言,因為實際情況是目前有很多人懂Java,如果選擇聘請了Java工程師將意味著你起步很容易。所以,選擇哪一門語言將取決於你想要解決的問題,以及你的實際情況。不過,作為我個人而言,我不太喜歡被舊的事物和錯誤所牽絆,我傾向於學習更多新的編程語言。

為什麼我會棄Java,選擇了Kotlin——Bruce Eckel

來源:JAXenter 2018年技術趨勢——編程語言Top榜單

CSDN:那學習不同的編程語言需要具備哪些不同的素質和技能呢?

Bruce:需要指出的是,僅學習一種編程語言的想法,是錯誤的。學習不同的語言會給你帶來不同的收穫。例如,Java無法教會你功能性編程的概念,特別是計算機需要多線程運行時。我們需要同時編程。相比現代語言,Java就顯得太不合時宜了。

對於初學者如何去測試他們的真實水平,我可能不會做太多的功課。

CSDN:您是否針對中國的讀者是否有做過一定的調研呢?

Bruce:事實上,確實沒有。但是當我寫《Java編程思想》時,其素材來源於學術研討會,所以,我開始不斷參加一些學術研討會,所以這算得上某種分析研究吧。

不過,寫書已經成為我的一項業務愛好,儘管上一本基於Java8的書耗費我兩年的精力,但我還是不會選擇將太多的時間花在對讀者的調研上。

▌對編程語言的理解

CSDN:在您的Keynote分享中曾提到,“當前編程面臨的三大挑戰是編程語言的設計和影響、併發性以及錯誤處理和報告”,如何理解這句話?

Bruce:由於我在不斷地學習新的不同的編程語言,所以以上的觀點更像是我的一個研究課題。我也並不認為,這必然就是編程中遇到最重要的問題,這僅是我個人的關注點。

CSDN:談及對中國大齡程序員,我會簡單將他們分成兩類,一類專注於業務,一類更為全面發展朝管理層發展,就您所瞭解到的,目前您會對他們所遇到的問題有哪些建議?

Bruce:我會看到目前絕大多數人都會“受困”於賺錢養家的問題中,這直接導致他們無法有更多的時間提高自己的技能。我對這樣的趨勢很不滿意。

CSDN:

編程語言的設計與發展已經有很多年的歷史,您是如何看待當前的環境?又將如何提高或訓練自己解決這些問題的能力?

Bruce:現如今編程語言的環境已經非常良好了,我們可以更好地創造和理解一種是否可以提高開發者生產力的語言。而且,創造一種新的編程語言也變得越來越容易,人們可以通過試驗判斷該語言的優劣性。正如我選擇Kotlin的原因之一在於,它的特性是經過驗證的,而其設計之初也是為了讓編程變得更快捷輕量且多產。

在今年8月舉辦的會議上,我們將作為一次嘗試,邀請不同級別的人士前來,他們也會被兩兩分組進行每場測試。水平高的人同樣會在向水平相對低的人教授時精進。我個人也十分期待這次測試的最終效果。因為,這也直接考驗著新書“Atomic Kotlin”中的素材準備。同樣,本書聯合作者Svetlana也將會從柏林前來講授。


分享到:


相關文章: