¡La versión 2.0 de Play ya está lista! Ayúdanos a traducir la documentación de la útlima versión y sigue nuestro progreso.

Manuales, tutoriales & referencias

Consulte

Contenidos

Elija la versión

Buscar

Busque con google

Libros

Preguntas frecuentes

¿A dónde puedo hacer preguntas que no son respondidas aquí?

La página de la comunidad contiene links a varios lugares en los cuales puede leer y enviar preguntas acerca de Play. En general, el mejor lugar para plantear dudas es en el grupo google del framework play.

¿Cómo se compara Play con el framework X?

Hoy en día, hay un gran número de opciones a la hora de desarrollar aplicaciones web. Dado que Play es un framework de aplicaciones web basado en Java, comparémoslo con otros framework de Java. Play está construido con una arquitectura ‘share nothing’, se trata de un framework que no mantiene estado (statless framework), de manera que es muy distinto a todos los frameworks Java que mantienen el estado y que están basados en componentes, como Seam, Tapestry o Wicket. Es mucho más similar a Spring MVC o Struts (o Struts 2), pero mucho más influenciado por la opinión de la comunidad.

Sin embargo Play es único en su clase. No se basa en lo que se conoce como estándares empresariales de Java. Usa Java, pero intenta traer al mundo de Java todas las cosas buenas que surgieron de los frameworks basados en leguajes de scripting, como Ruby on Rails, Django, Pylons, Symfony, Grails y Cake PHP. Intentamos conservar lo mejor de la plataforma Java sin las inconveniencias del desarrollo web tradicional en Java: un ciclo de desarrollo lento y farragoso, demasiadas capas de abstracción y ciertamente demasiados archivos de configuración.

¿Por qué no cambian el nombre del paquete ‘play’ a ‘org.playframework’?!

Hay algo que tenemos que aclarar. Play no es una librería más que tenga que agregar a su contenedor de Servlets. Es realmente un framework que provee un stack completo y que le permite correr su aplicación de manera autónoma e independiente. Las convenciones de los paquetes de Java existen para evitar colisiones de nombres cuando utiliza diversas librerías de diferentes proveedores. Pero, y le pedimos que confíe en nosotros, usted nunca pondrá su play.jar en sus propios proyectos. Esta no es la manera en que Play funciona, porque Play es la plataforma. No se preocupe por ello.

¿Para qué usan Python? (¿No sería mejor Maven?)

Necesitamos una gran cantidad de scripts para manejar las aplicaciones Play, para crear una nueva aplicación, para ejecutarla, lanzar un explorar web, etc. Por supuesto que podríamos haber escrito estos scripts directamente en Java. Pero correr una JVM para simples tareas como la creación de un proyecto es muy lento. Y Java es muy limitado en lo que se refiere a la interacción con el sistema operativo.

Utilizar Python nos ha permitido escribir estos scripts de una manera totalmente portable. Es rápido para ejecutar, fácil de escribir y viene instalado en la mayor parte de los sistemas operativos. No viene con windows, es cierto, y es por eso que hemos incluido una versión de Python para windows junto con el framework.

¿Es Play un framework para Groovy?

No. Si bien Groovy es la base que utilizamos para desarrollar el sistema de templates de Play, es totalmente transparente para el framework. Además, no puede escribir ninguna otra parte de la aplicación (como los controladores, modelos u otras utilidades) en Groovy. Si anda buscando un framework basado en Groovy debería echarle un vistazo a Grails.

Ja, ustedes no tienen idea de lo que es programar en Java

Somos completamente conscientes de que hemos tomado varias decisiones que son poco comunes en el mundo de Java, y de hecho Play no sigue ciegamente todas las denominadas ‘buenas prácticas’. Pero todos los miembros del equipo de Play tenemos vasta experiencia en el desarrollo de aplicaciones en Java, y estamos totalmente al tanto de las elecciones que hacemos y las reglas que rompemos.

Java en sí mismo es un lenguaje de programación de uso genérico y no fue originalmente concebido para el desarrollo de aplicaciones web. Es una cosa muy distinta desarrollar una librería en Java genérica y reutilizable a desarrollar una aplicación web. De hecho una aplicación web no tiene por qué ser diseñada para ser reutilizable. Se precisa menos abstracción, menos configuración. La reusabilidad debe ser contemplada para las aplicaiones web, pero a través de APIs de servicios web en vez de integraciones al nivel del lenguaje.

Cuando el tiempo de desarrollo tiende a cero, usted puede concentrarse en la funcionalidad de su aplicación y experimentar rápidamente, en vez de crear capas y capas de abstracción para futuros desarrollos.

¿Play es rápido?

Sí, el framework Play en sí es rápido. Pero eso no significa que cualquier aplicación hecha con Play será rápida. El servidor HTTP integrado, el routeo de URLs y la llamada al controlador son extremadamente rápidos. Combinados con la tecnología de la JVM y las ventajas de la compilación justo a tiempo (Just In Time compilation) puede fácilmente dar respuesta a miles de llamadas por segundo. Desafortunadamente su aplicación seguramente utilizará una base de datos, que por lo general se convertirá en el cuello de botella de su aplicación.

Actualmente el mayor consumidor de CPU en el stack de Play es el sistema de templates basado en Groovy. Pero dado que las aplicaciones Play son fácilmente escalables, no es realmente un problema si precisa manejar un tráfico verdaderamente alto: puede balancear la carga de trabajo entre varios servidores. También confiamos en lograr una mejora en la performance con la llegada de JDK7 y su soporte mejorado para lenguajes dinámicos.

¿Puedo utilizar Play para una aplicación en producción?

Seguro, muchas personas están utilizando Play en producción. La rama de la versión 1.0 ya ha entrado en mantenimiento, lo que significa que tan sólo arreglaremos bugs y mantendremos la compatibilidad de la API en esa rama.

¿Tiene soporte para la librería X?

Play es código Java estándar, así que cualquier librería Java puede ser usada fácilmente. Sin embargo, tenga presente que Play no utiliza la API de los Servlet (si bien puede hacer funcionar en un contenedor estándar de Servlets usando la funcionalidad de exportar su aplicación en un archivo WAR). Así que a menos que la librería que desea utilizar dependa de la API de los Servlet, no tendrá ningun problema.

¿Cómo puedo contribuir?

Utilizamos GitHub como nuestra herramienta de desarrollo principal, y GitHub mismo es sumamente abierto. Puede registrar una cuenta en GitHub y comenzar a contribuir haciendo un fork del código del framework. Consulte la guía para contribuir.

Incluso la documentación está almacenada como un archivo Textile en el repositorio con los fuentes del framework, de manera que puede editarla y contribuir tal como lo haría con el código.