这几年,关于谁是下一个JVM上的王者语言之争已经不是新鲜事情了。看了上面的文章,您是不是又所感慨呢?
笔者对部分上述语言接触过,下面发表一下意见:
Groovy:在这些上述语言中,我认为它是最接近于Java的语言,并且提供了闭包和动态类型等特性。学习曲线不陡峭,并且学习资源很多。可惜性能让人失望,因此,一直不被笔者考虑作为实现语言。当年的GoG就是模仿RoR来实现快速Web开发,方便地解析XML文件,集成Spring和ORM,这些让SSHer欣喜不易。本人虽然没有深入研究,不过规约大于配置的开发模式,着实让我眼前一亮。不过,动态语言Groovy并没有让我看到它的光明的未来。说到Groovy的未来,当然还看SpringSource发展路线。也许正如上文所说,Groovy++才是正确的方向。
Scala:这门函数型语言能够让Groovy发明者后悔,能够让twitter放弃Ruby(至少部分放弃),转而拥抱它。这些足以证明Scala是一门优秀语言,静态类型安全,提供闭包功能,简化并发编程,弥补Java的不足。不过它的语法确实比较晦涩,我想这就是它最大的伤痛。Scala前途还是比较光明的。
Fantom:实际上,笔者还没有接触过,只是看了下:http://fantom.org/doc/docIntro/WhyFantom.html 。它给我第一个感觉是,像雾像雨又像风(C++、Java和其他语言的混合体)。先不说它是否简单,不过它还是有特斯色的。当年,Java号称跨平台的语言,虽然目前.NET可以跨平台(如果您的是HelloWorld工程的话,不必担心风险)。可是Fantom确实跨语言加跨平台的,这个是很强大啦。目前,Java和.NET的跨语言不过是建立在JVM和CLR平台上。Java和.NET两大平台通讯还是需要靠第三方协议(比如WebServices)。Fantom其他的方面没有什么特色,并且学习资源太少。
Clojure:第一次知晓这门语言,是通过看庄周梦蝶 的Clojure的blog。本人正在学习中,这门语言让我想起了“伊波兰式”(操作符号在操作数之前),并且执行语句皆在"()"里面,真如其名-封闭(其实没有这个英文单词,只有closure)。尽管这门函数语言,语法上非常不贴近于Java,但是简洁的代码足以替代臃肿的Java代码,即使和Scala比较,也不是同一个级别的。不过和Scala一样,提供优雅的函式和并发编程,不过纠结的语法确实不适合传统C语言系的开发人员。不过我还是比较看好它,试想一旦掌握后,那是多么“暴力”的语言。
JavaScript:从感情和熟悉程度上,笔者偏好JS。众所周知,JS作为浏览器内建语言,提供了灵活的前端页面控制。语法上,从普通的函数编程发展到prototype和闭包,并且通俗易懂;功能上,从DOM操作,到Ajax,再到目前的WebSocket;实现上,从客户端程序到服务端程序。目前的Node.js(在V8平台)可以实现服务端I/O操作,那么,实现Web服务端不在话下。在Web2.0时代,熟悉JS的人要比熟悉Java人还要多。同时,Java 6.0提供了JavaScript解释引擎,.NET就更不用说了。综上分析,下一个JVM王者语言很有可能就是JavaScipt。
Java:这么多年来,Java是最成功的语言之一。无论哪门语言都有缺点,然而越是出名,越是招骂。Java 7的闭包、模块化和GC优化等功能能不能成功地拯救Java,就看JVM产商的啦。我相信,大家都期待Java能过王者回归。
似乎上述语言都有希望称为JVM的王者语言。从JVM实现来看,JVM还是非常强大的
分享到:
相关推荐
《王者归来之Java面试题大全最新经典——葵花宝典》是针对Java程序员面试的一份综合性的学习资料,由IT教学总监单兴华编撰。这份文档旨在帮助Java开发者准备面试,涵盖了大量的Java核心技术以及面试常见问题,是提升...
王者荣耀java源码 标题 分类 内容 备注 架构 MySQL MQ 服务器 算法 JVM CODE JVM 缓存 使用redis改善数据库压力并更加实际情况定制 MQ 算法 缓存 缓存 解决缓存一致性3种方案 缓存 饿了么hotkey解决方案 IO 流程图及...
在本项目"开发Java游戏项目【王者荣耀】24小时搞定.zip"中,开发者采用Java编程语言,构建了一个基于“王者荣耀”主题的游戏应用。这表明该项目可能是对原版游戏的一种模拟或者改编,旨在提供类似的玩家体验。Java...
Java技术体系主要包括三个关键部分:支撑Java程序运行的虚拟机,提供各种开发领域接口支持的Java类库,以及Java编程语言本身。自Java诞生以来,其虚拟机经历了多次迭代和创新,如经典的Sun Classic/Exact VM,市场...
"杀王者"可能是指一个与游戏《王者荣耀》相关的项目或者工具,由于提供的信息较少,我将基于“Java”这一标签来展开讨论,分享一些关于Java编程语言和在游戏开发中的应用的知识。 Java是一种广泛使用的面向对象的...
- **JVM**:了解Java虚拟机的工作原理及其内存模型。 #### 2. Web基础 - **HTTP协议**:理解HTTP请求/响应模型、状态码含义等。 - **HTML/CSS/JavaScript**:掌握基本网页设计技能。 - **前端框架**:如Bootstrap、...
【Java学习笔记与JDK6】是针对初学者和进阶者的重要资源,由知名IT作者单兴华编写的“王者归来之良葛格”系列教程。本压缩包包含丰富的Java编程教学材料,旨在帮助用户深入理解JDK6版本中的核心概念和技术。以下是...
Scala是一种强类型、静态类型的编程语言,由Martin Odersky在2003年创建,它的名字来源于“Scalable Language”的缩写。Scala的设计目标是融合面向对象编程(OOP)和函数式编程(FP)的概念,为开发者提供一个高效、...
Java作为一个广泛使用的编程语言,其性能优化对于开发者和用户都至关重要。 1. **Java版本迭代**:Java的版本迭代通常会带来新的特性和性能改进。1.24作为Java的一个版本,相较于早期版本,可能会包含更多的bug修复...
在【压缩包子文件的文件名称列表】中提到的“JDK”可能意味着这个压缩包内包含了完整的JDK内容,如bin目录下的可执行文件(如javac和java),lib目录下的类库,doc目录下的API文档,以及conf目录下的配置文件等。...
WALA是一个强大的分析框架,可以用于Java和其他JVM语言的程序。它可以帮助你理解代码结构,例如找出类之间的调用链,从而识别可能的复制和复制相关的功能。通过分析这些类的调用依赖,你可以评估服务的可靠性、性能...
在云计算方面,JVM为安全的运行多个程序提供多租户功能,及每个线程/线程组之间的资源处理和管理。Java 9:将新增一些语言上的特性,包括大数据的支持、64位的大数组备份。异种计算模型新增了Java语言对GPU的支持、...
在Java编程语言中,多线程是实现并发执行任务的关键机制。本文将全面总结Java中的线程概念,以及如何创建和管理线程。线程允许程序中的不同部分同时执行,从而提高了程序的效率和响应性。 Java提供了两种创建线程的...