Red de conocimiento informático - Conocimiento informático - Cómo evaluar el lenguaje de programación Elm

Cómo evaluar el lenguaje de programación Elm

1. Comparación con PureScript (Purs): ambos son lenguajes funcionales de tipado estático con diferentes objetivos principales.

Apunta principalmente a lenguajes funcionales fuertemente tipados y deseos. Para convertirse en un lenguaje general, Elm solo quiere estar activo en el campo front-end, principalmente agregando azúcar sintáctico, tipos y el concepto de objeto inmutable

. Como resultado, Elm es más amigable para los principiantes y Purs requiere más configuración; el sistema de tipos Purs es más complejo. Purs

también se dedica a la producción de JS legible, aunque como interfaz, no le importa esta función. Relativamente hablando, Elm es más fácil de aprender que Purs.

Es más liviano pero el lenguaje también es más débil. Si está familiarizado con la programación funcional, es más probable que elija Purs. Como se mencionó anteriormente, sin el apoyo de las grandes empresas, es difícil lograr un desarrollo importante. De hecho, incluso si cuenta con el apoyo de una gran empresa, es posible que no se desarrolle, como el anterior dart y coffeeScript.

2. Comparación con CoffeeScript: ambos toman prestado algunas cosas de otros lenguajes y las agregan a JS

para expandir JS. El café absorbe principalmente una gran cantidad de azúcar sintáctico de Ruby para extender JS. Si el tiempo se remonta a tres años, mucha gente alguna vez pensó que el café era el futuro de JS

. ¿Por qué tengo que decir esto? La actitud de los fanáticos del café en el pasado es similar a la de los fanáticos de Elm ahora. El café en realidad tiene un producto relativamente exitoso, que es Atom.

Pero ahora este lenguaje es obviamente. Ya no es la corriente principal. Del mismo modo, si Elm tiene suerte, será el próximo café. Si no tiene suerte, probablemente será el próximo Dart.

3.

Comparación con ES: ES lo será. Definitivamente será la corriente principal absoluta, al menos cada cambio de características de ES será discutido por la comunidad, y no habrá ninguna bofetada en la cabeza y luego será incompatible con el código anterior. En comparación con ES

La ventaja es que algunas configuraciones pueden reducirse y hay azúcares sintácticos en algunos lugares, pero de hecho, cuando se escribe en la cadena de herramientas, ES definitivamente estará varias calles por delante de Elm. En comparación con los dos puntos de venta principales de Elm,

los objetos inmutables pueden ser detectados directamente por la herramienta lint. El sistema de tipos se basa principalmente en el marco en sí, como

En. De hecho, cada componente en sí ha dependido de propTypes para resolver parte del problema. La única ventaja es que es más fácil escribir Hola mundo.

Pero cuando se trata de proyectos complejos, CSS en Elm es relativamente problemático de escribir y el nivel de soporte de herramientas está muy por detrás.

4. Comparación con scalaJS

: Es esencialmente lo mismo que Purs

La única posibilidad es que a veces el backend sea scala, por lo que antes y después. Es bastante interesante que el cliente pueda compartir definiciones de tipos. La ventaja es que son más amigables para los principiantes, como Purs y Scala.

Si no hay un buen middleware, es muy molesto escribir código directamente para operar Dom. Por ejemplo, Scala

.

Puedo escribir mucho asInstanceOf (tal vez no soy bueno escribiendo) y Scala también necesita usar sbt. Se dice que la reputación de esto no es muy buena y sería demasiado confuso si se equivoca. con experto.

5.

Comparación con clojureScript: aunque ambos son funcionales, muchas empresas han puesto clojure en producción y la familia de lenguajes lisp

siempre ha tenido muchos fanáticos y no tiene tipos, compilador lisp

En general, no habrá errores importantes, es más práctico de todos modos, la cadena de herramientas está bien y los extremos frontal y posterior deberían poder hacerlo. compartir algo de código. Como no he escrito mucho sobre ello, no diré mucho.

6. Comparación con TypeScript/Flow: estos dos persiguen un superconjunto de JS, son compatibles con el código JS y buscan una mayor practicidad que otros. Sigue siendo diferente de la búsqueda de diversión de Elm.