当前位置: 首页 > 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; 希望大家多多支…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

中国政务数据安全建设细化及市场需求分析

(基于新《政务数据共享条例》及相关法规) 一、引言 近年来,中国政府高度重视数字政府建设和数据要素市场化配置改革。《政务数据共享条例》(以下简称“《共享条例》”)的发布,与《中华人民共和国数据安全法》(以下简称“《数据安全法》”)、《中华人民共和国个人信息…...

Ansys Maxwell:线圈和磁体的静磁 3D 分析

本博客展示了如何在 Ansys Maxwell 中执行静磁 3D 分析&#xff0c;以计算载流线圈和永磁体之间相互作用产生的扭矩。在这个例子中&#xff0c;线圈中的电流产生一个沿 Y 轴指向的磁场&#xff0c;而永磁体沿 X 轴被磁化。这种配置导致围绕 Z 轴的扭矩。分步工作流程包括构建几…...

【JMeter】后置处理器 - 提取器

文章目录 概览边界提取器正则提取器JSON提取器 概览 CSS/JQuery提取器&#xff1b;给网页使用JSON提取器&#xff1a;给JSON数据使用★边界提取器&#xff1a;给字符串使用★正则表达式提取器&#xff1a;更加高级的字符使用★Xpath提取器&#xff1a;给网页使用 边界提取器…...