自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么Android應(yīng)該轉(zhuǎn)為Go語(yǔ)言開(kāi)發(fā)?

移動(dòng)開(kāi)發(fā) Android
我能肯定大家最近都了解到了關(guān)于Oracle(甲骨文)正在向Google索要Java的專(zhuān)利費(fèi),因?yàn)樗麄冋J(rèn)為Google開(kāi)發(fā)的Android移動(dòng)操作系統(tǒng)使用了他們的專(zhuān)利。這是非?;闹嚨模琂ava的流行就是因?yàn)镴ava的大部分東西都是開(kāi)源的。(這也不是Oracle第一次向別的公司索要專(zhuān)利費(fèi))。

我能肯定大家最近都了解到了關(guān)于Oracle(甲骨文)正在向Google索要Java的專(zhuān)利費(fèi),因?yàn)樗麄冋J(rèn)為Google開(kāi)發(fā)的Android移動(dòng)操作系統(tǒng)使用了他們的專(zhuān)利。這是非常荒謬的,Java的流行就是因?yàn)镴ava的大部分東西都是開(kāi)源的。(這也不是Oracle第一次向別的公司索要專(zhuān)利費(fèi))。

在有很多更好的語(yǔ)言可以選擇的情況下,為什么Google仍然還要使用Java來(lái)開(kāi)發(fā)Android呢?Google最終選擇Java的原因是因?yàn)镴ava非常流行,而且Java可以通過(guò)一定程度的定制完成底層的硬件操作(比如C),然而一些更高層的語(yǔ)言(比如JavaScript)并沒(méi)有這種功能。一旦Google選擇了這樣一個(gè)非常流行的語(yǔ)言,對(duì)于開(kāi)發(fā)者來(lái)講,上手Android 開(kāi)發(fā)也變得簡(jiǎn)單的多。

最近一段時(shí)間Android是最流行的移動(dòng)平臺(tái),但是IOS的市場(chǎng)份額也非常接近。你知道IOS選擇的編程語(yǔ)言么?對(duì)是Objective-C,除了開(kāi)發(fā)蘋(píng)果的產(chǎn)品之外,幾乎沒(méi)有人使用Objective-C。所以說(shuō)蘋(píng)果選擇了一種不流行的,但是基本上是自己控制的語(yǔ)言平臺(tái)。

Google確實(shí)需要為Android選擇另外的編程語(yǔ)言,一個(gè)自己有更多的控制權(quán)限的語(yǔ)言,是否流行并不重要(比如IOS)。Google應(yīng)該選擇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是一個(gè)新的并沒(méi)有多少用戶(hù)的語(yǔ)言,但是Obective-C同樣。Google是Go語(yǔ)言的奠基人,可以完全控制Go語(yǔ)言的發(fā)展。Go是在BSD協(xié)議下發(fā)布的開(kāi)源語(yǔ)言,這意味著所有的開(kāi)發(fā)者可以在任何地方使用它。另外,Go是一個(gè)操作系統(tǒng)級(jí)的語(yǔ)言。這里有一些關(guān)于Go的信息。

Go語(yǔ)言在現(xiàn)有的系統(tǒng)編程語(yǔ)言環(huán)境遇到困難時(shí)誕生了。程序設(shè)計(jì)變得如此的困難,而選擇語(yǔ)言就是其中很大的一個(gè)原因。開(kāi)發(fā)者不得不選擇一個(gè)高效編譯、高效執(zhí)行且開(kāi)發(fā)簡(jiǎn)單的語(yǔ)言,而這三種特性在現(xiàn)代的語(yǔ)言中并不會(huì)同時(shí)存在。程序開(kāi)發(fā)者如果想選擇簡(jiǎn)單勝過(guò)安全的語(yǔ)言,可能轉(zhuǎn)向動(dòng)態(tài)類(lèi)型的語(yǔ)言,例如Python、JavaScript而不是C++、Java。Go語(yǔ)言是一個(gè)試圖結(jié)合動(dòng)態(tài)類(lèi)型和靜態(tài)類(lèi)型,編譯效率和安全性以及語(yǔ)言的易用性等眾多特性與一體的一種嘗試。他的另一個(gè)目標(biāo)是支持現(xiàn)代的基于網(wǎng)絡(luò)的、基于多核的計(jì)算。最后,Go還是非??斓模梢栽趩蝹€(gè)計(jì)算機(jī)上僅僅花費(fèi)幾秒時(shí)間構(gòu)建一個(gè)龐大的應(yīng)用程序。為了達(dá)到這些目標(biāo)需要解決這些語(yǔ)言問(wèn)題:靈活的類(lèi)型系統(tǒng)、并發(fā)的垃圾回收、強(qiáng)制的依賴(lài)規(guī)范等等。這些東西不是舊的語(yǔ)言一些庫(kù)或者工具可以處理的,這也就是他被稱(chēng)為新的編程語(yǔ)言的原因。

這里有我提到的三種語(yǔ)言的語(yǔ)法比較:

Go版本的HelloWorld:

  1. package main  
  2. import "fmt"  
  3. func main() {  
  4.     fmt.Println("Hello, World!")  

Java版本的HelloWorld:

  1. class ArbitraryClassName {  
  2.     public static void main(String[] args) {  
  3.         System.out.println("Hello World!");  
  4.     }  

Objective-C版本的HelloWorld

  1. #import <stdio.h> 
  2. int main( int argc, const char *argv[] ) {  
  3.     printf("Hello World!");  
  4.     return 0;  

【編輯推薦】

  1. 微軟開(kāi)發(fā)新應(yīng)用把 Android app “移植”到 WP
  2. 通過(guò)Titanium將Metro UI移植到iOS/Android上
  3. Titanium中Android模塊開(kāi)發(fā):@Kroll注解詳解
責(zé)任編輯:冰凝兒 來(lái)源: OSCHINA.NET
相關(guān)推薦

2022-01-17 16:09:43

Go語(yǔ)言開(kāi)發(fā)

2020-04-07 16:12:56

Go編程語(yǔ)言開(kāi)發(fā)

2018-05-02 12:34:48

2016-09-27 21:25:08

Go語(yǔ)言Ken Thompso

2024-01-02 10:38:22

Go語(yǔ)言數(shù)組

2023-03-06 08:01:25

structGo語(yǔ)言

2023-11-20 22:26:51

Go開(kāi)發(fā)

2012-11-13 10:27:45

PythonGo編程語(yǔ)言

2022-01-10 23:54:56

GoMap并發(fā)

2024-01-15 00:42:55

Go語(yǔ)言應(yīng)用程序

2024-01-01 08:10:40

Go語(yǔ)言map

2024-01-05 08:45:35

Go語(yǔ)言map

2021-10-11 13:25:42

語(yǔ)言Go類(lèi)型

2012-08-20 09:16:15

Go語(yǔ)言

2018-07-09 14:05:16

編程語(yǔ)言PythonPipenv

2016-01-08 10:17:10

Android開(kāi)發(fā)

2017-09-08 08:35:16

Android代碼API設(shè)計(jì)

2020-02-27 21:03:30

調(diào)度器架構(gòu)效率

2022-05-06 08:00:00

APIBallerina編程語(yǔ)言

2014-12-08 09:47:48

Go
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)