Dart
El lenguaje del framework Flutter: una sola base de código compilada a móviles, web y escritorio.
27 pasos en 1 tours, desde lo básico hasta programas completos.
Los tours
- Primera versión
- 2011
- Creado por
- Google (Lars Bak and Kasper Lund)
- Tipado
- Estático con inferencia y seguridad ante null sólida; el hot reload marca el tempo
- Los fragmentos siguen
- 3.12
- Extensiones de archivo
- .dart
Para qué sirve
Dart es, ante todo, el lenguaje de Flutter: el toolkit de UI de Google dibuja interfaces idénticas al píxel en iOS, Android, web, Windows, macOS y Linux desde una sola base de código Dart, y esa dupla carga la enorme huella del lenguaje en las tiendas de apps. El lenguaje se construyó para ese trabajo — compilación anticipada a ARM nativo para los builds de release, un JIT con hot reload con estado para el desarrollo — así que el ciclo editar-y-ver se siente de scripting mientras se distribuye como compilado.
El lenguaje en sí es un lenguaje de objetos moderno y pragmático: seguridad ante null sólida horneada en el sistema de tipos desde 2021, records y coincidencia de patrones completa desde Dart 3, mixins, métodos de extensión, y async/await sobre Futures y Streams como la única historia de concurrencia que quien desarrolla apps suele necesitar. Los isolates — trabajadores que no comparten nada y se pasan mensajes — cubren el resto sin carreras de datos.
Más allá de Flutter compila a JavaScript y WebAssembly para la web, corre herramientas de CLI y servidores en su propia VM, y mantiene un ecosistema de paquetes ordenado en pub.dev. Rara vez es el primer lenguaje de alguien y a menudo es su segundo favorito: el que aprendió por Flutter y conservó por lo poco que discute.
De dónde viene
Google presentó Dart en octubre de 2011, diseñado por Lars Bak — cuyo motor V8 acababa de hacer rápido a JavaScript — y Kasper Lund, apuntado directo a reemplazar JavaScript con algo estructurado. La web tenía otros planes: ningún otro fabricante de navegadores quiso incrustar la VM de Dart, y para 2015 Google soltó esa ambición a favor de compilar Dart a JavaScript.
El lenguaje encontró su propósito cuando Flutter, que había elegido Dart en 2014 por su mezcla de compilación AOT y hot reload, llegó a 1.0 en diciembre de 2018. Dart 2 acababa de reconstruir el lenguaje alrededor de un sistema de tipos estático sólido, dejando atrás el experimento de tipado opcional de su primera década; la adopción desde ahí siguió la subida de Flutter a uno de los frameworks multiplataforma más usados.
Dart 2.12 entregó la seguridad ante null sólida en 2021, migrando el ecosistema entero; Dart 3 en 2023 la hizo obligatoria y sumó records, patrones, clases selladas y modificadores de clase. Desde entonces la frontera vuelve a ser la web — esta vez compilando a WebAssembly — con macros y metaprogramación estática en el horizonte.
Cómo se siente teclearlo
Dart se escribe como un Java al que le lijaron la ceremonia: las mismas llaves, puntos y comas, pero var y final abren la mayoría de las líneas y los tipos casi siempre se infieren. La interpolación mantiene ocupado al $, => cierra las funciones chicas antes de que pesen, y la puntuación de seguridad ante null — ?., ??, ??=, el ! ocasional — trabaja el meñique derecho. Dart 3 trajo brazos con => al switch y paréntesis de record por todas partes; las cascadas (..sort()) y los argumentos con nombre (count: 2) son el acento local. Nada exótico bajo los dedos, que es más bien el punto.
27 pasos en 1 tours, desde lo básico hasta programas completos.
Documentación oficial
- dart.dev
- El tour del lenguaje
- La referencia de la biblioteca core
- Effective Dart (la guía de estilo)
- pub.dev, el repositorio de paquetes