`

【JAVA程序员必看】Ruby、Python不能威胁Java的13个理由

阅读更多
最近,到处可以看到大量的文章: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++的垃圾回收功能需要进行转化。


分享到:
评论

相关推荐

    play java轻量级框架

    Java程序员GuillaumeBort在JVM上创造了一个全新的框架Play framework。Play拥有ROR或Django那样的灵巧,又不失Java的稳定,更有JVM这一强大的运行平台。魔鬼身材,天使脸蛋。让我们来玩玩Play吧。

    程序员或设计师能用上的91份速查表 cheat sheets

    程序员或设计师能用上的91份速查表,包括各种语言和技术。包括Actionscript Apache Ant ASP C C# C++ Delphi Java Javascript Perl PHP Python VB Ruby Scala LISP Matlab Mathematica Fortran CSS DOM Erlang Perl ...

    程序员或设计师能用上的91份速查表

    程序员或设计师能用上的91份速查表,包括各种语言和技术。包括Actionscript Apache Ant ASP C C# C++ Delphi Java Javascript Perl PHP Python VB Ruby Scala LISP Matlab Mathematica Fortran CSS DOM Erlang Perl ...

    程序员或设计师能用上的100+份速查表

    程序员或设计师能用上的91份速查表包括:Actionscript Ant C C# C++ Delphi Java Javascript Perl PHP Python VB Lisp perl Erlang Dom Flash haskell ...及Linux MacOS OS Solaris Ubuntu等操作系统

    程序员社区:此存储库包含Ruby,C,C ++,Python和Java中各种问题的解决方案

    程序员社区 这些实现是出于学习目的。 该解决方案将以任何编程语言提供。 欢迎您在资源库中做出贡献。...C,C ++,Java或Python中的数据结构和算法 解决问题的能力 数据库(关系或非关系) 系统设计

    mazes-for-programmers-ruby:程序员迷宫

    这本书也可以用Python或C或Java或C#或任何其他语言编写。 我希望这些示例写得足够清楚,以使即使您不熟悉Ruby,这些概念也照常出现。 无论您是否使用Ruby,都有足够的实验空间。 如果您决定继续使用Ruby,请确保...

    用Java编写的miniKanren实现Java8kanren.zip

    目前,Haskell、Racket、 Ruby、Clojure 以及 Python 中有 miniKanren 的具体实现。其中最典型的实现是 Scheme 的版本。Clojure 语言里的 core.logic 也是受到 miniKanren 启发。 标签:Java8kanren

    程序员/设计师能用上的 75 份速查表

    75 份速查表,由 vikas 收集整理,包括:jQuery、HTML、HTML5、CSS、CSS3、JavaScript、Photoshop 、git、Linux、Java、Perl、PHP、Python、Ruby、Ruby on Rails、Scala、C#、SQLite、C++、C语言、Ubuntu、WordPress...

    Java开源的下一代社区平台Symphony.zip

    万能的 GitHub 上连个能用的 Java 社区系统都找不到,Sym 填补了这个宇宙级空白 做最 NB 的开源社区系统,预计几年以后 82% 的社区都将是 Sym 搭建的 作者技痒,炫技之作,Ruby/Python/Node.js/(特别是)PHP ...

    程序员或设计师能用上的91份速查表.rar

    程序员或设计师能用上的91份速查表包括:Actionscript Ant C C# C++ Delphi Java Javascript Perl PHP Python VB Lisp perl Erlang Dom Flash haskell ...及Linux MacOS OS Solaris Ubuntu等操作系统

    抛物线法matlab源码-data_analisys:适用于python初学者的dataanalisys,您可以100天成为一名优秀的开发人员

    伟大的程序员都有三个优点:懒惰、暴躁和自负 懒惰会促使程序员去写一些省事儿的程序来辅助自己或别人更好的完成工作,这样我们就无需做那些重复和繁琐的劳动;同理能够用3行代码解决的事情,我们也绝不会写出10行...

    程序员必备的66份速查表

    66份速查表,包括:jQuery、HTML、HTML5、CSS、CSS3、JavaScript、Photoshop 、git、Linux、Java、Perl、PHP、Python、Ruby、Ruby on Rails、Scala、C#、SQLite、C++、C语言、Ubuntu、WordPress、Node.js、Oracle、...

    高级java工程师笔试题-awesome-interview-questions:真棒面试问题

    高级java工程师笔试题精彩访谈 技术面试问题列表的精选列表。 如果你想贡献,请阅读 或 。 查看我的或 . 目录 编程语言/框架/平台 安卓 . AngularJS 主干JS C++ C C♯ 。网 Clojure CSS 姜戈 EmberJS 二郎 高朗 HTML...

    如何完全使用python实现工作

    第四,所有对windows的垄断的血泪控诉都直接对mathwork转过来吧~什么对开源,对自由,对的打击信仰~绝对适用~第五,python大部分时候如果不比你好用至少跟你一样好用,而这只是它不到10%的功能,几个程序员业余...

    java开发抽奖系统源码-symphony::musical_notes:一个用Java实现的现代化社区(论坛/社交网络/博客)平台。Amoderncommunity(f

    Ruby/Python/Node.js/(特别是)PHP怎么能比Java做得更好 用例 社区版: 商业版: 如果您构建它,欢迎您通过拉取请求将您的站点添加到此列表中:-p 特征 具体功能点详情可以查看,下面列出了Sym的主要特点,并说明了...

    Serialize and Deserialize Java 示例程序

    官方的实现已经实现了多种语言,例如 C, C++, C#, D, Erlang, Go, Haskell, Java, JavaScript, Lua, OCaml, Perl, PHP, Python, Ruby, Scala, Smalltalk, 和 Swift。MessagePack 的了解就是传输的数据格式都是二进制...

    Sublime Text 4.0.0 Build 4126 中文绿色特别版

    Sublime Text – 性感的代码编辑器、程序员之必备神器!Sublime Text 是个功能强大的代码编辑器,也是HTML和散文先进的文本编辑器。其主要功能包括:Python的插件,完整的Python API , Goto功能,代码段,代码缩略...

    EditRocket 4.5.1 文本、代码编辑器

    EditRocket是一个强大的文本和源代码编辑器,适用于支持超过20种语言的程序员,包括HTML,PHP,JavaScript,CSS,Objective-C,Java,Python,Ruby,Perl,XML,C,C ++,Shell脚本等 。 应用介绍 EditRocket包括很...

Global site tag (gtag.js) - Google Analytics