自己常用 PHP ~ golang 刚出来的时候,使用过一段时间,累不觉爱~
最近自己捣鼓一个客户端,学了一下 kotlin 感觉非常爽~
因为 kotlin 完全兼容 Java,所以在想 kotlin 做服务端开发的话,是不是靠谱?有实践过的朋友,来讨论一下~
1
fansangg 2019-10-24 23:13:25 +08:00 via iPhone
当然可以,就是没有人用,一般都是写 Android 的在用,而且也是小部分写 Android 的在用。
|
2
hyrepo 2019-10-24 23:22:11 +08:00 via iPhone
我们组目前就是,基本上是当做一个更好用的 Java 在用,反正 Java 能用的它也能用,实在不行的情况甚至可以直接在里面写 Java,何乐而不为呢?
|
3
qwertyegg 2019-10-25 03:09:12 +08:00
靠谱!所有 java 的 library 拿来就能用
语法糖比 Java 更好用 |
4
LokiSharp 2019-10-25 07:28:11 +08:00 via iPhone
不靠谱,找不到人接盘的
|
5
waising 2019-10-25 07:40:57 +08:00 via iPhone
前公司 2 年前就开始用来写服务了
|
6
sagaxu 2019-10-25 07:57:54 +08:00 via Android 10
2017 年 Q1,项目中开始引入 Kotlin
2017 年 Q2,新增文件和有变更的老文件都用 Kotlin 2017 年 Q3,核心 api 从 tomcat 往 vertx 重构 2017 年 Q4,除了自动生成,已无一行 JAVA 代码 2018 年 Q1,核心 API 全部重构到 vertx 2018 年 Q4,100% vertx,去处了 tomcat 2019 年 Q1,开始引入 Kotlin coroutine 2019 年 Q4,大部分 API 重构成了 coroutine 并非个人玩具项目,日均请求在 10 亿以上 spring ioc 对 Kotlin 有特别的特性,vertx 跟 coroutine 的集成丝般顺滑,就像在用 Go 一样。不仅仅是兼容 JAVA,而是某些 JAVA 库,一些特性只支持 Kotlin,反而 JAVA 却用不了。 |
7
by73 2019-10-25 08:21:55 +08:00 via Android
kt 还不错,
|
8
murmur 2019-10-25 08:28:54 +08:00
靠谱但是没必要,因为 spring mvc 那套太成熟了,有一点语法不爽架不住咱 ide 牛逼啊
|
9
lastpass 2019-10-25 08:32:07 +08:00 via Android
服务端使用 scala 相对 kotlin 要多。
|
10
Rwing 2019-10-25 08:33:09 +08:00
如果喜欢的 kotlin 的语法,可以尝试一下 C#
|
11
dilu 2019-10-25 08:38:22 +08:00 via Android
语言层面靠谱,生态呢?你走了谁接盘?遇到问题你搜都搜不到解决方案
|
13
liuzhedash 2019-10-25 08:51:51 +08:00
靠谱,你就把它当成 java 就行了
|
14
rockyou12 2019-10-25 08:55:31 +08:00 via Android
我自己项目和公司的小部分代码就在用,完全没问题,不过大部分项目确实也没太大必要上就是了
|
15
lbp0200 2019-10-25 09:05:58 +08:00 via iPhone
不使用 Java 的,都是异教徒
|
18
youngxhui 2019-10-25 10:06:48 +08:00 via Android
靠谱啊,spring5.2 的官方文档示例代码都是 java 和 kotlin 两种语言了
|
19
deming 2019-10-25 10:44:25 +08:00
@sagaxu 老哥,能否做点 kotlin 的分享啊,或者贴个博客,感觉你在这方面的实战经验挺丰富。我发现只要有 kotlin vertx 的话题,里边评论都有你。哈哈
|
20
lee015 2019-10-25 11:33:06 +08:00 via Android
编译出来就是 Java 代码没啥大问题,语法糖是真的香
|
21
loshine1992 2019-10-25 11:38:16 +08:00
Kotlin 是大势所趋
|
22
jjshare OP @fansangg
@hyrepo @qwertyegg @waising @sagaxu @by73 @liuzhedash @rockyou12 @youngxhui @lee015 @loshine1992 手动圈一遍,谢谢各位的观点~ @waising 老哥公司还挺先进,我是最近自己想写 app,学了一下,感觉很赞 @sagaxu 2017 年 Q2 季度到现在就没有正式工作过了,之前工作时大并发场景比较多,调研了 golang,但是当时要自己造的轮子比较多,就 nginx+lua+php 撸起来了~那个实际 kotlin 还没有听说过,也就没有调研过~ @dilu kotlin 按照官方的说法,是可以完全接盘 jvm 生态的~ @rockyou12 是的,现在自己也没有工作,偶尔想写个啥,PHP 直接撸了~想 kotlin 写服务端,就是感觉可以这么干,所以发上来问问~ @lbp0200 PHP 是最好的语言 @loshine1992 哈哈哈,kt 一统三届~ |
23
heiheidewo 2019-10-25 12:53:13 +08:00
生态上讲,应该用 golang
|
24
Kasumi20 2019-10-25 14:30:42 +08:00
|
25
qiyuey 2019-10-25 15:21:14 +08:00
讲道理是很靠谱的
|
26
huanggan 2019-10-25 16:05:50 +08:00
有什么用呢,最后还是编译成 java,就想 typescript 对于 js
|
27
lagoon 2019-10-25 16:13:52 +08:00
那个,看到许多人说走了没人接盘的问题。
但 kotlin 和 java 区别那么大吗? 我看到许多 Android 码农,都是直接项目上用 kotlin 写,都不需要去学。有疑问的地方查一下就好。 |
28
hantsy 2019-10-25 16:22:33 +08:00
Spring 5 开始对 Kotlin 官方支持,加入很多 Kotlin 特有 DSL 简化 Spring 开发,如 BeanDefitionDSL,FunctionalRouteDSL 等,这样 Spring 项目 Java 转到 Kotlin,不仅仅是简单的语言转换 。
参考: https://github.com/hantsy/angular-spring-reactive-sample/tree/master/server-kotlin |
29
hantsy 2019-10-25 16:26:35 +08:00
Spring 5.2 开始支持 Kotlin Coroutines,不过我还不熟悉,
参考: https://github.com/hantsy/spring-kotlin-coroutines-sample |
30
realkenshinji 2019-10-25 18:52:51 +08:00 via iPhone
可以的,看看 ktor
|
31
xlui 2019-10-25 20:22:48 +08:00 via Android
不仅可以,还很香
|
32
diferent 2019-10-25 20:47:59 +08:00
已经用了,很久了, 现在遇到一个 Java 项目 , 就先添加 Kotlin 支持先.
别人用啥我不管, 但是我肯定写 Kotlin. |
33
jjshare OP @heiheidewo 哈哈,负责人的说,golang 没有生态
@Kasumi20 手动赞 @qiyuey 我也觉得靠谱,不过没有实操过 @realkenshinji 好的,谢谢 @xlui 吃香喝辣的请带上我 @hantsy 专业,优秀,手动大拇指 @diferent 不会 Java 的,表示 kt 大法好 @lagoon 人生虽然有很多盘要接,但是未尝不是好盘啊,哈哈,要有接盘的能力,不要有接盘的心理包袱~ |
34
changdy 2019-10-25 21:37:33 +08:00
自己也用 kotlin 写过后端项目,不过仍旧要泼一下冷水了
kotlin 和 java 后端最大的不同是视角不同 比如 data class 的设计理念: * 对于 java 后端来说 data class 的构造器不太妥当,基本上都要初始化 null 反而很不优雅 * data class 不支持继承 ,这点更棘手 我没用 kotlin 做过大项目, 不过目前来看其实 kotlin 语言的初衷并不是以服务端为主. |
35
fansangg 2019-10-25 22:17:18 +08:00
@lagoon 你遇到的可能是已经用琐碎的时间看了很多遍语法了,我 17 年刚上手的时候用 kt 写项目,不会写的都是用 java 写一遍然后贴过来转成 kotlin 的,看看转成啥样的然后照葫芦画瓢
|
36
diferent 2019-10-25 22:50:02 +08:00
@changdy
说明你还没有掌握 Kotlin , data class 只是 kotlin 里的一种具体表现,适用于一部分场景, Java 也是一样的. 只不过 Java 因为自身的语法限制,后来才形成公约式的 getter/setter 以及 builder, 本身上都是语法劣势而不得已的妥协而已. kotlin 的语法不存在这些劣势,所以没有必要按照 Java 的思路去设计序列化对象 现在我所有的 entity 和 DTO 都用 kotlin 去写的 现在除非是打开别人的工程, 不然都不会安装 lombok 插件. |
37
YUyu101 2019-10-25 23:45:18 +08:00
我刚看到也是感觉很爽,各种语法糖 apply let 什么的还有协程,突然就想起了隔壁 c#。
|
38
lagoon 2019-10-26 08:20:11 +08:00
@fansangg 哪有这么夸张。除非是一个学 java,就只学 java,对其他语言不屑一顾的人。否则,新的语言,太多类似的概念、写法。自然而然就会比较容易上手。
至于某些从事 java,就对其他语言一直看都不看一眼的,我觉得是不对的(真的天天忙到 996 除外)。 |
39
changdy 2019-10-26 08:27:03 +08:00
@diferent
---> data class 只是 kotlin 里的一种具体表现,适用于一部分场景, ---< 我觉得 java 里面常见的 entity 之类的 应该都是可以使用 data class 替换的. 但是目前我却只能 继承和 data class 二选一 并且官方也注意到了 data class 不能继承的窘境 准备开始改善了 ---> kotlin 的语法不存在这些劣势,所以没有必要按照 Java 的思路去设计序列化对象 ---< `我没有,我不是,你别胡说` 我只是觉得 kotlin 最早的设计角度并没有放在 后台服务器上 ---> 现在我所有的 entity 和 DTO 都用 kotlin 去写的 ---< 很想知道 需要继承的时候是怎么做的... 放弃继承吗? 还是放弃 data class 其实 我也很喜欢 kotlin 这个语言. java 太罗嗦了, 包括提到的 getter/setter 的确让人不爽,但并不代表这门语言在一些情况下是完美的, 我也只是站在一个后端开发的角度讲出我的一些痛点 |
40
no13bus 2020-10-16 18:41:31 +08:00
老哥还在玩 kotlin 吗?加个微信聊聊撒. no13bus
|