最近看到一则科技新闻, 大致内容是google将kotlin语言作为android应用开发的一级语言, 与java并驾齐驱, 这是一个开发界的大事件大新闻, 连google的亲儿子go语言也没有这种待遇, 而kotlin貌似名不见经传,之前根本连听都没听说过。 这让我对kotlin产生了极大的好奇心,这种能让得到google如此宠幸的语言到底是何方神圣?

在网上查了相关资源后, 对kotlin有了粗略的了解。 kotlin是一种jvm平台语言, kotlin编译器会将kotlin代码转换成jvm字符码,因此它和java在本质上是相同的,都可以在java虚拟机上运行。

kotlin非常的年轻, 第一个版本是在2011年正式发布的

kotlin是jetbrains公司开发的语言, JB公司驰名世界,生产的IDE雄霸天下, 和宇宙第一的visual studio也没有正面冲突, 因此除非是.net系程序员,否则对这间公司不会陌生。

kotlin有一个非常可爱的特性, 就是和Java不分彼此, 两种语言的代码可以混编, 同时在一个项目中使用。 在我之前的认知中,开发程序代码混编, .net平台应该在这方面实践处于领导地位, 我们可以用f#写一个模块, 编译成.dll组件, 然后在c#项目中调用, 这也算一种代码混编的形式,但却不能在一个project中即写c#代码又写vb或f#代码。 而kotlin和java却没有这种局限性, 只要不是天真的把混编理解为可以将kotlin代码和java代码混合写在一个文件当中,  那么不管你怎么折腾都没有问题。 你可以用java写一个类,让kotlin继承; 你可以用kotlin写一个函数 ,让java调用; 反正这两种代码的交互完全是无缝的。

我在通过网络资料大致浏览了一下语法,有兴趣的同学也可以看看

https://github.com/huanglizhuo/kotlin-in-chinese

经过初步了解, 可以确定kotlin的语法非常惊艳, 和java完全是两个极端。  相信只要不是从1995年穿越过来的程序员,肯定会觉得现在的 java并不美丽。人家c#当初也和java一副德行, 但是人家求上进啊, 每一个版本都添加各种符合时代潮流的先进语法特性,现在的c# 7.0各种牛逼 ,虽然说c#是模仿java生长起来的,青出于蓝也在情理之中, 但从现在两者间的差距来看, 这尼码青的也未免太蓝了。

就拿武侠小说中的武功作个比喻, java就像是少林寺大和尚们练的绝技, 威力够大, 练的好了能在武林中杨名立万雄霸一方, 但是武功招数实在太过于朴实无华, 使将起来一板一眼, 一点潇洒飘逸夺人眼球的感觉也没有。 而像c#、f#、haskell、scala之类的语言就像是降龙十八掌、六脉神剑、凌波微步、北冥神功一样,使将出来往往是挥掌炸山头,手指放激光,不但威力奇大, 而且招式出人意料,跟少林寺那些绝技相比, 不知道高到哪去了。 显然,kotlin也属于后者。

kotlin几乎拥有所有c#有而java没有的语法特性,在某些方面可能更胜一筹。 kotlin具备很多FP的特性, 但又不像scala那样复杂难学,并且编译速度和java一样比scala快的多, 所以可以说汲取了java和scala的优点,但又摒弃它们的缺点。

语法先进这个东西, 对程序运行的本质没有任何影响 ,但对于代码的质量和开发效率却有长远的影响 , 因此kotlin这门语言拥有非常值得使用的理由, 尤其是抱上了google 的大腿以后, 前景更在一片波澜壮阔。

因此,kotlin , 等待广大开发者的临幸吧。。。

