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

¿Cómo se edita el código de otro sitio web y se ejecuta en mi propio sitio web?

¿Cuál de las siguientes trayectorias profesionales tiene una gran perspectiva y una transición más fácil al mercado laboral?

Quiero crear una startup. La idea es muy simple, quiero crear eventos como en YELP pero en mi región. Sin embargo, de acuerdo con los términos de privacidad de Yelp, no puedo usar el contenido del servicio (Yelp). ¿Cuáles son las formas legales de usar el contenido de Yelp?

Soy un programador de Java que sabe cosas básicas sobre eso y tengo más de 5 años de experiencia laboral. ¿Cuál será el futuro en él? ¿Cómo puedo mejorar en la perspectiva técnica?

Cómo preparar un examen de personalidad

Creo que un bootcamp con una sola pila sería más beneficioso para mí, ¿existe alguno?

Necesito obtener algún tipo de concierto de programador / desarrollador. ¿Cuál es el mejor curso de acción para llegar allí?

Cómo convertirse en un hacker

Aprendí un poco de HTML y CSS, por lo que puedo escribir código básico. Pero, ¿cómo llego mi código al sitio web? FTP? ¿Lo escribo en mi sitio web?

Quería configurar el negocio del servidor para el alojamiento y el uso compartido de archivos, por lo que mi pregunta es cuánto cuesta un servidor y cuánto necesito para comenzar.

Cómo desarrollar un sitio web

Cómo colocar imágenes no rectangulares en un sitio web

Quiero ser un buen desarrollador web. ¿Qué tengo que hacer?

Tengo una idea increíble de aplicación / sitio web que puede obtener más de mil millones de usuarios. Pero no he requerido dinero y habilidades de codificación. Intenté la financiación colectiva pero no me ayudó. ¿Qué tengo que hacer?

¿Qué debo aprender a continuación si conozco HTML, CSS, JavaScript, jQuery, PHP, MySQL y WordPress?