技术解析

为什么很少听说有人用 kotlin 开发后端
0
2021-06-07 08:55:37
idczone
相印的 kotlin 后端的招聘岗位也很少,很疑惑,这么好使的后端语言,为什么美国服务器一直处于较冷的状态。
太灵活了,只适合 geek 玩
上班摸鱼还是老老实实写 Java 的 getter setter 。

因为培训班只教 java

还是取决于公司的业务类型,比如我所在的公司有一些甲方验收的时候明确要求是 Java 。
有一些自己的产品就可以随便用,不过为了统一我也不打算推 kotlin 了,虽然用它写业务真的很爽
let apply map 爽到飞起

JAVA:一万个人心中只有那个哈姆雷特
Kotlin:一万个人心中有一万个哈姆雷特

维稳大于天,大家觉得老东西靠谱,除非哪天 Java 不让用了或者彻底某个方面被时代抛弃了。
话说回来,如果你是部门架构师级别的,是可以自己选择其他语言的。

用没问题,招人的时候就有点麻烦。
我的项目后端使用 Kotlin 开发,新人从学习能上手做事,要接近 1 个月吧。

用了 KT 感觉 Java 就是一坨屎。但是公司项目肯定还是用 Java 啊,不是所有人愿意花精力学 kt 的。

暂时缺少大公司零头宣传.

后端能用 java11,以前安卓只能用 1.6

看了下语法 return on when 有点骚啊

如果会 java,一天就可以了吧?

大部分从 java8 换到 11 都不想换,还让他们换个语言...

17 年的项目尝试过,除了对象序列化遇到一些坑之外其他方面都挺好的,能极大的提高效率。
对于团队成员,kotlin 不熟悉的语法,先用 java 写 用 idea 提供自动转换的工具 翻译为 kotlin,基本上一周左右都能熟悉了。

我现在在用 Gradle 构建基于 Kotlin 的 JavaFX 项目还有 Spring Boot 项目。
后来因为要完全离线开发,把 Gradle 换回了 Maven 。
Kotlin 写起来很舒服,省略标点符号,更高级的扩展 API,免去了 Getter/Setter 直接赋值取值(写 JavaFX 的时候贼爽)。
后端 Spring Boot 这种项目,最明显的感受就是更便捷的集合操作 API,还有协程。

kotlin 的 class 相关语法比 Java 复杂不少
易上手主要是函数式相关的 api 比较直观易用

还好,其实都有规范的,按照规范去写代码应该不会有什么大的问题的。

未来是可以期待的,spring vertx quarkus 等后端框架是拥抱 kotlin 的

目前项目正在使用 Kotlin,大半年了;语言本身方面挺香的,尤其是集合操作、scope 函数之类的;框架方面,基本很多开源的依赖都有 kotlin 支持,目前除了 MapStruct 这种底层要转会 JAVA 的静态代理的,没有什么大坑,新人上项目 2-3 周适应期,可以先写 Java 用 IDE 自动转试试;

kotlin 和 c#有些语法糖挺像的

接盘你项目的人会哭的呢。

除非一开始就用,很少项目中途转。

好处不明显啊
而且一个相同的东西存在好几种写法是个非常大的缺点

我们在用 kt 写后端

没有太大的优势啊


举个栗子?

比如这种 val max = if (a > b) a else b
我宁愿看下面这种代码
int max;
if(a>b) {
max = a;
} else {
max=b;
}

本来 java 自带的三目运算符就已经很不直观了(go 就直接抛弃了这个语法)

kt 相比 java 最大的优势是协程 其他只能说是语法糖

有 spring 全家桶嘛?
再说还有发展迅猛的 go,还有市场依旧很大的 php

17 年初发布的 spring5.0 完全兼容 kotlin
这样写那 max 就不能声明成 immutable 的

那其实还是换语言的问题,就像前面说的,我们之前团队从 1.6 换到 8 都搞了好久。如果是新项目很可能用 go

你用 javafx 做什么项目? 这玩意太吃内存了, 空窗口启动就用了 40 多个线程和 100 多 MB 内存, 随便刷一刷几百兆内存就没了, 虽说现在内存便宜, 也架不住这么玩啊

https://www.v2ex.com/t/781261?p=1 你看看这下面很多写 java 的人的回帖,我感觉让他们用点『新』的 java 语法就很难了,更别说用 kotlin 了

我推荐给我司后端,他们非常抗拒…

亚麻是有的,而且越来越多,只是对于用户来说感觉不到

我司后端用的正是 Kotlin

完全没有性价比。
学习成本:用 kotlin 就可以不懂 java 吗?
内存占用:基于 jvm,kotlin 反而多占用一些内存
执行速度:jvm 上,没有区别
开发效率:你还在纠结那些语法表达,我已经完成任务。
结构化设计:OOP 、AOP 、DI 、DDD 等等,思想都没变法,不过是语法不一样。

没必要捧一贬一,各有优缺点。

”凭什么让我学 kotlin,下一份工作又用不到”

因为大家都不想换

是的,我也是因为更喜欢诸如 FP,以及诸如 data class,强类型等语法点而使用。
但写代码的时间就有可能更长了。Kotlin 写完基本编译成功后,就基本没太多问题。
其实新的 Java16 也提供了类似 data class 机制,不过,java16, 我司运维现在还支持 java8 。

gradle 不支持離線嗎?

这不就是看个人爱好么。。我是有在生产环境用 kt 写过后端了,反而没在 android 里用

我司作为 fin tech 独角兽全面拥抱 Kotlin,自己团队招人,求简历~
www.airwallex.com
[email protected]

有一个古老的项目,有人用 kt 重构之后把线程全部改成 coroutine 。
在旧机器上跑的好好的,等要迁移的时候。新机器上项目直接启动过后,过一会儿不明原因 hang 。

我们组一半的 jvm 已经用 kt 了

而且特别难查 bug.

kotlin 语法糖真甜...特别是拓展方法...真香

我们就在用 kotlin 写后端,到现在快两年了

坐标哪里?

哈哈这一个精髓了,很多人喷 java 为啥那样古板的语法。其实就是这个道理,花里胡哨的语言导致无法维护的情况。因为开发团队 参差不齐,所以最好的语言还是 java 的
你要听话,比 Kotlin 好的语言多的是,js,python,go,c开发都比它爽。但是为啥在业务领域还是 java 强,你还没领会到。当你成为领导,架构师的就会知道了。不听话就会很惨的。

因为后端用 kotlin 收益不大

为啥很多人还停留在「我学了个新语言很厉害」、「 xx 语言比 yy 语言更牛」这个层次.....估计是没有管理过大型工程吧。

Kotlin 写起来确实很爽
个人很喜欢

推荐一手 C
数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服