news 2025/12/26 20:18:55

Kotlin vs Dart:当“优雅”变成心智负担,我选择了更简单的 Dart

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kotlin vs Dart:当“优雅”变成心智负担,我选择了更简单的 Dart

大家好,我是老刘

老刘做Flutter开发有7年了差不多。

我记得早先的时候还经常有人讨论为啥Flutter没有选择kotlin而是选了dart。

当时我罗列和很多原因,同时也说过我个人其实是很喜欢Kotlin的。

想当年,Kotlin 就是拯救我们脱离Java 苦海的。

优雅的 Lambda 表达式、丝滑的集合操作符,效率直接起飞。

但是这两年我发现自己越来越不喜欢用kotlin 而是更适应dart了。

你可能会说:“老刘,这是因为你最近只写 Flutter 吧?”

确实,Flutter的开发工作占比重很大是一个因素。

但如果仅仅是因为框架绑定,还不足以让我改变对一门语言的喜好程度。这背后,其实有着自己对编程的理解和思考。

Kotlin 很强,但 Dart 更香

Kotlin 确实是个强大的语言,各种语法糖简直甜到心里。

空安全、扩展函数、高阶函数,用起来那是真香。

但是,这种强大是要付出代价的,而这个待机通常是开发人员的心智成本。

写 Kotlin 的时候,我脑子里经常要多跑一个线程:这块逻辑是用apply还是also?是用let还是run

// 这种纠结时刻都在发生,仅仅是初始化一个对象:// 写法1:用 apply (上下文是 this, 返回对象本身)valview=TextView(context).apply{text="Hello"textSize=16f}// 写法2:用 also (上下文是 it, 返回对象本身)valview2=TextView(context).also{it.text="Hello"it.textSize=16f}// 写法3:用 run (上下文是 this, 返回最后一行结果)valview3=TextView(context).run{text="Hello"textSize=16fthis// 如果忘了这一行,view3 就是 Unit}

同样的一个功能,可能有五六种写法,每种都有细微的差别。这种问题在团队协作时尤为明显,每个人的风格都不一样,看别人的代码有时候得脑补半天。

最重要的是他会打破写代码时心流的状态。

反观 Dart,刚开始接触时觉得它有点土。

但用久了你就会发现,这种“平平无奇”才是真爱。

Dart 的语法设计非常克制,它不追求炫技,而是追求直观。

写 Dart 的时候,我不需要在大脑里时刻绷着根弦去纠结语法细节,直接顺着逻辑写下去就行。

// 同样的逻辑,Dart 的解决方案通常只有一种 —— 级联操作符 (..)// 不需要纠结是用 apply 还是 run,也不用担心 this 和 it 混淆varview=TextView(context)..text="Hello"..textSize=16;

代码写出来,三个月后再看,还是能一眼看懂。

这种特质,让我在开发时能更专注于业务逻辑本身,而不是语言特性。

这一点在日常开发中其实是非常重要的。

开发人员的逻辑思路不会经常因为语法问题而打断,一方面能提高效率,另一方面也会大大减少心智负担,不会写一会代码就感觉很累。

AI 时代的生存法则

让我内心的天平彻底偏向 Dart 的最后一块砝码,其实是 AI。

在这个 AI 辅助编程的时代,我们必须认识到一个事实:目前的 AI 模型,本质上还是一个强大的模式匹配机器,它是个“直肠子”,远没有进化到能进行深度逻辑思考的程度。

而 Dart 这种平平无奇的语法,恰恰是 AI 最喜欢的。

因为它足够简单、直观、显式。AI 读得快、懂的透、写得准。

反观那些拥有丰富语法糖和黑魔法的语言,虽然对人类专家来说写起来很爽,但对 AI 来说,却成了幻觉的温床。过多的隐式上下文和多样的语法选择,大大增加了 AI 犯错的概率。

在 AI 时代,谁的代码能让 AI 更好理解、更容易生成,谁就是赢家。

以前我们追求代码要写给人看,现在可能还要加一条——写给 AI 看。简单直白的代码,不仅人类维护起来轻松,AI 辅助生成的准确率也会显著提高。

这才是 AI 时代的生存法则:摒弃花哨,回归朴素。

重剑无锋大巧不工

年轻的时候总想着怎么实现最复杂的功能,怎么把语言特性用到极致。

那时候觉得,能把一行代码写得像天书一样难懂,才叫水平。

但随着年岁渐长,写过的代码越来越多,填过的坑也越来越深,我开始慢慢领悟到“重剑无锋,大巧不工”的真谛。

现在的我,编码风格发生了巨大的转变。不再追求那些花哨的语法糖和所谓的“黑魔法”,而是更倾向于简单、直接、健壮的代码。

