SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
Simplificando JavaScript

UPC-FIB Curso 2013-2014
ASW grupo 13

Lucía Monte Soto
Javier Ferrer Gonzalez
Índice
●
●
●
●
●
●
●
●

¿Qué es?
Ejemplo
Flujo de trabajo (“standalone”)
Flujo de trabajo (Symfony2)
Pros/Contras
Vitalidad del proyecto
Conclusiones
Referencias
¿Qué es?
● Capa por encima de JavaScript
○ Lenguaje creado para simplificar JavaScript.
○ El código en CoffeeScript se compila y genera
JavaScript.
○ No penaliza rendimiento (no interpreta en tiempo de
ejecución)
CoffeeScript

Compilador
CoffeeScript

JavaScript
Ejemplo
CoffeeScript (PasteBin):
Ejemplo
JavaScript (PasteBin):
Flujo de trabajo (“standalone”)
Instalación
1. Instalar Homebrew (Mac OS)
○ Entra en conflicto con Macports
○ No se ejecuta como sudo
○ Necesita permisos totales del usuario
actual en /usr/local
2. Instalar Node.js (Mac OS)
○

brew install node

3. Instalar CoffeeScript vía npm
○

npm install -g http://github.com/jashkenas/coffee-script/tarball/master
i.
/usr/local/bin/coffee -> /usr/local/lib/node_modules/coffeescript/bin/coffee
ii.
/usr/local/bin/cake -> /usr/local/lib/node_modules/coffee-script/bin/cake
Flujo de trabajo (“standalone”)
Compilación
A. Única compilación de todo *.coffee dentro de
coffeescripts/ a javascripts/
○

coffee -o javascripts/ -c coffeescripts/

B. Añadir watcher
○

coffee -w -o javascripts/ -c coffeescripts/

C. Unificar varios .coffee en 1 único .js
○

