有人使用新的编程语言特性吗?
发布计算机编程语言(如Java)的组织经常发布带有新特性的更新,承诺让程序员的生活更轻松。但很难判断是否有人真的使用了这些功能,更不用说他们是否真的达到了他们的要求。现在,一组研究人员正试图弄清这一过程。挑出那些被高度宣传的Java泛型该研究团队发现了2004年发布的功能,发现不到一半的Java程序员正在使用该功能 - 甚至更少的是充分利用其功能。
研究团队,由计算机科学家组成国家统计局那格鲁吉亚科技和微软研究,仔细阅读大约500万行的开源代码,由532名程序员编写20个不同的项目。在一个草稿纸21年5月21日在矿业软件存储库工作会议上,研究人员表示,他们发现少于一半的程序员使用Java泛型功能,并且该功能用于少于一半的开源项目。
这是一些背景,以防你不是一个软件。软件语言具有特定的功能或命令,可为程序员输入速记。例如,特征可以允许程序员键入单行代码,而不是五个。这节省了时间,并限制了程序员意外键入的程序员在代码不良 - 减少了程序崩溃的频率。
发布这些语言的公司会定期发布更新,包括新的工具和功能。这次更新的目的是为了让语言对程序员来说更加友好,同时也花费了出版公司一大笔钱。这对程序员来说也很耗时,因为他们必须熟悉这些新特性。因此,重要的是特性要有价值。
但是,为什么有些功能流行起来了,而其他的没有呢?以及如何你能分辨出哪个是哪个吗?
这就是研究团队的原因试图弄清楚.他们选择将Java泛型作为一个案例研究,因为:它一出现就在编程社区中获得了很多关注;因为Java是世界上使用最广泛的编程语言之一。
除了许多(如果不是大多数)Java用户不使用泛型功能的事实外,研究人员还发现该功能似乎没有使编程过程更有效。
但是,此时,他们仍然不知道该故障是否与产品,程序员或两者的某种组合不同。换句话说,功能是特征所需的更好的工具和培训材料吗?或者是特征本身有缺陷吗?
最终,研究人员希望不仅针对Java泛型,而且针对一般的新语言特性回答这个问题。如果他们能够识别出使新特性成功的特征,语言开发人员就可以相应地采取行动。希望所有未来语言更新实际上是有用的。

neo - 方法论取决于您要问的研究问题。在拟议的研究中,结果将表征编码人员在竞争中做些什么。我们希望在更现实的环境中表征开发人员所做的事情。
我不记得最后一次看到没有使用泛型的Java代码。我相信那里还有人不知道如何使用它们,但我认为这将是一个小少数群体。
Neo:您可能会发现编程竞争中的人们更有可能使用Ruby,或Go或任何数量的新的“较冷者”语言和功能。这是一个偏见的样本,不一定是整个发展共同体的代表。
“发布计算机编程语言的组织,例如Java,通常发出更新的新功能,并承诺使程序员的生活更轻松。”
哈哈。Java,真的吗?与我在过去十年中使用过的任何一种当前维护的语言(c#、f#、Python、Ruby、Javascript、Scala、Clojure等)相比,Java在添加新特性方面绝对是缓慢的。
我认为这里发生了什么样的是,所有有兴趣使用新功能的程序员都已经为实际*发出常见语言更新的其他语言留下了它。当然,如果每次访问一个集合时,如果您不必要展出一个投射,那么您就不会陷入困境,以获得此功能的8年以上的java!Java是一个过滤器:它只陷入困境,这些人在很少更改的低级语言中工作。
Java是一种广泛使用的语言,因此它的用户专门用于应用程序开发人员和库开发人员。Java提供了一些适合所有人使用的特性,还有一些是针对一小群库开发人员的(例如,类型参数的变化从来没有被期望立即被所有人理解),这些特性允许他们为更大的应用程序开发人员组提供强大而健壮的库。
测量的适当度量标准不是使用功能的项目或开发人员的数量,而是由这些功能启用或简化的已部署应用程序。
我以在(大)公司教程序员Java为生。简短的响应……大多数Java程序员对语言的理解还不足以使用接口,更不用说编写自己的泛型了。
如果我要做这项研究,我会查看程序员在谷歌Codejam或Topcoder等竞赛中提交的代码。而且,我确信我会发现更多的程序员使用泛型。
实际上,常见的集合和maven3,其中一个较大的泛型采用者。有趣的是,3个项目没有找到足够强大的功能来改变他们的设计目标。
哇,UHM我得说这有点不仅仅是在目标Java版本和目标中的一些项目中的观众。
Ant、Commons Collections、Log4j、Maven和Xerces都有预期的用法,据我所知,这些用法都是为预Java 1.5兼容设计的。因此,调查项目列表中整整25%的项目被用作某种填充物。
这些项目中没有泛型的原因是目标用户不支持泛型。那么,当“不使用泛型”是设计目标时,该调查如何将这5个项目至少算作“实现泛型的失败”呢?
y