标签 Dart 下的文章

大家好,我是老刘

最近TIOBE在2026年一月的编程语言排名出来了。

不出意外的,Dart又排在25名之后了。

为啥作为跨平台一哥Flutter的编程语言,Dart的排名如此落后?除了Flutter,Dart还有哪些应用场景?

本文我们来讨论一下这些问题。

1. Dart 语言近半年排名趋势

老刘统计了 Dart 语言在 TIOBE 索引中的近半年排名趋势,发现 Dart 语言的排名一直保持在 25 名之后,而其 Ratings 也始终保持在 0.60% 左右。

日期Dart在TIOBE的排名Ratings
2025-07280.61%
2025-08280.59%
2025-09280.62%
2025-10270.62%
2025-11260.69%
2025-12260.64%
2026-01260.63%

数据来源:https://www.tiobe.com/tiobe-index/

2. TIOBE并非根据语言使用量进行排名

TIOBE 索引是一个衡量编程语言 popularity 的指标,它根据每个月的搜索量来计算每个语言的排名。

每个月,TIOBE 会发布一个排名,该排名是根据搜索量的百分比来计算的。

它聚合了全球主流搜索引擎和网站的数据,包括 Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube, Baidu 等25个以上的平台。

计算Ratings逻辑大致如下:

  • 首先计算每种语言在各个搜索引擎上的“命中数”(hits)。
  • 对这些数据进行归一化处理(消除不同搜索引擎总量差异的影响)。
  • 最后计算出该语言在所有被统计语言总搜索量中的 占比(即 Ratings) 。

所以TIOBE的排名只能代表Dart语言在众多编程语言中的受关注程度,而非其在实际开发中的使用数量。

3. 为啥Dart语言排名始终不高?

