typestar

Lenguajes

Dart

El lenguaje del framework Flutter: una sola base de código compilada a móviles, web y escritorio.

Practica Dart

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.

Practica Dart

27 pasos en 1 tours, desde lo básico hasta programas completos.

Documentación oficial

Otros lenguajes