2012-07-06 22 views
6

Estoy muy cómodo con Python. Estoy "bien" con Java con buena experiencia en Android (Pero todos sabemos que la mayoría de las cosas en Android están tan bien cubiertas en muchos blogs que la curva de aprendizaje no es tan pronunciada.) Por lo tanto, volviendo a la web -app. Esto es lo que estoy esperando: -Estoy desarrollando una aplicación similar a fb chat. ¿Qué marco - Play o Django?

  1. Muchas solicitudes. (Escalabilidad).
  2. Concurrencia.
  3. Responsive.
  4. Buen informe de errores.
  5. Curva de aprendizaje menos pronunciada.
  6. Se apila bien con PostgresDb y Redis.
  7. Proporciona alguna forma de construir apis más limpias (algo django-pistón)
  8. Por último, pero no menos importante, tengo un período de tiempo de 2 meses para terminarlo. (No es el prototipo pero la versión final.)

Editar:

Node.js parece excepcionalmente bueno para construir un prototipo rápido, pero es demasiado buggy para ampliar.

PHP es un lenguaje en el que nunca me sentí cómodo de codificar. Tampoco me sentía cómodo en JAVA hasta que recogí la codificación de Android. Por lo tanto, una preferencia por Scala. Además, me enteré de que fb chat se creó en Erlang. Y creo que de muchas cosas mal en fb, una de las pocas cosas que está bien es su pila y las preferencias de los lenguajes/frameworks particulares para hacer con sus características.

Soy un novato en Scala pero no encuentro el lenguaje de programación tan difícil. He revisado bastantes publicaciones de blog sobre Play vs Lift, desarrollo web en Scala, ventajas y desventajas de Scala y muchas cosas más. El único motivo por el que me estoy mudando a Scala es que estoy terriblemente enojado con la concurrencia de Python y lo poco escalable que es. (Soy un gran fan de Twisted y lo uso por un trillón de otras cosas, pero no creo que Django/Los raíles están recortados para tratar con aplicaciones web concurrentes, estables y receptivas.)

Mi pregunta aquí es, ¿me equivoco? ¿Vale la pena saltar a Scala, tomando todo en consideración? Realmente espero obtener algunas buenas respuestas porque no quiero pasar horas frustrantes obteniendo una versión esquemática de mi aplicación web y luego me doy cuenta de que no es escalable. Además, ¿cuál sería una pila preferida? ¿Qué usa la industria? (Sé muchas preguntas, pero es aterrador saltar de Django/Rails a cualquier otra cosa).

Cualquier ayuda sería apreciada.

+0

¿Hay alguna razón usted no ha considerado PHP con HipHop? – leonsas

+0

Además, ¿ha considerado nodejs? –

+0

@PauloScardine He editado la pregunta para responder la tuya. Una comparación de Scala con nodejs también sería excelente. Estoy abierto a cualquier cosa (menos preferencia a PHP). Pero un caso convincente debería hacerlo por mí. Simplemente debería funcionar y ser escalable. A los usuarios no les importa lo que uso, siempre y cuando puedan usarlo. – Hick

Respuesta

13

Solo comencé a aprender a jugar en los últimos días y me encanta. Tiene todos los beneficios de Java (para mí esto es relacionado con el aprendizaje automático) con toda la belleza de un framework MVC fácil de usar.

Play tiene un gran soporte para sockets web y tiene una hermosa aplicación de chat de muestra con la que puedes jugar para ver si se ajusta a tu presupuesto.

https://github.com/playframework/Play20/tree/master/samples/scala/websocket-chat

+2

+1 El juego es absurdamente bueno, no lo puedo recomendar lo suficiente. Viniendo del lado del lenguaje dinámico de la cerca, no tengo interés en volver. Escriba un código de seguridad que rompa por completo el rendimiento, la búsqueda ha terminado ... – virtualeyes

1

No estoy seguro acerca de la integración de django, pero gevent es capaz de usar websocket, y las encuestas largas son un patrón bien conocido en gevent. Puede usarlo como inicio para desarrollar dicha aplicación.

También puede usar tornado, pero no estoy familiarizado con eso.

encima de eso, este es un proyecto de un amigo mío, que se integran con Django tornado y su complemento socket.io https://github.com/felixleong/tornadio-with-django

3

Recogiendo el enfoque GEvent anteriormente mencionado de sweemeng: Vaya para él. Incluso viene con la posible integración de Django usando gunicornio.Aquí están algunos artículos para ayudarle a empezar & consigue la idea:

buenas introducciones:

Ejemplo de código:

Despliegue y bibliotecas:

+0

Parece bastante bueno. Pero, en cuanto al rendimiento, si lo comparo con Scala (Play), ¿cuál sería mejor? – Hick

+0

No puedo darle una respuesta para eso. Solo suponiendo que esté familiarizado con Python, sería más rápido y más seguro implementar una solución que lo use en lugar de buscar algo completamente nuevo. Si lo haces solo por el efecto de aprendizaje, simplemente ve con Scala. –

Cuestiones relacionadas