当前位置: 首页 > news >正文

2017年高热度编程语言简介

世上语言千千万,我却独爱这一种!”这句话用来形容程序员和编程语言之间的爱恨情仇实在是再精准不过了。根据GitHub 2016年的开源报告,其上所有开源项目共包含了316种编程语言,这是一个什么概念呢?举个例子来说,世界上共有226个国家和地区,也就是说编程语言的数量比国家数量还多。

想要全部精通这些语言显然是个不可能事件,所以编程语言的选择就有了先后之分。编程语言的好坏之争娱乐性高于知识性,所以本文不以好坏论高下,而是以热度作为参考条件,盘点2017年哪些编程语言最受欢迎。

2017年高热度编程语言简介2017年高热度编程语言简介

▲蓝色为Java,红色为Go,黄色为Swift,绿色为Python,紫色为Kotlin

2017年高热度编程语言简介2017年高热度编程语言简介

▲蓝色为PHP,红色为Ruby,黄色为C++,绿色为C#

上图是今年话题度比较高的编程语言在Google Trends上的热度情况,我们从中选取Java、Python、R 、Go以及Kotlin语言来进行分析。

Java:编程语言中的“小浣熊”

小浣熊干脆面有一句广告词深入人心“一直被模仿,从未被超越!”如果套用在Java身上,那就是“一直被唱衰,从未被打倒。”Java应该是被死亡次数最多的编程语言,每月TIOBE发布新的榜单,Java都要被拉出来鞭尸,其它编程语言有了哪些新改进,Java也要出来以死垫背陪跑。

Java 是企业拥戴的头号编程语言,它有三大杀手锏:静态类型、更强大的工具,以及具备广度和深度的库的生态系统。任何语言想在这三个领域完全取代Java都不是短时间内能够完成的。

今年,关于Java热度最高的词语应该就是Java 9的发布,Java 9又双叒叕延期的新闻一直传到了近些日子,发布时间才确定下来是9月21日。据悉,Java 9将会有9大重要改进:新模块系统、支持HTTP/2.0、改进的Javadoc、Stream改进、使用新的工厂方法更容易地初始化Collections、接口中的私有方法、语言和语法的改进、增强处理API、增强处理API。

Python:人生苦短,我用Python

IEEE发布了2017年编程语言排行榜,Python位居榜首。从去年开始,Python就借着人工智能的东风,热度一路船高水涨。Python可以说是一门比较功利的语言,它不复杂,读和写都非常易于使用,因此就有了“人生苦短,我用Python”这句调侃。

当然,Python的流行并不仅限于易于使用,它背后还站着一个真正的大佬——Google。自2006年起,谷歌就在多个平台和应用中大量使用Python。除此之外,Python社区的活跃度合支持度也非常高,同时,Python在数据科学中的流行度仅次于R语言。

关于版本问题,Python的功能发布周期为18个月。目前Python基金会正在积极推行Python 3+,据悉2020年将不再支持Python 2.7。另外,Python 4也正在筹备中,据其核心开发人员Nick Coghlan透露,4.0中没有任何深刻的变化或大的向后兼容性的破坏。

R:你们对R语言的力量一无所知

虽然,R语言在TIOBE排行榜中一直都在十几的位置徘徊,但是在IEEE 发布 2017 年编程语言排行榜中却位居第六。这说明R语言在编程语言中扮演的角色是“隐形富豪”,很多人对于R语言的力量一无所知。

在上文中,我们也提到了R语言在数据科学中非常流行,那么R语言可以支持哪些量级的数据集呢?talkR会议上R语言熟手表示百万条记录的数据集可以轻松地用标准R进行处理;百万到十亿条记录的数据集稍微努力一下也可以使用R来处理;十亿条以上的数据集就需要MapReduce算法,而这些算法可以在R中设计,并用Hadoop等连接器进行处理。

当然R语言的力量也不仅止于此,大数据的爆红催生了物联网的发展,很多项目都依赖多个数据源,而R语言恰好支持多数据源加载数据;R语言的学习曲线平缓,只需了解基本编码原则就可以通过内置库来处理大数据;R语言与其他主流的编程语言兼容;就连托管公司也为R语言提供了解决方案。

GO:火得一路拉风带闪电

TIOBE将2016年年度编程语言的桂冠颁给了Go语言,这一年中Go 语言获得了 2.16% 的用户增长,大比分领先其它编程语言,进入2017年,Go语言热度依然不减,整体发展趋势还是向上的。

