jetbrain kotlin试用笔记

笔记

试用了一下kotlin语言,挺有意思的:一个基于jvm的语言,能够在jdk6上享用jdk8的lambda、deferred method、stream语法、C#的delegate、类scala语法和类型推断、ruby的code block 等特性。



以前弄过一段时间的scala,实在无法忍受scala的编译速度和一次编写到处编译的特性(字节码不兼容)、天书般的APIdoc。不谈语法,为了一些特性,scala把java的集合类都重新实现了一遍----能不用jdk原生的api就不用,这和kotlin刚好相反,基本上是基于jdk的api通过语法糖来做扩展,所以kotlin说自己是简化版的scala,学习门槛也更低了。


kotlin可以认为是一个不啰嗦的java,从编译成javascript的歪路回到重点支持android mobile开发,现在已经被誉为andorid的swift。支持编译成javascript之所以被认为邪路,想想TypeScript、coffeescript、Dartjs、Haxe,kotlin的这个方向对java程序员来说只是一个鸡肋。服务器端有scala、groovy,而且kotlin团队不愿意与eclipse xtend团队合作,本以为kotlin会逐渐泯然于众多jvm语言中,没想到别出心裁切入android移动开发,现在已经被誉为andorid的swift,相对于java,kotlin提供的语法糖至少能提高20%的效率。


javaer在用jdk8之前,特别是android开发同学应该试试kotlin。我用kotlin开发了一个阿里云oss上传工具,整个过程比较顺畅。


kotlin的语法点:

https://realm.io/cn/news/droidcon-michael-pardo-kotlin/

官方example:

http://try.kotlinlang.org/

知乎上的评论

http://www.zhihu.com/question/25289041


和Java代码互相调用之后在jvm上执行,需要进行maven配置:


            org.jetbrains.kotlin
            kotlin-stdlib
            ${kotlin.version}
        

                kotlin-maven-plugin
                org.jetbrains.kotlin
                ${kotlin.version}


                
                
                    
                        compile
                        process-sources
                        
                            compile
                        
                    
                    
                        test-compile
                        process-test-sources
                        
                            test-compile
                        
                    
                
            

打包成可执行文件:


                maven-assembly-plugin
                2.4
                  
                    
                        make-jar
                        
                        package
                        
                        
                            single
                            
                        
                    
                
                
                    cdnoss
                    
                        
                            com.alipay.dpc.alisis.CdnOssKt
                            
                        
                    

                    
                        jar-with-dependencies
                    
                    ./
                    
                
            


你可能感兴趣的:(J2SE,kotlin)