我看 Kotlin

前几天,Kotlin 官方在旧金山举办了第一届的 KotlinConf 大会,大会上公布了 Kotlin 相关的一些进展,其中,宣布了一条重大消息:Kotlin 支持 iOS 和 Web 开发。

一时间,各大 IT 媒体的头条类似「重磅」、「重大消息」等均被 Kotlin 占领,再加上 Kotlin 很早就支持 Android,很多程序员们也大呼,学完 Kotlin 可以直接全栈了,但是,我不得要给这部分人泼盆冷水。

从 JetBrains 的角度,可以理解他们的策略,他们当然希望 Kotlin 可以跨平台发展,这样可以覆盖的面更广,一旦成功之后,将会极大的提升开发效率,减少企业的开发成本,也会让越来越多的领域接受使用 Kotlin。

但是这条路很难走,超级难。要知道以跨平台著称的 Java 直到现在,也没法完全的跨平台,Java 的跨平台也只限于 PC 端,无论你是 Windows、Mac 还是 Linux 都可以直接运行 Java 程序,现在虽然 Java 也可以用来开发 Android,但是涉及到移动端,这不是真正的跨平台,Android 开发只是使用了 Java 语言而已,其内在的底层架构和开发方式跟传统的 Java 程序开发差异很大。

移动互联网时代,其实很多编程语言都在探索跨平台开发,可能有些人不知道,Ruby 领域有个产品叫做 RubyMotion,这个产品可以让你使用 Ruby 语言开发原生 Android、iOS 以及 OSX 应用,而且得到了 Ruby 创始人 Matz 的支持,但是 RubyMotion 自 2012 年创立以来,至今 5 年时间,没有多少人了解使用这款产品,甚至如果我不提,我估计不少人甚至听都没听过,现如今使用 Ruby 编程语言的大部分开发者还都是用 Rails 来进行 Web 开发,因为 Rails 这个框架开发 Web 最大的优势是用你喜欢的 Ruby 语言可以很快速的开发 Web 网站。

前两年,Facebook 推出了 React Native,旨在解决移动端跨平台的问题,一经推出,引起无数开发者的关注与支持,然而即使这种「富二代」的跨平台框架,从项目开源到现在至今也有 2 年多时间,而背后 Facebook 花费的研究时间更是远超 2 年,目前 React Native 依然还不成熟,还存在各种各样的问题,现今的 App 开发主流仍然是原生开发,甚至很长一段时间依然会是这样。

Kotlin 的跨平台梦是挺好的,做成了确实牛逼,但是往往理想终究抵不住现实,一旦 Kotlin 定位跨平台策略,那么所涉及的技术复杂度、工作重心都会发生变化,更何况,想要跨平台到 iOS,是很难得到苹果的支持的,要知道苹果有个「亲儿子」Swift,在对待 Kotlin 的态度上是断不会像 Google 那样的开放,更何况 Swift 也一波三折,连 Swift 创始人都远走他乡,足以说明,一门新的语言让开发者拥抱有多么困难。

所以,从我个人的角度,因为 Google 与 Oracle Java 的版权问题,Google 对 Kotlin 的态度非常支持,在今年的 Google IO 2017 大会上明确宣布 Kotlin 成为 Android 开发的官方语言,最新发布的 Android Studio 3.0 更是内置了对 Kotlin 的支持,Google 的支持加上 Kotlin 本身语法的优势,我很看好 Kotlin 在 Android 领域的发展,我认为 Kotlin 官方应该抓住机会,先从 Android 领域着手,把主要精力放在 Android 开发上,争取让大部分 Android 开发者接受、使用 Kotlin,之后再慢慢的扩散到其他领域,如果一开始精力就放在跨平台上,结果可能会适得其反。

我之前写过一些未来很有潜力的编程语言,很多读者问我怎么没提到 Kotlin?虽然 Kotlin 语言可以做很多事,比如写脚本、开发 Android、与 js 交互等,但我个人觉得 Kotlin 目前的机会还在 Android 上,Google 的支持以及大量的 Android 开发者的基数,如果 Kotlin 能抓住机会,抓住众多 Android 开发者的用户,那么才算是有潜力,在其他领域的应用,目前来看很难让别的开发者接受并使用。

当然了,Kotlin 官方也可能只是拿跨平台造个势而已,但是无论是造势还是真的下注在跨平台,这都是一个漫长而艰难的道路,如果是出于兴趣,想多了解下 Kotlin,那么是支持的,而那些抱着学好 Kotlin 就可以变身全栈工程师的开发者们,建议还是洗洗睡吧。

PS:想要学习 Kotlin 的可以在公众号「googdev」回复关键字「kotlin」 获取相关学习资料,觉得写的不错可以点赞、帮转下,谢谢。

时间: 2024-11-08 23:11:22

我看 Kotlin的相关文章

浅谈Kotlin(三):类

浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型.基本语法.代码风格 前言: 已经学习了前两篇文章,对Kotlin有了一个基本的认识,往后的文章开始深入介绍Kotlin的实战使用. 本篇介绍Kotlin中类的使用. 一.表现形式 首先看一段Java中定义类的形式,定义三个属性,每一个属性对应一个get.set方法,有一个toString()方法 /* * @author xqx * @emil [email protected] * create

[email protected] 在Android studio 中配置Kotlin

在Android项目中配置Kotlin 官方文档讲了如何一步步安装Kotlin插件,并使用插件在Android项目中自动修改Gradle文件来添加对Kotlin的支持.我不建议大家这么做,因为这样自动完成的结果可能并不完美,即使修改后的Gradle文件工作正常,也会打乱Android项目中Gradle文件的一般形式. 说实话,我一直不喜欢有些Android Studio插件直接修改Android build文件,因为经常搞得很乱,我又得一点一点清理直到符合我的风格.Gradle构建文件也是源代码

为什么我要改用 Kotlin

写在前面的话,作为一个不熬夜的人,一觉醒来发现Kotlin成为了Android的官方语言,可谓是大喜过望.为了趁热打铁,我决定提前三天放出原定本周日Release的文章.希望能及时让大家了解一下Kotlin. 相信很多开发人员,尤其是Android开发者都会或多或少听说过Kotlin,当然如果没有听过或者不熟悉也没有关系.因为本篇文章以及博客后期的内容会涉及到很多关于Kotlin的知识分享. 在写这篇文章前的一个多月,Flipboard中国的Android项目确定了正式将Kotlin作为项目开发

Kotlin入门第三课:数据类型

前文链接: Kotlin学习第一课:从对比Java开始 Kotlin入门第二课:集合操作 初次尝试用Kotlin实现Android项目 Kotlin的数据类型与Java类似,因此这篇文章主要看Kotlin的几点改变(改进). 1.内置数据类型 Double--64位    Float--32位 Long--64位        Int--32位 Short--16位       Byte--8位 Kotlin中字符型不再是基础类型,下面会进行介绍. 1.1 类型名称 类型只有首字母大写1种名称,

对kotlin和java中的synchronized的浅谈

synchronized在java中是一个关键字,但是在kotlin中是一个内联函数.假如分别在java和kotlin代码锁住同一个对象,会发生什么呢,今天写了代码试了试.首先定义people类 12345678910111213 public class { public void () { for (int i = 0; i < 10; i ++) { try { Thread.sleep(50); } catch (InterruptedException e) { e.printStac

Kotlin---------------什么是top-level?

在看Kotlin官方文档中,多次出现top-level,什么是top-level?怎么样申明top-level? 在Java中所有的申明都是要依赖于类而存在,包括main函数.在Java中写一个main函数,你得先有一个类 public class Main { public static void main(String[] args) { //TODO } } 所有变量申明,函数定义,都是要在类中定义. 然而在Kotlin中就变得不一样了,main函数必须是写在类外面的,在idea中创建一个

eclipse再见,android studio 新手入门教程(二)项目的导入

上一篇博客介绍了AS的一些常用设置方法,当工具调教妥当后,自然就要开始项目的开发啦.从零开始新建一个项目,这个简单,不必多说,这篇博客会分享我从旧平台eclipse导入项目到AS的过程,以及遇到的一些问题并如何解决.开篇先粗略的提一些需要注意的地方. 结构目录 和eclipse不同,在android 视图下的项目目录分为java,res和manifests. manifests目录存放清单文件,不必多说. java目录会默认生成三个文件夹,其中test为在本机执行单元测试代码的目录, andro

想要了解Kotlin,看这个就够了

在这本书中,我会使用Kotlin作为主要的语言来开发一个android应用.方式是通过开发一个应用来学习这门语言,而不是根据传统的结构来学习.我会在感兴趣的点停下来通过与Java1.7对比的方式讲讲Kotlin的一些概念和特性.用这种方法你就能知道它们的不同之处,并且知道哪部分语言特性可以让你提高你的工作效率. 这本书并不是一本语言参考书,但它是一个Android开发者去学习Kotlin并且使用在自己项目中的一个工具.我会通过使用一些语言特性和有趣的工具和库来解决很多我们在日常生活当中都会遇到的

了解Kotlin,看这个就够了

在这本书中,我会使用Kotlin作为主要的语言来开发一个android应用.方式是通过开发一个应用来学习这门语言,而不是根据传统的结构来学习.我会在感兴趣的点停下来通过与Java1.7对比的方式讲讲Kotlin的一些概念和特性.用这种方法你就能知道它们的不同之处,并且知道哪部分语言特性可以让你提高你的工作效率. 这本书并不是一本语言参考书,但它是一个Android开发者去学习Kotlin并且使用在自己项目中的一个工具.我会通过使用一些语言特性和有趣的工具和库来解决很多我们在日常生活当中都会遇到的