今年已经是Go语言1.0版本的第五个年头了,在2月份发布了1.8版本之后,Go语言团队就开始慢慢向2.0版本迈进了。据悉,Go 2.0版本首先要保证兼容现有的Go 1.0源代码,其次是要找到方法来解决Go语言的扩展问题。

据Go语言项目和团队的技术主管 Russ Cox在Gophercon上透露,目前全球至少有50万Go开发者,Go源文件和Go代码至少有十亿行。今日头条是国内比较有名的在使用Go的厂商,其后端服务超过80%的流量是跑在 Go 构建的服务上,微服务数量超过100个,高峰 QPS 超过700万,日处理请求量超过3000亿。

Kotlin:一场“任命”引发的爆红

如果要评今年热度蹿升最快的编程语言,Kotlin一定榜上有名。2017年5月,谷歌在IO大会上宣布Kotlin语言将取代JAVA作为安卓开发的一级编程语言,然后在TIOBE的六月份榜单中Kotlin就冲进了前50,位列43位,真可谓是一场“任命”引发的爆红。

近日,Kotlin 1.1.4 发布,其更新内容如下:修复 IDEA 插件中的主要性能回归;添加对包缺省的可控性注解的支持;改进对 Java 9 的支持;添加一个用于 JavaScript 死代码消除的工具,提高对 JS 调试和 JS 单元测试支持的源映射支持;生成更高效的字节码;为 IntelliJ IDEA 插件添加新功能;Android Extensions 插件增强功能。

针对于Java与Kotlin之争,绿鸟集成技术公司CEO Thorsten Heller表示未来Java也许会死,也许不会死,但是毫无疑问Java会受到挑战。而这个挑战者我认为正是Kotlin,它的简单性、精益语法、函数式方法都是其流行度的加码元素。

更多linux咨询请查看www.linuxprobe.com

相关文章:

2017年高热度编程语言简介

世上语言千千万,我却独爱这一种!”这句话用来形容程序员和编程语言之间的爱恨情仇实在是再精准不过了。根据GitHub 2016年的开源报告,其上所有开源项目共包含了316种编程语言,这是一个什么概念呢?举个例子来说,世界上共有226个国…...

python爬虫入门(一)web基础

HTTP基本要点 HTTP请求,由客户端向服务端发出,可以分为 4 部分内容:请求方法(Request Method)、请求的网址(Request URL)、请求头(Request Headers)、请求体&#xff08…...

利用TreeMap来解决P3029 [USACO11NOV] Cow Lineup S

P3029 [USACO11NOV] Cow Lineup S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 好了,我们首先要统计奶牛的种类数量n,好与接下来我们记录一个范围内的奶牛的数量作比较,一旦我们统计范围内的奶牛的数量m达到我们刚开始记录的奶牛的数量n我…...

zzy-project-cli,提供多个框架的脚手架

npm地址 install npm install zzy-project-cli -g做什么? 将多个可选的框架提供给使用者选择,选中后自动下载对应模板,快捷使用。 使用 step1 zzy-cli create [项目名称]step2 获取模板之后选取任一进行下载 下载完成之后即可使用 模…...

C++类和对象中(构造函数,析构函数,拷贝构造函数)详解

C类和对象中[构造函数,析构函数,拷贝构造函数]详解 一.前言1.类的6个默认成员函数 二.构造函数1.构造函数的引出2.无参构造函数3.缺省参数在构造函数中的应用4.编译器实现的默认构造函数5.广义的默认构造函数6.默认构造函数的形成规则 三.析构函数1.析构函数的语法2.编译器实现…...

智能矩阵系统解决的问题?

智能矩阵系统可以解决的问题多种多样,它主要通过人工智能技术应用于矩阵系统,解决一些传统方法难以处理的问题。 以下是一些常见的应用场景: 1. 数据管理:智能矩阵系统可以有效地管理大量的数据,包括数据的存储、检索…...

计算机网络——计算机网络体系结构(3/4)-计算机网络体系结构分层思想举例

目录 发送请求报文 应用层构建HTTP请求报文 运输层添加TCP首部 网络层添加IP首部 数据链路层形成帧 物理层转化为比特流 路由器处理 服务器处理 发回响应报文 计算机网络体系结构分层思想举例 假设网络拓扑如下所示,主机属于网络N1,Web服务器属…...

