最近,到处可以看到大量的文章:Java将会消失取而代之的是脚本语言或其他汇编语言。不,那种情况是不会发生的。下面是我的论据,我们先看些数据。
2008年5月的编程语言受欢迎度情况:虽然有些人并不喜欢Tiobe的基于搜索引擎的编程语言欢迎度调查,但是我认为还是有根据、公平的。
从图中的数据发现和“C语法”相似语言占有较大的份额。
C (15.292) + C++ (10.484) + Java (20.176) + C# (3.963) = 49.915%
表明这四种语言占据了近一半的市场。如果我们在这里添加PHP ( 10.637% )(在某种程度上采用了类似的语法)结果是60.552%。
因此,我们得到如下结论:
理由1 :语法是非常重要,因为它是建立在以往的知识的基础上。类似的语法具有相近的概念。程序员不需要费很多时间和精力学习新语法。
让我们看看一组挑战语言:
Python (4.613) + Ruby (2.851) + Lisp/Scheme (0.449) + Lua (0.393) + SmallTalk (0.138) +
Haskell (0.137) + Groovy (0.131) + Erlang (0.110) + Caml (0.090) + Scala (0.073) = 8.985%
上面10种语言的总比例比VisualBasic(10.782%)的还少。
原因2 :大的难点是分心。程序员要学习这10种语言并且达到可以评价的水平需要付出很大的努力。况且,大部分的语言具有不同的语法和引入了不同的(有时是根本不同的)概念。
最近7年来的趋势,我们可以看到大多数的语言流行起来。也有几个例外,如下降的Perl ,但没有真的是消失。有周期性的浮动,但在长远看来,没有什么改变。
这表明,虽然各种语言在短的时间内会使程序员着迷,但它们被放回到“架子”上也相当快速。这些语言失去了现实中开发项目的机会。
原因3 :缺乏让程序员转换的动力。市场是相当稳定,现有的语言工作的相当好,管理者也没有强制程序员学习新语言。
理由4 :挑战语言似乎并没有抓住时机,创造一个应用于项目中的机会。或许跟它们发展和普及慢有关。
理由5 :挑战语言社区没有做好吸引程序员的工作。
让我们看看现在就业市场发生了什么事。indeed.com提供的是我使用的工具和我比较了很多语言制作了下面的表格。
理由6 :短期内没有很大的诱因让程序员切换到挑战语言中,获得技能但不太可能转化为收入。
那么,我研究所有这些统计数字得到某些结论,但语言本身需要什么特性和外部条件如何将会受欢迎?
原因7 :新的语言没有对程序员的生活和项目有非常大的推进作用。
理由8 :没有竞争力的应用平台。
理由9 :所有这些新的语言没有强大的赞助商和金钱在市场上推动他们。所有这些新语言诞生于大学和研究机构,或来自非常特殊的区域。
理由10 :大部分的这些语言左右徘徊,没有果断地登上“语言”大舞台。
出于好奇心,这里是一个名单,谈到一些语言与他们的发布日期:
Ruby (mid 1990s), Python (1991), Lisp (1958), Scheme (1970s), Lua (1993), Smalltalk (1969-1980), Haskell (1990), Erlang (1987), Caml (1985), OCaml (1996), Groovy (2003), Scala (2003)
和成功的语言相比:
C (1972), C++ (1983), Java (1995), C# (2001), BASIC (1964), Pascal (1970), FORTRAN (1957), Ada (1983), COBOL (1959)
很明显,大部分这些“新”语言错过了成功的“列车”。
理由11 :“特色”是大项目的灾难。目前的大项目不曾使用过新语言,很难没有些偏见的评价。偏见正是新语言生长的真正障碍。
理由12 :非自然的概念(对大多数程序员而言)提高了入门的门槛。函数式编程使你的编码象在解数学方程。但有多少人热爱数学并能用它来编程呢?面向对象语言提供一个很大的优势:他们让程序员认为有想要的模式,而不是语言或机器。
理由13 :没有先进的工具,面对大量的代码行缺乏重构程序员和开发团队的能力。
Java的危险并是不来自外部。这些新的(其实他们大多是相当老)的语言没有可能取代Java的。Java的危险来自于它具有太多的“功能”,如果想保留其他语言的一些概念和C++的垃圾回收功能需要进行转化。
分享到:
相关推荐
标题中的“Ruby、Python不能威胁Java的13个理由”表明了作者认为尽管这两种脚本语言在某些领域受到关注,但它们无法撼动Java在编程领域的主导地位。描述提到,作者通过数据分析反驳了Java将被替代的观点,并提出了...
在实际开发中,优秀的程序员能够维护大约2万行代码,而Python或Ruby开发者的生产力相当于其他语言开发者的五倍,这意味着一个开发者可以完成一个5人团队的工作量。 其次,Python和Ruby的设计哲学注重语言的可用性和...
对于长期使用Java进行开发的程序员而言,Ruby提供了一种全新的视角和工具箱。通过JRuby这一解释器,Ruby可以无缝集成到Java环境中,使得开发者能够在保留Java强大生态系统的同时,享受到Ruby带来的灵活性和效率提升...
_C++_Java_下载.zip"表明这是一个软件开发相关的资源集合,特别是针对五种编程语言:Ruby、C、C++、Python和Java。这个压缩包很可能是某个程序员或团队分享的代码示例、解决问题的算法或者学习资源。从文件名...
此外,考虑到一个程序员能有效维护的代码量上限,使用Python或Ruby可以让个人承担原本需要团队协作的工作。 与VB和PHP相比,Python和Ruby在语言设计上更加先进。虽然VB和PHP易于入门,但它们在处理大型项目时暴露出...
Java程序员GuillaumeBort在JVM上创造了一个全新的框架Play framework。Play拥有ROR或Django那样的灵巧,又不失Java的稳定,更有JVM这一强大的运行平台。魔鬼身材,天使脸蛋。让我们来玩玩Play吧。
Java程序员在日常开发中需要掌握一系列工具,以提高效率和代码质量。以下是对文中提到的10款开源工具的详细解释: 1. **JIRA**:由Atlassian开发的JIRA是一款广泛应用于敏捷开发中的错误追踪和项目管理工具。它支持...
在这个名为“程序员向妹子表白专用代码.zip”的压缩包文件中,我们可以期待找到一系列与编程相关的浪漫方式,旨在帮助程序员向他们心仪的对象表达爱意。这个压缩包可能包含了一系列精心设计的代码片段,这些代码在...
Python和Ruby都是高级编程语言,它们在Web开发、脚本编写、数据分析等领域有着广泛的应用。这份资料《Python和Ruby比较优缺点共1页.pdf》可能是对这两种语言在特性、性能、社区支持、学习曲线等方面的对比分析。虽然...
RubyGems是一个包管理系统,用于管理和分发Ruby的第三方库和扩展。 #### 三、类与对象 **3.1 类的定义** 类是对象的模板,定义了一组具有相同属性和行为的对象。 ```ruby class Person def initialize(name, ...
此外,廖雪峰在IT行业内有着丰富的经验,不仅是一名优秀的开发者,还是产品经理,并且精通多种编程语言如Java、Python、Ruby、Visual Basic和Objective-C等。他通过业余时间撰写教程和开源项目,展现了他在软件开发...
根据给定文件的信息,我们可以总结出未来五年程序员应当掌握的十项关键技能: ### 1. 掌握至少一种主流编程语言(.NET、Java、PHP等) 在未来的五年里,程序员应该至少熟练掌握一种主流的编程语言,比如.NET (包括...
- 不同的编程语言有着不同的风格和特点,如Python简洁明了,JavaScript适合网页互动,Ruby富有表现力,C++则更注重效率。程序员会根据表白的方式和接收者的兴趣选择合适的编程语言。 4. **数据结构与算法的应用** ...
这种代码可能是用不同的编程语言编写的,比如Python、JavaScript、Ruby或Java等,它们通过计算、输出或者交互式的方式,来传达程序员的心意。 表白代码通常会包含一些特殊的元素,例如数字序列(如爱的数字1314,...
尽管Ruby的市场份额可能不如其他语言如Java或Python那么大,但其在Web开发领域,尤其是敏捷开发和快速原型构建中仍然具有显著优势,对于追求高效开发和代码质量的团队来说,Ruby不失为一个优秀的选择。
Ruby虽然流行于Web开发(如Ruby on Rails框架),但Python同样能胜任Web开发,并且在脚本编写上更方便。 Python的解释器提供了交互式体验,比如输入`import antigravity`这样的彩蛋,增加了趣味性。对于非专业编程...
3. **Ruby**:Ruby主要用于RoR(Ruby on Rails)框架,而Python有多个优秀的Web框架,如Django和Flask,且Python的生态系统更广泛。 4. **Lisp**:Lisp拥有强大的抽象能力,但对于日常脚本和应用开发,Python提供了...
这个压缩包文件包含了用Python、Ruby等编程语言实现的CLRS书中算法的源代码,这对于理解和实践这些算法提供了宝贵的资源。 首先,让我们来看看Python实现的算法。Python是一种简洁易读、面向对象的编程语言,非常...