¿Por qué tantos eligen la pila abierta (Django, Play, Ruby on Rails) frente a la pila de Microsoft para construir redes sociales (ASP.NET MVC)

Creo que tiene mucho que ver con el tiempo. Durante la década de 2000, cuando se construyeron la mayoría de las redes sociales grandes y notables, el desarrollo para la web del consumidor realmente dominó PHP, Python y Ruby y las comunidades de código abierto.

Microsoft llegó un poco tarde a esa fiesta, ya que la mayoría de sus herramientas y marketing para desarrolladores tenían un enfoque empresarial. Esto ha cambiado bastante en los últimos años hasta hoy (2018), pero aún hay mucha inercia y comportamiento de culto a la carga en la industria tecnológica, por lo que lo que ha sido popular y probado tiene una tendencia a mantenerse al frente.

Al final del día, es factible usar casi cualquier lenguaje preparado para la web para construir una red social y otras aplicaciones de propósito especial con redes sociales. Stack Overflow es un gran ejemplo de una popular aplicación web C # / ASP.NET.

Si está buscando ver más ejemplos y obtener consejos sobre cómo construir una red social en una amplia gama de idiomas, Stream (mi empleador) ha puesto una colección de recursos sobre cómo construir una red social.

Gracias por A2A.

Creo que es una idea errónea suponer que solo los desarrolladores de redes sociales optan por la pila de Microsoft. Desde mi punto de vista, esa es la tendencia común para todas las nuevas empresas en este momento.

Ahora es un poco más fácil abordar este aspecto: ¿por qué las empresas de nueva creación no usan Microsoft stack para sus productos? Creo que proviene de varias razones:

Costo. Sí, todos declararon eso; pero es muy importante no mencionarlo, especialmente para las nuevas empresas. Cada componente de la pila de Microsoft generalmente tiene un costo más alto que su contraparte de código abierto. Microsoft tiene BizSpark para admitir nuevas empresas, pero 3 años es relativamente corto para que obtengan suficientes ganancias para pagar las facturas de hosting.

Libertad de elección. Microsoft ha sido conocido por no jugar bien con los demás. Por ejemplo, si desarrolla sus aplicaciones web utilizando ASP.NET, su mejor opción es colocarlas en la parte superior del servidor IIS, por supuesto alojado por Windows Server. Los desarrolladores somos tecnológicamente claustrofóbicos.

Flexibilidad. Para las nuevas empresas, la estabilidad no está en la parte superior de la lista. La mayoría se enfocará en hacer el prototipo lo antes posible (para obtener fondos), luego pasará por innumerables iteraciones para satisfacer las demandas siempre cambiantes de los clientes potenciales. El marco de código cerrado como .NET significa que no puede poseer el 100% de su código y, por lo tanto, no puede realizar cambios / pirateos si es necesario para que funcione de la manera que desee.

Aparte de eso, .NET framework es realmente divertido para jugar. Y Microsoft está haciendo movimientos sin precedentes para que sea más accesible para las pequeñas y nuevas compañías tecnológicas. Entonces, ¡esperemos!

Aquí hay muchas buenas respuestas, pero aparte del costo de la licencia y el “ethos del hacker”, hay algunas otras ventajas que veo perdidas en las otras respuestas.

  • Madurez. Aunque solo existe desde 1991 más o menos, y comenzó desde cero. Linux se basa en gran medida en el estándar POSIX y, por lo tanto, en la herencia Unix de más de 40 años de brindar una estabilidad sólida como una roca. Es ante todo un sistema operativo de servidor, mientras que Windows todavía tiene la sobrecarga y la complejidad de un sistema operativo de escritorio
  • Sin cajas negras: visibilidad y control completos sobre toda la pila desde el núcleo hacia arriba.
  • Mejor “fontanería”. La “filosofía de Unix” subyacente es la de las pequeñas herramientas que “hacen una cosa y lo hacen bien” y son “inteligentemente estúpidas”, junto con la “fontanería”: tuberías, redirección, el propio shell y varios lenguajes integrados para permitirle pegar piezas juntas.
  • Mejores herramientas vim y emacs siguen existiendo después de 3 décadas por una razón, y esa razón es que una vez que uno realmente los aprende, es imposible igualar la eficiencia en una GUI.
  • Lenguajes interpretados fuertes y de alto rendimiento (python. Ruby, perl, etc.) con la capacidad de cambiar el código sobre la marcha en un sistema en ejecución sin un paso de compilación.
  • REPL que pueden interactuar con el código de la aplicación en ejecución para pruebas y depuración ad hoc, o para simular partes del código que aún no existen.
  • La escalabilidad es principalmente inherente y no es una característica opcional para comprar. Es mucho más fácil refactorizar algo creado en uno de los marcos de código abierto para hacerlo agrupable, agregar niveles y, en general, prepararlo para trabajar a escala.

