Kotlin开发springboot项目(一)
Kotlin开发springboot项目(一)
Kotlin语言与Xtend语言有很多相似之处
为什么会存在这么多JVM语言?
现存的语言提供了太过受限制的功能,要不就是功能太过繁杂,导致语言的臃肿和复杂。
Rebel Labs的报道了概览了Java 8,Scala,Kotlin,Ceylon,Xtend,Groovy,Clojure和Fantom。但是如此多的JVM语言可供选择,我们如何会只看中这8种选择?
最开始只存在Java,它是用于在JVM上编程的唯一选择。但是这个行业很早就满足了对在JVM上面编程的更多和潜在的选择需求。在脚本领域首先出现了Jython,JVM的一种Python实现,还有Rhino和JavaScript的JVM引擎,它们出现在1997年,跟着就是2000年的BeanShell和2011年的JRuby。
由于对于动态定制应用程序的需求,在那时脚本设施的需求很旺盛。如今,像Oracle WebLogic和IBM WebSphere这些应用服务器都使用Jython脚本来执行自动化操作,而Rhino也被绑定在Java 6上面,使得JavaScript成了JVM上的一等公民。
然而,脚本设施不是唯一一个让基于JVM的可选编程语言滋生的因素。归因于Java的向后兼容性原则,为了提供一些Java或者它的标准库没有提供的新颖特性,可选语言开始出现了。Scala和Groovy就是最先提供了一些超越了Java的成功项目.
我们可以观察到一种有趣的现象:大部分新晋的编程语言都利用了静态类型。使用Scala,Ceylon,Xtend,Kotlin和Java本身的开发者都依赖于在编译时验证目标类型。Fantom在动态和静态类型之间找到黄金的平衡中点,而Groovy,尽管一开始是一种动态语言,但是如今也在其2012年的2.0发行版中也开始加入编译时的静态类型检查了。Clojure——有点Lisp的味道——是坚持使用动态类型,但唯一还收到合理拥泵的JVM编程语言,然而一些在企业的大型团队中工作的开发者择则认为这会是Clojure的一个缺陷。
运行在JVM上的新的编程语言,已经有从定制化应用程序的动态脚本语言,向着一般意义的静态的应用程序开发语言改变的趋势。
Java仍然是最常使用在JVM上的编程语言,而随着Java 8发行版的到来,Java将尝试在语法美学和多核编程方面,跟上时代的潮流。
Kotlin 是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发。我们首先要面对的问题就是其他IDE对它的支持。目前还有多数人是Eclipse用户,切换到IntelliJ IDEA环境总是困难的,但如果你想用Kotlin环境进行开发,就需要安装相关插件。安装Kotlin插件式相当容易的,但尴尬的是没对其他IDE进行支持。2017年安卓大会,Kotlin成为了Android官方语言。
Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。
Xtend 是一种静态类型编程语言,它可以被翻译成可读的Java源代码。它支持现存的Java风格,而且被设计得比Java本身现存的Java API工作得更好。Xtend是一个构建实用抽象的强大和灵活的工具,并且配备了先进的EclipseIDE集成。因为Xtend和Xtent都是Eclipse项目。现在有很好Xtend的Eclipse IDE开发工具,它是由Xtext语言写成的。但是如果你选择了其他的IDE,如 IntelliJ IDEA那还是用Kotlin 吧。
Kotlin,类似 Xtend 一样,旨在提供一种更好的 Java 而非重建整个新平台。这两种语言都向下编译为字节码(虽然 Xtend 是首先转换成相应的 Java 代码,再让 Java 编译器完成繁重的工作),而且两者都引入了函数和扩展函数(在某个有限范围内静态地增加一个新方法到某个已有类型的能力)。Xtend 是基于 Eclipse 的,而 Kotlin 是基于 IntelliJ 的,两者都提供无界面构建。能够首先演变到其他 IDE 的语言有可能成为最后的赢家。
结论就是:Kotlin用IDEA ,Xtend 用eclipse。
如何配置Kotlin
Android studio是需要安装插件的,而IntellJ并不需要,因为大多数开发者用的Android studio
入门教程:
https://www.runoob.com/kotlin/kotlin-tutorial.html
在线工具:
https://c.runoob.com/compile/2960
一、IDEA中安装kotlin插件
重启IDEA。
二、创建Helloworld工程
三、测试
写一个打印"Hello, World!"的代码,鼠标点击编辑器左上角 kotlin图标并选择 Run 'AppKt'来运行代码
println方法点进去,发现其实就是对java原生的System.out.println() 方法的封装。
Kotlin开发springboot项目(一)的更多相关文章
- Kotlin开发springboot项目(三)
Kotlin开发springboot项目(三) 在线工具 https://www.sojson.com IDEA中Kotlin生成可执行文件1,项目使用Gradle构建2,在model的build.g ...
- Kotlin开发springboot项目(二)
Kotlin开发springboot项目(二) 中文学习网站: https://www.kotlincn.net/ 研究一下kotlin的demo: https://github.com/JetBra ...
- Maven多模块开发SpringBoot项目自定义第三方依赖版本
参考:官方文档 - Build System of Maven https://blog.didispace.com/books/spring-boot-reference/IX. 'How-to' ...
- 用Kotlin开发Android应用(I):介绍
关于Kotlin,网上已有一些介绍的文章,包括Antonio Leiva的这组blog翻译稿.不过,我还是想跟进它们.翻译它们,以锻炼自己的英文翻译.各位高手发现问题,请及时“拍砖”. 原文题目:Ko ...
- spring-boot项目建立
使用idea来开发spring-boot项目,对于community版本的idea,由于没有spring-boot插件,所有对于开发spring-boot的web项目来说不是很方便,所以安装Ultim ...
- SpringBoot项目创建及入门基础
一:快速构建springboot项目 进入https://start.spring.io/,选择相应的springboot版本,包名,项目名,依赖 图中选择web,利用tomcat服务器进行开发 sp ...
- 如何SpringBoot项目改为外置Tomcat启动
正常情况下,我们开发 SpringBoot 项目,由于内置了Tomcat,所以项目可以直接启动,部署到服务器的时候,直接打成 jar 包,就可以运行了 (使用内置 Tomcat 的话,可以在 appl ...
- SpringBoot项目的几种创建方式,启动、和访问
最常用的4种方式,但除了这些以外,还有其他方式: ①在线创建 ②STS构建 ③Intell Idea内置构建工具 ④Maven创建 STS官网:https://start.spring.io .S ...
- 用Kotlin开发Android应用(II):创建新项目
这是关于Kotlin的第二篇.各位高手发现问题,请继续“拍砖”. 原文标题:Kotlin for Android(II): Create a new project 原文链接:http://anton ...
随机推荐
- (转)Tomcat与Jetty区别
一.简介 Tomcat: Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache.Sun和其他一些公司及个人共 ...
- 微信小程序使用npm安装第三方库
微信小程序在 2.2.1 版本后增加了对 npm 包加载的支持,使得小程序支持使用 npm 安装第三方包. 之前在微信开发者工具选择“构建npm”会报错“没找到node_modules”目录”,这是因 ...
- [LeetCode] 76. Minimum Window Substring 最小窗口子串
Given a string S and a string T, find the minimum window in S which will contain all the characters ...
- OAuth2、OpenID、SMAL 对比
对比点 OAuth2.0 OpenID SMAL2 票据格式 JSON or SAML2 JSON XML 支持授权 Yes Yes Yes 支持认证 “伪认证” Yes Yes 创建年份 2005 ...
- Django文件上传【单个/多个图片上传】
准备工作 python:3.6.8 django:2.2.1 新建django项目 确定项目名称.使用的虚拟环境[当然这个也可以后期修改].app的名称 创建成功,选择在新的窗口中打开 图片上传 修改 ...
- linux shell根据端口返回进程号杀死进程的方法
linux shell根据端口返回进程号杀死进程的方法<pre>kill `lsof -t -i:9501`</pre>这个就是杀死9501端口的进程号
- 记一次ssh.exec_command(cmd)执行后读取结果为空
# 连接跳板机,执行插标签 def con_tmp_machine(mobile_phoneno, myguid): keyfile = os.path.expanduser('/Users/kusy ...
- 【More Effective C++ 条款5】对定制的“类型转换函数”保持警觉
1)C++允许内置数据类型之间进行隐式转换,比如char转int,int转double,对于内置数据类型的转换有详细的规则,但不管怎么样,这些都是语言提供的,相对安全,而且我们无法更改 对于自定义类的 ...
- Prometheus 一条告警的触发流程、等待时间
Prometheus 一条告警的触发流程.等待时间 报警处理流程如下:1. Prometheus Server监控目标主机上暴露的http接口(这里假设接口A),通过上述Promethes配置的'sc ...
- 《跟唐老师学习云网络》 -第4篇 router路咋走啊【华为云技术分享】
[摘要] 好了,到这里至少你应该能看懂路由表信息了.给你一个目的IP,你也应该知道它会使用哪一条路由了. 路怎么走就看骚年你了~ 一.路由 其实关于网络大家遇到最多的问题就是:卧 槽,为什么不通啊! ...