¿Cuál es el mejor lenguaje, plataforma, marco para construir un portal de comunidad social?

Entonces hay esta cosa … No hay “mejor”.

Lo mejor es una serie de compromisos. Solía ​​tener un letrero en mi oficina que decía “Bien. Rápido. Barato. Elija cualquiera de los dos”. Eso sigue siendo cierto.

Solía ​​construir en .NET. Es impresionante en un par de saludos, súper robusto, pero el ciclo de desarrollo es muy lento. Y las bibliotecas (de terceros) son menos estables, tuvimos una evaporación debajo de nosotros una vez. Buenos tiempos.

En este momento estoy construyendo en Node.js, principalmente con Angular y algunos Express. Sigue usando SQL Server para las bases de datos SQL sobre MySQL, usando un par de bases de datos NoSQL diferentes para datos no estructurados. El tiempo de ciclo es súper rápido, y hay un montón de bibliotecas; si necesita una función, alguien la ha escrito en algún lugar.

Hay un gran inconveniente en eso: Node es actualmente el “sabor del día”. Si está contratando, eso es un fastidio: es más costoso para el talento, y todos lo reclaman, incluso si han hecho un trabajo limitado para capitalizar el aumento salarial.

Por otro lado, si lo está haciendo usted mismo, mi amigo Quincy Larson en FreeCodeCamp tiene montones de material para ayudarlo a aprenderlo y ejemplos prácticos. Por lo tanto, puede rápidamente (he tenido un par de chicos que pasaron de “meh, algo de JavaScript” a programadores de Node as en cuatro o cinco meses) ponerse al día.

El problema real como es con cualquier esfuerzo de este tipo es la arquitectura de back-end, la implementación, etc. Solo siempre construyo en Amazon AWS, construido a escala. Eso significa que puse mi primer servidor solitario detrás de un equilibrador de carga, aunque no lo necesito, así que cuando lo necesito, ya está allí. Un poco de configuración y tres minutos después (o menos) estoy ejecutando otra instancia.

PHP no es inherentemente escalable hasta que llegue a una escala que probablemente nunca alcanzará, en cuyo caso es probable que tenga los recursos para “hacer algo al respecto”. Lo sabes, puedes ponerte en marcha de inmediato, etc.

Su problema inherente es que es difícil escalar la construcción de TEAMS en él, y es históricamente difícil de mantener. Y es un poco un recurso pesado (consejo profesional: nunca ejecute la base de datos en la misma instancia que el servidor web PHP).

Tienes mucho espacio. Si quieres estar donde está la acción, ahora todo se trata de Node. Pero PHP también es perfectamente útil.

Cualquiera de los anteriores y más puede ser y se utiliza. Creo que Facebook se ejecuta en una versión personalizada de PHP. Creo que Twitter comenzó con Ruby on Rails, aunque han cambiado desde que recuerdo (¿a Erlang o Haskell?). Si no me equivoco, Quora usa Python principalmente.

La elección del lenguaje dentro de la programación del lado del servidor es esencialmente una preferencia personal. Muchos son capaces de lograr el rendimiento y las capacidades necesarias, y en muchos casos se hace más diferencia por el marco que por el lenguaje. Si hubiera un claro “mejor” sería el único competidor real; Este ciertamente no es el caso. Facilidad de desarrollo? ¿Actuación? Concurrencia? Cada combinación diferente de estas prioridades y más produce un marco o biblioteca diferente.

Aquí hay una lista de muestra de lo que puede usar (lenguaje / marco o biblioteca), solo para ilustrar la gran cantidad de opciones:

  • Node.js / Express
  • Node.js / Meteor
  • Python / Django
  • Python / Frasco
  • Pitón / Botella
  • PHP /? (No lo sé)
  • Ruby / Rails
  • Erlang /?
  • Haskell / Snap
  • Haskell / Happstack
  • Haskell / Yesod
  • .RED/?
  • Óxido / hierro
  • Ir / biblioteca estándar
  • C ++ / CppCMS
  • C ++ / Wt
  • Java/?

Probablemente sea mejor quedarse con lo que sabes. PHP hará el trabajo bien, y es bastante más fácil que bastantes elementos en esa lista. También resulta fácil encontrar desarrolladores, es uno de los idiomas más fáciles para este propósito y es ampliamente conocido. Los buenos desarrolladores pueden ser un poco más difíciles ya que habrá muchos malos mezclados (nuevamente debido a su facilidad de uso) en comparación con, por ejemplo, Haskell (conocido por ser difícil), pero están ahí afuera.

Realmente, los idiomas que usa para el back-end no necesariamente importan porque al final del día el usuario verá lo que ve, independientemente del idioma que use. Querrás algo que te resulte cómodo de usar y un gran rendimiento.

Elegiría un idioma que sería algo similar a lo que sabes. Como preguntaste, Quora se construye utilizando Python y Pylon como marco y Javascript. (¿Qué lenguajes y marcos se usan para codificar Quora?)

Espero que esto ayude un poco.

A mi entender, JavaScript es extremadamente escalable.

En el mundo de hoy recomendaría Node, Express, Vue (un nuevo MV * Framework) y MongoDB. Además, recomendaría usar Flight.js para su propio código. Y, por supuesto, jQuery.

More Interesting

¿Qué compañías tienen una cantidad significativa de base de código C ++?

¿Cuál es el alcance de Pega? ¿Es una buena opción elegir al comienzo de una carrera en comparación con Java?

Cómo ser un buen desarrollador

¿Cuál es la diferencia entre desarrollo de software, ingeniería de software e informática?

¿Cómo pueden los desarrolladores de software mayores encontrar trabajos bien remunerados en las grandes compañías tecnológicas?

Soy desarrollador de software, pero mi trabajo en la oficina no es bueno para mi crecimiento profesional. ¿Qué debo hacer por mi cuenta para mejorar la programación Java y .Net?

¿Qué sugeriría que un ingeniero de software mediocre debería hacer para ser un experto en algo (tecnología, plataforma o lenguaje)?

¿Puedo mejorar mis habilidades de desarrollador de software desarrollando juegos?

Cómo cambiar de redacción técnica (3 años de experiencia) a desarrollador de software (PG en informática)

¿Los desarrolladores necesitan leer un libro CSS, o leer un libro sobre un tema como ese es una pérdida de tiempo abrumadora en cosas fáciles?

¿Qué tendré que hacer para cambiar de carrera de desarrollo de hardware a desarrollo de software?

¿Qué tan importante es publicar sus proyectos de software en GitHub cuando busca trabajos de desarrollo de software?

¿Qué es mejor para una pasantía de desarrollo de software, Five Rings Capital o Microsoft?

¿Cuál es el mejor nivel de descomposición que debe hacer un programador con el código?

¿Necesita saber qué se enseña en una licenciatura en ciencias de la computación para ser un ingeniero de software que hace software para tecnologías relacionadas con Windows o Microsoft?