為什么Android應該轉為Go語言開發?
我能肯定大家最近都了解到了關于Oracle(甲骨文)正在向Google索要Java的專利費,因為他們認為Google開發的Android移動操作系統使用了他們的專利。這是非常荒謬的,Java的流行就是因為Java的大部分東西都是開源的。(這也不是Oracle第一次向別的公司索要專利費)。
在有很多更好的語言可以選擇的情況下,為什么Google仍然還要使用Java來開發Android呢?Google最終選擇Java的原因是因為Java非常流行,而且Java可以通過一定程度的定制完成底層的硬件操作(比如C),然而一些更高層的語言(比如JavaScript)并沒有這種功能。一旦Google選擇了這樣一個非常流行的語言,對于開發者來講,上手Android 開發也變得簡單的多。
最近一段時間Android是最流行的移動平臺,但是IOS的市場份額也非常接近。你知道IOS選擇的編程語言么?對是Objective-C,除了開發蘋果的產品之外,幾乎沒有人使用Objective-C。所以說蘋果選擇了一種不流行的,但是基本上是自己控制的語言平臺。
Google確實需要為Android選擇另外的編程語言,一個自己有更多的控制權限的語言,是否流行并不重要(比如IOS)。Google應該選擇Go,在golang.org上我們可以看到:
Go is an open source project developed by a team at Google and many contributors from the open source community. Go is distributed under a BSD-style license.
Go是一個新的并沒有多少用戶的語言,但是Obective-C同樣。Google是Go語言的奠基人,可以完全控制Go語言的發展。Go是在BSD協議下發布的開源語言,這意味著所有的開發者可以在任何地方使用它。另外,Go是一個操作系統級的語言。這里有一些關于Go的信息。
Go語言在現有的系統編程語言環境遇到困難時誕生了。程序設計變得如此的困難,而選擇語言就是其中很大的一個原因。開發者不得不選擇一個高效編譯、高效執行且開發簡單的語言,而這三種特性在現代的語言中并不會同時存在。程序開發者如果想選擇簡單勝過安全的語言,可能轉向動態類型的語言,例如Python、JavaScript而不是C++、Java。Go語言是一個試圖結合動態類型和靜態類型,編譯效率和安全性以及語言的易用性等眾多特性與一體的一種嘗試。他的另一個目標是支持現代的基于網絡的、基于多核的計算。最后,Go還是非常快的,他可以在單個計算機上僅僅花費幾秒時間構建一個龐大的應用程序。為了達到這些目標需要解決這些語言問題:靈活的類型系統、并發的垃圾回收、強制的依賴規范等等。這些東西不是舊的語言一些庫或者工具可以處理的,這也就是他被稱為新的編程語言的原因。
這里有我提到的三種語言的語法比較:
Go版本的HelloWorld:
- package main
- import "fmt"
- func main() {
- fmt.Println("Hello, World!")
- }
Java版本的HelloWorld:
- class ArbitraryClassName {
- public static void main(String[] args) {
- System.out.println("Hello World!");
- }
- }
Objective-C版本的HelloWorld
- #import <stdio.h>
- int main( int argc, const char *argv[] ) {
- printf("Hello World!");
- return 0;
- }
【編輯推薦】