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

分享 种 .NET 桌面应用程序自动更新解决方案侣

一、Actor 模型&#xff1a;不是并发技巧&#xff0c;而是领域单元 Actor 模型的本质是&#xff1a; Actor 是独立运行的实体 Actor 之间只通过消息交互 Actor 内部状态不可被外部直接访问 Actor 自行决定如何处理收到的消息 Actor 模型真正解决的是&#xff1a; 如何在不共享状…...

久坐危机:软件测试工程师的健康警报与破局之道

在数字化浪潮中&#xff0c;软件测试工程师作为产品质量的终极守门人&#xff0c;长期深陷“静态工作陷阱”。数据显示&#xff0c;测试从业者日均久坐时间高达9.2小时&#xff0c;引发三重健康危机&#xff1a;一、职业健康风险图谱肌肉骨骼系统颈椎反弓发生率68%&#xff08;…...

Ostrakon-VL-8B参数详解:BFloat16精度下8B参数量对零售场景的针对性优化

Ostrakon-VL-8B参数详解&#xff1a;BFloat16精度下8B参数量对零售场景的针对性优化 1. 为什么零售场景需要专门的视觉大模型&#xff1f; 如果你在零售行业工作过&#xff0c;或者自己开过店&#xff0c;一定遇到过这样的问题&#xff1a;每天要花大量时间检查货架、盘点库存…...

重塑GitHub Desktop中文体验:让版本控制说你的语言

重塑GitHub Desktop中文体验&#xff1a;让版本控制说你的语言 【免费下载链接】GitHubDesktop2Chinese GithubDesktop语言本地化(汉化)工具 【GitHub桌面客户端中文汉化】 项目地址: https://gitcode.com/gh_mirrors/gi/GitHubDesktop2Chinese 你是否曾面对GitHub Desk…...

3步掌握B站视频高效学习法:BiliTools智能工具箱完全指南

3步掌握B站视频高效学习法&#xff1a;BiliTools智能工具箱完全指南 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …...

碧蓝航线Live2D提取终极指南:轻松提取游戏角色动画资源

碧蓝航线Live2D提取终极指南&#xff1a;轻松提取游戏角色动画资源 【免费下载链接】AzurLaneLive2DExtract OBSOLETE - see readme / 碧蓝航线Live2D提取 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneLive2DExtract 你是否想获取碧蓝航线中精美的Live2D角色动…...

CellProfiler:生物学家必备的免费开源图像分析终极指南

CellProfiler&#xff1a;生物学家必备的免费开源图像分析终极指南 【免费下载链接】CellProfiler An open-source application for biological image analysis 项目地址: https://gitcode.com/gh_mirrors/ce/CellProfiler 你是否曾为分析数千张细胞图像而头疼&#xff…...

Python敏感性分析的完整指南:SALib库的终极应用

Python敏感性分析的完整指南&#xff1a;SALib库的终极应用 【免费下载链接】SALib Sensitivity Analysis Library in Python. Contains Sobol, Morris, FAST, and other methods. 项目地址: https://gitcode.com/gh_mirrors/sa/SALib SALib是一个功能强大的Python库&am…...

EtchDroid:让安卓手机成为你的随身启动盘制作工具,无需Root权限

EtchDroid&#xff1a;让安卓手机成为你的随身启动盘制作工具&#xff0c;无需Root权限 【免费下载链接】EtchDroid An application to write OS images to USB drives, on Android, no root required. 项目地址: https://gitcode.com/gh_mirrors/et/EtchDroid 你是否曾…...

FlowPilot自动驾驶系统:5步为您的爱车添加智能驾驶辅助

FlowPilot自动驾驶系统&#xff1a;5步为您的爱车添加智能驾驶辅助 【免费下载链接】flowpilot flow-pilot is an openpilot based driver assistance system that runs on linux, windows and android powered machines. 项目地址: https://gitcode.com/gh_mirrors/fl/flowp…...