¿Cuál es el estado actual del lenguaje de programación Dart de Google? [cerrado]

15

Dart ha estado fuera durante mucho tiempo (en años de Internet), pero a juzgar por las Tendencias de Google , no ha recibido mucha publicidad, y el hecho de que solo funcione en Chrome tampoco ayuda. No obstante, Chrome está ganando cuota de mercado todos los días, lo que se presta para una mejor visión de Dart.

¿Cuál es el panorama general ahora? ¿En qué estado está el idioma? ¿La gente lo aprecia mucho? ¿Cuota de mercado? Muestra de aplicaciones web? ¿Algunas implementaciones de características que te hacen decir " tengo que usarlo"?

Mihalis Bagos
fuente
2
Esta pregunta puede juzgarse como demasiado localizada en el tiempo y no está segura de cómo hacerla menos localizada sin pedir una opinión sobre el idioma en sí.
Matthieu
1
@ Matthieu: ¿Demasiado localizado? ¿Seriamente?
Jim G.
1
@JimG. : Para un idioma que está en su versión 0.06 , y que se actualiza cada mes , creo que es justo decir que este idioma podría no ser el mismo en los próximos 6 meses, y que cualquier juicio emitido hoy será inútil entonces.
Matthieu
1
Dart funciona en navegadores modernos compilándolo en JavaScript.
Seth Ladd
2
Realmente no entiendo la razón por la que esto se cerró. Requiere hechos (participación de mercado / uso), referencias (ejemplos en línea, etc.), el estado en el que se encuentra el idioma (vista previa técnica como se indica en las respuestas), implementaciones de características (hecho / referencia / experiencia específica). La publicación incluso proporciona información similar a la información que espera, que es clara y concisa
Mihalis Bagos

Respuestas:

27

La respuesta corta a "¿Cuál es el estado de Dart?" es: está en Vista previa de tecnología. Esa es una forma especial de decir: "lanzamos temprano para que podamos abrir el código fuente de todo y trabajar al aire libre". "Vista previa de tecnología" también significa "aún no estamos en Alpha, tenemos mucho trabajo por hacer, pero hay suficiente para que juegues y des tu opinión".

El tiempo de Internet puede funcionar para noticias o iteraciones de productos de consumo, pero probablemente no para algo tan ambicioso y amplio como el esfuerzo de Dart. Recuerde, Dart es más que un simple idioma. También es un conjunto de bibliotecas, una mejor interfaz DOM, una máquina virtual, un editor e integración con Chrome. El equipo está trabajando muy duro en muchos hilos paralelos, pero personalmente espero que pasen seis meses antes de que tengamos la mayoría de las piezas en su lugar.

No es cierto que Dart solo funcione en Chrome. Dart compila a JavaScript y se dirige a los navegadores modernos. Claro, Chrome será el primero en lanzarse con soporte nativo de Dart, pero garantizar que Dart compile a JavaScript eficaz y eficaz es una restricción y característica central del proyecto.

El panorama general es que Dart se convertirá en un entorno de desarrollo de "baterías incluidas" para aplicaciones web modernas. El objetivo principal de Dart es ayudar a garantizar que la web siga siendo una plataforma productiva y agradable para el desarrollo y la implementación de aplicaciones. Esto significa que muchas piezas deben encajar: lenguaje, bibliotecas, editores, máquinas virtuales e integración del navegador. En conjunto, creemos que Dart será una opción atractiva para los desarrolladores de aplicaciones web modernas.

La gran imagen GRANDE es que queremos llevar a los desarrolladores de aplicaciones a la web, y queremos que los desarrolladores web escriban aplicaciones web más complejas. Si usan Dart, eso es genial. Pero al final del día, el idioma no importa. Lo único que importa es que se están creando aplicaciones web modernas, complejas, del lado del cliente, de alta fidelidad, baja latencia y hermosas.

El lenguaje está en estado de desarrollo. Vemos nuevos lanzamientos a la especificación aproximadamente una vez al mes. Faltan características principales, como la reflexión, pero seguimos iterando. Acabamos de agregar compatibilidad de map () a Collection, por ejemplo. Gilad Bracha, un tipo que conoce sus idiomas (después de haber creado NewSpeak y trabajó en Java Lang Spec) y Josh Bloch, un tipo que conoce sus bibliotecas (después de haber escrito Effective Java y trabajado en las bibliotecas de Java Collection) están trabajando en el idioma y bibliotecas, junto con el gran equipo.

