Android為什么選擇了Java
2007年Android 剛剛出生的時候, 看到開發(fā)語言是Java , 我很高興, 因為想在手機(jī)端編程的話不用去學(xué)Object-C這個看起來怪怪的語言了, 但另一方面我心里也是打了個大大的問號 :因為在很多人眼里, Java 是很慢的, 用Java 來開發(fā)手機(jī)端的應(yīng)用, 尤其是游戲, 到底行不行?
長春軟件開發(fā),事實證明,用Java來開發(fā)應(yīng)用完全沒有問題, Android 這八九年的發(fā)展超出了所有的人預(yù)料, 在智能手機(jī)端的占有率高達(dá)80%。
一個好玩的現(xiàn)象是:這些年大家似乎并不太關(guān)注應(yīng)用程序的性能, 相反關(guān)注的是手機(jī)的性能, 小米倡導(dǎo)的跑分文化流行一時, 大家拼命的堆砌硬件, CPU從雙核,4核 到8核 , RAM 從1G 到2G,3G, 4G, 6G... , ROM從4G 到8G,16G,32G,64G, 甚至128G。
Google 在剛剛發(fā)布Android的時候絕對想不到現(xiàn)在的手機(jī)性能會過剩成這個樣子, 那他們當(dāng)時為什么選擇了Java 作為應(yīng)用開發(fā)語言呢?
想象一下,如果你是當(dāng)時的負(fù)責(zé)人, 需要作出決斷, 你會怎么選擇?
首先看看C語言, 簡單靈活, 貼近硬件, 性能極佳, 指針異常靈活, 是開發(fā)系統(tǒng)軟件的不二之選, 但是Android要討好的是無數(shù)的應(yīng)用程序開發(fā)者, 如果讓他們用C語言去寫界面程序, 非累得吐血不可。
那C++是不是好一點? 從C發(fā)展而來,面向?qū)ο螅?性能好,類庫也不少,在游戲領(lǐng)域也取得了成功。
拜托,這個語言復(fù)雜到了令人發(fā)指的地步, 也沒有擺脫C的指針和內(nèi)存管理的陷阱, 就別去折騰程序員了。
另外可移植性也是非常重要的考慮因素, 相比電腦,手機(jī)平臺更加多樣化,如果用C或者C++ , 把移植的工作交給程序員做, 一定會被罵死。
長春軟件開發(fā),C# 怎么樣? 看起來不錯, 但這是微軟平臺的東西, 而微軟是Google的死對頭, 再說了Android 肯定是要開源的, 就不用考慮C#了吧。
Lisp ? 強(qiáng)大的令人發(fā)指, 學(xué)習(xí)曲線之陡峭也令人發(fā)指, 不改變編程思維是學(xué)不好的, 能用Lisp編程的人都是黑客, 為了吸引廣大屌絲, 果斷放棄!
Smalltalk ? 估計會的人也不多了。
有人說Javascript , 這們只是運(yùn)行在瀏覽器中的語言, 而我們要的是能開發(fā)原生(Native)應(yīng)用的語言!
Ruby 呢? 簡潔優(yōu)雅, 別的語言都是對機(jī)器友好, 要充分的壓榨機(jī)器的性能, Ruby 可是號稱對程序員最友好的語言啊。
其實Ruby 各個方面都很好, 除了致命的一個因素: 太慢 ! 這一點就把Ruby 排除在外了。
剩下的知名度較高的高級語言也就剩下Python 和 Java 了。
Python 性能還行, 用的人不少, 也能跨平臺。
長春軟件開發(fā),Java 語言非常成熟,性能也可以(當(dāng)然得優(yōu)化一下), 用的人超級多(全球號稱有1000萬) , 能把1/10的人拉進(jìn)來做Android開發(fā)那就非常不得了, 社區(qū)更加成熟, 跨平臺更是java 的招牌。
所以, 還是選擇Java 吧。