![]() | 1 Kasumi20 2021-06-07 11:20:58 +08:00 太灵活了,只适合 geek 玩 上班摸鱼还是老老实实写 Java 的 getter setter 。 |
![]() | 2 dolphintwo 2021-06-07 11:21:27 +08:00 ![]() 因为培训班只教 java |
![]() | 3 szq8014 2021-06-07 11:24:32 +08:00 还是取决于公司的业务类型,比如我所在的公司有一些甲方验收的时候明确要求是 Java 。 有一些自己的产品就可以随便用,不过为了统一我也不打算推 kotlin 了,虽然用它写业务真的很爽 let apply map 爽到飞起 |
![]() | 4 kidult 2021-06-07 11:26:42 +08:00 ![]() JAVA:一万个人心中只有那个哈姆雷特 Kotlin:一万个人心中有一万个哈姆雷特 |
![]() | 5 ufan0 2021-06-07 11:31:22 +08:00 via Android 维稳大于天,大家觉得老东西靠谱,除非哪天 Java 不让用了或者彻底某个方面被时代抛弃了。 话说回来,如果你是部门架构师级别的,是可以自己选择其他语言的。 |
![]() | 6 wupher 2021-06-07 11:33:18 +08:00 用没问题,招人的时候就有点麻烦。 我的项目后端使用 Kotlin 开发,新人从学习能上手做事,要接近 1 个月吧。 |
![]() | 7 qwerthhusn 2021-06-07 11:35:33 +08:00 用了 KT 感觉 Java 就是一坨屎。但是公司项目肯定还是用 Java 啊,不是所有人愿意花精力学 kt 的。 |
![]() | 8 zoharSoul 2021-06-07 11:37:22 +08:00 暂时缺少大公司零头宣传. |
9 wengych 2021-06-07 11:38:25 +08:00 via iPhone 后端能用 java11,以前安卓只能用 1.6 |
![]() | 10 levelworm 2021-06-07 11:40:57 +08:00 via Android 看了下语法 return on when 有点骚啊 |
![]() | 12 stimw 2021-06-07 11:44:13 +08:00 大部分从 java8 换到 11 都不想换,还让他们换个语言... |
![]() | 13 uglyer 2021-06-07 11:50:00 +08:00 ![]() 17 年的项目尝试过,除了对象序列化遇到一些坑之外其他方面都挺好的,能极大的提高效率。 对于团队成员,kotlin 不熟悉的语法,先用 java 写 用 idea 提供自动转换的工具 翻译为 kotlin,基本上一周左右都能熟悉了。 |
14 jarrodquan 2021-06-07 11:55:29 +08:00 我现在在用 Gradle 构建基于 Kotlin 的 JavaFX 项目还有 Spring Boot 项目。 后来因为要完全离线开发,把 Gradle 换回了 Maven 。 Kotlin 写起来很舒服,省略标点符号,更高级的扩展 API,免去了 Getter/Setter 直接赋值取值(写 JavaFX 的时候贼爽)。 后端 Spring Boot 这种项目,最明显的感受就是更便捷的集合操作 API,还有协程。 |
15 Leviathann 2021-06-07 12:02:54 +08:00 via iPhone @zhgg0 kotlin 的 class 相关语法比 Java 复杂不少 易上手主要是函数式相关的 api 比较直观易用 |
![]() | 16 MarkLeeyun 2021-06-07 12:14:40 +08:00 @kidult 还好,其实都有规范的,按照规范去写代码应该不会有什么大的问题的。 |
17 yazinnnn 2021-06-07 12:36:50 +08:00 未来是可以期待的,spring vertx quarkus 等后端框架是拥抱 kotlin 的 |
18 fermiz 2021-06-07 12:41:06 +08:00 目前项目正在使用 Kotlin,大半年了;语言本身方面挺香的,尤其是集合操作、scope 函数之类的;框架方面,基本很多开源的依赖都有 kotlin 支持,目前除了 MapStruct 这种底层要转会 JAVA 的静态代理的,没有什么大坑,新人上项目 2-3 周适应期,可以先写 Java 用 IDE 自动转试试; |
19 zxCoder 2021-06-07 12:48:55 +08:00 kotlin 和 c#有些语法糖挺像的 |
21 holulu 2021-06-07 12:52:15 +08:00 除非一开始就用,很少项目中途转。 |
22 Jooooooooo 2021-06-07 12:53:35 +08:00 好处不明显啊 而且一个相同的东西存在好几种写法是个非常大的缺点 |
23 xd314697475 2021-06-07 12:54:47 +08:00 我们在用 kt 写后端 |
![]() | 24 Lonely 2021-06-07 13:00:04 +08:00 via iPhone ![]() 没有太大的优势啊 |
25 yazinnnn 2021-06-07 13:05:44 +08:00 @Jooooooooo 举个栗子? |
26 Jooooooooo 2021-06-07 13:11:07 +08:00 @yazinnnn 比如这种 val max = if (a > b) a else b 我宁愿看下面这种代码 int max; if(a>b) { max = a; } else { max=b; } 本来 java 自带的三目运算符就已经很不直观了(go 就直接抛弃了这个语法) |
![]() | 27 viakiba 2021-06-07 13:11:51 +08:00 kt 相比 java 最大的优势是协程 其他只能说是语法糖 |
![]() | 28 iyaozhen 2021-06-07 13:32:08 +08:00 有 spring 全家桶嘛? 再说还有发展迅猛的 go,还有市场依旧很大的 php |
29 Leviathann 2021-06-07 13:37:50 +08:00 | /tr>
![]() | 30 iyaozhen 2021-06-07 13:42:16 +08:00 @Leviathann 那其实还是换语言的问题,就像前面说的,我们之前团队从 1.6 换到 8 都搞了好久。如果是新项目很可能用 go |
31 yitingbai 2021-06-07 13:48:15 +08:00 @jarrodquan 你用 javafx 做什么项目? 这玩意太吃内存了, 空窗口启动就用了 40 多个线程和 100 多 MB 内存, 随便刷一刷几百兆内存就没了, 虽说现在内存便宜, 也架不住这么玩啊 |
![]() | 32 Torpedo 2021-06-07 13:48:58 +08:00 t/781261?p=1 你看看这下面很多写 java 的人的回帖,我感觉让他们用点『新』的 java 语法就很难了,更别说用 kotlin 了 |
![]() | 33 NEVERCODE 2021-06-07 13:52:33 +08:00 我推荐给我司后端,他们非常抗拒… |
![]() | 34 timle1029 2021-06-07 13:54:35 +08:00 亚麻是有的,而且越来越多,只是对于用户来说感觉不到 |
![]() | 35 Ambush 2021-06-07 14:03:27 +08:00 我司后端用的正是 Kotlin |
36 fewok 2021-06-07 14:04:34 +08:00 完全没有性价比。 学习成本:用 kotlin 就可以不懂 java 吗? 内存占用:基于 jvm,kotlin 反而多占用一些内存 执行速度:jvm 上,没有区别 开发效率:你还在纠结那些语法表达,我已经完成任务。 结构化设计:OOP 、AOP 、DI 、DDD 等等,思想都没变法,不过是语法不一样。 |
![]() | 37 cco 2021-06-07 14:05:03 +08:00 @qwerthhusn 没必要捧一贬一,各有优缺点。 |
![]() | 38 wxw752 2021-06-07 14:14:05 +08:00 ![]() ”凭什么让我学 kotlin,下一份工作又用不到” |
![]() | 39 unco020511 2021-06-07 14:16:18 +08:00 因为大家都不想换 |
![]() | 40 wupher 2021-06-07 14:18:17 +08:00 @Leviathann 是的,我也是因为更喜欢诸如 FP,以及诸如 data class,强类型等语法点而使用。 @zhgg0 但写代码的时间就有可能更长了。Kotlin 写完基本编译成功后,就基本没太多问题。 其实新的 Java16 也提供了类似 data class 机制,不过,java16, 我司运维现在还支持 java8 。 |
41 roundgis 2021-06-07 14:23:06 +08:00 via Android @jarrodquan gradle 不支持? |
![]() | 42 Alexliu 2021-06-07 14:27:29 +08:00 这不就是看个人爱好么。。我是有在生产环境用 kt 写过后端了,反而没在 android 里用 |
43 shihty5 2021-06-07 14:29:52 +08:00 |
![]() | 44 Rheinmetal 有一个古老的项目,有人用 kt 重构之后把线程全部改成 coroutine 。 在旧机器上跑的好好的,等要迁移的时候。新机器上项目直接启动过后,过一会儿不明原因 hang 。 |
45 zed1018 2021-06-07 14:32:32 +08:00 我们组一半的 jvm 已经用 kt 了 |
![]() | 46 zhuangzhuang1988 2021-06-07 15:06:19 +08:00 @Rheinmetal 而且特别难查 bug. |
47 dbpe 2021-06-07 15:09:50 +08:00 kotlin 语法糖真甜...特别是拓展方法...真香 |
48 yyyyda 2021-06-07 15:10:38 +08:00 我们就在用 kotlin 写后端,到现在快两年了 |
![]() | 50 byte10 2021-06-07 15:28:41 +08:00 @kidult 哈哈这一个精髓了,很多人喷 java 为啥那样古板的语法。其实就是这个道理,花里胡哨的语言导致无法维护的情况。因为开发团队 参差不齐,所以最好的语言还是 java 的 @qwerthhusn 你要听话,比 Kotlin 好的语言多的是,js,python,go,c# 开发都比它爽。但是为啥在业务领域还是 java 强,你还没领会到。当你成为领导,架构师的就会知道了。不听话就会很惨的。 |
51 hello1996 2021-06-07 15:42:50 +08:00 因为后端用 kotlin 收益不大 |
![]() | 52 yvestang 2021-06-07 15:43:55 +08:00 ![]() 为啥很多人还停留在「我学了个新语言很厉害」、「 xx 语言比 yy 语言更牛」这个层次.....估计是没有管理过大型工程吧。 |
![]() | 53 Kamiyu0087 2021-06-07 15:46:10 +08:00 Kotlin 写起来确实很爽 个人很喜欢 |
54 Rwing 2021-06-07 15:46:59 +08:00 推荐一手 C# |
55 w741069229 2021-06-07 16:02:26 +08:00 ![]() 用 kt 不如用 scala,写起来比 kt 优雅的多吧 |
56 huangyanan 2021-06-07 16:06:21 +08:00 @fewok 赞同,公司新人特别推崇新语言新特性。 |
![]() | 57 kett 2021-06-07 16:12:11 +08:00 ![]() 个人认为 Java 这种死板,语法糖少的语言非常适合工程,kt 这种灵活,语法糖多的,比较适合个人爽。 |
58 dqzcwxb 2021-06-07 16:17:38 +08:00 不用 kotlin 的理由并不是不接受新的语法也不是不会学,而是因为 java 会逐步吸收其他语言的成熟优点变成自己的 既然我用的语言会慢慢进化,我为什么要用其他的? |
![]() | 59 echo1937 2021-06-07 16:25:38 +08:00 "方向错了,徒增功耗,有失公允,感知不强" /手动狗头 现在后端圈子都不太热衷 JDK 的更新,KT 化自然也就更不热门了。 |
60 acmore 2021-06-07 17:06:43 +08:00 ![]() 楼主在经历了 “古板” 语言的摧残之后见到了比较现代化的写法很高兴可以理解,但是如果你了解其他的语言也可以问:“为什么不用 C#/Go” 等一系列不可能有标准答案的问题。但回答也简单,“没有为什么,没人拦着你用”。 软件工程是一门专有学科,其中语言的比重恰恰是极低的,既然 Java 好招人就用 Java 写,正如 C# 少见诸 JD 一样。如果真的喜欢高效和灵活地开发后端,Go 和 TS 效率要更高,生态好坑也少, 也可以关注 LTS 的 Java 17, Kotlin 灵活和高效没错,但也没有到成为银弹的高度。 |
![]() | 61 AV1 2021-06-07 17:21:31 +08:00 因为写 Java 的 leader 看不懂。 |
![]() | 62 yike47 2021-06-07 17:51:57 +08:00 以稳为准,团队开发的情况下,提交了几个 Lambda 表达式都会问这个有没有问题 |
63 RicardoY 2021-06-07 18:07:35 +08:00 俺就在用,跟现有的 Java8 项目完全无痛集成。其实主要是看 leader 对这种新技术的态度如何,先在边缘服务上试点,然后推广到核心服务,有测试覆盖,使用 kt 不会遇到什么阻力的。 |
![]() | 64 kingfalse 2021-06-07 18:11:43 +08:00 via Android 我是后端跟爬虫一直在用 |
65 dilu 2021-06-07 18:29:59 +08:00 不是语言好就用的人多,参考 rust,性能优,有范型,无 gc,结果不也是不温不火 |
![]() | 66 chendy 2021-06-07 18:50:44 +08:00 公司项目老老实实 java,自己玩 kt 毕竟要考虑维护和招人 |
![]() | 68 cmdOptionKana 2021-06-07 19:05:31 +08:00 @dilu 相反 Go 被语法爱好者狂喷,从很多角度都可以喷 Go 语法倒退,特性少要啥没啥,结果却大火。 |
![]() | 69 thetbw 2021-06-07 19:24:39 +08:00 @fewok kotlin 写起来速度个人感觉还是比 java 快的,虽然编译起来有点慢。而且代码可以看起来更简洁,尤其是使用了协程 |
![]() | 70 newmlp 2021-06-07 19:38:31 +08:00 出了问题你负责? |
71 Huelse 2021-06-07 20:04:21 +08:00 kotlin 少,那 scala 做后端的也少,除了大数据的 |
![]() | 72 levelworm 2021-06-07 20:05:21 +08:00 @Jooooooooo 这个我觉得要比 if else 写在外头的更直观啊,和三目操作符不一样。这个更接近口语了。不过就是 if else 的部分不能太长,否则一溜看下来也不舒服。 |
73 fewok 2021-06-07 20:45:18 +08:00 @thetbw 书写效率,不好做对比,因为没有质的变化,只能说取决熟悉程度(比如我 java 就非常快)。但你不写单测嘛?不执行下看看运行情况嘛?代码不过 CI\CD 嘛? |
![]() | 74 Mystery0 2021-06-07 21:28:11 +08:00 via Android 举一点例子:我司用 Arthas 来诊断服务的状态,偶尔还用在线 debug,对使用 Java 写的服务来说简直完美,对我用 kt 写的服务来说直接爆炸。后端不喜欢用 kt 的一个原因应该是配套的生态还是主要支持 Java 的吧 |
75 junbaor 2021-06-07 21:31:30 +08:00 无意间打开了 okhttp 代码已经换成了 kotlin, 我司基础框架也是用 kotlin 做的,该上车上车,问题不大。 |
![]() | 76 matrix67 2021-06-07 21:39:17 +08:00 之前就是有提出的 worse is better . |
77 Leee 2021-06-07 22:14:56 +08:00 歪个楼,也没见有人用 dart 来写后端的哈哈哈哈哈 |
78 abc612008 2021-06-07 23:36:52 +08:00 我以前的公司整个后端都是完全 kotlin 写的。 |
79 Muyiafan 2021-06-08 08:45:27 +08:00 因为只有你会 |
80 yibo2018 2021-06-08 09:39:59 +08:00 我前上司就特别迷 kottlin 其实我有时候很不理解这种东西,过来过去不就是换个语法糖,有必要吗? 我对各种语言语法的变化真是深恶痛绝,一样的操作非要搞 10 种 8 种写法,效率却没有多大的变化 我也承认语法也是有研究价值的,但是我觉得不如研究其他的更好 |
82 HangoX 2021-06-08 14:14:27 +08:00 如果一个代码运行得好好的为啥要改 |
83 THESDZ 2021-06-09 09:47:53 +08:00 @MarkLeeyun # 永远不要高估团队内开发人员的水平,也不要低估沟通的成本. |
![]() | 84 rachel1307 2021-08-29 11:31:13 +08:00 Java 转 Kotlin 了(不过也是大差不差) 最近有打算看看机会的兄弟姐妹可以丢我简历!! Global Fintech 跨境支付 D+轮了 核心团队在扩招~ 10 7-8 5 节奏 市区马当路 Email: [email protected] |