Hacer que la gente valore mucho a Dart es difícil de generalizar, y probablemente no te importe demasiado. Debes sacar tus propias conclusiones después de haber jugado con Dart. Mi experiencia es que los desarrolladores de aplicaciones de otras plataformas como Java, C # o Flex encuentran a Dart atractivo y familiar. Mi experiencia con los desarrolladores de JavaScript está dividida. Si ese desarrollador de JavaScript también ha creado aplicaciones en otras plataformas, son cautelosamente optimistas sobre Dart (o, al menos, la solución que está tratando de proporcionar). Si ese desarrollador de JavaScript creció en JavaScript y solo ha programado en JavaScript, hay más dudas. Esto podría ser una preocupación fundamental sobre el idioma, o vacilar en abandonar una zona de confort, o simplemente no encontrarse con casos extremos con JavaScript. Esto es solo generalización, pero yo '

En cuanto a la cuota de mercado, es extremadamente temprano en el juego. Probablemente no sea la pregunta correcta, ya que Dart ni siquiera está enviando. Una pregunta más interesante sería: "¿Cuál es la cuota de mercado de las aplicaciones en la web?" y luego veamos cómo podemos abordar eso.

En cuanto a un escaparate de aplicaciones web, el equipo de Dart creó Swarm, un hábil lector de noticias. Desafortunadamente, solo lo tenemos en el código fuente en este momento: http://www.dartlang.org/samples/index.html

En cuanto a algunas características "asesinas", diría que hay algunas muy interesantes:

  • los tipos opcionales son ingeniosos, agregan anotaciones y documentaciones para humanos y máquinas.
  • Aislamientos es una excelente manera de lograr la concurrencia de una manera segura.
  • Las bibliotecas (modularidad) son muy necesarias para la pila web, y Dart tiene bibliotecas y clases.
  • Las instantáneas permitirán un arranque extremadamente rápido
  • Las bibliotecas agrupadas (como colecciones, cronómetro, etc.) unificarán las bases de código y reducirán el código de envío
  • Nueva y agradable interfaz DOM, que hace que trabajar con DOM sea mucho más agradable. Se siente como un código nativo de Dart.

Espero haber respondido tus preguntas. Creo que la única pregunta que importa es: "¿Mi lenguaje me ayuda a crear aplicaciones web complejas, de alta fidelidad, baja latencia, modulares y modernas?" El estado final de todo esto es simplemente ayudar a más desarrolladores de aplicaciones a entregar aplicaciones más exitosas a la web moderna.

Seth Ladd
fuente
llegó a este hilo mientras miraba su video Introduction to Dart. Listo para algunas manos en Dart. :)
SachinGutte
8

No se puede medir la edad del lenguaje de programación en "años de internet". De hecho, no se puede medir ninguna tecnología real en años de internet. Todo lo que realmente puedes medir en años de internet son exageraciones, pero las exageraciones no reflejan la realidad.

Dart es público desde hace 3 meses. Compare eso con los técnicos "frescos" y "calientes" en el campo, como CoffeeScript o Node.js, que son públicos desde hace 2 años y casi 3 años respectivamente. También vale la pena señalar que ambos son pasos relativamente pequeños en comparación con Dart. Básicamente, CoffeeScript significaba conectar un generador de JavaScript en un analizador basado en Ruby y Node.js significaba vincular E / S sin bloqueo al Google V8.

Dart es un intento de rediseñar la programación web front-end en todos los niveles, es decir, sintaxis, características del lenguaje, entorno de tiempo de ejecución, API. Comparar Dart con CoffeeScript, por ejemplo, es como comparar un prototipo de un avión personal con piloto automático alimentado con energía solar con un Shelby GT de 1968. Claro, el primero tiene mucho más potencial, pero invertir en él, y mucho menos abordarlo requiere mucha audacia. Este último tiene muchas deficiencias conocidas, pero son conocidas, lo que hace que todo sea predecible y confiable.

