首页
学习
活动
专区
圈层
工具
发布

【翻译】17位谷歌专家称号大牛如何看待Kotlin

我个人感觉是它让写代码成为了一种乐趣,相反这些在 Java 中确是非常痛苦和厌烦的事情。我算不上一名专家,因为我还没有在我的日常工作中着重使用它,但是我在自己边缘项目中使用过。...有很多理由可以解释这个项目能够从中受益,但是我们的项目如要采用 Kotlin 地话也非易事,如此大的团队规模是这个产生这个困难的主要原因。...我已经在产品开发中使用 Kotlin 进行主程序开发( Settle Up )。它已经足够成熟,相比 Java (任何版本) 有很多优势。...它完全兼容现有的 Java 工具集和类库,在 Android Studio 中完美工作。 如果我启动一个新的 APP ,我会毫不犹豫地从 Kotlin 开始。...由于 Java 的功能是绑定在安卓对应系统上的,所以你经常会错过一些新的语言特性和标准的 API 库。恰恰相反,你立刻就能采用所有 Kotlin 新版本刚发布时的新特性。

1.5K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    BAT大牛带你深度剖析Android 十大开源框架

    Room(数据库)入选理由:官方支持与实用主义的完美结合Jetpack组件中的一员,但值得单独拿出来称赞编译时查询检查避免了大量运行时错误对RxJava、协程、LiveData的原生支持展示了极佳的扩展性迁移工具在实际项目中多次拯救了数据库结构升级的危机...Moshi(JSON解析)入选理由:简单而专注的典范相比功能繁多的Gson,Moshi更轻量、更安全与Kotlin的协同工作异常流畅,特别是对空安全的支持代码生成方式在大型项目中性能优势明显证明了“做好一件事...的框架在我的十年开发生涯中,也见证了某些框架的起伏:RxJava:曾经无处不在,但在协程普及后,其复杂性显得不那么必要。...从Java友好到Kotlin优先:新框架越来越考虑Kotlin的语言特性,如空安全、扩展函数、协程等。从运行时到编译时:如Dagger、Room等框架更倾向于在编译时解决问题,提高运行时安全性和性能。...当你理解了一个框架要解决什么问题、为什么这样设计时,你不仅能更好地使用它,还能在它不再适用时,创造或选择更好的替代方案。毕竟,我们使用框架,但不应该被框架限制。

    42810

    Java失宠,谷歌宣布Kotlin现在是Android开发的首选语言

    谷歌在今天的声明中写道:“Android 的开发将越来越以 Kotlin 为先。” 许多新的 Jetpack API 和特性将首先在 Kotlin 中提供。...哈斯说:“我们知道,不是每个人现在都在用 Kotlin,但是我们相信,你会需要它的。” “你可能有充分的理由继续使用 C++ 和 Java 编程语言,这完全没问题。这些语言不会消失。”...超过四分之一的受调者迁移到 Kotlin 后又回到了 Java。有技术方面的原因,也有组织方面的原因。其中使用了反射或代码生成的工具是被提及最多的因素。 “Kotlin 的枚举不能包含常量。...那么,Java 语言到底有什么优势可以占据排行榜第一的位置呢? 其一,语法比较简单,学过计算机编程的开发者都能快速上手。...但同样可以看到,Android 社区拥抱 Kotlin 的速度越来越快,也许有一天,在 Android 世界里,我们会看到 Kotlin 对 Java 的超越。 为什么谷歌会支持 Kotlin?

    1.5K20

    使用 Kotlin 构建的常见问题解答 | Kotlin 迁移指南 (下篇)

    它与 Java 语言可以无缝互通,热爱 Java 语言的开发者可以在继续使用 Java 语言的同时,逐步加入 Kotlin 代码并充分利用 Kotlin 库,轻松完成转换。...我可以在 Kotlin 中调用 Android 或其他 Java 语言库的 API 吗? 可以。Kotlin 与 Java 语言具有互操作性。...我可以在同一个项目中同时使用 Java 文件和 Kotlin 文件吗? 可以。...因此,Kotlin 不能保证它们未来的可用状态,Android 自然也无法做出承诺。 Kotlin 对 APK 大小/方法数有什么影响?...如果您像优化其他应用代码和库一样,使用 ProGuard 对 APK 进行发布前优化,APK 的大小也会减小。 使用 Kotlin 会影响性能吗?

    5.2K20

    Java 8 中的 Stream API 有什么特点?如何使用 Stream 进行集合的过滤和聚合操作?

    Java 8 引入的 Stream API 是处理集合的高级工具,它以声明式方式对集合进行操作,简化了数据处理流程。...其核心特点和过滤、聚合操作的使用方式如下:一、Stream API 的核心特点声明式编程:关注“做什么”而非“怎么做”(如“过滤出偶数”而非编写循环判断),代码更简洁易读。...二、使用 Stream 进行过滤和聚合操作Stream 操作分为 中间操作(返回新的 Stream,可链式调用)和 终端操作(返回最终结果,终止流)。过滤和聚合通常结合两者实现。1....示例:从集合中过滤出年龄大于18的用户:import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;...掌握 Stream API 能显著提升集合处理效率,是 Java 8+ 开发中的核心技能。

    21510

    Java失宠,谷歌宣布Kotlin现在是Android开发的首选语言

    谷歌在今天的声明中写道:“Android 的开发将越来越以 Kotlin 为先。”许多新的 Jetpack API 和特性将首先在 Kotlin 中提供。...哈斯说:“我们知道,不是每个人现在都在用 Kotlin,但是我们相信,你会需要它的。”“你可能有充分的理由继续使用 C++ 和 Java 编程语言,这完全没问题。这些语言不会消失。”...超过四分之一的受调者迁移到 Kotlin 后又回到了 Java。有技术方面的原因,也有组织方面的原因。其中使用了反射或代码生成的工具是被提及最多的因素。 “Kotlin 的枚举不能包含常量。...那么,Java 语言到底有什么优势可以占据排行榜第一的位置呢? 其一,语法比较简单,学过计算机编程的开发者都能快速上手。...但同样可以看到,Android 社区拥抱 Kotlin 的速度越来越快,也许有一天,在 Android 世界里,我们会看到 Kotlin 对 Java 的超越。 为什么谷歌会支持 Kotlin?

    1.2K20

    从 Java 到 Kotlin,再从 Kotlin 回归 Java

    在开始使用 Kotlin 编写之前,请阅读一个项目的故事。 ? 尝试 Kotlin 后,我们正用 Java10 重写 ? 我有我最喜欢的JVM语言集。...Java的/main和Groovy的/test对我来说是组好的组合。2017年夏季,我的团队开始了一个新的微服务项目,我们就像往常一样谈论了语言和技术。...在Allegro有几个支持Kotlin的团队,而且我们也想尝试新的东西,所以我们决定试试Kotlin。...在使用Log4j或Gson之类的Java库时,类字面量是很常见的。 在Java中,我们用.class后缀来写类名: ? 在Groovy中,类字面量被简化为本质。...Spring 使用一些库(cglib、jassist)为 Java Bean 生成动态代理。Hibernate 会扩展实体类来实现懒加载。 如果使用 Spring,你有两个选择。

    2.3K40

    Kotlin 语言入门宝典 | Android 开发者 FAQ Vol.5

    中增加 7000 个方法和 1M 的大小,如果您使用 Kotlin 替换如 Guava、RxJava 等其他的库,影响可能会小一些。...它能与 Java 语言完美地融合工作,这样就使得那些热爱 Java 语言的开发者们能继续使用 Java,同时还能额外添加 Kotlin 代码以及使用 Kotlin 语言的代码库。...比如,Kolint 使用的某些第三方库可能使用与 Apache 2.0 兼容的其他开源协议。 在 Kotlin 和 Java 之间我应该如何选择?...Kotlin” (http://talkingkotlin.com/) Kotlin 的半月刊博客 我可以在 Kotlin 中调用 Android 或者其他 Java 语言的库吗?...Kotlin 是兼容 Java 6.0 的,所以您可以在所有的 Android 版本上安全的使用 Kotlin。

    3.1K60

    我为何早先于你学习并应用Kotlin

    其实,非科班出生的我早已经在 Kotlin 1.0 版本发布之后的不久就开始学习并使用上了,什么都比你晚,但是今天我第一次感觉自己站在了更高的位置(应该摔得更疼),或许我们应该是时候改变一下自己因循守旧的思维模式了...这个软件使用的脚本是 C# ,我以前上大学的时候有点 Java 基础,初学问题不算太大。...不得不说 Java 还是很难的,弄了个把月也没做出来什么,倒是学习了不少新知识,与此同时我找到了 JavaFX ,你眼里的老技术对我来说确是焕然一新啊。...怎样高效学习 Kotlin 呢? 对于很多人来说,为了一个开源库而学习一门新的语言完全不值!...为什么我起步晚但学习 Kotlin 却比有些人早? 是偶然吗?我看未必。

    1.1K30

    Kotlin 从拒绝到真香

    所以本着“先问是不是,再问为什么”的原则,我们在讨论“Kotlin 比 Java 好在哪里之前”,必须先说清楚“Kotlin 比 Java 好吗”这个问题。...这篇文章会告诉大家,客观准确评判一门语言好坏的标准。 无论如何,编程语言是给人使用的,那我们就从人本身特点出来来讲这个逻辑。我们人是靠大脑思考的,而大脑有个致命的缺点:容量有限,且有一定错误率。...Java:你知道单例线程安全的四种写法吗? Kotlin:你是说 by lazy 吗? 编程语言是为了实现业务而存在的,那我们就应该选择一门实现业务编写效率高,维护成本低的编程语言。...Kotlin 相比 Java,他的语法表达更简洁,更容易写出低耦合,高内聚的代码;且和 Java 互操作的特性,可以直接使用 Java 的轮子,大大缩短了建设 Kotlin 生态的过程。...Kotlin 需要编写的代码更少,是因为 Kotlin 对语意有更精简的表达,你在习惯之后可以比 Java 更快的阅读完同样的功能。这点在后面我会继续说明。 对需求变更友善。

    1.6K20

    如何判断一门语言的好坏

    所以本着“先问是不是,再问为什么”的原则,我们在讨论“Kotlin 比 Java 好在哪里之前”,必须先说清楚“Kotlin 比 Java 好吗”这个问题。...这篇文章会告诉大家,客观准确评判一门语言好坏的标准。 无论如何,编程语言是给人使用的,那我们就从人本身特点出来来讲这个逻辑。我们人是靠大脑思考的,而大脑有个致命的缺点:容量有限,且有一定错误率。...Java:你知道单例线程安全的四种写法吗? Kotlin:你是说 by lazy 吗? 编程语言是为了实现业务而存在的,那我们就应该选择一门实现业务编写效率高,维护成本低的编程语言。...Kotlin 相比 Java,他的语法表达更简洁,更容易写出低耦合,高内聚的代码;且和 Java 互操作的特性,可以直接使用 Java 的轮子,大大缩短了建设 Kotlin 生态的过程。...Kotlin 需要编写的代码更少,是因为 Kotlin 对语意有更精简的表达,你在习惯之后可以比 Java 更快的阅读完同样的功能。这点在后面我会继续说明。 对需求变更友善。

    1K40

    号称取代 Java 的 Kotlin 语言到底是什么鬼?

    在这个故事中,作者最早使用 Kotlin 来编写一个项目,后来 Kotlin 的各种怪异模式以及一些其他障碍越来越让人厌烦,最终,他们决定重写这个项目。...2017年夏天,团队发起了一个新的微服务项目,和往常一样,我们需要对编程语言和技术进行选型。...部分团队成员是 Kotlin 的拥护者,再加上我们都想尝试一下新的东西,于是我们决定用 Kotlin 来开发这个项目。...如果你有多个存储库,在列表中很难实现正确的自动补全,这意味着你不得不手动输入完整的变量名称。...语言提供这个功能给你,你需要的话就使用,如果讨厌,调整检查设置就是了。 类型推断 Kotlin 的类型推断无处不在,作者说的 Java 10 同样可以简直是在开玩笑。

    2.6K50

    我要狠狠反驳“公司禁止使用Lombok”的观点!

    经常在其它各个地方在说公司禁止使用Lombok,我一直不明白为什么不让用,今天看到一篇文章列举了一下“缺点”,这里我只想狠狠地反驳,看到列举的理由我竟无言以对。...JDK 版本问题 当我想要将现有项目的 JDK 从 Java 8 升级到 Java 11 时,我发现 Lombok 不能正常工作了。...你要看JavaBean中的方法?它有啥好看的,Getter和Setter方法有啥好看的,你不知道Getter和Setter方法长什么样吗?实在不明白有什么好看的?...我的反驳:我们在使用其它框架时,那框架引入了不计其数的包,现在要引入一个很小的包都在斤斤计较,Lombok这么好用,几乎所有项目都会使用到,这还需要强制引入吗,我们自觉的都会在maven的parent依赖中统一引入了...加上臃肿的Getter&Setter你却嫌弃臃肿,不加你又说破坏代码的完整性,你想怎么做。增加团队的技术债务?学个Lombok十分钟的事情,有什么好增加的。要使用Kotlin?

    90830

    Java中的强引用、软引用、弱引用、幻象引用有什么区别和使用场景

    引用类型 在Java语言中,除了基本数据类型外,其他的都是指向各类对象的对象引用;Java中根据其生命周期的长短,将引用分为4类。...软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收器回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。...后续,我们可以调用ReferenceQueue的poll()方法来检查是否有它所关心的对象被回收。如果队列为空,将返回一个null,否则该方法返回队列中前面的一个Reference对象。...弱引用可以和一个引用队列(ReferenceQueue)联合使用,如果弱引用所引用的对象被垃圾回收,Java虚拟机就会把这个弱引用加入到与之关联的引用队列中。...虚引用必须和引用队列 (ReferenceQueue)联合使用。当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到与之关联的引用队列中。

    1.1K20

    为什么 Java 后端开发没有大规模采用 Kotlin?

    在团队完全掌握新语言之前,我们建议尽可能长时间地使用普通的 Kotlin 特性。最后,团队中的大多数人都会在选择很酷的语言特性和保持代码库易于理解之间找到平衡点。...8“在一个代码库中使用两种语言让人感到困惑” 这是在实际项目中没有尝试过 Kotlin 的人经常会有的担忧。...在实际当中,当团队意识到新的 Kotlin 代码需要与 Java 共存,那么在一个项目中使用两种语言并不会给他们造成很大的痛苦。...在不深入细节的情况下,我们可以说 Kotlin 的简洁性和安全性是它的主要优点。然而,有些人声称他们不认为 Java 的冗长有什么问题,并且写出来的代码也很安全。...在真正去尝试 Kotlin 之前,人们很容易将其忽略掉。而在真正面对它的时候,一些人会继续寻找不尝试使用它的理由。

    1.3K40

    我要狠狠的反驳“公司禁止使用Lombok”的观点

    ,看到列举的理由我竟无言以对。...JDK 版本问题 当我想要将现有项目的 JDK 从 Java 8 升级到 Java 11 时,我发现 Lombok 不能正常工作了。...你要看JavaBean中的方法?它有啥好看的,Getter和Setter方法有啥好看的,你不知道Getter和Setter方法长什么样吗?实在不明白有什么好看的?...我的反驳:我们在使用其它框架时,那框架引入了不计其数的包,现在要引入一个很小的包都在斤斤计较,Lombok这么好用,几乎所有项目都会使用到,这还需要强制引入吗,我们自觉的都会在maven的parent依赖中统一引入了...加上臃肿的Getter&Setter你却嫌弃臃肿,不加你又说破坏代码的完整性,你想怎么做。增加团队的技术债务?学个Lombok十分钟的事情,有什么好增加的。要使用Kotlin?

    66370

    从 Java 到 Kotlin,再从 Kotlin 回归 Java

    在开始使用 Kotlin 编写之前,请阅读一个项目的故事。 尝试 Kotlin 后,我们正用 Java10 重写 我有我最喜欢的JVM语言集。...Java的/main和Groovy的/test对我来说是组好的组合。2017年夏季,我的团队开始了一个新的微服务项目,我们就像往常一样谈论了语言和技术。...在Allegro有几个支持Kotlin的团队,而且我们也想尝试新的东西,所以我们决定试试Kotlin。...真的吗?不幸的是,事情并不是那么简单。 当您的Kotlin代码必须与Java代码一起使用时,事情就变得很糟糕了(库是用Java编写的,所以我猜它经常发生)。然后,第三种类型就跳出来了——T!...,以满足由Java方法填充的所有Kotlin变量。 类字面量 在使用Log4j或Gson之类的Java库时,类字面量是很常见的。

    2K10

    Room & Kotlin 符号的处理

    Kotlin 和 Java 可以互操作,但模式却不相同,例如,Kotlin 中特殊类的类型如 Kotlin 的值类或者 Java 中的静态方法。...关于我说的实现 "Room 需要什么",有一个很好的例子,我们可以在关于类的字段 更改 中看到。当 Room 处理一个类的字段时,它总是对其所有的字段感兴趣,包括父类中的字段。...现有的 Room 代码库是为了处理 Java 源代码而写的。当应用是由 Kotlin 编写时,Room 只能识别该 Kotlin 在 Java 存根中的样子。...为了测试 Kotlin 我们需要另一个库,幸运的是有 Kotlin Compile Testing,它允许我们编写针对 Kotlin 的测试,而且我们为该库贡献了对 KSP 支持。...希望在将来,我们还能对生成 Kotlin 代码提供一些支持,以便在 Room 中为 Kotlin 提供一流的支持。接下来,也许更多 :)。 我能在我的项目上使用 X-Processing 吗?

    1.2K30

    2018年我应该学习Java吗

    10多年后的今天,这个问题变得有趣起来,原因有很多。 让我列出我经常听到的关键问题: Java过时了,过时了。 有更好的JVM语言,如Scala、Clojure和Kotlin。...我是一个前端开发人员,NodeJS不是更实用吗? 使用Java是不愉快的。 Java太慢/消耗太多内存。 为什么我应该学Java而不是X、 Y、 Z等其它语言 ?...关注点2:有更好的JVM语言,如Scala、Clojure和Kotlin 这是一个有趣的观点,尤其是在Kotlin迅速走红的情况下。...Java是乐趣!有了Spring Boot之后,它甚至在企业中变得有趣起来! Java喜欢的另一件事是大量高质量的工具、支持和在线材料,它们使解决大多数问题变得非常简单。...这就是不使用Java的原因吗?对于那些特定的案例,可能是这样。 那么您可以使用Java做什么呢?这些天真的快吗?

    1.5K30
    领券