最近看到一则科技新闻, 大致内容是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. xml学习_上篇

    xml简介: XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据. xml小示例: /************************ ...

  2. webix .datatable 表格分页

    grid表格返回参数大都是 以下这种格式(参数名可能不一样) { data:[{...},{...} ...], count:39 } webix的参数格式为 { data:[{...},{...}, ...

  3. web service 组件

    web service 组件 基本的 web service 平台是 XML + HTTP.所有标准的 web service 使用以下组件: SOAP(简单对象访问协议) UDDI(通用描述.发现与 ...

  4. iptables初探

    一,前言 本来想起个名字叫做"小白都是怎么学习iptables的?"或者"你为什么还不了解iptables?"等等,就像简书上的头条文章,虽然被说成" ...

  5. mysql视图 更新中的问题

    mysql view 类型 mysql的视图有三种类型:merge.temptable.undefined.如果没有ALGORITHM子句,默认算法是UNDEFINED(未定义的). 算法会影响MyS ...

  6. 基于WebForm和Bootstrap的权限框架解决方案 一.PQGRID的使用

    天天打游戏也不是个事,就写一套权限框架吧,我的要求是即漂亮美观大方上档次,又要实用易用接地气. 按理来说应该先设计数据库在来秀的,但是人生就是这么随意,先搭个框子吧, 这一篇的重点是pqgrid的介绍 ...

  7. 空a标签 a标签空的情况下 IE6 IE7下点击无效

    最近做了好多网站专题页面,因为专题页面图片较多,个别banner上有1个到多个按钮,一种是用“图解img标签的usemap”的方法做链接,(图解img标签的usemap使用方法)[传送门] 另一种用则 ...

  8. iOS多线程的三种方法

    前言 在多线程简介中,我已经说明过了,为了提高界面的流畅度以及用户体验.我们务必要把耗时的操作放到别的线程中去执行,千万不要阻塞主线程.iOS中有以下3种多线程编程方法: NSThread Grand ...

  9. 规范模式-------From ABP Document

    介绍 规范模式是一种特定的软件设计模式,通过使用布尔逻辑 (维基百科)将业务规则链接在一起,可以重新组合业务规则. 在实际中,它主要用于 为实体或其他业务对象定义可重用的过滤器. 例 在本节中,我们将 ...

  10. IntelliJ-项目配置,解决no artifacts的warnings

    1.名词解释 artifacts:是maven中的一个概念,表示项目/modules如何打包,比如jar,war,war exploded,ear等打包形式, 一个项目或者说module有了artif ...