Por supuesto, esto es solo especulación, pero creo que Dart es un callejón sin salida, que eventualmente se salvará para avanzar JavaScript u otras soluciones. Si desea un lenguaje dinámico, CoffeeScript y Parenscript ya hacen lo que Dart promete. Si prefiere un lenguaje tipado estáticamente, entonces haXe y Opa harán el truco. Los cuatro tienen ventaja sobre Dart. Y todos ellos están diseñados para compilarse en JavaScript de forma predeterminada, no solo como una alternativa.

back2dos
fuente
3
Creo que aunque Dart es nuevo como lenguaje, no he visto nada particularmente innovador en él. Por lo que puedo decir, está compuesto principalmente por características de idiomas más antiguos. Por lo tanto, en realidad no se parece mucho a un "prototipo de un avión personal autopropulsado con energía de solare".
Tikhon Jelvis
@ back2dos +1 "No se puede medir la edad del lenguaje de programación en" años de internet ". De hecho, no se puede medir ninguna tecnología real en años de internet". Esto me abrió una nueva perspectiva para pensar. ¿Por qué no se puede y cómo se puede medir la tecnología en épocas previas y posteriores a Internet?
Ubermensch
@TikhonJelvis: La comparación fue más sobre la madurez. Aún así, la energía solar, el piloto automático y la aviación existen, por lo que el vehículo que describí es similar a Dart, "solo" una recombinación de ideas existentes. El desafío de la ingeniería no es recombinarse, sino hacerlo volar;)
back2dos
Comparar Dart con otros idiomas está fuera de esta discusión, y por lo que puedo imaginar con cualquier discusión, ya que de todos modos son cosas diferentes. Dart es más que un preprocesador y ciertamente no está orientado al lado del servidor. Sin embargo, estoy de acuerdo con la especulación sobre el futuro de Dart, y esa es una de las cosas que esperaba recibir respuesta
Mihalis Bagos
@MihalisBagos: Bueno, dado que Dart puede compilar a JS, ya puede ejecutarlo en Node.js, por lo que puede usarse en el lado del servidor. Además, el tiempo es difícil de medir de manera significativa, por lo que para comprender qué tan lejos puede llegar Dart en qué momento, una comparación con un idioma dado en una etapa posterior con una cantidad comprensible de características es prácticamente el mejor marco de referencia que puede obtener.
back2dos
5

Dart todavía está en vista previa técnica. Por el momento, la especificación del lenguaje tiene la versión 0.0.6, se espera un 0.0.7 en algún lugar esta semana. Está lejos de ser "completo". Hay varios ejemplos en el repositorio: http://www.dartlang.org/samples/index.html

Aquí hay una vista sobre lo que es mejor en términos de sintaxis que en JavaScript: http://www.grobmeier.de/10-reasons-why-dart-is-cooler-than-javascript-03012012.html Descargo de responsabilidad: es mi publicación . Necesito decir aquí que me gusta JavaScript, pero en algunos puntos tiene peculiaridades, que no me gustan mucho.

También hay una comunidad en crecimiento a su alrededor: http://www.dartosphere.org

Algunas personas han logrado portar Box2D a Dart, otro tipo conectado a CouchDB. De todos modos, no hay nada que deba usar en la producción.

Antes de un tiempo, Josh Blochua se unió al equipo para trabajar en una refactorización de la API. Puede esperar algunos cambios incluso en la API Core.

Soporte de navegador: puede transcompilar Dart a JavaScript, preferiblemente con Frog (no DartC, se compila en grandes archivos javascript). Dartium es uno de los navegadores que admite Dart nativo, una controversia discutida en la rama de Webkit también está en algún lugar.

Mi expectativa personal es conseguir algo más concreto a mediados del próximo año. Desde mi experiencia, los desarrolladores de Google están haciendo mucho para que el lenguaje sea correcto y bueno, tomando prestado no solo de Java, sino también de Erlang y JavaScript.

Aquí hay un ejemplo, un juego portado desde JavaScript: http://blog.sethladd.com/2011/12/10-lessons-from-porting-javascript-to.html

Uno puede esperar que Dart llegue a Android, tal vez incluso como un "idioma principal". La gente dice que vendrá a AppEngine.

Personalmente, creo que Dart es muy elegante y ya es bastante agradable. Además, creo que tendrá una cuota de mercado una vez que esté completa.

