18 年資深 Java 開發(fā)閑大賦:不再保守的 Java 更可愛

?????? 2006 年偷溺,Java 6 面世;2011 年钱贯,Java 7 發(fā)布挫掏。而后,Oracle 在三年一個版本的頻率中推出了 Java 8 和 Java 9 秩命,并在 Java 9 發(fā)布之際宣布提速 Java 版本迭代尉共,調(diào)整為每半年發(fā)布一個新版本。此舉被許多開發(fā)者評價為這門一貫保守的編程語言的“自我放飛”弃锐,隨之而來的除了對更多新特性的期待袄友,也包括一些負面議論。

??????? Java 9 發(fā)布半年后拿愧,首個采用新發(fā)版周期的 Java 10 于 2018 年 3 月 20 日(當?shù)貢r間)正式發(fā)布杠河。相比于主打“模塊化”且廣受好評的 Java 9 ,Java 10 主推的“局部變量類型推斷”似乎從公布之初就不被特別看好浇辜,使用 var 也引起了不少爭議券敌。本期開源訪談,我們邀請到了資深 Java 開發(fā)者柳洋,Beetl待诅、BeetlSQL 開源項目的作者李家智(@閑大賦),和我們分享他對 Java 的一些見解熊镣。

?????????????????????????????????????????????????????????????????????????????????????????????—— 嘉賓簡介 ——

?????? ?李家智卑雁,從事 Java 和 Java EE 開發(fā)已有 18 年,目前就職于東方金科绪囱,高級架構(gòu)師测蹲。參與集團金融項目建設(shè),參與公司技術(shù)研發(fā)和創(chuàng)新鬼吵。在開源中國的昵稱是@閑大賦扣甲,社區(qū)資深用戶,在碼云平臺上托管了多個優(yōu)秀的開源項目齿椅,包括國內(nèi)流行模板語言 Beetl 琉挖,數(shù)據(jù)庫 ORM 工具 BeetlSQL 等。最近為電子工業(yè)出版社寫了一本《Spring Boot 2 精髓》涣脚,以及依據(jù)這本書完成的開發(fā)腳手架 SpringBoot-Plus 示辈。其技術(shù)座右銘是:“沒有用一個對象解決不了的難題,如果有遣蚀,就用倆個對象”矾麻。

????????????????????????????????????????????????????????????????????????????????????????? ? —— 訪談?wù)?——

Java 9 實現(xiàn)模塊化是否有對 Java 開發(fā)者帶來實質(zhì)性的影響纱耻?

?????? Java9 以前通過 Package,Class 來組織 Java 代碼射富,Java9 增加了 Modular 的方式組織代碼膝迎。除了 Java 本身分為多個模塊,開源工具也會按照這種方式組織開源產(chǎn)品胰耗。Java 模塊會影響項目的開發(fā)方式和部署方式限次,我認為會給 Java 開發(fā)者帶來影響。這是 Java 開發(fā)者必須掌握的技能柴灯。 另外卖漫,未來也許會出現(xiàn)關(guān)于類似 mvnrepository 關(guān)于模塊的索引網(wǎng)站。

?Java 10 的局部變量類型推斷褒貶不一赠群,使用 var 也引起了許多爭議羊始,對此如何評價?

????? 我對此有保守的意見: 代碼一次編寫查描,多次閱讀突委,var 一定程度會降低代碼可閱讀性。程序員需要一定時間培養(yǎng)閱讀有 var 代碼習慣 ,以前看到等號左右倆邊都能清楚變量類型冬三,現(xiàn)在還要往右邊看匀油。甚至還需要進入方法的定義才能看變量類型。 不過既然已經(jīng)推出來勾笆,那就爭取能使用敌蚜,畢竟寫代碼就快多了。希望個以后有 IDE 插件把代碼里的 var 在線顯示成 Java 類型窝爪,或者相反弛车。

除了類型推斷之外,JDK 10 的哪些新特性您比較滿意或認為是比較實用的蒲每?

?????? 有倆個我比較喜歡纷跛,一是 JEP 316 ,在可選內(nèi)存設(shè)備上分配堆內(nèi)存邀杏,可以使得 Java 能在大數(shù)據(jù)或者內(nèi)存數(shù)據(jù)庫方面有更出色的表現(xiàn)贫奠。另外就是實用 API 不斷增多,比如輸入流 copy 到輸出流淮阐、反射、JMX 增強刁品,這些對于很多開源框架都有用泣特。 Oracle 提速 Java 迭代周期,六個月一次的版本發(fā)布頻率讓很多人抱怨跟不上挑随,對此說說您的觀點吧状您。 很多開源產(chǎn)品都是這個節(jié)奏,如果以開放、開源角度看待 Oracle JDK 膏孟,這是正常節(jié)奏眯分。在這樣的發(fā)布頻率下,Java 的包容能力更強柒桑,會有更多的新理念弊决、新框架、新的 API 引入進來魁淳,我覺得開發(fā)者更應(yīng)該緊跟 Java 新功能飘诗,否則就落后特別多。 對我來說界逛,不會抱怨跟不上昆稿,唯一的抱怨也許是公司產(chǎn)品因為歷史原因還暫時用不上 Java 新版本特性,沒有機會實踐新特性息拜。

Oracle 似乎有意在逐漸減少 OpenJDK 和 Oracle JDK 之間的技術(shù)差異溉潭,這對開發(fā)者使用選擇上是否會有影響?

