Coffeescript se ve muy bien. ¿Alguien lo ha usado? ¿Cuáles son sus pros y contras?
Coffeescript se ve muy bien. ¿Alguien lo ha usado? ¿Cuáles son sus pros y contras?
Respuestas:
Comenzamos a usar CoffeeScript en nuestro producto, un sitio web no público que es básicamente una aplicación para navegar por ciertos tipos de datos. Usamos CoffeeScript como compilador de línea de comandos (no en el servidor, lo que eventualmente nos gustaría hacer).
Es importante destacar que podemos regresar en cualquier momento. Nuestro compilador de coffeescript solo está produciendo javascript legible, por lo que si alguien cambia de opinión o no puede resolver algo, entonces podemos volver a usar el javascript que produjo coffeescript y seguir codificando.
this
o ha enviado el tipo incorrecto a una función? No creo que hayas hecho nada interesante todavía si no has tenido que "depurar nada".
-m
y estará bien.
Usamos coffeescript para todo el javascript en BusyConf . Una gran parte de BusyConf es una aplicación del lado del cliente que se ejecuta en navegadores, incluida la compatibilidad con el modo fuera de línea.
Todo nuestro código coffeescript está completamente probado. Las pruebas en sí están escritas en coffeescript y utilizan el marco Qunit (que está escrito en javascript). También escribimos una extensión para el marco de Qunit que hace que las pruebas sean más agradables. La extensión Qunit está escrita en CoffeeScript . Nuestra aplicación tiene una versión móvil que está escrita en CoffeeScript y utiliza el marco Sencha Touch (que está escrito en javascript).
La conclusión de eso es que puede entremezclar libremente las dependencias de JavaScript en su aplicación, pero todo el código que escriba (el código de su aplicación, pruebas, etc.) puede (¡y debería!) Ser coffeescript.
Casi un año después, vale la pena publicar algunas actualizaciones:
La lista más definitiva de proyectos de CoffeeScript se encuentra en la página In the Wild del wiki de CoffeeScript .
Diría que la mayor parte del uso de producción de CoffeeScript hasta ahora se realiza junto con Appcelerator para crear aplicaciones para iPhone / Android. (Wynn Netherland de The Changelog difuminó mi libro al describir a CoffeeScript como "mi arma secreta para el desarrollo móvil de iOS, Android y WebOS"), pero habrá mucho más uso en las aplicaciones de producción de Rails y, espero, en otros lugares. en los próximos meses.
Coffeescript se utilizó en el lector Ars Technica para iPad http://arstechnica.com/apple/news/2010/11/introducing-the-ars-technica-reader-for-ipad.ars
Realmente amo Coffeescript estos días. Esencialmente, toda la aplicación HotelTonight para iPhone está escrita en él (usando Appcelerator Titanium, que le permite escribir aplicaciones "nativas" en JavaScript; no son aplicaciones web, digamos como Phonegap). Elegí usar Coffeescript en este caso porque facilita mucho la organización y el mantenimiento de una gran cantidad de JS. También me resulta mucho más agradable escribir código con Coffeescript (frente a JavaScript). También usamos Coffeescript para JS en nuestra aplicación Rails, pero esta es una cantidad de código increíblemente menor / pequeña en relación con toda la aplicación del teléfono.
La mayoría de las ventajas tienen que ver con ser una sintaxis más agradable, pero también que estandariza un mecanismo OO, y luego agrega algunas adiciones agradables (listas de comprensión, algunas cosas de alcance, etc.).
Los contras son casi nulos para mí. El principal es que es una capa adicional para depurar. Deberá mirar el JS generado (que es MUY legible y agradable), y luego asignarlo a su código Coffeescript. Para nosotros, esto no ha sido un problema en absoluto, pero YMMV.
Al final, mi opinión es que no hay ningún riesgo en términos de usarlo en una aplicación de producción, así que no dejes que eso sea un bloqueador. Entonces, pruébalo. Escriba algún código con él, compárelo con lo que escribiría en JS, mire el código generado para ver si se siente cómodo con poder leerlo para las necesidades de depuración. Además, pasa el rato en el IRC #coffeescript, la gente es buena allí. Y finalmente, vea cómo se integraría con su aplicación, por ejemplo, cuál es su proceso de "construcción" (por ejemplo, para Rails, pruebe Barista, para algo independiente, simplemente use el "café -w" incluido, etc.).
Coffeescript realmente facilita la escritura de JS. Terminas con un código más limpio y eficiente.
Dicho esto, solo puedes hacer todo lo que puedas en Vanilla JS. Una vez que use coffeescript lo suficiente, se vuelve mucho más fácil escribir (bueno) JS.
Entonces, si no ha usado JS mucho, le sugiero que aprenda coffescript en su lugar. Obtendrá un código mejor, más limpio y con menos errores. Si ya tiene mucha fluidez en JS, puede que no sea una buena idea comenzar a usar coffeescript en una aplicación "real".
(Además, coffeescript me molesta un poco porque parece fomentar un código bastante "floofy". No sé si es algo bueno o malo, pero parece un caso extremo de TMTOWTDI)
Tenga en cuenta que, aunque hay un compilador, no obtiene comprobación estática debido a la naturaleza dinámica de JavaScript. Como está escrito en las preguntas frecuentes:
Análisis estático
CoffeeScript utiliza un compilador directo de fuente a fuente. No se realiza ninguna verificación de tipo y no podemos determinar si una variable existe o no. Esto significa que no podemos implementar funciones que otros lenguajes pueden construir de forma nativa sin costosas comprobaciones de tiempo de ejecución. Como resultado, no se considerará ninguna característica que se base en este tipo de análisis.
El soporte de IDE es menos maduro que el de JavaScript (Cloud9 tiene soporte de resaltado de sintaxis, pero Eclipse JSDT tiene refactorizaciones y más): /programming/4084167/ide-or-its-add-in-for-coffescript -programación