写点什么

JetBrains 推出新 JVM 语言 Kotlin

  • 2011-07-30
  • 本文字数:1008 字

    阅读完需:约 3 分钟

此前,人们所知的 Kotlin 是圣. 彼得堡以西三公里外的一座俄罗斯小岛。而近期,捷克公司 JetBrains 推出一款运行在 JVM(Java 虚拟机)上的编程语言,也叫 Kotlin 。开发者称,设计它的目的是避免 Java 语言编程中的一些难题。

JetBrains 的主要产品包括 Java IDE、PHP、Objective-C、Ruby 和 MPS。而现在 Kotlin 项目将他们带入一片未知领域。

该语言开发者们强调,其背后的主要设计目标是:

据 JetBrains 称,Kotlin 是一门静态类型、面向对象、基于 JVM、旨在服务与行业、避免由 Java 的向后兼容性引起的常见问题及挑战的编程语言。

比如,由于类型系统控制了空指针引用,所以 Kotlin 不需要空指针异常(Null Pointer Exception)。Kotlin 中没有基础类型,数组是定长的,泛型(generic)是安全的,即便运行时也是安全的。此外,该语言支持闭包,还可通过内联进行优化。不过,它不支持检查异常(checked exceptions),许多语言设计者认为这是它的瑕疵。不论如何,重要的是 Java 和 Kotlin 之间的互操作性:Kotlin 可以调用 Java,反之亦可。

以下代码片段显示的是用 Kotlin 实现的一个简单的面向对象“Hello World”程序。 JetBrains 网站上还有更多例程。

复制代码
<span>class</span> Greeter(name : String) {
fun greet() {
println(<span>"Hello, ${name}"</span>);
}
}
fun main(args : Array<String>) {
Greeter(args[0]).greet()
}

许多语言都认为自己可以替代 Java。具体来说,有 Scala、Fantom、Groovy、Gosu、和 Ceylon,它们批次自然地互相竞争者,而 Scala 和 Groovy 则最为流行。

现在,多个讨论组都在比较 Kotlin 和其他语言,有时还非常激烈,比如 Fantom 网站和 Scala 用户组的讨论。

有多少程序员会考虑使用 Kotlin 来进行开发还需要观察。不过,许多开发者的反应已经证明了 Kotlin 已进入下一代语言的有力竞争者之列。

据报道,公开 Beta 版在 2011 年底就可用了,到时在 Apache 2 许可下会有一个开源编译器和 IntelliJ IDEA 插件。虽然该编译器最初生成的是 Java 字节码,到那时会有一个 Kotlin 版本,它生成 JavaScript。


查看英文原文: JetBrains introduces the new JVM language Kotlin

2011-07-30 11:264819
用户头像

发布了 184 篇内容, 共 80.7 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

Go 专栏|错误处理:defer,panic 和 recover

AlwaysBeta

Go 语言

Electron团队为什么要干掉remote模块

刘晓伦

Electron Node

架构学习模块一

George

Go 专栏|函数那些事

AlwaysBeta

Go 语言

Go 专栏|接口 interface

AlwaysBeta

Go 语言

【报名】飞桨中国行丨企业零门槛AI创新应用-智能制造专场

百度大脑

人工智能

浪潮云说丨上云迁移——快,准,稳!

云计算

API与ESB 、ServiceMesh、微服务究竟关系如何?

BoCloud博云

云管理

Go 专栏|复合数据类型:字典 map 和 结构体 struct

AlwaysBeta

Go 语言

在线JSON转JAVA工具

入门小站

工具

netty系列之:搭建自己的下载文件服务器

程序那些事

Java Netty io nio 程序那些事

祝贺 StreamNative 工程师张勇成功跻身 Apache BookKeeper Committer

Apache Pulsar

bookKeeper Apache Pulsar StreamNative

国产接口管理工具APIPOST中的常见设置项

Proud lion

大前端 后端 Postman 开发工具 接口文档

Go 专栏|说说方法

AlwaysBeta

Go 语言

Linux之lastlog命令

入门小站

Linux

从一个并发异常问题引起的想法

卢卡多多

并发编程 9月日更

多线程知识体系01-线程池源码阅读讲解-Executor

小马哥

多线程 高并发 源码阅读 源码剖析 日更

如何设计企业特色的数字化转型架构?

博文视点Broadview

深入分析3种线程池执行任务的逻辑方法

华为云开发者联盟

Java 线程 线程池 ThreadPoolExecutor类

模块(二)如何设计架构

我是一只小小鸟

升级mysql-connector-java-8.x踩坑纪实

小江

Java MySQL 时间戳 服务器时区 夏令时

聊聊什么样的代码是可读性强的代码?

卢卡多多

代码质量 代码 9月日更

就靠这一篇文章,我就弄懂了 Python Django 的 django-admin 命令行工具集

梦想橡皮擦

9月日更

Go 专栏|流程控制,一网打尽

AlwaysBeta

Go 语言

【Vue2.x 源码学习】第四十三篇 - 组件部分 - 组件相关流程总结

Brave

源码 vue2 9月日更

【Flutter 专题】58 图解 Flutter 嵌入原生 AndroidView 小尝试

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

Vue进阶(九十):过滤器

No Silver Bullet

Vue 9月日更

【LeetCode】 二叉树中和为某一值的路径Java题解

Albert

算法 LeetCode 9月日更

❤️用武侠小说的形式来阅读LinkedList的源码,绝了!

沉默王二

Java

华为云PB级数据库GaussDB(for Redis)揭秘:如何搞定推荐系统存储难题

华为云开发者联盟

数据库 推荐系统 存储 华为云 GaussDB(for Redis)

柯基数据通过Rainbond完成云原生改造,实现离线持续交付客户

北京好雨科技有限公司

云原生 需求落地 离线部署 可持续交付

JetBrains推出新JVM语言Kotlin_Java_Michael Stal_InfoQ精选文章