Soy un programador razonablemente experimentado que intenta aprender el desarrollo web. Estoy tratando de desarrollar una aplicación web del lado del cliente que use svg o canvas para gráficos. Decidí que me gustaría escribir el código de la aplicación en Coffeescript. No conozco Javascript ni Coffeescript.
¿Qué tan necesario es saber Javascript para el desarrollo web Coffeescript? ¿Es probable que encuentre algún problema complicado que me obligue a comprender Javascript? ¿Puedo trabajar felizmente con las API de Javascript de Coffeescript?
Editar : podría aprender fácilmente los conceptos básicos de Javascript en una semana. Me preocupa más que Javascript parezca tener muchos bordes afilados ocultos. En la pregunta de la característica de idioma más extraña en StackOverflow, Javascript es uno de los idiomas más comunes. Tiene un objeto inusual y un modelo de clase. Tiene reglas de alcance de nombre no obvias. Creo que me lleva más de una semana saber realmente un idioma.
Voy a trabajar en un pequeño proyecto simple para aprender desarrollo web. ¿Sería mejor usar Javascript o Coffeescript? Creo que, a la larga, preferiré Coffeescript, pero estoy dispuesto a comenzar con Javascript si es que voy a necesitar una comprensión profunda de Javascript para usar Coffeescript.
class
palabra clave en CS no hace nada mágico; simplemente usa mecanismos de herencia de prototipos nativos JavaScripts. Por esta razón, recomendaría tener al menos un conocimiento auxiliar de algunas de las "características" más oscuras de JavaScripts.Respuestas:
Supongo que no sería absolutamente necesario, pero a largo plazo te toparías con obstáculos si no lo haces.
Debe comprender lo que sucede debajo del capó y a qué se transcribe el compilador CoffeeScript, ya que eso es lo que los navegadores (suponiendo que estamos hablando de usar CoffeeScript en un entorno de navegador) deberán interpretar. Lo que significa que también es lo que necesitará para depurar , especialmente teniendo en cuenta que CoffeeScript es bastante reciente y aún podemos encontrar algunos bordes ásperos y errores en su mecanismo de transcripción. Además, si no utiliza ninguna herramienta de depuración a medida para la depuración, deberá saltar el código JavaScript generado para depurar utilizando Firebug o Chrome Dev Tools o su consola JS de elección. En algunos casos, podrá ver cómo el error JS se relaciona directamente con la declaración de origen de CoffeeScript. En otros, como la transcripción no es trivial,
Tómelo de esta manera: puede desarrollar software en Java y C # sin haber realizado ningún desarrollo de bajo nivel. Sin embargo, pasaría un mal momento entendiendo lo que está sucediendo y por qué tiene problemas de rendimiento y problemas de memoria si no tiene idea y no puede hacer una suposición educada sobre lo que los tiempos de ejecución de estos idiomas deben hacer en el fondo, y qué parte de las conjeturas pueden arruinar porque simplemente no pueden hacer milagros.
Además, si aprende JavaScript, se dará cuenta de cuán increíblemente más difícil puede ser de lo que parece originalmente, y apreciará CoffeeScript por su sintaxis clara y limpia aún más :)
fuente
Usted pregunta:
Puedo decir, inequívocamente, sí. En general, si está haciendo algo interesante, en algún momento al menos necesitará comprender lo que está sucediendo en los niveles por debajo de usted. (A veces, Google + cortar + pegar puede salvarte, pero no quieres ser ese tipo).
Cualquier "programador con experiencia razonable" que luego aprenda un nuevo idioma no debería llevarle mucho tiempo. JavaScript es un lenguaje bastante simple. Cualquier cosa difícil al respecto proviene del entorno en el que se está ejecutando: a saber, varios navegadores web diferentes con diferentes ideas sobre cómo hacer las cosas.
Gran parte de la información de "cómo hacerlo" que encontrará en la web se escribirá teniendo en cuenta JavaScript, por lo que probablemente le resulte más fácil si aprende a leer JavaScript y traducirlo al equivalente de CoffeeScript.
Honestamente, a menos que intentes deliberadamente permanecer ignorante, probablemente terminarás aprendiendo JavaScript como un efecto secundario de trabajar en CoffeeScript. Así que solo comienza ya.
fuente
Porque " La regla de oro de CoffeeScript es: 'Es solo JavaScript' ", recomiendo al menos una familiaridad básica con JavaScript. En particular, eche un vistazo al librito de Douglas Crockford , JavaScript: The Good Parts . También puedes ver la gran presentación introductoria de Crockford al respecto.
CoffeeScript básicamente envuelve las partes buenas de JavaScript en un paquete diferente: " CoffeeScript es un experimento mental simple para imaginar un lenguaje que exponga una sintaxis mínima para el hermoso modelo de objeto que subyace en JavaScript " . No es necesario conocer todos los detalles, solo lo suficiente para comprender que JavaScript, en sí mismo, no es un lenguaje orientado a objetos basado en clases. No tiene clases en absoluto. En cambio, usa " prototipos " , y eso hace algunas diferencias con respecto a otros lenguajes OO. Jeremy Ashkenas limpió algunas de las partes malas de la sintaxis de JavaScript, agregó algunas mejoras y lo hizo un poco más Python -esque.
JavaScript tiene algunas "trampas" muy conocidas para tener en cuenta. De lo contrario, es un gran lenguaje y es de uso muy común hoy en día. No tendríamos AJAX o jQuery sin él, entre otras cosas.
¡Buena suerte con tu CoffeeScript!
fuente
Si. No es el fin del mundo si no lo haces, pero sí.
¿Por qué? Bueno, primero, JavaScript es realmente fácil de aprender. Literalmente me llevó 4 días aprenderlo (bueno, la mayor parte). Además, creo que es más valioso que CoffeeScript. Realmente no creo que necesites CoffeScript. Pero sigue siendo una buena herramienta.
fuente
Depende.
Si CoffeeScript abstrae JavaScript lo suficiente, de modo que no necesita saberlo (como C # abstraer lenguaje intermedio), entonces sí, puede hacer lo que quiera en CoffeeScript sin aprender JavaScript.
Pero mi experiencia me dice que no importa cuánto intente huir de JavaScript, cuando se trata del cliente, a veces realmente necesito ensuciarme las manos y escribir JavaScript puro.
Si, tienes razón. mientras que la sintaxis de JavaScript es fácil y puedes aprenderla de manera débil, pero lleva años dominarla.
En mi humilde opinión, como veo CoffeeScript, no es lo suficientemente maduro como para envolver totalmente todas las complejidades de JavaScript. Por lo tanto, no me arriesgo a no aprender o trabajar directamente con JavaScript.
fuente
La documentación de coffeescript define coffescript en términos del javascript equivalente. Si no comprende JavaScript, tampoco entenderá coffeescript.
fuente