Download - Python vs Java (NotBarraLibreCamp)
vs.
¿Quiénes Somos ?
Patronos: Intecna Soluciones y Sun Microsystems
Nacimiento: Noviembre 2006
Sedes:
Granada (sede principal)Ciudad del Saber (Panamá)Fort Lauderdale (EE.UU.) (representación)
Número de Investigadores: 25
¿Quiénes Somos ?Centro de Innovación Tecnológica cuyos fines
principales son:
el fomento, la promoción y la divulgación de actividades dirigidas a la
investigación y el desarrollo del Software Libre en las Tecnologías de la Información y las
Comunicaciones (TICs), contribuyendo con ello a la mejora de la competitividad y la capacidad
de la I+D+i, así como la consolidación del sistema “CienciaTecnologíaEmpresa” mediante la
innovación y el desarrollo tecnológico.
Un vistazo al uso de los lenguajes
Proyectos Java
DISETI
Plamsi
Mapache
RPDI
Gryphone
Proyectos Python
Irradia
SIFIA
Otros lenguajes
CLEVERVO
Cultura Blog
Flame wars: Las reglas
Dividido en Rounds
Aplicaciones de escritorio
Aplicaciones webs
Integración de servicios
Vídeo juegos
“Libre”
Puntuaciones
Cada Round puntúa 1 o 3 puntos para el perdedor y ganador respectivamente.
El ganador del Round “Libre” gana 5 puntos.
¡FIGHT!
Round one: Aplicaciones de escritorio
Swing y SWT conforman una API 100% usable para aplicaciones de escritorio
Persistencia de datos
En la API estándar
Librerías comerciales como Hibernate o JPox
Transabilidad y cache configurables y transaparentes para el programador
Round one: Aplicaciones de escritorio● Bindings de librerías gráficas multiplataforma:
● PyGtk (GIMP, gEdit, etc.) y PyQt (Eric y Qtorrent).
● WxPython (wxWidgets de C++).
● PySWT.
●
● ORMs:
● SQLAlchemy. Destaca por ser facilmente extensible mediante plugins.
● SQLObject.
Round two: Aplicaciones web
MVC Bien asentado
Spring. Inyección de dependencia
Strut v1 y v2, no nos preocupamos del mapa web
JSF. Conjunto de widget para desarrollo rápido de webs
IceFaces. Un conjunto más amplio de Widget que incluye widget con Ajax
Atmosphere. Api para AjaxPush/Commet
Round two: Aplicaciones web● Frameworks de renombre:
● Django. ORM y sistema de plantillas propios. Comunidad muy activa.
● Pylons. Dicen que combinan lo mejor de Ruby, Python y Perl. Por defecto usan SQLAlchemy y Mako como sistema de plantillas.
● TurboGears, web2py.
● Sencilla integración con Ajax y Comet.
● Orbited.
●
●
●
Round three: Integración de servicios
● RMI: Interconexión entre registro de objetos. Ejecución Distribuida transparente
JBI, OpenESB, BPELs Permiten componer servicios.
● Servicios web con JAX. Que unidos a las Anotaciones nos brinda grandes capacidades con un coste mínimo.Transaccional
Seguro
También posee API para RESTful
JMS. Servidor de cola de mensajes●
Round three: Integración de servicios
● Pyro. Python Remote Objects. Muy simple y sencillo, solo con añadir unas pocas lineas a tu código Python puedes publicar un objeto.
● REST. Existen decoradores para Pylons. Y con djangorestinterface podemos fácilmente publicar una API REST para nuestra aplicación Django.
● Servicios Web mediante librerías como SOAPpy y ZSI.
Round four: Vídeo juegos
Una API 2D, 3D en la versión estándar
Soporte para Ogre3D
LWJGL
OpenGL
Gamepad, joystick
Sonido y música
JPGL. Otro engine 3D con muy bajo coste en memoria y grandes prestaciones.
Todos los videojuego móviles (JME)
Round four: Vídeo juegos
● Pygame. Conjunto de módulos para creación de juegos 2D.
● Herramientas 3D como Blender y Maya usan Python para automatización y control de tareas.
● Soya. Módulo Python para creción de juegos 3D. (Renderización, sonido, simulación de la física).
● Empresas como Kandor Graphics usan aplicaciones Python como Shotgun Software para gestionar los contenidos de los frames de sus películas (luces, ambiente, cámaras, etc.)
Round five: Libre
Reglas:
Ahora empieza el Barcamp, todos participamos.
Cada uno de nosotros intentaremos superar al otro, para esto necesitaremos vuestra ayuda.
Round five: Libre● “{“,”}”,”;” REFACTORIZACIÓN→
● Quien sabe JAVA sabe Android
● Puede desarrollar para web, escritorio y móvil. 100% compatible.
● MXBeans Permite acceder en tiempo de ejecución →a los valores y métodos de los objetos.
● Los IDEs son mucho más completos y potentes
● JavaFX. Una vista única en J plataforma
● Sistemas empotrados usan JAVA (TDT)
Round five: Libre
Sintaxis simple. Lo importante no son las “{“ y “;”.
Codificación entre 5 y 10 veces más rápida [1]
No hay fase de compilación.
Tipado dinámico.
Zen de Python:
La legibilidad cuenta.
Simple es mejor que complejo.
Si la implementación es difícil de explicar, es una mala idea.
No son tan necesarios IDEs potentes y pesados.[1] http://www.python.org/doc/essays/ppt/acmws/sld024.htm
Y ahora... ¿Quién gana?
Por cada Round, vamos a obtener puntuaciones para cada lenguaje.
vs.
MUCHAS GRACIAS
Miguel A. López [email protected]
@Alakat_
Jose Jimé[email protected] @vrolloc
www.fidesol.org