第一次相识

最近看了很多介绍kotlin的文章。怀着好奇心改造了之前用java写的一个工具jar包。功能不是很复杂,类也只有几个,却足足写3个小时。期间一边看教程,一边写,有一种找回原来第一次写代码的感觉。除了使用高阶用法,一些基本语法算是掌握,在这里谈一谈自己的使用感受。(注:以下都是针对服务端)

文档

首先说一下【kotlin文档】,我自己看下来除了单词问题,几乎没有任何障碍。从基本类型、对象、函数到最后的打包工具配置(maven gradle 甚至ant)。不需要全部通读一次在开始使用。有什么问题通过目录就能很快找到对应的内容。

理念很好

在看kotlin的教程,很多地方都说到了“interoperable with java”。从出生就占到了一个很好的位置。意味着:你可以在已有的java工程里面写kotlin代码,并且之间可以互相调用。我觉得在现有工程中开始写kotlin比较好的地方就是单元测试。可以先从单元测试开始练练手,学习基本语法。或者将一些小的jar包改造为kotlin来编写。当然,如果是使用IntelliJ IDEA更是可以一键转换java为kotlin,毕竟是亲儿子(感觉转换的比我自己写得还好),所以说从java转kotlin比其他任何语言的门槛都要低。

Spring 支持

在简介中一开始,就提到了Spring在5.0中针对kotlin新增了一些【特性】,虽然现在spring5.0Release还没正式出来,对于几乎是一统天下的Spring,kotlin的前途可谓是一片光明。

与java兼容是把双刃剑

Kotlin的设计是考虑到Java互操作性的,但是感觉互相操作很有问题。一是kotlin现在还没有普及,如果以后接手你的代码的人不会kotlin怎么办。二是 jdk版本问题,现在kotlin 1.1版本要求jdk1.8,对于大多数系统(特别是大公司),新一点估计1.7,老的估计1.6及其之前。

编写习惯

绝大多数人在长时间使用一种编程语言进行编码后,多多少少会被那种语言的思想所固话。就算你学会了其他语言,肯定也会被java的编码习惯影响。(之前写过一些python代码,一看还java风格)。不是说java的风格不好,而是这样会牺牲一些其他语言的特性,也许在某些人眼里看起来这些特性完全没有意义,甚至会增加代码的阅读难度。但是既然出现,是不是在某些地方使用会达到更好的效果呢。你是否能接受kotlin的风格。

还需要时间

在android开发上有google力挺,相信以后会越来越多的android开发使用kotlin。服务端这边可能还需要更长的时间。前面说过使用广度,如果你们组就你会kotlin,code review怎么办,项目交接怎么办。再退一步将,就算你们组都用kotlin,但是老系统敢改造吗,混用不怕出问题吗。

小节

以上就是本人使用kotlin的初步认识,就个人情感而言,我还是满喜欢这门语言的,首先名字就好听...但还是最后说的,还需要时间来沉淀。ps,默默的把下午用kotlin写的代码用java重写。后面会整理一些kotlin的文档,多数来自kotlin官方文档内容。

