`
deepinmind
  • 浏览: 444520 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
1dc14e59-7bdf-33ab-841a-02d087aed982
Java函数式编程
浏览量:40779
社区版块
存档分类
最新评论

在JVM上使用非Java语言的原因

阅读更多

在最近完成的一次Java.net的投票中,有超过75%的开发人员认为使用非Java语言是有一定的原因的。有19%(有点吃惊)的开发人员认为,在JVM上完全没有必要使用非Java语言进行开发。总共有181个人进行了投票,有一人进行了评论。下面是投票的内容及结果:

在JVM上使用非Java语言最重要的原因:
  • 23%(42票)——更先进的语法
  • 6%(11票)——更好的性能
  • 38%(69票)——一些非Java语言更适合某些类型的编程任务
  • 8%(15票)——不太懂Java,不过了解移植到JVM的那门语言
  • 19%(34票)——没理由使用非Java语言
  • 6%(10票)——其它

  • 做出这份调查问卷花费了我不少心思,我发现调查的结果非常有意思(尽管这不是一疹专业的调查)。我在猜测人们选择某个选项的时候究竟是怎么想的。“一些非Java语言更适合某些类型的编程任务”这个赢得了大多数的投票,我认为这是合理的。各种非Java的JVM语言已经被广泛使用,并且仍在不停地增长中。

    我认为,"更先进的语法"当然也是一个非常合理的选择。Java 7和Java 8中语言的一些改进本质上就是想引入其它语言的一些特性(包括一些很受欢迎的非JVM语言)。更新的那些JVM语言,它们不需要向下兼容,也没有历史遗留代码的负担,可以在开始设计的时候就考虑使用一些现代的语法,也可以针对某些特定类型的编程任务而专门设计语法。这又回到了“一些非Java语言更适合某些类型的编程任务”这点上了。

    我把“更好的性能”这个选项放到问卷中很大一部分原因是出于好奇。提起性能的时候,大家并不认为Java是很笨重的,如果你清楚你要做的是什么,你可以通过对Java进行性能调优,从而获得不可思议的处理速度,或者难以置信的响应延迟,又或者是意想不到的处理大数据的能。和,等等。我在想,或者有些语言在原生状态就已经针对高性能的特点对JVM进行了调优,我希望那6%的投了“更好的性能”的那帮人也是这么想的。。

    我很高兴看到只有8%的人使用非Java的JVM语言是因为"不太懂Java,不过了解移植到JVM的那门语言"。我能想到有人在必要的时候会选择使用非Java的JVM语言,因为他们确定很快就不会再使用JVM了。如果你计划长期作为一名职业的软件工程师,甚至将来进阶成为一名软件架构师的话,由于你不想学Java而成为一名Jython或者JRuby开发人员恐怕不是上策。

    下面是19%的那些人,他们选择了“没理由使用非Java语言”。我把这个选项放到投票里,一个是出于好玩,一个是为了给某些Java粉表表忠心。问题在于,选择这个选项的人都是出于好玩吗?有没有人选择它是因为尝试了其它非Java语言后却不喜欢的呢?有没有人是因为不知道JVM上面除了Java还有别的语言而选择了这项的?我希望选中这个选项都是那些骄傲的Java老兵。

    6%选择了“其它”,网友pjmlp还留下了评论:

    选择其它,是因为我认为有许多原因,不止一个:
  • 现代的语法
  • 类型推导的支持
  • 值类型
  • 物化泛型(reified generics)
  • 对外国语言有更好的FFI支持。
  • 可以通过AOT (Ahead-Of-Time)编译器生成本地代码,有官方的工具支持


  • 原创文章转载请注明出处:http://it.deepinmind.com

    英文原文链接

    1
    1
    分享到:
    评论
    1 楼 Tyrion 2014-05-22  
    就是两个字“不爽”

    相关推荐

      Java语言规范和JVM规范官网文档

      包含有Java6,Java7,Java8,Java9的语言规范和JVM的规范pdf文档,供大家参考,谢谢!深入学习Java编程必须要多看规范,搞清楚深层次的原理。

      Java JVMJava JVMJava JVM

      Java JVMJava JVMJava JVM

      Java语言规范和JVM虚拟机规范.zip

      Java语言规范和JVM虚拟机规范.zip,Oracle官方文档,包括Java语法的定义等内容。Java语言规范包含JDK678三个版本,JVM虚拟机规范包含78两个版本。

      eta, 在JVM上,Eta编程语言,Haskell的方言.zip

      eta, 在JVM上,Eta编程语言,Haskell的方言 - 在JVM上的现代 Haskell Eta编程语言是在JVM上运行的Haskell方言,具有以下目标:命令式语言的初学者,特别是Java的辅助功能GHC 7.10.3 Haskell的兼容性。访问 eta

      JVM动态编程语言Soya.zip

      Soya是什么?Soya是一门基于JVM上的动态编程语言,现在已经开源 它的特点是 ...Soya语言由Java编写并且被编译成Java字节码在JVM上运行,能调用其他Java代码,包括所有的Java API。 标签:Soya

      JVM-Java虚拟机

      资源概要:JVM基础知识;类加载子系统;运行时数据区;对象的创建流程与内存分配;...从广义上讲Java,Kotlin、Clojure、JRuby、Groovy等运行于Java虚拟机上的编程语言及其相关的程序都属于Java技术体系中的一员。

      JDK是 Java 语言的软件开发工具包,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具 (java8)

      也就是说,只要在不同平台上安装对应的jvm,就可以运行字节码文件,运行java程序。 java核心类库是指java提供的一组基础类和接口,用于处理常见的任务和操作,例如字符串的操作,数组的操作,集合的操作,多线程,...

      JVM平台上的Scheme语言实现JSchemeMin.zip

      JSchemeMin 是一个JVM平台上的Scheme语言实现。作为R7RS的实现,JSchemeMin支持Scheme的所有标准特性,包括头等公民地位的过程、尾递归优化、继续、用户定义记录、库(包括R7RS附录A中全部语法和过程,不只base)、...

      sunjava虚拟机(jvm)v1.6官方安装版java(TM)6Update4

      JVM是JRE的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 的主要工作是解释自己的...

      jvm瓶颈定位 java jvm 学习

      jvm瓶颈定位 java jvm 学习

      JVM原理讲解和调优

      Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台...

      最新版JAVA 8.0使用广泛。Java 8.0是款革命性开发平台,其全面升级现有Java编程模式,带来一项协同开发的JVM、Java语言以及库。

      最新版JAVA 8.0使用广泛。Java 8.0是款革命性开发平台,其全面升级现有Java编程模式,带来一项协同开发的JVM、Java语言以及库。Java 8平台集合生产力、易用性、多语种编程、更高安全性和稳定性等特色。

      jvm指令手册 +JVM必知必会,掌握虚拟机编译过程.rar

      Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行 《JVM必知必会》记录了对JVM的总结及学习笔记,详解...

      实战Java虚拟机——JVM故障诊断与性能优化 pdf

      《实战Java虚拟机——JVM故障诊断与性能优化》内容简介:随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为一个充满活力的生态圈。本书将通过200余示例详细介绍Java虚拟机中的...

      框架->java语言->jvm->os->汇编->硬件

      NULL 博文链接:https://cici9898-007.iteye.com/blog/1813855

      有关JAVA的译文 Clojure:“挑战”Java编程语言

      在今后的软件设计中无论使用Clojure语言,还是坚持使用Java语言,Clojure语言都将与java做比较,哪种是设计软件的最佳方式。 Clojure语言是一个JVM(包括Groovy,Jython和JRuby等语言)的新语言,它提供了活力,...

      JAVA应用JVM原理及参数调优深入讲解视频.zip

      JAVA应用JVM原理及参数调优深入讲解视频.1 JAVA应用JVM原理及参数调优深入讲解视频.2 JAVA应用JVM原理及参数调优深入讲解视频.3 JAVA应用JVM原理及参数调优深入讲解视频.4 JAVA应用JVM原理及参数调优深入讲解视频.5 ...

      java手册中英文java8,java9手册

      太阳微系统对Java语言的解释是:“Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言” Java不同于一般的编译语言或解释型语言。它首先将源代码编译成...

      jvm介绍基础,构成和调优

      Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台...

      Java程序设计基础:Java语言概述.pptx

      Java语言概述 Java开发基础--Java语言概述 Java语言概述 了解Java语言历史和特点 理解Java语言规范 能够区分API、JDK的含义 Java的发展历史 1991年,Sun公司James Gosling领导的Green小组创建了一种新型语言,命名为...

    Global site tag (gtag.js) - Google Analytics