TIOBE是在误导大家,Java其实并没有衰落
英文原文:TIOBE Is (Unintentionally) Misleading; in Truth, Interest in Java Is Surging
译注:其实语言都没有高下之分,适合当前工作的就是好语言。不过这位作者在这方面的一些态度的确值得我们学习,人家并不是盲目的乱喷,而是摆出数据,有理有据。本来想说老外在这方面怎么怎么样的,后来想了想,地图炮还是少开,毕竟这么说有失偏颇。
我经常看到有文章在说,根据 TIOBE 的排名来看,Java 和C在为“最受欢迎的编程语言”的称号争得不可开交——最后肯定都会说道,Java 已经面临很长时间的衰落了。TIOBE 用了一种相对复杂的公式来计算这个排名;不过它的核心算法似乎是和这个编程语言的名字后面加上”programming”这组关键字的搜索结果有关,比方 说” Java Programming”。这么做当然也说得过去的,因为如果你去 Google 趋势里面只搜 Java 或者 JVM 的话,肯定会看到统计结果里面有很多跟 Java 语言或者 Java 虚拟机无关的东西。
下面是过去 13 年来 TIOBE 上面最受欢迎的 10 门编程语言的趋势图:
最上面黑色的是 Java 在 TIOBE 上面的排名曲线,而附近那条淡蓝色的是C的。从这很明显能看出 Java 的欢迎程度一直都在缓慢的下降。不过这真的意味着 Java 在衰落吗?
我并不这么认为,有好几个原因。首先,Java 是一门成熟的语言。一门成熟的语言在 Google 或者 Yahoo 等这些搜索引擎里面搜索得少些不是很正常吗?因为很多开发人员都已经对它们已经非常熟悉了。与此同时,当前最热门最时髦的语言理所当然会得到更多的关注, 因为它们是现下最令人兴奋的新事物。至少对我来说是这样的。
不过这里我们还可以通过别的数学手段来进行计算。我们用 TIOBE 的一部分算法,再结合一些其它的数据,来看看结果是什么样的。
下面是 Google 趋势里“Java Programming”搜索词的关注热度:
从这张图来看,Java 的关注度在 2004 年处于高峰(之前的数据已经看不到了),而目前的关注度大概是当初的 28% 左右。
不过,这到底意味着什么?Google 趋势是基于这个搜索词本身在所有搜索词中进行的排名,因此这张图实际告诉我们的是今天在 Google 里面搜索"java Programming"这组关键字的比例大概是 2004 那会儿的三分之一。我上面所说的原因,部分也是由于这个。
非常重要的一点是,"Java Programming"这个搜索词的关注度在 2009 年以后就一直维持不变。然而更有趣的是,下面这组来自 Statistic Brain 的数据列出了每年 Google 搜索这组关键字的总次数:
年 | 总搜索次数(单位百万) |
2013 | 2,162 |
2012 | 1,874 |
2011 | 1,722 |
2010 | 1,325 |
2009 | 954 |
2008 | 637 |
2007 | 438 |
Google 趋势其实告诉我们的是”Java Programming”这组关键字在所有的搜索词中的关注度。相对于 Google 的所有的搜索词而言, “Java Programming”这组词搜索的比例和 2004 年的时候相比有所下降。
不过如果我们将上面这个表格中的关注度比例转化成实际搜索的总次数的话,结果是这样的:
年 | 总搜索次数(单位百万) | Java programming 的关注排名 | Java programming 的总关注度 |
2013 | 2,162 | 28 | 138 |
2012 | 1,874 | 30 | 128 |
2011 | 1,722 | 30 | 118 |
2010 | 1,325 | 29 | 88 |
2009 | 954 | 29 | 63 |
2008 | 637 | 29 | 42 |
2007 | 438 | 34 | 34 |
这里我是从 2007 年开始计算的。这个总的关注度同时还考虑了 Google 总搜索量的增长。这个表格的数据说明,从 2007 年到 2013 年 Java Programming 这个搜索词的搜索次数翻了四倍!
Java 并不是一门已经衰落了很长时间的语言,相反,全世界对 Java 的关注度一直是在飙升的!
现在你还敢和别人说"Java 已死“这样的话么?