tutorial - ¿Debo aprender JavaScript antes de CoffeeScript?
coffeescript vs javascript (3)
Estoy buscando información sobre cómo aprender CoffeeScript sin aprender JavaScript puro.
Actualmente escribo CSS / SASS y HTML / HAML y me gustaría aprender JavaScript. Sé de JavaScript muy básico pero no lo he llevado muy lejos. Realmente me gusta la sintaxis de CoffeeScript y tiene más sentido para mí.
¿Aprender sólo CoffeeScript arruinaría mi aprendizaje?
El libro interactivo Smooth CoffeeScript pretende enseñar a CoffeeScript como primer idioma. Pero la mayoría de los recursos, incluido mi propio libro CoffeeScript: Desarrollo acelerado de JavaScript , están dirigidos a personas que tienen un nivel intermedio de conocimiento de JavaScript. Brendan Eich, el creador de JavaScript, publicó el libro diciendo que "ayuda a los lectores a convertirse en mejores JavaScripters en el proceso de aprendizaje de CoffeeScript".
Por lo tanto, sugiero que primero Codecademy al menos algunos tutoriales de JavaScript (como los de Codecademy ) y luego consideres invertir en un libro sobre CoffeeScript. ;)
En este punto, hay dos respuestas a esta pregunta. Asawyer dice que debes saber JavaScript para depurar CoffeeScript. Trevor sugiere que idealmente debería ser al menos un programador de JavaScript de nivel intermedio. Te daré la tercera perspectiva.
La manera más rápida de dominar CoffeeScript es comenzar a escribir en CoffeeScript, pero espera aprender JavaScript a medida que avanzas. Aún deberá aprender mucho sobre Javascript, incluidos los objetos estándar (Objeto, Array, Fecha, Matemáticas, XHR, etc.). Pero otras cosas se pueden aprender desde la perspectiva de CoffeeScript. Por ejemplo, el libro de Trevor tiene un gran capítulo sobre jQuery. Ahí es donde voy cuando necesito una actualización sobre la manipulación de DOM. Otro ejemplo es el alcance; Una vez que comprenda la diferencia entre la flecha delgada y la flecha gruesa (conceptos de CoffeeScript), sabrá las dos buenas maneras de manejar el alcance del cierre en JavaScript.
Si no conoce la programación orientada a objetos, le sugiero que comience con un libro como HeadFirst Design Patterns, aunque está basado en Java porque es la forma más rápida que conozco para reprogramar su cerebro para OO. Es difícil aprender buenas prácticas de OO comenzando con JavaScript ... menos con CoffeeScript.
Evidencia
Tengo experiencia en Java, Python y ActionScript, pero comencé a trabajar en CoffeeScript hace solo 3 meses, y he podido acelerar lo suficiente como para haber escrito 4.500 líneas de código de producción, incluidos 2 proyectos originales que ayudan con CoffeeScript. desarrollo ( CoffeeDocTest , y Line Commands para Coda ) y mi trabajo principal en una herramienta para mi doctorado llamada Lumenize , así como contribuir a otros dos proyectos de CoffeeScript ( coffedoc y CoffeeScript mode for Coda ). Nunca me he propuesto explícitamente escribir o aprender JavaScript.
Lógica adicional
No baso mi conclusión únicamente en mis propias experiencias. Aquí hay otras razones:
Puedes evitar el tiempo perdido aprendiendo dónde están todas las verrugas en JavaScript. ¡Todavía no sé la diferencia entre == y === y no me importa! [Actualización: Ahora sí sé la diferencia, pero ¿quién quiere que ''1'', la cadena sea == a 1, el número? Todavía estoy feliz de usar === en todas partes]. ¿En qué navegadores y bajo qué circunstancias es seguro olvidar un punto y coma? Su código funcionará bien durante sus pruebas y luego fallará en el navegador de otra persona. Claro que hay herramientas como jslint pero se necesita tiempo para aumentar el uso de ellas. Ir directamente a CoffeeScript salta ese momento.
Aprenderá buenos hábitos de OO para crear clases y herencia más fácil en CoffeeScript que en JavaScript.
Enumere las comprensiones y el idioma para los bucles que cambian sus hábitos. Los desarrolladores de JavaScript a menudo utilizan un estilo de devolución de llamada funcional para iterar sobre colecciones ($ (). Each () por ejemplo). El uso de un estilo funcional como este es mucho menos eficiente pero es una sintaxis mucho más limpia que la que proporciona JavaScript de forma nativa. Con CoffeeScript, obtiene la velocidad de la implementación nativa con una legibilidad aún mejor que la sintaxis de jQuery.
El argumento de depuración es exagerado. Todos los identificadores y la estructura general se mantienen cuando se compila el código. Es muy fácil ver tu propio código en el JavaScript compilado. Al principio, tuve que estudiar cómo se estaba convirtiendo mi CoffeeScript, pero así es como aprendí a escribir JavaScript "bueno". Ahora, puedo leer fácilmente el JavaScript compilado.
Sí absolutamente aprender javascript primero! Coffeescript se compila en él, y cuando el cliente esté ejecutando su código, será javascript en bruto. ¿Cómo esperas depurarlo sin entender el lenguaje?