Lanzamiento de la versión estable de Dart 2.0 y Dart Web Platform

Nota: Únase a la comunidad Dart de habla rusa en Telegram , Slack y Google+ . Y al final del artículo encontrarás un pequeño anuncio.


El renacimiento de Dart como un lenguaje de programación popular para el desarrollo móvil y web


Hoy anunciamos el lanzamiento de una versión estable del lenguaje de programación Dart - 2.0, así como la plataforma web Dart, que ofrece una combinación única de productividad, rendimiento y escalabilidad.




Los desarrolladores de Flutter aprovechan las muchas características de Dart 2 ya que Flutter ha estado utilizando versiones preliminares del SDK Dart 2 durante varios meses. Sin embargo, el lanzamiento de la versión estable de Dart 2 es otro paso importante hacia el lanzamiento de Flutter debido a la estrecha conexión entre el marco y el lenguaje. Si aún no ha instalado Flutter, puede probarlo ahora .

Con el lanzamiento de Dart 2, ahora y los desarrolladores web también pueden usar esta versión del lenguaje, todas las bibliotecas y herramientas recibirán una serie de mejoras específicas para la Web. Toda la información necesaria sobre la instalación y creación de la primera aplicación se puede encontrar aquí .

Dart: creciente popularidad


Dart 2 es un hito importante en el camino para revivir a Dart como un lenguaje de programación popular enfocado en el desarrollo rápido y conveniente de aplicaciones móviles y web. Queremos que los desarrolladores que crean aplicaciones cliente sean productivos: con un lenguaje, marco y componentes que reducen el código repetitivo y les permiten centrarse en la lógica empresarial, así como en herramientas que identifican errores en las primeras etapas, ayudan en la depuración y generan compactos y código rápido

Hemos visto un fuerte aumento en la popularidad de Dart durante el año pasado. Nuestra propia analítica muestra un aumento de diez veces en el uso externo. El último trimestre, Dart fue uno de los idiomas de más rápido crecimiento en GitHub medido por solicitud de extracción; Las preguntas crecientes en StackOverflow también muestran una tendencia positiva en la popularidad de Dart:



Para Google, Dart es uno de los pocos idiomas que utilizamos para desarrollar aplicaciones web con millones de líneas de código de muchos proyectos diferentes, incluidos Google Ads, Google Shopping y nuestros propios proyectos de infraestructura interna.

De hecho, ya podría usar Dart sin darse cuenta: el popular preprocesador de estilo Sass fue reescrito recientemente en Dart para hacerlo más rápido, más portátil y más fácil de desarrollar. Sass ahora se distribuye como un ejecutable independiente en Homebrew y Chocolatey y se compila para JavaScript en npm. Dart facilita la instalación de aplicaciones en cualquier lugar sin dependencias externas, así como la implementación de flujos de trabajo para los usuarios que escriben en Dart, así como para los usuarios que no lo hacen.



Dart 2 se centra en tres aspectos: fortalecer y ajustar el lenguaje, desarrollar nuestro soporte para plataformas web y móviles, y crear herramientas y componentes que admitan el uso de Google Dart para el mundo exterior. El resto de este artículo cubrirá estos tres temas.

Dart 2: un lenguaje optimizado para el desarrollo del cliente


Como dijimos en febrero ( versión rusa ) , el sistema de tipo Dart es explícito . Esto significa que antes de que los usuarios inicien su aplicación, pasará por la etapa de análisis y compilación, durante la cual a menudo se descubre una gran clase de problemas. Cuando escalamos Dart a aplicaciones extremadamente grandes en Google, el sistema de tipos detectó muchos errores en una etapa temprana de desarrollo, lo que condujo a la creación de un mejor código.

Con Dart 2, no puede entrar en un estado en el que se ejecuta una expresión con un valor que no coincide con el tipo estático de esta expresión. Esto significa que puede escalar su base de código a millones de líneas, refactorizar grandes proyectos e implementar su código en producción, confiando en ello.

No se preocupe: explícito no significa montañas de código innecesario. El sistema de tipos incluye salida extendida, incluso para argumentos de tipo genérico .