与 2025 年大幅攀升的语言(如 C# 成为 2025 年度语言、 Perl 从 32 名冲回 11 名、 Zig 冲到 42 名)相比,Dart 的排名非常稳定,没有出现剧烈的排名跳跃。

根本原因是Dart语言的排名是与Flutter深度绑定的。

和大多数编程语言不通,比如Java用于服务端开发、Android开发的多个不同的领域。

而Dart的主要应用场景只有Flutter。

如果Dart在未来没有脱离Flutter用于其它方向,那么它的排名就会继续保持在20名之后。

4. Dart排名稳定代表了什么?

我们来看一下Dart排名波动最大的时间点。

可以看到Dart语言最受关注的时间是在2017年Flutter刚发布的时候。

之后是Flutter的高速扩张然后成为客户端跨平台开发的首选框架。

最近这几年,Flutter逐步进入了稳定期,Dart语言的关注度也开始稳定下来。

所以Dart语言的排名稳定从某种程度上代表了Flutter生态相对比较稳定。

这对我们这些Flutter开发者来说是一个好消息。

毕竟没有一个程序员喜欢自己吃饭的语言框架三天两头出现大的变动。

而且语言和框架的稳定带来的另一个好处就是AI友好度的提升。

因为AI模型通常是基于某个语言或框架训练的,而如果这些语言或框架经常变化,那么在日常开发中就需要程序员不停的去修正AI生成的代码。

5. 希望Dart语言能有更多领域的应用

之前老刘就专门写过文章,之前我喜欢Kotlin的强大,现在更喜欢Dart的简洁。

[Kotlin vs Dart:当“优雅”变成心智负担,我选择了更简单的 Dart
](https://mp.weixin.qq.com/s/KyqmMXTE4GyAJU2NjJYtUg)

随着编程风格越来越趋向于简洁、稳健。

我也越来越喜欢Dart这种既能同时支持面向对象和函数式编程两种编程范式,同时又能在日常开发中保持语法简洁的编程语言。

所以老刘还是希望能有更多的领域可以应用到Dart语言。

老刘觉得在以下一些领域Dart还是有用武之地的:

服务端开发 (Backend)

如果能用 Dart 写后端,实现**前后端同构**,复用同一套 Model 和 业务逻辑,将极大地降低全栈开发的门槛。像 Serverpod 和 Dart Frog 这样的框架已经开了个好头,但还需要更完善的生态。

命令行工具 (CLI)

Dart 优秀的 AOT 编译能力,使其生成的二进制文件启动极快且无需依赖环境。编写跨平台的脚本工具,Dart 其实比 Python 或 Node.js 更具部署优势。

WebAssembly (Wasm)

随着 Dart 对 WasmGC 的支持日益完善,未来 Dart 代码将能以近乎原生的性能运行在浏览器中,这为高性能 Web 应用提供了新的可能。
当然这部分可能还是和Flutter有很大的绑定关系。

总结

如果Dart能像JavaScript从浏览器走向Node.js那样,成功在服务端或CLI领域突围,那么对于我们这些Flutter开发者来说,将是一个好消息。

因为这意味着我们掌握的这门语言,将拥有更广阔的舞台,而不仅仅局限于画UI。

那么作为开发者,我们不妨在日常的小工具、脚本或者简单的后端服务中,多给 Dart 一些机会。

毕竟,生态的繁荣,离不开每一个开发者的尝试与贡献。

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

🎁 点击免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。可以作为Flutter学习的知识地图。

🚀 覆盖90%开发场景的《Flutter开发手册》

📂 老刘也把自己历史文章整理在GitHub仓库里,方便大家查阅。
🔗 https://github.com/lzt-code/blog

[Flutter 独立开发] 挑战千元机极限:纯客户端计算 K 线+指标,三星 A53 实测 70 FPS

大家好,我是《交易学徒》的独立开发者,祝大家周末愉快!

做过金融类 App 的朋友都知道,移动端的 K 线图( Candlestick Chart ) 渲染一直是性能优化的“深水区”。

为了降低服务器成本和网络延迟,我做了一个“违背祖宗”的决定:完全依赖客户端算力。 所有的技术指标( MA, BOLL, MACD 等)计算,全部在移动端本地实时完成,不依赖后端返回计算结果。

这意味着,一台三星 A53 ( Exynos 1280 处理器,典型的千元机性能)不仅要负责 UI 绘制,还要在主线程实时遍历数组计算指标。

在这种“地狱模式”下,优化成果如何?

📉 性能实测:A53 跑分数据

测试设备:三星 Galaxy A53 (Exynos 1280)
测试场景

  • GOLD 平均每秒 2.5 次报价
  • 加载 500 根 K 线数据
  • 同时开启 MA (移动平均线) + BOLL (布林带) + MACD 三组指标 + 图表网格
  • 所有指标数据均为 本地实时计算
  • 进行高频拖拽、缩放操作

实测结果

1. 三星 A53 (低端机代表)

A53 帧率测试图

70 FPS !
在这种重负载下,UI 线程依然保持极高的流畅度,超过 60Hz 的及格线。对于一款千元机来说,这个渲染性能我已经非常满意了。

2. 三星 S25+ (旗舰机代表)

S25+ 帧率图

旗舰机毫无压力,贵的还是好哇。


🏛️ 技术挑战:为何 Dart 能抗住?

很多人对 Flutter 的印象还停留在“套壳性能差”。但实际上,通过合理的架构,Dart 的性能完全够用。我的优化核心思路是:UI 渲染与数据计算分离,用空间换时间。

1. 极致的分层渲染 (Layered Rendering)

我利用 Stack 将视图拆解为三个独立的渲染层级:

  • **Layer A (底层)**:静态 K 线与网格。这是最“重”的层(包含数千个顶点),只有在缩放或平移时才重绘。
  • **Layer B (中间层)**:技术指标 (MA, BOLL)。与 K 线同步,但逻辑分离。
  • Layer C (交互层)这是优化的关键。包含当前的 Bid/Ask 价格线、十字光标。这一层极其轻量,且更新频率最高(每秒数次)。

通过 Stack + RepaintBoundary,实现了:价格跳动时,底层的几百根 K 线完全不需要参与重绘,GPU 只需要绘制那几条横线。

2. 动态 LOD (Level of Detail) 策略

在手机屏幕上展示 500 根 K 线时,GPU 光栅化压力巨大。
我在代码中加入了 LOD 策略:

  • Zoom In:渲染完整的 Candlestick(蜡烛图)。
  • Zoom Out:当可视区域数据点过多时,自动切换为 LineChart(收盘价连线)。

这极大地降低了 GPU 的顶点绘制数量,解决了缩放时的“卡顿感”。


📱 软件界面预览

目前的 UI 风格偏向现代扁平,针对移动端操作做了很多适配。

软件界面截图


🔗 下载与体验

软件目前已上架 Google Play ,名为“交易学徒”。如果你对高性能 Flutter 开发或者交易感兴趣,欢迎下载体验。

🎁 V 友专属福利

感谢大家看完这么枯燥的技术分析。
人肉送 VIP:在评论区留下你的 用户 ID(在“我的”页面可以看到),我会手动为你开通 1 个月的 VIP 会员

欢迎大家对 UI 、交互或者技术实现提出建议,每一条我都会认真看!