写点什么

Groovy 首次进入 Tiobe 语言排行前 20 名榜单

  • 2013-10-15
  • 本文字数:1715 字

    阅读完需:约 6 分钟

动态 JVM 语言在 Tiobe 的编程语言排行榜中所占的比重较小,但是在过去的一年里,其排名的变化却十分显著。本月,Groovy 首次进入Tiobe 语言排行前20 名榜单。

Groovy 是一种基于 Java 虚拟机的语言, 其拥护者举出了 Groovy 的很多好处,比如提高了开发人员的工作效率,简化了测试并且支持特定领域语言等。然而在 Tiobe 的搜索排行结果中,Groovy 只占了搜索比例的 0.658%。Tiobe 的执行主管 Paul Jansen 表示:

的确,以 0.658% 的比例进入编程语言的前 20 名确实不太常见,但是值得关注的是 Groovy 排名的变动,上个月,它排在第 22 位,而去年它排在第 53 位。人们对于 Groovy 的突然兴趣并没有什么特别的原因,我发现它和 Java 一起更频繁的被用于我们客户的网站上。

本月坐头把交椅的语言依然是 C 语言,C 语言与排名第二的 Java 的差距显著扩大。虽然 C 语言在上个月的搜索引擎平均点击率为 16.975%,Java 的点击率则是 16.154%。但本月的 C 语言点击率指数为 17.246%,Java 则是 16.107%。

Jansen 说:

C 语言领先的原因是因为 C 应用在编程世界的各个地方,尤其是在小型设备上的应用,并且小型设备的数量还在不断增加,现在,即使我的牙刷里都装有软件,而且它很可能是用 C 语言实现的。因此,C 语言的排名稳定了很多年。 Java 已经在其应用的领域中有了更加激烈的竞争。Groovy 将成为那些竞争者中的一员。多亏安卓系统的成功发展,移动开发领域拯救了 Java。我很怀疑 2014 年即将发布的 Java 第 8 个版本能否阻止 Java 普及性的衰落?

在 Tiobe 排行榜中排名第三的编程语言是 Objective-C,其比例是 8.992%。Objective-C 语言最出名的原因是它用于编写运行在苹果公司的 iPad 和 iPhone 设备上的应用程序。而 C++ 排在第四位,其指数为 8.664%,PHP 语言排在第五位,其指数为 6.904%。Tiobe 通过评估各大搜索引擎和网站如谷歌(Google)、必应(Bing)、雅虎(Yahoo)和维基百科(Wikipedia)来确定与每种编程语言相关的技术熟练的工程师、课程和第三方供应商的数量。

虽然 Tiobe 排行榜的 Jansen 认为 Java 的地位在下降,但 Java 在本月中的 PyPl 排行中仍然遥遥领先。PyPl 编程语言排行榜只着眼于谷歌上关于语言教程的搜索,从而给了 Java26.8% 的份额,并远远领先于排在第二位的 PHP,它只占有了 13.2% 的份额。排名第三的是 Python(9.8%),其次是 C#(9.5%)和 C++(9.1%)。C 语言在 PyPl 指数中排名第六(8.4%)。

最近几年,随着“函数式编程”的复兴,各种动态语言都有了显著的应用,Dan Woods 在“从 Groovy 到 Java 8 ”一文中指出:

Groovy 开发人员早已熟知 Java 8 中新引入的概念和新的语言结构了。在 Java 新版本即将推出的增强特性中,有很多是 Groovy 在几年前就已经提供了的。从用于函数式编程风格的新语法,到 lambdas 表达式、collection streaming 和要把方法引用作为一等公民,Groovy 开发人员在未来编写 Java 代码时具有先天性优势。

而 Neal Ford 在“函数式编程为何崛起”一文中也强调,函数式编程的特点之一是存在强大的抽象,它隐藏了许多日常操作的细节(比如迭代)。用抽象来处理迭代等任务,使得需要维护的代码变得更少,因此可能出现错误的地方也就更少。