kotlin学习-初次见面的更多相关文章

  1. kotlin 学习感受

    目录 kotlin 学习感受 特点 优点 屎一样的缺点 总结 kotlin 学习感受 直白的说..很不好,像屎一样,本来对此抱有很大的期望和好感度,但经过一整天的学习,完全失望了,这门语言中间有各种的 ...

  2. Kotlin 学习笔记(一)

    (Kotlin 学习笔记的文档结构基本按照 Java 核心技术一书的目录排列) 基本程序设计结构 数据类型 数字 类型 宽度 Double 64 Float 32 Long 64 Int 32 Sho ...

  3. Kotlin学习笔记(9)- 数据类

    系列文章全部为本人的学习笔记,若有任何不妥之处,随时欢迎拍砖指正.如果你觉得我的文章对你有用,欢迎关注我,我们一起学习进步! Kotlin学习笔记(1)- 环境配置 Kotlin学习笔记(2)- 空安 ...

  4. Kotlin学习快速入门(7)——扩展的妙用

    原文地址: Kotlin学习快速入门(7)--扩展的妙用 - Stars-One的杂货小窝 之前也模模糊糊地在用这个功能,也是十分方便,可以不用继承,快速给某个类增加新的方法,本篇便是来讲解下Kotl ...

  5. Kotlin学习第一课:从对比Java开始

    1. 介绍 今年初,甲骨文再次对谷歌所谓的安卓侵权使用Java提起诉讼,要求后者赔偿高达90亿美元.随后便传出谷歌因此计划将主力语言切换到苹果主导的Swift,不过这事后来没了跟进. 但谷歌在这两天的 ...

  6. kotlin学习笔记-异常好玩的list集合总结

    不积跬步无以至千里,不积小流无以成江海 先看看Kotlin中for循环的遍历 fun testList(){ var StringVal = "12_12_13_15_a_b_c_d_yu_ ...

  7. kotlin学习(二)——类

    Kotlin中的类遵循一个简单的结构.尽管与Java有一点细微的差别.你可以使用try.kotlinlang.org在不需要一个真正的项目和不需要部署到机器的前提下来测试一些简单的代码范例. 1. 怎 ...

  8. kotlin学习三:初步认识kotlin(第二篇)

    上一章熟悉了kotlin基本的变量和函数声明,并明白了如何调用函数.本章再来看一些其他有用的东西 包括: 1. kotlin代码组织结构 2. when语法 3. 循环迭代语法 4. try表达式 1 ...

  9. kotlin学习一:kotlin简介

    kotlin是JetBrains公司出品的基于JVM的语言,和其他JVM语言一样,目的在于提供比JAVA更加简介的语法, 同时提供函数式编程,不需要再像JAVA一样所有的一切都要依托于类. kotli ...

随机推荐

  1. ubuntu更换开机动画

    ubuntu更换启动动画 作为一个个用linux作为桌面环境,并且完全替代了windows的来说,怎么折腾好看,是一个重要的问题,而Ubuntu的开机动画,那紫色的画面,ubuntu那几个大字,实在丑 ...

  2. 【DevOps】团队敏捷开发系列--开山篇

    随着软件发布迭代的频率越来越高,传统的「瀑布型」(开发-测试-发布)模式已经不能满足快速交付的需求.2009 年左右 DevOps 应运而生,开发运维一体化,通过自动化工具与流程让整个软件开发构建.测 ...

  3. 解决PL/SQL Developer 连接oracle 11g 64位中的问题

    1.错误1:Initialization error could not initialize 电脑上原本就装有oracle 11g 64位,但是PL/SQL却怎么也连接不上,报出" Ini ...

  4. IDEA配置jdk

    提前安装jdk,配置环境变量 一.配置jdk 1.依次点开File -->Project Structure,点击左侧标签页,点击SDKs 2.点击+号,选SDK 3.按照这个顺序,可以配置多个 ...

  5. python列表的操作

    1.列表的增加: li=[] li.append("hha") print(li) li=[] li.append("hha") print(li) li.in ...

  6. 项目(1)----用户信息管理系统(4)---(struts开发)

    项目开发---实现注册功能 接下就要用到Struts框架了,再用之前先配置好有关操作 1.在web.xml设置前端配置器 2.在src下新建struts.xml 3.写好首页jsp: 4.配置好str ...

  7. 消息服务框架(MSF)应用实例之分布式事务三阶段提交协议的实现

    一,分布式事务简介 在当前互联网,大数据和人工智能的热潮中,传统企业也受到这一潮流的冲击,纷纷响应国家“互联网+”的战略号召,企业开始将越来越多的应用从公司内网迁移到云端和移动端,或者将之前孤立的IT ...

  8. 关于table布局的推荐使用原因

    一.关于table布局的性能 1.table标签比其他html标签占用更多字节,导致下载时间延迟,占用服务器更多的流量资源: 2.table会阻碍浏览器渲染引擎的渲染顺序,导致页面生成的延迟,造成不良 ...

  9. html5 canvas画布尺寸与显示尺寸

    我在用canvas制作画板时,遇到了绘图位置和鼠标位置不一致的问题,所以今天查阅了一下资料,解决了这个问题. canvas绘图原理 在Canvas元素的内部存在一个名为2d渲染环境(2d rederi ...

  10. Python 项目实践三(Web应用程序)第二篇

    接着上节的继续学习,使用Django创建网页的过程通常分三个阶段:定义URL.编写视图和编写模板.首先,你必须定义URL模式,每个URL都被映射到特定的视图--视图函数获取并处理网页所需的数据.视图函 ...