BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 崔康 关注 1 他的粉丝 发布于 2013年10月16日. 估计阅读时间: 5 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

动态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函数,使它可以自动并行化,这意味着所有映射操作都可以受益于没有开发人员干预的性能提升。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT