开发漫谈:Go语言究竟能否超越Java?

根据近年来TIOBE最受欢迎语言排行榜,我们很容易会发现一个现象:Java语言长盛不衰,多次连续获得最受欢迎语言排行榜第一名,对于很多程序员而言,这似乎已经成为一个习惯,Java也顺理成章的成为很多编程人员学习的首选。但是,如今看来,这种定式或将会发生变化。

为什么这么说呢?从2016年10月的最受欢迎语言排行榜来看,尽管Java仍然位居第一名,但是Go语言以1.67%的速度成为TOP20中增长速度最快的语言,相比而言,Java和C语言则是分别下降了0.74%和6.35%。按照这个发展速度,Go语言登顶最受欢迎语言指日可待。


2016年10月TIOBE语言排行榜

那么是什么让Go语言的受欢迎度不断上升?Go语言的优势是什么?

1、背景。可能有人认为,我用的是编程语言,完全不依靠于语言背后的背景。那笔者只能说你太天真,一个语言的背景决定了他的发展方向和潜力,这就像一个人的家庭环境一定会对他的发展有影响。

Java是从1990年的雏形到1995年的正式发行已经过去20多年,期间Java的东家从SUN公司辩称甲骨文公司,后来还成为甲骨文与谷歌之间逐力的砝码。

相较而言,Go语言的背景更为清晰可靠,它是Google开发的,同时它也比Java年轻十四年(2009年发布)

2、简约。俗话说“大道至简”,Go语言就是这样一个极为简洁的编程语言。不同于Java,Go语言内嵌了关联数组(也称为哈希表(hashes)或字典(dictionaries)),就像字符串类型一样。

GO语言最初的定位就是互联网时代的C语言,所以,它的基础哲学也来源于C语言,而C语言的成功正是因为它的简单。而简洁的表达方式也会提升程序员的开发效率。

3、并发性好。几年前,要实现并发编程并不是一件容易的事儿,要想完成并发编程要同时了解线程、锁、Semaphore、CPU缓存方式等等,而多核处理器的普及,让编程语言更为注重并发性,而Go语言,可以在一个进程中执行有数以十万计的协程,依旧保持高性能。

4、应用场景符合未来需求。有人猜测,今年10月GO语言增长率如此之高的原因之一是:Docker的普及。如果真是如此,那么GO语言将持续如此高的增长率。除此之外,GO语言适用于服务器编程、
分布式系统、网络编程、内存数据库和云平台,而这些领域正是IT技术未来发展的重要方向。


2016年10月TIOBE编程语言排行榜

作者:佚名

来源:51CTO

时间: 2024-11-20 21:56:51

开发漫谈:Go语言究竟能否超越Java?的相关文章

【GitHub 2017年度报告】70万中国新用户,Python超越Java成第二受欢迎语言

GitHub 2017年年度报告发布:这一年,全球200多个国家的2400万开发者用337种编程语言创建了2530万活跃repos.其中,有70万来自中国的新用户加入,Python超越Java成为第二最受欢迎的语言,TensorFlow依然是最受欢迎的深度学习库.大批统计数字袭来,带你领略开发者以及AI技术发展非凡的一年. 数以百万的开发者在使用 GitHub 共享代码和构建业务.你在这里提交你的工作,对新技术进行修补,为开源项目做出贡献,等等.你已经证明,当充满好奇心的人们得以一起工作时,就会

Kotlin将超越Java成为Android开发的第一语言?

Realm 公司提供了一款备受移动开发者欢迎的实时数据库,在调查了大约十万名活跃的开发者后,Realm 发现在今年 5 月份谷歌 I/O 大会之前用 Java 编写的 Android 应用中有 20% 正在使用 Kotlin 进行重写. 根据调查数据,Realm 表示到 2018 年底,在 Android 开发领域,Kotlin 将超越 Java,成为开发 Android 应用的第一语言. 该公司于周二在官网上公布了其调查结果,它的惯例是每季度发布一次调查结果. 当然,这些数据不是特别适用于广泛

iOS开发系列--C语言之基础知识