????? Oracle 是 OpenJDK 的領(lǐng)導者也是主要貢獻者少欺。就我個人經(jīng)驗來說喳瓣,我一直在跟隨廠商提供的中間件,也一直使用官方提供的 JDK 狈茉,并沒有選擇上的困難夫椭。我有朋友做性能監(jiān)控產(chǎn)品,倒是經(jīng)常研究 OpenJDK 源碼氯庆。 Java 之前一直被認為設(shè)計思想太過保守蹭秋,但近期模塊化、快速迭代堤撵、減輕內(nèi)部模塊耦合(分離 JavaFX)等動作也被看作是 Oracle 思想上的轉(zhuǎn)變仁讨。

從個人角度,希望 Java 能有哪些方面的創(chuàng)新或跟進实昨?這門“保守”的語言如果不再保守洞豁,您認為是好是壞?

?????? 我從事 Java 和 Java EE 開發(fā)有 18 年荒给,一直得益于 Java 的保守丈挟。 穩(wěn)定技術(shù)棧,向下兼容志电,開發(fā)人員能從 Java 的保守獲得收益曙咽。別忘記 Python3 和 2 的不兼容造成的問題,還有一些流行開源不兼容造成的問題挑辆。比如 Spring Boo 2 例朱,就有不少特性不兼容 Spring Boot 1 孝情。 現(xiàn)在創(chuàng)新在井噴,審美也在不斷變化洒嗤,Java 必然需要跟進這些創(chuàng)新箫荡,比如 JSON 和 YAML 應(yīng)該進入標準類庫。我想著如果當年 Java 迭代也這么快渔隶,也許現(xiàn)在的 JDK Logging 就不那么雞肋了羔挡,因此我認為 Java 不再保守,是一件非常好的事情派撕。

?最后婉弹,和我們分享一下您的個人項目的 Java 版本跟進計劃及后續(xù)方向。

?????? Beetl 內(nèi)部也有個類型推測功能终吼,在運行模板渲染后镀赌,會嘗試對模板里的變量進行類型推測,從而優(yōu)化模板渲染际跪,未來打算進一步優(yōu)化一下引擎商佛,利用已經(jīng)實現(xiàn)的類型推測來進來提高運行性能。另外姆打,如果采用 Java9 模塊化良姆,Beetl 體積會更小。分離出核心引擎模塊幔戏,和 Web 模塊玛追,以及擴展模塊。使用者會按照自己需求使用不同模塊闲延。

BeetlSQL 現(xiàn)在使用用戶也非常多痊剖,它簡單易學,通過內(nèi)置 API 和 Query 類支持少寫 SQL 的理念垒玲,同時通過 Mapper 類和對應(yīng)的 Markdown 文件來管理復雜 SQL 陆馁。未來打算增強 ORM 功能,這一塊相對于 Hibernate 合愈,還是有很大差距叮贩。

?SpringBoot-Plus 是基于 Spring Boot 2 的開發(fā)腳手架,剛開源一月佛析,需要進一步完善代碼生成功能還有文檔管理功能益老,對了,還打算集成紅薯的 J2Cache 寸莫。J2Cache 是個兩級緩存框架捺萌,它是真正的高性能緩存框架。

原文鏈接:https://www.oschina.net/question/2896879_2276456

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末储狭,一起剝皮案震驚了整個濱河市互婿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辽狈,老刑警劉巖慈参,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異刮萌,居然都是意外死亡驮配,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進店門着茸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來壮锻,“玉大人,你說我怎么就攤上這事涮阔〔滦澹” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵敬特,是天一觀的道長掰邢。 經(jīng)常有香客問我,道長伟阔,這世上最難降的妖魔是什么辣之? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮皱炉,結(jié)果婚禮上怀估,老公的妹妹穿的比我還像新娘。我一直安慰自己合搅,他們只是感情好多搀,可當我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著历筝,像睡著了一般酗昼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上梳猪,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天麻削,我揣著相機與錄音,去河邊找鬼春弥。 笑死呛哟,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的匿沛。 我是一名探鬼主播扫责,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼逃呼!你這毒婦竟也來了鳖孤?” 一聲冷哼從身側(cè)響起者娱,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎苏揣,沒想到半個月后黄鳍,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡平匈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年框沟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片增炭。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡忍燥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出隙姿,到底是詐尸還是另有隱情梅垄,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布输玷,位于F島的核電站哎甲,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏饲嗽。R本人自食惡果不足惜炭玫,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望貌虾。 院中可真熱鬧吞加,春花似錦、人聲如沸尽狠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽袄膏。三九已至践图,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沉馆,已是汗流浹背码党。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留斥黑,地道東北人揖盘。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像锌奴,于是被迫代替她去往敵國和親兽狭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,088評論 25 707
  • 從今天開始讀《深入理解 Java 虛擬機》一書,并開設(shè)了同名專題 深入理解 Java 虛擬機箕慧。計劃在 2 周內(nèi)將全...
    SawyerZh閱讀 10,247評論 17 215
  • 《感謝自己的不完美》---武志紅 聽過很多說接受你自己服球,可是你知道你要接受的是什么嗎?如何才是接受了自己呢颠焦。 你得...
    Yolanda_guai閱讀 532評論 3 0
  • 叢叢的汗毛間有沒有另一個世界有咨,也有另一個我在傷感在難過,它看不懂我的難過蒸健,我也看不到它的悲傷
    太陽當空照1閱讀 187評論 1 0
  • 我內(nèi)心深處時時刻刻只選擇體驗健康 、平靜婉商、喜悅似忧、年輕、活力丈秩、富足……看到內(nèi)心年輕充滿活力擁有人格魅力的自己……
    美好zzz閱讀 199評論 0 1