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

  • 290