Quiero construir un sitio web de red social. ¿Debo usar Ruby (en Rails) o Python (Django)?

Me gustaría ofrecer un contrapunto a muchas de las otras respuestas. En realidad, un sitio web de red social puede construirse con bastante rapidez y con un esfuerzo moderado, teniendo en cuenta el rendimiento y la escalabilidad. Simplemente aproveche los proyectos de código abierto existentes e integre bibliotecas de terceros.

La elección entre Ruby / RoR o Python / Django debe basarse principalmente en las habilidades, la experiencia y las preferencias entre usted y su equipo. Hay excelentes ejemplos de sitios web de redes sociales creados en Ruby y Python. AirBnb, Twitter y GitHub han utilizado Ruby on Rails para construir sus sitios. Mientras que en el lado de Python / Django tienes grandes redes sociales como Instagram y Disqus.

Al observar los marcos de código abierto y de terceros, se dirige en la dirección correcta con un marco maduro como Rails o Django. Ambos marcos tienen grandes ecosistemas de código abierto donde puede recoger y reutilizar código. GitHub es un gran lugar para buscar y ver qué hay ahí fuera.

Uno de los aspectos más desafiantes de construir y escalar una red social es persistir y procesar el contenido generado por el usuario que se distribuye en todo el gráfico social gracias a las relaciones de estilo amigo / seguidor. Stream (donde actualmente trabajo) proporciona una API estándar para feeds de actividades y cronogramas que maneja esta complejidad en nombre de los sitios web de redes sociales de prácticamente cualquier tamaño. Reduce el tiempo de desarrollo, ofrece rendimiento y escalabilidad, y simplifica las operaciones / mantenimiento de su sitio.

Construir una red social lleva muchos años humanos, incluso si tiene un excelente equipo de programadores de élite, gerentes de producto, probadores, etc. Es una tarea enorme, y aún no se acercará a Twitter o Facebook.

Ahora, si está dispuesto a explorar el área, puede consultar esto: El Proyecto de la diáspora *.

La mayoría de los sitios web de redes sociales tienen un servicio de chat en tiempo real, que es rápido, elegante y confiable. Sin mencionar que abastece a unos cientos de millones de usuarios al instante. Tome el chat de Facebook o WhatsApp, por ejemplo.

Ambos se implementan con Erlang en su núcleo. Echa un vistazo a esto: Facebook Chat. Del mismo modo, es posible que desee implementar varios módulos orientados al usuario de su red social utilizando lenguajes funcionales.

La sabiduría radica en saber que no se puede seguir con un solo marco o un solo lenguaje para construir una base de código masiva como esa. A veces, es posible que incluso necesite crear sus propios módulos, micro-marcos para ayudarlo a mantener, escalar y probar sus módulos reales relacionados con la red social. Y los módulos que aseguran la intercomunicación de varios módulos, implementados en varios idiomas.

Es posible que desee consultar el código de Facebook y su repositorio de GitHub. Hacen públicos muchos de sus módulos y plataformas para una fácil adaptación. Por ejemplo, su abstracción de servidor HTTP implementada en C ++, llamada proxygen (facebook / proxygen) se hizo pública hace solo unos meses.

Una vez más, para las aplicaciones del lado del cliente de su red social, debe usar diferentes tecnologías para diferentes plataformas. La aplicación de Android requeriría Java / C #; mientras que la aplicación iOS puede necesitar Swift / Objective-C.

Sin embargo, si solo desea construir una red social por diversión (no será para la producción, por lo que no se preocupe por la confiabilidad o la alta escalabilidad), sugeriría Meteor. Es un marco de JavaScript que últimamente ha estado ganando mucha tracción. Solo revisa YouTube. Hay muchos videos sobre cómo construir un pequeño prototipo de sitio como Facebook o Pinterest o Tumblr, utilizando Meteor JS.

En aras de la divulgación completa, trabajo en Oracle. La opinión anterior es solo mi opinión, y no la de Oracle.

Construir una red social es una tarea bastante masiva que eventualmente requerirá una fuerte optimización, en cuyo punto las porciones optimizadas probablemente no serán ni Ruby ni Python. Con eso en mente, use el lenguaje y el marco con los que está más familiarizado y concéntrese en hacer que los conceptos básicos funcionen. Entre los dos no hay una elección incorrecta.

Respuesta corta:
Sí….

Respuesta larga:
Uso Django para todas las cosas de mi tipo de sitio web, porque me encanta Python. Lo uso con frecuencia y, por lo tanto, puedo preocuparme por el problema y menos por luchar contra el lenguaje / marco para hacer lo que quiero.

Pero ambos son casi iguales en características. Entonces, ¿tienes alguna experiencia en alguno? ¿Alguna experiencia con los idiomas? ¿Tienes amigos con quienes podrías ayudar?

Si realmente no tienes idea. Lanza una moneda. Ninguno de los dos es mejor o peor que el otro.

Déjame reformular eso para ti. Quiero correr en la indy-500. ¿Debo conducir un camry o un foco?

La respuesta es que si desea ser competitivo desde el primer día, necesita una gran cantidad de dinero en efectivo y un equipo de ingenieros calificados. Elegir un idioma es un detalle menor.