Java 开发人员习惯于框架 级别的重用;在面向对象的语言中进行重用所需的必要构件需要非常大的工作量,他们通常会将精力留给更大的问题。函数式语言在更细化的级别提供重用,在列表和映射等基本数据结构之上通过高阶函数提供定制,从而实现重用。在面向对象的命令式编程语言中,重用的单元是类以及与这些类进行通信的消息,这些信息是在类图中捕获的。在 OOP 的世界中,鼓励开发人员创建独特的数据结构,以方法的形式附加特定的操作。 函数式编程语言尝试采用不同的方式来实现重用。它们更喜欢一些关键的数据结构(如列表、集和映射),并且在这些数据结构上采用高度优化的操作。传递数据结构和高阶函数,以便 “插入” 这种机制,针对某一特定用途对其进行定制。函数级的封装支持在比构建自定义类结构更细的基础级别上进行重用。此方法的优势之一已经体现在 Clojure 中。最近,库中的一些巧妙创新重写了 map 函数,使它可以自动并行化,这意味着所有映射操作都可以受益于没有开发人员干预的性能提升。

2013-10-15 07:393129
用户头像

发布了 501 篇内容, 共 282.9 次阅读, 收获喜欢 64 次。

关注

评论

发布
暂无评论
发现更多内容

性能压测的时候,系统响应时间和吞吐量如何变化,为什么?

不在调上

kubernetes 集群安装(kubeadm)

小小文

Docker Kubernetes 群集安装 etcd

区块链想要拥有互联网级的用户体验,如何从应用层与公链去改进?

CECBC

那些好用的命令

北漂码农有话说

个人博客网站搭建

北漂码农有话说

ARTS Week8

时之虫

ARTS 打卡计划

学习Rust,我的一些体会

Kurtis Moxley

编程 rust 随笔杂谈

可读代码编写炸鸡八 - 变量兜兜转转像是一场梦

多选参数

代码 代码组织 代码规范 可读代码编写 可读代码

看动画学算法之:排序-归并排序

程序那些事

Java 算法 排序 归并排序

使用 Docker 部署 Django + MySQL 8 开发环境

AlwaysBeta

MySQL django Docker Dockerfile Docker-compose

手写一个Vue风格组件

林浩

Java 大前端 webpack

redis系列之——数据持久化(RDB和AOF)

诸葛小猿

redis 持久化 aof rdb

盘点本周区块链国内大事件

CECBC

命令行一键启动Hadoop集群

我是个bug

大数据 hadoop hdfs YARN Big Data

看动画学算法之:排序-选择排序

程序那些事

数据结构 算法 动画

CECBC区块链专委会副主任吴桐受邀成为伏羲智库兼职研究员

CECBC

区块链技术 吴桐 商务部CECBC 伏羲智库 政务链

流量控制算法

架构 流量控制 流控算法

架构师训练营架构第七周总结

Cloud.

Swift十年

SwiftMic

Swift十年

Windows Sandbox

Dare Devor

Sandbox Virtualization

生活困境

落曦

云原生技术栈的关键技术

李英俊

云原生 Go 语言

LeetCode 题解:1051. 高度检查器,JavaScript,先排序再比较,详细注释

Lee Chen

大前端 LeetCode

【总结】性能优化

小胖子

week7

不在调上

番外篇:新鲜上市的Unicorn - Pinterest的数据系统

顾仲贤

解决火狐新窗口打开网页被拦截问题

Lee Chen

大前端

第七章作业

小胖子

架构师训练营第六周课后总结

Cloud.

区块链技术助力打造新公益样板

CECBC

隐私计算:实现数据价值释放的突破口

CECBC

密码学 政策扶持 隐私计算 发展现状

Groovy首次进入Tiobe语言排行前20名榜单_后端_崔康_InfoQ精选文章