kotlin, 一种新的android平台一级开发语言的更多相关文章

  1. android平台手电筒开发源代码

    android平台手电筒开发源代码,AndroidManifest.xml文件的入口是startapp,这个文件没上传上来,大家可以自己写. 1. [代码]android 1 2 3 4 5 6 7 ...

  2. 在android平台打印C语言日志

    在android平台打印C语言日志 1.操作平台:AS2.0 2.步骤如下: 在C代码中添加如下代码: #define LOG_TAG "我的C语言日志:" #define LOG ...

  3. SaltStack介绍——SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流

    SaltStack介绍和架构解析 简介 SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位.SaltSta ...

  4. 如何看待 Kotlin 成为 Android 官方支持开发语言?

    Google IO 2017宣布了 Kotlin 会成为 Android 官方开发语言.一时间朋友圈和Android圈被各种刷屏.当然我也顺势而为发布了一篇的文章<为什么我要改用Kotlin&g ...

  5. 如何看待 Kotlin 成为 Android 官方支持开发语言

    Google IO 2017宣布了 Kotlin 会成为 Android 官方开发语言.一时间朋友圈和Android圈被各种刷屏.当然我也顺势而为发布了一篇的文章<为什么我要改用Kotlin&g ...

  6. Android平台的开发环境的发展演变

    因为之前学习java语言的时候安装过了eclipse,所以想在eclipse上搭建android平台,在参照知乎上大神们的意见,发现了AS强大的代码提示.实时预览和搜索匹配等出色功能,最后还是选择在A ...

  7. kotlin正式由Goole公布为Android的最新开发语言

    那么,现在大家开发Android的话一般来说都是直接用Java,这个没错吧(高手除外).嗯,那么用力那么久的Java,不知道大家是否有想过Java的不足,已经很多可以优化的地方呢.当然,新修订的版本中 ...

  8. 作业1.3——Android平台的开发环境的发展演变

    一开始的打算是在eclipse的基础上搭建Android平台,在ADT.SDK上兜兜转转,听过一些前车之鉴后,还是选择了Android studio.因为之前安装过eclipse,就省去了JDK下载和 ...

  9. Android平台Native开发与JNI机制详解

    源文链接: http://mysuperbaby.iteye.com/blog/915425 一个Native Method就是一个Java调用非Java代码的接口.一个Native Method是这 ...

随机推荐

  1. Android敏感词过滤主要类

    package com.tradeaider.app.utils; import com.tradeaider.app.activity.MyApplication;import java.util. ...

  2. 非负矩阵分解(1):准则函数及KL散度

    作者:桂. 时间:2017-04-06  12:29:26 链接:http://www.cnblogs.com/xingshansi/p/6672908.html 声明:欢迎被转载,不过记得注明出处哦 ...

  3. android 开机自启动实现

    App的开机自启动可以通过注册广播接收器接收开机广播来实现,具体步骤如下: 1.创建 BroadcastReceiver 的派生类,并重写 onReceive() 函数: /** * Created ...

  4. JDBC基础学习(四)—数据库事务

    一.事务基本认识 1.事务的概述      为了保证数据库中数据的一致性,数据的操作应当是离散的成组的逻辑单元.当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应当全部视 ...

  5. WCF和ASP.NET Web API在应用上的选择

    小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/shareto ...

  6. java 基础知识九 类与对象

    java  基础知识九  类与对象 1.OO(Object–Oriented )面向对象,OO方法(Object-Oriented Method,面向对象方法,面向对象的方法)是一种把面向对象的思想应 ...

  7. css form表单样式清除

    开发项目中表单常用的清楚样式: 1.改变placeholder默认字体颜色 ::-webkit-input-placeholder{color: #333;} :-moz-placeholder{co ...

  8. 简单聊聊Storm的流分组策略

    简单聊聊Storm的流分组策略 首先我要强调的是,Storm的分组策略对结果有着直接的影响,不同的分组的结果一定是不一样的.其次,不同的分组策略对资源的利用也是有着非常大的不同,本文主要讲一讲loca ...

  9. Fibonacci 数列O(logn)解法

    传统解法 提到斐波那契数列(Fibonacci Sequence),首先想到的是经典的动规(DP)算法. 时间复杂度O(n),这里空间复杂度可以优化到O(1).代码如下: int fib_n(int ...

  10. js解决苹果移动端300ms延迟的问题

    做移动端页面开发的可能会了解到,ios系统click事件会有卡顿的现象,这个问题的根源是苹果本身自带的safari有双击放大页面的功能,再次双击会返回到原始尺寸,所以在第一次点击的系统会延迟300ms ...