Gracias por preguntar. Cuando consideramos qué pila usar para Third & Loom Company, no había mucho en qué pensar. Simultáneamente gravitamos a Rails y Angular para el punto de partida de nuestra pila. En virtud de estar en el mundo de las startups, éramos vaqueros. Nos encanta el código abierto, nos encanta poder hackear nuestras propias soluciones, nos encanta la libertad y, sobre todo, nos encanta la separación de las grandes corporaciones.

Hay una comunidad muy grande que es vibrante y bulliciosa con esta sensación de libertad. Los desarrolladores se van y construyen los suyos como una forma de validar sus perspectivas únicas y contribuir a la comunidad. Mientras que muchas nuevas empresas están surgiendo y replanteando su propio pedazo del pastel, otras nuevas empresas están construyendo plataformas que se unen a esas nuevas empresas. Es un sentimiento increíble de pertenencia, somos una tribu.

Lo que dices Microsoft stack es cierto hasta cierto punto. Cuando miras el mercado, los argumentos realmente pueden ir en cualquier dirección, y mucha gente saltará y flexionará sus conocimientos sobre cuál creen que es mejor. Sin seguir el camino de las minucias peludas, la elección realmente se reduce a la mentalidad. También se reduce parcialmente a lo que sabe y con lo que se siente cómodo.

Viví y respiré Microsoft durante muchos años y he trabajado con algunos de los mejores desarrolladores en algunos productos clave. Tan cómodo como estaba con Microsoft, desafiar lo desconocido con la comunidad de código abierto más amplia se siente más cerca del corazón.

El código abierto significa libertad y no verse empantanado por problemas. MS no siempre es confiable, pueden jugar contra usted si piensan que usted es su competidor y, en los primeros días, MS era un competidor en cualquier tipo de negocio de software, ya sea empresarial, web o juego.

En segundo lugar, aunque MS ofrece una plataforma de desarrollo muy buena, no es extensible. Si una característica no está allí, no está allí. Tienes que solucionarlo. Conozco personas que patentaron una solución alternativa solo porque MS no admitía una característica simple en su producto. Triste pérdida de tiempo en la oficina de patentes. El código abierto es extensible y no tiene el peso de la oficina de patentes.

En tercer lugar, MS es un adoptante tardío. El MVC del que estás hablando llegó muy tarde. En estos días, la gente avanzó mucho en andamios, inyecciones de dependencia y enlaces automáticos de datos.

El más importante de ellos es que todos los programadores aman el desafío y la libertad. Las soluciones de MS son para programadores perezosos. El código abierto es para programadores que son flojos. Dichos programadores se sienten atraídos por sus pequeñas cosas y quieren minimizar su trabajo manual tanto como sea posible. Viola ahí va tu innovación. La innovación no es hecha por aspirantes corporativos bien preparados. Pero por tipos barbudos locos.

Tienes razón … La licencia es cara. También la libertad, la compatibilidad y la capacidad de integrar diferentes cosas para muchos desarrolladores es importante.
Ver: ¿Debería Microsoft intensificar el soporte de OpenStack?

MS Stack viene con un producto más refinado y una gran adopción por parte de los usuarios, mientras que OpenStack viene con un sólido conjunto de contribuyentes. Dependiendo de quién esté usando cada uno de estos, pueden encontrarse queriendo más seguridad y atención al cliente personalizada O personalización y un campo más amplio para desarrollar sus propias soluciones. Todo lo cual se reduce a dinero / recursos. Lea algunas comparaciones interesantes aquí: enfrentamiento de computación en la nube: Amazon vs. Rackspace (OpenStack) vs. Microsoft vs. Google

También es lo nuevo que odiar en Microsoft … por alguna razón.

Pocas cosas en las que puedo pensar ahora mismo:
1- “¡el costo de licencia para servidores / bases de datos” es simplemente grande! Al igual que el mismo servidor y el mantenimiento de otra pila sería casi la mitad del precio.

2- Necesidad y apoyo de la comunidad. Mi primer inicio fue una aplicación móvil en MS stack que compartía rutas y ubicaciones, ¡hace aproximadamente 5 años! Tuve que ir a las paredes y calles de Internet para encontrar ejemplos y fragmentos.
No digo que la comunidad no sea compatible, pero es difícil conseguir a alguien de un Q&A de Twitter para que te ayude, mientras que ese puede ser el caso para la mayoría de las otras comunidades de Dev.