举个最直接的例子,以前我很痴迷于各种自动化的依赖注入框架。觉得写个注解,对象就自动注入进来了,多酷啊,多省事啊。

// 以前觉得很酷的“黑魔法”@InjectlateinitvaruserService:UserService// 它是从哪来的?谁初始化的?完全是黑盒。

但现在,我反而更喜欢手动管理依赖,甚至就是最原始的通过构造函数参数传递。

// 现在更喜欢的“笨办法”classUserViewModel{finalUserServiceservice;// 一切都在阳光下,没有秘密UserViewModel(this.service);}

看起来这种方式有点笨,写起来也没那么灵动。但它的好处是显而易见的:直观、清晰。

数据的流向一目了然,依赖关系清清楚楚。出了问题,不用去翻框架源码猜它是怎么注入的,看一眼调用栈就能定位。

我们写代码,最终目的是为了解决问题,为了让系统稳定运行,而不是为了炫技。

哪怕抛开 AI 不谈,我也更愿意写这种一眼就能看懂的代码。

因为它经得起时间的考验,也经得起团队协作的折腾。这把“重剑”,虽然没有锋刃,但挥舞起来,却是最扎实的内功。

当然,必须要承认的是,如果是在构建一个依赖关系错综复杂的超大型系统,或者需要极其严格的解耦和动态替换实现,成熟的依赖注入框架依然是不可或缺的神兵利器。但在我们大多数的日常开发,尤其是 Flutter 这种重 UI、重逻辑直观性的场景下,盲目引入复杂的框架,往往是杀鸡用牛刀,反而增加了维护成本。

5. 总结

从最初沉迷于 Kotlin 的语法糖和“黑魔法”,到如今偏爱 Dart 的朴素与直观,这不仅是编程语言的选择转变,更是对代码本质认知的转变。

另一方面这也是在强大的语法糖和简洁的心智模型中找到一个更适合自己的平衡点。

在 AI 辅助编程日益普及的今天,简单、显式的代码不仅降低了开发者的心智负担,更成为了 AI 理解与生成的最佳载体。

摒弃花哨,回归代码解决问题的本真,Less is More,这或许才是我们在 AI 时代应有的生存法则。

如果看到这里的同学对客户端或者Flutter开发感兴趣,欢迎联系老刘,我们互相学习。

私信免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。

可以作为Flutter学习的知识地图。

—— laoliu_dev

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/26 20:14:25

如何实现无代码自动化测试?零基础入门

为什么无代码自动化测试是测试从业者的必备技能?在当今快速迭代的软件开发环境中,自动化测试已成为提升效率、保证质量的关键。传统自动化测试通常需要编程技能,这给许多测试从业者设置了门槛。无代码自动化测试(No-Code Automati…

作者头像 李华
网站建设 2025/12/26 20:14:15

‌自动驾驶感知系统仿真测试:软件测试从业者的实践指南

感知系统在自动驾驶中的关键作用‌ 自动驾驶技术正飞速发展,而感知系统(包括摄像头、雷达、LiDAR等传感器)是车辆“眼睛”,负责环境识别与决策。真实道路测试成本高、风险大,仿真测试成为软件测试从业者的核心工具。它…

作者头像 李华
网站建设 2025/12/26 20:09:12

Java毕设选题推荐:基于spring boot的高校宿舍管理系统设计基于springboot的高校学生宿舍管理系统设计【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2025/12/26 20:09:08

数字人民币跨境支付试点启动,稳定币会被取代吗?

一、政策重磅:八部门联合发文,数字人民币出海迈出关键一步2025年12月24日,中国人民银行、国家发展改革委、财政部、交通运输部、商务部、金融监管总局、中国证监会、国家外汇局等八部门联合印发《关于金融支持加快西部陆海新通道建设的意见》…

作者头像 李华
网站建设 2025/12/26 20:08:43

MBA必看!9个降AI率工具推荐,高效避坑指南

MBA必看!9个降AI率工具推荐,高效避坑指南 AI降重工具:MBA论文的智能护航者 在当前学术写作中,随着AI技术的广泛应用,论文中的AIGC率问题逐渐成为MBA学生需要重点关注的难点。许多同学在使用AI生成内容时,往…

作者头像 李华
网站建设 2025/12/26 20:05:25

互联网医院系统|禾高互联网医院|互联网医院成品

随着医疗健康服务的数字化进程加速,互联网医院系统已演变为重构医疗资源配置、优化诊疗流程、重塑患者体验的战略性基础设施。其本质并非线下医疗的简单线上化,而是以患者为中心、以数据为驱动、以安全和合规为基石的新型医疗服务模式的综合载体。1、患者…

作者头像 李华