Java開源生態(tài)體系的重要項(xiàng)目及其影響
Java的開源生態(tài)體系是健壯、健康的,有幾個項(xiàng)目在過去十年間被廣泛接受,并且對Java的世界產(chǎn)生了深遠(yuǎn)的影響。這些項(xiàng)目深入到軟件開發(fā)領(lǐng)域,有些甚至與用戶的日常生活息息相關(guān)。 Junit:可靠的單元測
Java的開源生態(tài)體系是健壯、健康的,有幾個項(xiàng)目在過去十年間被廣泛接受,并且對Java的世界產(chǎn)生了深遠(yuǎn)的影響。這些項(xiàng)目深入到軟件開發(fā)領(lǐng)域,有些甚至與用戶的日常生活息息相關(guān)。
Junit:可靠的單元測試框架
Junit是肯特·貝克(Kent Beck)和埃里希·伽馬(Erich Gamma)將貝克在Smalltalk中使用的單元測試移植到Java之后,成為主流測試驅(qū)動開發(fā)中最可靠的單元測試框架。隨后,單元測試在.NET、C、Python、Perl等多種流行的語言中也得到實(shí)現(xiàn)。
Eclipse:提高程序員的開發(fā)效率
在21世紀(jì)早期,當(dāng)Java及其API還在完善時,Eclipse集成開發(fā)環(huán)境提高了程序員的開發(fā)效率,并推動了Java生態(tài)體系的發(fā)展。作為第一個使用SWT UI工具包的大型項(xiàng)目,Eclipse給Sun公司的Swing帶來了強(qiáng)有力的競爭,同時也展示了Java程序可以提供豐富的原生接口?,F(xiàn)在的Eclipse已經(jīng)朝著成為通用IDE的目標(biāo)邁進(jìn),并提供了豐富的基礎(chǔ)供平臺供應(yīng)商集成。
Spring:提高Java開發(fā)者的效率
Spring框架在掌握產(chǎn)品特性和簡單性方面扮演著重要角色,提供了一組服務(wù),包括數(shù)據(jù)讀取、事務(wù)管理等常用應(yīng)用程序功能。作為Sun公司Java Beans系統(tǒng)的競爭對手,Spring為Java應(yīng)用程序提供了另一條可選的簡單路線,并塑造了健康的競爭氛圍。
Solr:實(shí)用的搜索引擎解決方案
Solr服務(wù)器及其封裝的Lucene搜索引擎多年來為Web和企業(yè)應(yīng)用程序的搜索功能提供了簡單而實(shí)用的解決方案。Solr的特長在于通過HTTP快速訪問Lucene搜索庫,這使得它被廣泛應(yīng)用于不僅限于Java的其他語言實(shí)現(xiàn)的系統(tǒng)。相較于其他項(xiàng)目,Solr提供了快速的搜索功能,滿足了現(xiàn)代Web應(yīng)用程序的需求。
Hudson and Jenkins:持續(xù)集成工具
Hudson原本被稱為Jenkins,是Java開發(fā)工具設(shè)置中關(guān)鍵的一部分。Jenkins為軟件項(xiàng)目提供自動構(gòu)建和測試,持續(xù)的JUnit步驟使得在Java平臺上的開發(fā)變得輕快便捷。盡管Hudson和Jenkins現(xiàn)在已經(jīng)整合在一起,但他們依然重視Kohsuke Kawaguchi的工作,致力于創(chuàng)造一個世界級的持續(xù)集成平臺,并優(yōu)化Java開發(fā)的質(zhì)量。
Hadoop:驅(qū)動大數(shù)據(jù)系統(tǒng)的源動力
Hadoop是用Java實(shí)現(xiàn)的著名MapReduce模型,是大多數(shù)"大數(shù)據(jù)"系統(tǒng)的核心。由于降低了從大數(shù)據(jù)中提取有價(jià)值數(shù)據(jù)的成本,Hadoop得到了廣泛的應(yīng)用。許多大公司如Facebook、Yahoo使用Hadoop來處理個人和廣告業(yè)務(wù)。Hadoop和前文提及的Lucene都是Doug Cutting的勞動成果。Hadoop在軟件層面上的錯誤處理使得大規(guī)模分布式計(jì)算成為可能。
Android:流行的移動操作系統(tǒng)
關(guān)于Java屬于SUN還是Oracle的爭論從未停止,但Google選擇Java作為其非常流行的Android移動操作系統(tǒng)的開發(fā)語言,重新引起了整個開發(fā)者社區(qū)的關(guān)注。由于需要將JVM字節(jié)碼轉(zhuǎn)換成Dalvik字節(jié)碼,Android程序在執(zhí)行時會多一步操作。但Android的普及程度使得Java仍然在移動領(lǐng)域扮演著重要的角色。
總結(jié)
Java的開源生態(tài)體系中的重要項(xiàng)目如Junit、Eclipse、Spring、Solr、Hudson/Jenkins、Hadoop和Android在不同領(lǐng)域都發(fā)揮了重要作用,提升了Java開發(fā)者的效率,推動了軟件開發(fā)的進(jìn)步,并且在現(xiàn)代技術(shù)應(yīng)用中產(chǎn)生了深遠(yuǎn)影響。