为什么Android应该转为Go语言开发?

移动开发 Android
我能肯定大家最近都了解到了关于Oracle(甲骨文)正在向Google索要Java的专利费,因为他们认为Google开发的Android移动操作系统使用了他们的专利。这是非常荒谬的,Java的流行就是因为Java的大部分东西都是开源的。(这也不是Oracle第一次向别的公司索要专利费)。

我能肯定大家最近都了解到了关于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:

  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. 微软开发新应用把 Android app “移植”到 WP
  2. 通过Titanium将Metro UI移植到iOS/Android上
  3. Titanium中Android模块开发:@Kroll注解详解
责任编辑:冰凝儿 来源: OSCHINA.NET
相关推荐

2022-01-17 16:09:43

Go语言开发

2020-04-07 16:12:56

Go编程语言开发

2024-01-02 10:38:22

Go语言数组

2016-09-27 21:25:08

Go语言Ken Thompso

2018-05-02 12:34:48

2023-03-06 08:01:25

structGo语言

2022-01-10 23:54:56

GoMap并发

2012-11-13 10:27:45

PythonGo编程语言

2023-11-20 22:26:51

Go开发

2012-08-20 09:16:15

Go语言

2021-10-11 13:25:42

语言Go类型

2016-01-08 10:17:10

Android开发

2017-09-08 08:35:16

Android代码API设计

2024-01-01 08:10:40

Go语言map

2024-01-15 00:42:55

Go语言应用程序

2024-01-05 08:45:35

Go语言map

2018-07-09 14:05:16

编程语言PythonPipenv

2020-02-27 21:03:30

调度器架构效率

2023-12-27 08:12:04

切片Go语言

2017-11-14 11:12:50

Go语言编译器
点赞
收藏

51CTO技术栈公众号