ConConJS
A systematic approach to code portability
Raúl G. Roa Gómez

Perfil Académico
Pontificia Universidad Católica Madre y Maestra (2007)
Ingeniería en Sistemas y Computación (ISC)
Rochester Institute of Technology (2009)
M.S. Software Engineering
The Guildhall at Southern Methodist University (2014)
M.I.T. Digital Game Development — Software Engineering
Dossier
DCGames — Primera comunidad de videojuegos en R.D. (Adquirida por Verizon Dominicana)
Virtual Reality — Lucky's Tale (único juego incluido en la plataforma de Oculus)
Game Development — Identity, With strange aeons, Boom!, Creativerse.
Web Dev/Desktop — Sistemas de marbetes, sistema de generación de notificaciones por Omisión y Morosidad, etc.
OSS — fog, emscripten, SOIL, ResIL, DevIL

Automating portability analysis and performance optimization of native code, cross compiled with Emscripten and Native Client for the Web
Asesores
Corey Clark, PhD
Asesor académico
Máximo Martínez, MSc
Asesor técnico y de alcance
Motivación
Reality Check
¿Cómo puede hacer que su aplicación esté disponible para el 95% del mercado actual?
Antes: Lanzar una aplicación / juego para Windows

Hoy en día...

Hoy en día...

La mayoría

El Reto

La utilidad de un producto de software es afectada directamente por la relativa facilidad de portarla.
— Mitsuari Hakuta et al.
El concepto
Portabilidad es una serie de procesos para mover un programa desde un entorno (porting source) a otro (porting destination).
El proceso general
-
Investigación.
-
Modificaciones al programa base (porting source).
-
Compilación parcial (o por archivo).
-
Unit Test*
- System Test
Los problemas
-
Factores de impedimento de la portabilidad.
- Factores de costo de la portabilidad.
Factores de impedimento
-
Diferencias en la arquitectura de procesador.
-
Disparidad de sistemas.
-
Diferentes procesadores de lenguaje.
- Disparidad de hardware.
Factores de costo
-
Factores humanos
- Factores ambientales
La solución
Recordemos...

Modelo ingenuo de presencia en múltiples plataformas.
-
Desarrollar aplicaciones para la mayoría de las plataformas a la vez es muy costoso cuando se hace de la manera ingenua.
-
Altos costos de desarrollo
-
Alcance cambia sin control
-
Mantenimiento de varias bases de código
-
Conclusión


Factorizando
Modelo moderno de presencia en múltiples plataformas.
Un momento...

Java?

.NET?

Continuando...
ConConJS
ConConJS (IPA: /kənkəndʒeɪz/) es una herramienta de diagnósticos para aplicaciones multi-platforma.
C++ => ConConJS => portable? => WWW.


Un Mejor modelo de presencia en múltiples plataformas.
- Plataforma más grande y estandarizada del mundo
- Excelente para llegar a las personas sin altos niveles ténicos.
- Ha evolucionado de manera orgánica en la era digital
- Ha superado las adversidades en contra de todas las probabilidades.
-
Ha escalado de manera exitosa.

La Web
-
Tiempo reducido al mercado (TTM)
- Las aplicaciones pueden ser compartidas con un link
-
No hay procesos de instalación
-
Expansión automática del mercado
-
Reutilización de bases de código de terceros
- Muchas herramientas existentes pueden ser utilizadas sin necesidad de re-escribirlas para una plataforma específica.
Beneficios
Ver, para creer

En vivo!

http://goo.gl/FcPQmn
Más Demos!
Preguntas?
Contacto
-
http://github.com/rroa
-
http://mrroa.com
- http://portfolio.mrroa.com
ConConJS
By Raúl G. Roa Gómez
ConConJS
- 256