Encontrará muchas de sus preguntas respondidas en estas preguntas frecuentes: http://www.dartlang.org/support/faq.html#compare-to-coffeescript

cristiano
fuente
Gracias por la respuesta orientada a la práctica, enlaces muy interesantes!
Mihalis Bagos
0

Dart ha estado fuera por años (en años de internet)

Ni siquiera se usa ampliamente y es inmaduro. Las tecnologías listas para la producción han existido durante más de 10-15 años ... para Dart, ni siquiera se puede decir que es un pre-alfa. Las nuevas tecnologías siempre se ven bien, en papel, cuando nadie las está usando.

no ha tenido mucha exageración

Yo pienso lo contrario. Es una pena que un lenguaje tan malo y atrasado haya recibido críticas tan positivas. Se remonta de la hermosa OOP Ecma / Java Script con herencia parásita, cierres y devoluciones de llamada a una OOP de madera, de una década de antigüedad, tomada de Java con todas las horribles prácticas de programación con las que Java viene.

¿Algunas implementaciones de funciones que te hacen decir "tengo que usarlo"?

Ninguna. Si conoce Java y tiene intolerancia al conocimiento para aprender Ecma / JavaScript correctamente, Dart probablemente sea lo único que funcione para usted.

Ya sabes cómo funciona google. Usan mucho Java, así que probablemente por eso produjeron un lenguaje tan horrible ... simplemente están acostumbrados.

Además, está fragmentando aún más la web y solo puedo esperar que Mozilla y Opera nunca implementen esto (porque MS seguramente no agregará soporte para algún lenguaje similar a google java). Además de que todo el concepto está FECHADO, debemos deshacernos de lenguajes como C ++ o Java al menos al codificar las IU porque son muy ineficaces. Es como reemplazar C ++ con Assembler, porque los codificadores de más de 50 años se niegan a aprender cosas nuevas.

Slawek
fuente
2
Es posible que desee atenuar un poco sus sesgos de idioma; su primer párrafo hace un buen resumen y termina con una buena observación, pero esos se pierden en todo lo "horrible".
Patrick Hughes
+1 al bajar el tono, c ++ todavía está muy vivo (como lo es el ensamblador) para aplicaciones específicas. Puede que no sea la mejor herramienta para cada trabajo, pero en muchas circunstancias es increíble. Assembler, por ejemplo, se usa en motores de juegos, creo.
Paul Hiemstra
No dije que Java o C ++ es malo ... ambos son malos para las interfaces de usuario, que es lo que JS se utiliza (principalmente) para programar. Ambos son buenos en otras áreas. Dart es solo un enfoque ingenuo de personas que solo programan en Java, por lo que probablemente piensan que Java es bueno para todo. Además, trabajé con MFC y Java en UI, así que creo que tengo derecho a decirlo :) Es como decir que Assembler es más avanzado que C porque ASM es todo lo que sabes :)
Slawek
He trabajado con Java y JavaScript y puedo decir que tu publicación es horrible e ingenua. Los lenguajes de programación no son religión, y Dart tiene un enfoque bastante bueno. No creo que podamos o debamos deshacernos de lenguajes como Java. Esto es solo un discurso de hacker sin ningún razonamiento.
Christian
¿Razonamiento? Puede hacer lo mismo en JS que en Java ... solo un par de VECES más rápido + el código es mucho más fácil de administrar y cambiar, si estamos hablando de interfaces de usuario. Tiempo = dinero. Ya era bastante malo cuando teníamos VBScript y ECma juntos en los navegadores ... ¿por qué volver a los años 90? JS es un lenguaje específico para un caso muy específico, ¿por qué reemplazarlo con algo general y horrible?
Slawek
0

Dart es un concepto defectuoso que sigue los pasos de Javascript. Google debería estar colaborando en la creación de un tiempo de ejecución estándar para los navegadores web (algo así como un HTML 6). Similar al código de bytes de Java o IL de Microsoft.

No deberíamos estar estandarizando en lenguajes específicos, sino en tiempos de ejecución. El "navegador es un sistema operativo". ¿Derecho? WTF google? Sigue tu propia visión !!!

Lord Tydus
fuente
2
Java bytecode es un lenguaje específico. Como es CIL.
Jörg W Mittag el