当前移动开发的趋势已经势不可挡,这个系列希望浅谈一下个人对IOS开发的一些见解,这个IOS系列计划从几个角度去说IOS开发: C语言 OC基础 IOS开发(iphone/ipad) Swift 这么看下去还有大量的内容需要持续补充,但是今天我们从最基础的C语言开始,C语言部分我将分成几个章节去说,今天我们简单看一下C的一些基础知识,更高级的内容我将放到后面的文章中. 今天基础知识分为以下几点内容(注意:循环.条件语句在此不再赘述): Hello World 运行过程 数据类型 运算符 常用函数

开发漫谈:BAT都在用的Nginx到底是啥?

如果你混迹IT圈儿,你可能听说过,或见过Nginx,IT技术人员对她都会有所耳闻,云计算工程师因为要应对负载均衡问题,需要更深入的了解Nginx,而Nginx也是百度.阿里.腾讯等企业IT架构中的常客.今天,笔者就与大家一起来探究一下,Nginx究竟是什么. Nginx是什么? 根据维基百科的定义,Nginx(发音同engine x)是一个网页服务器,它能反向代理HTTP,HTTPS,SMTP,POP和IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存. 其初始版本发于12年前(2004年

一起谈.NET技术,WPF 基础到企业应用系列3——WPF开发漫谈

1.开篇前言      首先很高兴这个系列能得到大家的关注和支持,基于对大家负责和对自己负责的态度,我会不断努力写好这个系列,分享自己的微薄技术和经验,希望在帮助别人的同时也不断提升自己.由于这篇文章稍多,所以读者花的时间长了一些,也希望大家能够见谅,这个系列以后会每周发三到四篇左右(主要是写一篇差不多要花几晚上,感觉思维比较发散),除了讲WPF技术本身之外,也会讲一些项目具体开发,所以敬请关注.在前两次的文章中我们对WPF有了一个比较全面的认识,那么在本篇文章当中,除了讲一些理论知识外,我们会

如何开发一个多种语言版本的C#程序

程序 在C#中有多种使用资源文件的方法,能够很方便地开发全球通用的应用程序.本文通过一个简单的小例子,来讲解在C#中如何利用资源文件,快速开发一个多种语言版本的程序.本例中只有一个窗体,三个控件,能够根据用户的设置以中文或英文界面运行.开发环境是Windows 2000 Professional.Microsoft Visual Studio.NET 2002.具体开发步骤如下: 一.新建项目 启动Microsoft Visual Studio .NET,新建一个C#项目MyApp,本例工程存放

Web 开发与设计语言大盘点

在这个 Web 的时代,与 Web 相关的开发技术持续热门,从前端到后端,从标记语言到开发语言,各种技术交相辉映,沉沉浮浮,作为开发者,尤其是初级开发者,如何选择几门适合自己的开发 语言尤为重要.本文是对所有 Web 相关开发语言的一次盘点,并指出其中最有前途的开发与设计语言. 无穷尽的选择 在 Web 开发与设计领域,我们有太多的选择,HTML 还是 XHTML, RSS 还是 Atom, PHP 还是 ASP.NET, SVG 还是 VML, JavaScript 还是 VBS?这样的对决还

这段c语言代码换成java是什么呢?求教啊!?

问题描述 这段c语言代码换成java是什么呢?求教啊!? ?????????????????????????????????????????????????????????????????? 解决方案 package javaOJ; import java.util.Scanner; public class c { public static void main(String[] args) { String s; //char[] s = new char[1000]; Scanner sc

java开发问题(本人菜鸟,学JAVA半年)

问题描述 java开发问题(本人菜鸟,学JAVA半年) 问题很弱,就是如何开发出JAVA的软件. 因为学习JAVA一段时间了,对基础知识也有一定的掌握.但编写的小程序一直都只是在开发软件的JVM虚拟机上运行,我想知道怎么样才能让我的程序离开JVM. 就像<植物大战僵尸>,我在开发软件里有写出一个可以运行的,但如果要给其他人用的话我就不知道怎么做了. 求指教.感谢 啊! 解决方案 你必须自己打好一个jar包,和exe是一样的!点击就会运行!前提是用户必须安装jdk中的jre或者你把jre打进包中