coffee -j javascripts/app.js -c coffeescripts/*.coffee
Flujo de trabajo (Symfony2)
Instalación
1. Añadir a
composer.json
el paquete

2. Modificar config.yml
(gestión assetic)
Flujo de trabajo (Symfony2)
Desarrollo y compilación
3. Inclusión asset en plantilla twig

4. Compilación assetic
php app/console assetic:dump
Pros y contras
● Pros
○ Al compilar se unan patrones JavaScript, haciéndolo
más rápido y usando menos código.
○ Código más legible.

● Contras
○ Los mensajes de compilación poco explícitos.
○ No hay relación directa entre el código CS y el JS
generado al compilar (depuración).
○ Adaptación a un nuevo lenguaje.
○ Migrar código JS existente a CS
Vitalidad del proyecto
● GitHub
○
○
○
○

3499 Commits (último mes: 16 de 11 autores)
2924 Issues cerrados (último mes: 23)
54 Releases
125 Contributors

● Real World™:
○ Posterous
○ Airbnb Mobile
○ Basecamp Mobile
○ https://github.com/jashkenas/coffee-script/wiki/In-TheWild
●

24/12/2009 versión 0.1 (actual: 1.6.3)
Conclusiones
● JavaScript ya no es sólo para listeners de
eventos “tontos” ni efectos webs old school.
● Pre-procesadores ayudan
● Código más simple y legible
● “Nuevo” lenguaje
● Fuerte contra en debug
● Mapeo “débil” frente a AngularJS/Knockout
Referencias
● Web oficial: http://coffeescript.org/
● GitHub: https://github.com/jashkenas/coffee-script
● Migraciones de JS a CS: http://js2coffee.org/
● Libro CoffeeScript: Accelerated JavaScript
Development: http://pragprog.
com/book/tbcoffee/coffeescript

Más contenido relacionado

La actualidad más candente

JavaScript: Mejorando la programación
JavaScript: Mejorando la programaciónJavaScript: Mejorando la programación
JavaScript: Mejorando la programaciónGary Briceño
 
NodeJS
NodeJSNodeJS
NodeJSIBM
 
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Jose Juan R. Zuñiga
 
Tareas automatizadas y eficientes para la construcción de software con Gradle
Tareas automatizadas y eficientes para la construcción de software con GradleTareas automatizadas y eficientes para la construcción de software con Gradle
Tareas automatizadas y eficientes para la construcción de software con GradleSoftware Guru
 
Software libre para videoconferencias
Software libre para videoconferenciasSoftware libre para videoconferencias
Software libre para videoconferenciasMicael Gallego
 
Introducción a la programación para joomla
Introducción a la programación para joomlaIntroducción a la programación para joomla
Introducción a la programación para joomlaRoberto Segura
 
Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!Roberto Segura
 
Lenguaje de programación javascript
Lenguaje de programación javascriptLenguaje de programación javascript
Lenguaje de programación javascriptCesia Garmendez
 
Desarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_sourceDesarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_sourceMario IC
 
Webinar 5 net5-2021
Webinar 5 net5-2021Webinar 5 net5-2021
Webinar 5 net5-2021atSistemas
 
Dockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloDockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloMarco Bellido
 
Casper JS - Asegurando la calidad en front-end Drupal
Casper JS - Asegurando la calidad en front-end DrupalCasper JS - Asegurando la calidad en front-end Drupal
Casper JS - Asegurando la calidad en front-end DrupalDavid Gil Sánchez
 

La actualidad más candente (20)

JavaScript: Mejorando la programación
JavaScript: Mejorando la programaciónJavaScript: Mejorando la programación
JavaScript: Mejorando la programación
 
Java poliglota
Java poliglotaJava poliglota
Java poliglota
 
ASP.NET Core 1.0
ASP.NET Core 1.0ASP.NET Core 1.0
ASP.NET Core 1.0
 
NodeJS
NodeJSNodeJS
NodeJS
 
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
 
Tareas automatizadas y eficientes para la construcción de software con Gradle
Tareas automatizadas y eficientes para la construcción de software con GradleTareas automatizadas y eficientes para la construcción de software con Gradle
Tareas automatizadas y eficientes para la construcción de software con Gradle
 
Software libre para videoconferencias
Software libre para videoconferenciasSoftware libre para videoconferencias
Software libre para videoconferencias
 
Introducción a la programación para joomla
Introducción a la programación para joomlaIntroducción a la programación para joomla
Introducción a la programación para joomla
 
Introducción a WebAssembly
Introducción a WebAssemblyIntroducción a WebAssembly
Introducción a WebAssembly
 
Introducción Nodejs
Introducción NodejsIntroducción Nodejs
Introducción Nodejs
 
Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!
 
Dia1
Dia1Dia1
Dia1
 
Lenguaje de programación javascript
Lenguaje de programación javascriptLenguaje de programación javascript
Lenguaje de programación javascript
 
Dia2
Dia2Dia2
Dia2
 
Desarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_sourceDesarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_source
 
Webinar 5 net5-2021
Webinar 5 net5-2021Webinar 5 net5-2021
Webinar 5 net5-2021
 
Creación de Plataformas
Creación de PlataformasCreación de Plataformas
Creación de Plataformas
 
Dockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloDockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrollo
 
Editor Bluefish
Editor BluefishEditor Bluefish
Editor Bluefish
 
Casper JS - Asegurando la calidad en front-end Drupal
Casper JS - Asegurando la calidad en front-end DrupalCasper JS - Asegurando la calidad en front-end Drupal
Casper JS - Asegurando la calidad en front-end Drupal
 

Similar a Introducción a CoffeeScript

Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoManuel Carrasco Moñino
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Restorando
 
.NET Core 1.0 y ASP.NET Core 1.0
.NET Core 1.0 y ASP.NET Core 1.0.NET Core 1.0 y ASP.NET Core 1.0
.NET Core 1.0 y ASP.NET Core 1.0Luis Ruiz Pavón
 
01 - Introducción al lenguaje de programación Python 3
01 - Introducción al lenguaje de programación Python 301 - Introducción al lenguaje de programación Python 3
01 - Introducción al lenguaje de programación Python 3Diego Andrés Alvarez Marín
 
Introducción al ecosistema de React.js
Introducción al ecosistema de React.jsIntroducción al ecosistema de React.js
Introducción al ecosistema de React.jsJoaquín Salvachúa
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Micael Gallego
 
FirebugNext ¿Qué se viene en la nueva versión de Firebug?
FirebugNext ¿Qué se viene en la nueva versión de Firebug?FirebugNext ¿Qué se viene en la nueva versión de Firebug?
FirebugNext ¿Qué se viene en la nueva versión de Firebug?hidekel
 
Zanjai-como-entorno-de-programacion
Zanjai-como-entorno-de-programacionZanjai-como-entorno-de-programacion
Zanjai-como-entorno-de-programacionjuanpi1991
 
Earthly, Dockerfile con esteroides
Earthly, Dockerfile con esteroidesEarthly, Dockerfile con esteroides
Earthly, Dockerfile con esteroidesMario IC
 
Iniciando c
Iniciando cIniciando c
Iniciando c____
 
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...Ricardo Guerrero Gómez-Olmedo
 
Encender una cafetera con Micropython, MQTT y Android
Encender una cafetera con Micropython, MQTT y AndroidEncender una cafetera con Micropython, MQTT y Android
Encender una cafetera con Micropython, MQTT y AndroidGDGFoz
 

Similar a Introducción a CoffeeScript (20)

ATICA DevOps
ATICA DevOpsATICA DevOps
ATICA DevOps
 
202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrasco
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
 
.NET Core 1.0 y ASP.NET Core 1.0
.NET Core 1.0 y ASP.NET Core 1.0.NET Core 1.0 y ASP.NET Core 1.0
.NET Core 1.0 y ASP.NET Core 1.0
 
Pucela testingdays testing_en_php
Pucela testingdays testing_en_phpPucela testingdays testing_en_php
Pucela testingdays testing_en_php
 
01 - Introducción al lenguaje de programación Python 3
01 - Introducción al lenguaje de programación Python 301 - Introducción al lenguaje de programación Python 3
01 - Introducción al lenguaje de programación Python 3
 
Introducción al ecosistema de React.js
Introducción al ecosistema de React.jsIntroducción al ecosistema de React.js
Introducción al ecosistema de React.js
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
 
01 - Introducción al lenguaje C
01 - Introducción al lenguaje C01 - Introducción al lenguaje C
01 - Introducción al lenguaje C
 
20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript
 
FirebugNext ¿Qué se viene en la nueva versión de Firebug?
FirebugNext ¿Qué se viene en la nueva versión de Firebug?FirebugNext ¿Qué se viene en la nueva versión de Firebug?
FirebugNext ¿Qué se viene en la nueva versión de Firebug?
 
Gwt I - entendiendo gwt
Gwt I - entendiendo gwtGwt I - entendiendo gwt
Gwt I - entendiendo gwt
 
Zanjai-como-entorno-de-programacion
Zanjai-como-entorno-de-programacionZanjai-como-entorno-de-programacion
Zanjai-como-entorno-de-programacion
 
Earthly, Dockerfile con esteroides
Earthly, Dockerfile con esteroidesEarthly, Dockerfile con esteroides
Earthly, Dockerfile con esteroides
 
Aprendiendo GWT
Aprendiendo GWTAprendiendo GWT
Aprendiendo GWT
 
Iniciando c
Iniciando cIniciando c
Iniciando c
 
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
 
Encender una cafetera con Micropython, MQTT y Android
Encender una cafetera con Micropython, MQTT y AndroidEncender una cafetera con Micropython, MQTT y Android
Encender una cafetera con Micropython, MQTT y Android
 
Jenkins, no me rompas los builds!
Jenkins, no me rompas los builds!Jenkins, no me rompas los builds!
Jenkins, no me rompas los builds!
 

Más de Javier Ferrer González

We broke up with the monolith, and started dating #eventSourcing - #symfonyCat
We broke up with the monolith, and started dating #eventSourcing - #symfonyCatWe broke up with the monolith, and started dating #eventSourcing - #symfonyCat
We broke up with the monolith, and started dating #eventSourcing - #symfonyCatJavier Ferrer González
 
Redescubre la programación - #MPWAR - #OpenDayLaSalle
Redescubre la programación - #MPWAR - #OpenDayLaSalleRedescubre la programación - #MPWAR - #OpenDayLaSalle
Redescubre la programación - #MPWAR - #OpenDayLaSalleJavier Ferrer González
 
#PhpirstAid - Replanteamiento de diseño de software
#PhpirstAid - Replanteamiento de diseño de software#PhpirstAid - Replanteamiento de diseño de software
#PhpirstAid - Replanteamiento de diseño de softwareJavier Ferrer González
 
Informática en El Mundo Real - Sesión de orientación
Informática en El Mundo Real - Sesión de orientaciónInformática en El Mundo Real - Sesión de orientación
Informática en El Mundo Real - Sesión de orientaciónJavier Ferrer González
 
#SpyFiles - Análisis de #FinFisher y los Conflictos Políticos del Malware-as-...
#SpyFiles - Análisis de #FinFisher y los Conflictos Políticos del Malware-as-...#SpyFiles - Análisis de #FinFisher y los Conflictos Políticos del Malware-as-...
#SpyFiles - Análisis de #FinFisher y los Conflictos Políticos del Malware-as-...Javier Ferrer González
 

Más de Javier Ferrer González (8)

We broke up with the monolith, and started dating #eventSourcing - #symfonyCat
We broke up with the monolith, and started dating #eventSourcing - #symfonyCatWe broke up with the monolith, and started dating #eventSourcing - #symfonyCat
We broke up with the monolith, and started dating #eventSourcing - #symfonyCat
 
Redescubre la programación - #MPWAR - #OpenDayLaSalle
Redescubre la programación - #MPWAR - #OpenDayLaSalleRedescubre la programación - #MPWAR - #OpenDayLaSalle
Redescubre la programación - #MPWAR - #OpenDayLaSalle
 
#PhpirstAid - Replanteamiento de diseño de software
#PhpirstAid - Replanteamiento de diseño de software#PhpirstAid - Replanteamiento de diseño de software
#PhpirstAid - Replanteamiento de diseño de software
 
Informática en El Mundo Real - Sesión de orientación
Informática en El Mundo Real - Sesión de orientaciónInformática en El Mundo Real - Sesión de orientación
Informática en El Mundo Real - Sesión de orientación
 
#SpyFiles - Análisis de #FinFisher y los Conflictos Políticos del Malware-as-...
#SpyFiles - Análisis de #FinFisher y los Conflictos Políticos del Malware-as-...#SpyFiles - Análisis de #FinFisher y los Conflictos Políticos del Malware-as-...
#SpyFiles - Análisis de #FinFisher y los Conflictos Políticos del Malware-as-...
 
Gestión proyecto DroidClic android app
Gestión proyecto DroidClic android appGestión proyecto DroidClic android app
Gestión proyecto DroidClic android app
 
Introducción a Ruby on rails
Introducción a Ruby on railsIntroducción a Ruby on rails
Introducción a Ruby on rails
 
Charla IES Marianao
Charla IES MarianaoCharla IES Marianao
Charla IES Marianao
 

Último

Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 

Último (20)

Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 

Introducción a CoffeeScript

  • 1. Simplificando JavaScript UPC-FIB Curso 2013-2014 ASW grupo 13 Lucía Monte Soto Javier Ferrer Gonzalez
  • 2. Índice ● ● ● ● ● ● ● ● ¿Qué es? Ejemplo Flujo de trabajo (“standalone”) Flujo de trabajo (Symfony2) Pros/Contras Vitalidad del proyecto Conclusiones Referencias
  • 3. ¿Qué es? ● Capa por encima de JavaScript ○ Lenguaje creado para simplificar JavaScript. ○ El código en CoffeeScript se compila y genera JavaScript. ○ No penaliza rendimiento (no interpreta en tiempo de ejecución) CoffeeScript Compilador CoffeeScript JavaScript
  • 6. Flujo de trabajo (“standalone”) Instalación 1. Instalar Homebrew (Mac OS) ○ Entra en conflicto con Macports ○ No se ejecuta como sudo ○ Necesita permisos totales del usuario actual en /usr/local 2. Instalar Node.js (Mac OS) ○ brew install node 3. Instalar CoffeeScript vía npm ○ npm install -g http://github.com/jashkenas/coffee-script/tarball/master i. /usr/local/bin/coffee -> /usr/local/lib/node_modules/coffeescript/bin/coffee ii. /usr/local/bin/cake -> /usr/local/lib/node_modules/coffee-script/bin/cake
  • 7. Flujo de trabajo (“standalone”) Compilación A. Única compilación de todo *.coffee dentro de coffeescripts/ a javascripts/ ○ coffee -o javascripts/ -c coffeescripts/ B. Añadir watcher ○ coffee -w -o javascripts/ -c coffeescripts/ C. Unificar varios .coffee en 1 único .js ○ coffee -j javascripts/app.js -c coffeescripts/*.coffee
  • 8. Flujo de trabajo (Symfony2) Instalación 1. Añadir a composer.json el paquete 2. Modificar config.yml (gestión assetic)
  • 9. Flujo de trabajo (Symfony2) Desarrollo y compilación 3. Inclusión asset en plantilla twig 4. Compilación assetic php app/console assetic:dump
  • 10. Pros y contras ● Pros ○ Al compilar se unan patrones JavaScript, haciéndolo más rápido y usando menos código. ○ Código más legible. ● Contras ○ Los mensajes de compilación poco explícitos. ○ No hay relación directa entre el código CS y el JS generado al compilar (depuración). ○ Adaptación a un nuevo lenguaje. ○ Migrar código JS existente a CS
  • 11. Vitalidad del proyecto ● GitHub ○ ○ ○ ○ 3499 Commits (último mes: 16 de 11 autores) 2924 Issues cerrados (último mes: 23) 54 Releases 125 Contributors ● Real World™: ○ Posterous ○ Airbnb Mobile ○ Basecamp Mobile ○ https://github.com/jashkenas/coffee-script/wiki/In-TheWild ● 24/12/2009 versión 0.1 (actual: 1.6.3)
  • 12. Conclusiones ● JavaScript ya no es sólo para listeners de eventos “tontos” ni efectos webs old school. ● Pre-procesadores ayudan ● Código más simple y legible ● “Nuevo” lenguaje ● Fuerte contra en debug ● Mapeo “débil” frente a AngularJS/Knockout
  • 13. Referencias ● Web oficial: http://coffeescript.org/ ● GitHub: https://github.com/jashkenas/coffee-script ● Migraciones de JS a CS: http://js2coffee.org/ ● Libro CoffeeScript: Accelerated JavaScript Development: http://pragprog. com/book/tbcoffee/coffeescript