final _field = [3.14, 6.28]; void main() { //   ,   <int>   print([1, 2, 3].runtimeType); // List<int> //    ,       // int (1)  double (3.14)    `num` print([1, 3.14].runtimeType); // List<num> //        print(_field.runtimeType); // List<double> } 

Obtenga más información sobre el sistema de tipo Dart 2 en esta página.

Como se mencionó en publicaciones de blog anteriores, Dart 2 también reduce el ruido del lenguaje en varias áreas clave: por ejemplo, la nueva palabra clave ahora es opcional, y la palabra clave const es opcional en el contexto apropiado .

Finalmente, hicimos mucho trabajo detrás de escena para unificar las diversas herramientas auxiliares, que ahora están unidas por una interfaz común que admite nuestros compiladores y tiempos de ejecución . Esto proporciona coherencia a nuestros usuarios y promete mejorar la velocidad y la calidad de las nuevas funciones a medida que Dart continúa evolucionando.

Dart 2 en la Web: marco rico y potente


Las aplicaciones web desde el principio han sido fundamentales para la misión de Darth. De hecho, la mayoría de los desarrollos Dart de Google son para aplicaciones web. Uno de los más grandes es Google Ads, que proporciona miles de millones de dólares de economía en línea. En el proceso de transferir código a Dart, redujeron el tamaño de la base de código de la interfaz de usuario en un 40%, al tiempo que mejoraron el rendimiento y la calidad de la aplicación.

Si bien el Dart SDK principal proporciona bibliotecas para acceder a las API de navegador modernas, también admitimos un marco robusto basado en Angular para crear aplicaciones web complejas. AngularDart 5 , enviado como parte de Dart 2, aprovecha el sistema de tipo Dart explícito y el nuevo sistema de compilación (descrito a continuación) para que el usuario pueda usar compilaciones incrementales rápidas en tiempo de diseño y un JavaScript compilado más compacto.

Una de las instrucciones principales en esta versión era reducir la cantidad de código que se procesa cuando se carga la página, lo que reduce significativamente el "tiempo de interactividad" para las páginas web. En muchas aplicaciones, el tamaño del código se ha reducido en más de la mitad en comparación con AngularDart 4.

Para demostrar las mejoras en la plataforma web Dart, creamos una implementación de cliente basada en Dart para el sitio web HackerNews como una aplicación web progresiva; se publica junto con otros ejemplos en el popular sitio web de HNPWA . Utilizando las mejores prácticas para crear aplicaciones web en Dart, pudimos crear una aplicación completamente funcional que es completamente interactiva en un segundo en dispositivos modernos y hasta cinco segundos en un dispositivo móvil modesto en una red 3G lenta. Esto es competitivo incluso en comparación con los marcos web ligeros optimizados para aplicaciones pequeñas.


https://hnpwa.dartlang.org/

Nuestras inversiones en infraestructura también se extienden a nuestra biblioteca de componentes , que también actualizamos. Ahora tiene acceso a 100 nuevas clases, incluidos varios componentes de material . Puede explorar todos nuestros componentes en la galería de componentes .


El selector de fecha de material es uno de los componentes disponibles para su aplicación web.

Kit de herramientas para Dart 2


Junto con Dart 2, Dart se convierte en el lenguaje compilado en JavaScript de primera clase, con el ciclo de desarrollo esperado por los desarrolladores web y excelentes características de rendimiento en tiempo de ejecución. Esto se logra gracias a las ventajas que la mayoría de los lenguajes orientados a JS no brindan: un sistema de tipo explícito y un excelente soporte para aplicaciones móviles nativas.

Con Dart 2, nuestras herramientas web cubren un modelo de desarrollo 100% JavaScript con dos compiladores JavaScript adicionales. El compilador de desarrollo, dartdevc , proporciona una compilación incremental rápida al generar JavaScript que es fácil de leer y depurar. Esto permite que nuestro compilador dart2js se centre en crear JavaScript altamente optimizado para aplicaciones web avanzadas para aplicaciones de escritorio empresariales móviles y complejas. Ambos compiladores usan el sistema de tipo Dart explícito para optimizar su salida.

Nuestras herramientas web se basan en un nuevo sistema de compilación diseñado para ser rápido, depurado y extensible. Ahora, tareas como generar código de serialización, compilar Sass en CSS y compilar Dart en JavaScript, todo se realiza en una cadena de herramientas, que admite actualizaciones rápidas e incrementales a medida que cambian las partes de su aplicación. El sistema de compilación también está diseñado para admitir el uso fuera de la Web. Ejemplo: es utilizado por los desarrolladores de Flutter para generar código para la serialización en JSON .

Junto con Dart 2, tenemos un conjunto ampliado de herramientas para desarrolladores. Además de admitir las herramientas de Android Studio y JetBrains, incluidas IntelliJ IDEA y WebStorm , también admitimos Visual Studio Code con la extensión Dart Code . Y también tenemos una plataforma para la experimentación: DartPad , que se ha actualizado completamente para Dart 2.

Finalmente, el SDK Dart viene con un conjunto de otras herramientas útiles: un administrador de paquetes que funciona con nuestro sitio web , un analizador estático , un linter que puede usar desde la línea de comandos o como un paquete, así como herramientas para la documentación web y el formato que cumplen con los estándares del lenguaje. Dart

Aprende más


Consulte nuestra Guía de inicio de Flutter y el Kit de herramientas Web Dart .

Las notas de la versión proporcionan información técnica detallada sobre muchas otras mejoras menores realizadas desde Dart 1, algunas de las cuales son críticas. Si encuentra problemas que Google no puede resolver, le recomendamos comenzar con StackOverflow . Suscríbase al boletín de anuncios de Dart y síganos en Twitter para recibir actualizaciones. También nos gustaría verte en nuestras comunidades, por ejemplo, en Gitter y r / dartlang reddit .

Gracias


Dart se ha convertido en un lenguaje de uso general optimizado para el desarrollo en la Web y en dispositivos móviles. Hemos estado trabajando en Dart 2 durante varios años, durante los cuales afectó todos los aspectos de nuestro ecosistema y requirió la migración de millones de líneas de código y cientos de paquetes.

Agradecemos a las comunidades Dart y Flutter , así como a los cientos de ingenieros de Google que nos han ayudado en este viaje. ¡No podríamos haberlo hecho sin ti!


De la comunidad


Me gustaría felicitar al equipo de desarrollo de Dart por un evento tan importante, este es realmente un hito importante para el desarrollo del lenguaje. Por supuesto, muchas de las palabras en este artículo pueden parecer bastante discutibles para usted, puede discutirlas tanto en los comentarios como en nuestros chats de Telegram , Slack y Google+ .
Y el anuncio prometido: además de pequeños mitaps, realizamos grandes eventos anuales dedicados al lenguaje, herramientas, Flutter, AngularDart y todo lo relacionado con ellos. El año pasado, fuimos visitados por ingenieros de Google, elaboramos una cerveza especial y, en general, fue divertido. ¡Este año intentaremos hacerlo aún mejor! Por lo tanto, reserve a fines de noviembre, principios de diciembre, y esté atento a los anuncios.

Source: https://habr.com/ru/post/es419635/


All Articles