计算机网络,网络(OSI)七层模型,三次握手四次挥手,get与post请求区别,网络IO(BIO\NIO\AIO),TCP与UDP区别

1.OSI模型? 开放式系统互联通信参考模型(Open System Interconnection Reference Model) OSI网络七层模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 TCP/IP协议群简化了OSI七层模型:应用层、传输层、网络层、数据链路…...

【网络爬虫 | Python】数字货币ok链上bitcoin大额交易实时爬取,存入 mysql 数据库

文章目录 一、网站分析二、js 逆向获取 X-Apikey三、python 调用 js 获取 X-Apikey四、python 爬虫部分五、mysql 数据库、日志、配置文件、目录结构六、结尾 一、网站分析 oklink:https://www.oklink.com/ btc 大额交易:https://www.oklink.com/btc/tx-…...

【Servlet】实现Servlet程序

文章目录 1. 最朴素方式1. 创建项目2. 引入依赖3. 创建目录4. 编写代码5. 打包程序6. 部署程序7. 验证程序 2. 更方便方式1. 安装Smart TomCat插件2. 启动 1. 最朴素方式 1. 创建项目 选择Maven项目 2. 引入依赖 Maven项目创建完后会生成一个pom.xml文件,我们可…...

binlog 和 redolog 有什么区别

binlog 和 redolog 都是 Mysql 里面用来记录数据库数据变更操作的日志. binlog 其中 binlog 主要用来做数据备份、数据恢复和数据同步,在Mysql 的主从数据同步的场景中,master 节点的数据变更,会写入到 binlog 中,然后再把 binl…...

Git 修改已提交的用户名和邮箱

Git 修改已提交的用户名和邮箱 修改上一次提交的邮箱和用户名 git commit --amend --author Name<email>批量修改多次提交的邮箱和用户名 新建一个 .sh 脚本在 git 根目录下.sh脚本内容如下 git filter-branch --env-filter an"$GIT_AUTHOR_NAME" am"…...

小游戏外包开发流程及费用

小游戏的开发流程和费用会因项目的规模、复杂性和所选技术平台而有所不同。以下是一般的小游戏开发流程和可能的费用因素&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 开发流程&#xff1a; 概念和…...

Homeassistant docker配置

Homeassistant docker配置 【说明】本系列为自用教程&#xff0c;记录以便下次使用 【背景】一台J1900 4G64G的小主机&#xff0c;安装了OP系统&#xff0c;里面自带了Docker。为实现Homeassistant&#xff08;简称HA&#xff09;控制智能家居设备&#xff0c;进行如下配置。 【…...

Go 深入解析非类型安全指针

一、引言 非类型安全指针&#xff08;也称为“裸指针”或“原始指针”&#xff09;在编程领域中一直是一个具有争议和挑战性的主题。它们赋予程序员直接操作计算机内存的能力&#xff0c;为高级性能优化和底层系统交互提供了可能。然而&#xff0c;这种能力往往伴随着高风险&a…...

vue动态绑定class

Vue.js 允许您使用 v-bind 指令或简写的 : 来动态绑定 class 属性。这允许您基于某些条件为元素添加或删除类名&#xff0c;从而实现动态样式控制。以下是一些示例&#xff1a; 动态添加单个类名&#xff1a; <template> <div> <p :class"{ active: isActi…...

UDP网络通信反复发收

package UDP2;import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.util.Scanner;/* * 完成UDP 通信快速入门 实现发1收1*/ public class Client {public static void main(String[] args) throws Exception{// …...

ip报头和ip报文切片组装问题

在tcp层将数据打包封装向下传递后&#xff0c;网络层将其整个看为一个数据&#xff0c;然后对其数据加网络报头操作&#xff0c;在网络层最具有代表的协议就是ip协议。在这里我们探究ipv4的报头。 ip报头 4位版本&#xff1a;指定ip的版本号&#xff0c;对于ipv4来说就是4。 …...

linux之应用编程回顾总结

gcc编译过程 一个c/c文件要经过预处理、编译、汇编和链接4个阶段&#xff0c;才能变成可执行文件 1.预处理 C/C源文件中&#xff0c;以“#”开头的命令被称为预处理命令&#xff0c;如包含命令“#include”、宏定义命令“#define”、条件编译命令“#if”、“#ifdef”等。预处理…...

nginx配置负载均衡--实战项目(适用于轮询、加权轮询、ip_hash)

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...