Si no estás tratando de ser competitivo, entonces realmente no importa. Si tu objetivo es educativo o de entretenimiento, lanza una moneda. Mejor aún, prueba ambos.

Arijit Layek ha proporcionado una idea brillante de lo que realmente implica hacer una red social.

Sin embargo, supongo que está llevando a cabo este proyecto únicamente con fines de aprendizaje.

Lo primero que obviamente viene a la mente es con qué idioma conoces o te sientes más cómodo. En caso de que sea un principiante en ambos, permítame asegurarle que tanto python como ruby ​​son fáciles de comenzar, y el apoyo de la comunidad es excelente. En cuanto a la comparación de Django y Rails, es cierto que ninguno tiene una ventaja particular sobre el otro.

Entonces, ¿cómo hacer una elección? Bueno, depende de tu estilo de programación. Django le proporciona un control más explícito sobre su diseño, mientras que Rails se basa en las gemas mágicas. Lo que eso significa es que Rails hace gran parte de tu trabajo por ti y es posible que no tengas tanto control sobre lo que sucede como te gustaría. Pero hace el trabajo de manera suave, eficiente, ordenada y a buena velocidad. Django también puede hacer el trabajo por usted rápidamente, pero le ofrece más control sobre lo que hace y requiere que sea muy explícito con su trabajo, a diferencia de los rieles, cuyo trabajo está algo oculto para el usuario.

Volviendo a mi punto, su estilo de programación. Si eres una persona que quiere ejercer más control sobre lo que hay en el sitio web y prefiere ser explícito con el trabajo, ve con Django. Si desea que el trabajo sea manejado por el marco, vaya con Rails.

Dicho esto, ambos marcos son excelentes y, en una situación ideal, te aconsejaré que pruebes con ambos.

Nota: Si está probando Django, puede resultarle útil probar Flask primero. Flask es un microframework de python y es muy similar a Django, solo que menos restrictivo en algunos sentidos.

Por supuesto, si su pregunta es sobre un sitio web comercial y no una experiencia de aprendizaje, un solo marco no hará el trabajo.

Probablemente usaría el discurso, puedo instalarlo desde Bitnami, agregar mis características, estilo y contenido e implementarlo en la nube fácilmente.

@https: //wiki.bitnami.com/Applica…

Tanto Rails como Django trabajarán para usted según sus preferencias personales. Tenga en cuenta que el discurso se construye utilizando Rails.

Me encanta Python y el framework web2py: el Zen de web2py. Esto es lo que recomiendo.

Si le preocupa la escalabilidad (en caso de que se convierta en otro Facebook), eche un vistazo a Go y el marco de Beego: una palabra de The Beegoist.

Cualquiera de los que tenga más experiencia en ambos son marcos realmente buenos con casi el mismo número de características

Si conoce Python, use Django. Pero si no conoce Python, no use Django.

Si conoces a Ruby, usa Rails. Pero si no conoces a Ruby, no uses Rails.

No olvides considerar usar NodeJS y tal vez incluso PHP.

No te preocupes por django o rubí. piense en su lógica comercial central y su implementación. Ruby o Django … no importa.

More Interesting

Tengo una buena comprensión de HTML5, CSS3, JS y jQuery. ¿Cuáles son algunos de los mejores sitios donde puedo practicar ejercicios interactivos para estos + Bootstrap?

Todavía no he trabajado en Javascript, pero sé algunas cosas básicas en Javascript. Me gustaría aprender React JS, ¿puedo?

Empecé a aprender JavaScript, pero luego descubrí que JavaScript solo es inútil. Tienes que aprender HTML y CSS para JavaScript para tener alguna función. ¿Es esto cierto? Y si 'termino' de aprender JavaScript, ¿será fácil aprender HTML y CSS o los mezclaré y olvidaré qué código es para qué idioma?

No sé cómo codificar, ¿debo usar un tema de WordPress para comenzar a construir una comunidad de preguntas y respuestas?

Cómo crear mis propias entradas para eventos

¿Cómo es estudiar desarrollo web en Canadá?

Ahora estoy trabajando como analista de pruebas y quiero aprender algunas herramientas relacionadas que tienen un buen valor. Los he reducido a Selenium y LoadRunner. ¿Cuál es la mejor opción?

¿Qué debo cambiar para mejorar mi sitio web al convertir nuevos clientes (https://maidonthespot.com)?

Soy desarrollador de SQL y mi empresa me reembolsará los certificados de TI, pero estoy en el desarrollo web. ¿Cómo debo aprovecharlo?

He estado aprendiendo JavaScript y Jquery durante un par de meses y quiero pasar a angular.js y node.js. ¿Debo aprender node.js primero? ¿O aprender angular primero?

Cómo construir un sitio web de tutoría en línea en WordPress

Necesito emparejar bootstrap + backbone.js de Twitter con un marco php backend. No sé qué marco está diseñado para tener en cuenta la integración limpia con JavaScript y CSS.

No estoy alcanzando ningún hito en el aprendizaje del desarrollo web. ¿Estoy en el camino equivocado?

Estoy considerando codificar bootcamps en Nueva York, particularmente para convertirme en un desarrollador de pila completa. ¿Qué bootcamp es el mejor?

Quiero comenzar como desarrollador de blockchain. Tengo 2 años de experiencia como desarrollador web. ¿Como empiezo?