3- Falta de experiencia y conocimiento en las tecnologías. Las personas que crean una red social tienden a ser (solo una suposición descabellada) empresarios más jóvenes. Trabajar en una pila de MS necesita mucha experiencia, solo hay muchas Gotchas, por lo que es difícil sentirse cómodo y avanzar de esa manera.

Puedo enumerar los pros, que son mucho más sinceros, pero ese es un tema diferente.

Como dijeron los amigos, hay varias razones, pero separar las líneas no es tan sencillo. Dejame explicar;
Tenemos que mirar al menos desde dos perspectivas diferentes;
Uno de los ojos de las pequeñas empresas:
En primer lugar, sí, el costo es un factor, pero no siempre es un gran problema. Causa MS tiene muchas oportunidades de licencia. Hasta cierto punto y para algunas empresas puede ser incluso sin costo o un poco. Entonces, las pequeñas empresas piensan reducir los costos a largo plazo. PODRÍAN comenzar con la apertura, algunas PODRÍAN pensar en comenzar con la EM y, después de cierto nivel de madurez, pueden planear deslizarse para abrir. Aquí probablemente el primero sea más pesado.
En segundo lugar, sí comunidad, pero la comunidad de MS no es débil hoy en día y, de hecho, la construcción con MS stack es más rápida que la otra. Pero por qué la gente eligió abrir aquí podría explicarse con las tendencias y las habilidades adquiridas previamente por los desarrolladores. Hoy en día las escuelas enseñan más sobre la apertura y las personas tienden a abrir más debido a la tendencia de código abierto. De hecho, las actitudes tempranas de la EM u otras cosas dieron esta aceleración a la comunidad abierta. Y sí, la gente comenzó a confiar en que la capacidad de la multitud podría ser incluso más que una súper empresa.
En tercer lugar, sí, los lados débiles de la EM. Sí, tiene algunos lados débiles para algunas situaciones prolongadas. La comunidad abierta parece crear la tendencia tecnológica y, después de un tiempo, la EM trata de adoptarse.
Desde el punto de vista de los clientes de grandes empresas:
Confían en la EM y, por lo general, la utilizan por su apoyo. El dinero no es tan importante para ellos.
Además, lo siguen, porque de antemano lo hicieron. Por lo tanto, puede haber problemas de compatibilidad y cierta resistencia a nivel empresarial debido a los hábitos de los empleados.
Como conclusión, para los recién nacidos, abrir es bueno y ganar poder, MS lo sabe e intenta cambiar sus estrategias hacia la apertura y producir nuevas estrategias de precios. Pero sin conquistar la gran empresa y las organizaciones gubernamentales, el código abierto parece que nunca derrotará a la EM.

Por varias razones, pero creo que el principal factor de costo es la mayor preocupación. Microsoft stack pertenece a Microsoft y debe pagar las tarifas de licencia.

Los gastos generales involucrados pueden ser indignantes para una startup sin fondos.

Además, y esto juega un poco de experiencia personal, algunas startups comenzaron como un juego divertido entre amigos, una apuesta o una sesión de pirateo durante la noche. Algunos no anticipan que se vuelva muy popular. Entonces, para algunos, la idea era construir algo divertido de forma gratuita. ¿Y qué mejor manera de hacerlo que aprovechar el poder de las tecnologías de código abierto?

Porque cuando dices que estás escribiendo algo en el Nodo Js, suena genial. Al final del día, todos estos marcos son abstracción. Si alguien se queja de MS tratando de alimentar sus paquetes, bibliotecas, así como Node. ¿Alguna vez echó un vistazo al archivo json del paquete de una aplicación de nodo que está en producción? Para una aplicación de demostración rápida de 15 minutos puede sonar divertido, pero para la aplicación de producción, su mismo nivel de dolor, si no más, con la pila de código abierto que las tecnologías de MS.

Para mí fue solo una cuestión de costo y el requisito de ser independiente del sistema operativo.
También consideré la compatibilidad con versiones anteriores un buen valor.
Volviendo a esos tiempos, Microsoft lanzó .Net 1.xy .Net 2.x después de años de VB6. Para mí, parecía que en Microsoft no estaban dando mucho valor a la compatibilidad con versiones anteriores.

No son solo las redes sociales. Para la mayoría de los proyectos web nuevos, la primera opción casi nunca es la tecnología MS. No hay nada de malo en ellos, simplemente cualquier cosa que MS stack pueda hacer, puede hacerlo mejor y más barato con estos nuevos marcos.

La marca de microsofts es simplemente costosa, lenta para cambiar, quiere ser codiciosa, deshonesta, habeens con mala reputación y la mayoría preferiría cualquier cosa menos ms. Este no es necesariamente el caso con su software moderno, pero la marca es importante para las nuevas empresas en cuanto a cómo se perciben.