¿Qué tipo de rol juega la "historia cultural del lenguaje" con una plataforma?

15

Recientemente me encontré con este artículo de hace algunos años. Argumenta que las diferencias significativas en la cultura que rodea a VB y C #, no las diferencias reales en el lenguaje, contribuyen a que los codificadores de C # sean generalmente más talentosos que los codificadores de VB. Obviamente, eso causó muchas guerras de fuego y la pregunta de si los C # ers o los VBers son los más tontos nunca será respondida. Dicho esto, los escritores afirman que la cultura que rodea a una plataforma particular contribuye a la calidad del equipo aún podría ser plausible. Por ejemplo, aunque Java es más eficiente para desarrollar aplicaciones en este momento, es probable que un equipo de desarrolladores de Google Go sea de un calibre más alto en promedio que un equipo de desarrolladores de Java, ya que para aprender Go, un desarrollador probablemente tiene ser un adoptante súper temprano y un genio de la piratería en la frontera. Entonces, en pocas palabras, ¿cómo afecta la cultura que rodea una plataforma u otra a la calidad del desarrollador promedio en esa plataforma?

    
pregunta Morgan Herlocker 04.05.2011 - 21:29

3 respuestas

7

Realmente pregunta interesante. Mi opinión personal es que es algo que se solicita con demasiada frecuencia y realmente no contiene agua en absoluto.

Los niños de Script (y las compañías que los contratan) permiten que el lenguaje de elección dicte su estado entre los escalones de los "programadores". A los buenos ingenieros no les importaría el lenguaje de su elección, pero concéntrese en resolver los problemas dados de la manera más óptima (obviamente óptimo es una declaración general y puede aplicarse a muchos factores diferentes). Ya sea que se trate de C #, VB, C ++, Python o ensamblado escrito a mano, no importa, ya que existe un claro beneficio al usar esa tecnología para resolver el problema.

En resumen, creo que es más valioso analizar la complejidad de los problemas que uno resuelve de forma regular en lugar de qué lenguaje usan para resolverlos.

Solo mis dos centavos en el tema :)

    
respondido por el Demian Brecht 04.05.2011 - 21:46
4

La calidad del código desarrollado en cada uno de estos idiomas se basa en estas filosofías fundamentales y menos en los desarrolladores individuales

Cada idioma tiene una cultura a su alrededor, porque cada idioma fue desarrollado por una persona con una agenda y una filosofía subyacente de por qué su idioma iba a ser mejor en algo de lo que existía En el momento en que se creó.

Al igual que las religiones, los lenguajes de programación tienden a atraer a personas que ya tienen la misma predisposición a los principios y filosofías centrales del creador del lenguaje.

Ejemplo de la calidad percibida de las soluciones

En un campamento de Microsoft tienes:

  

La filosofía de C # es que es más   Puramente orientado a objetos, promueve más.   modismos modernos y requiere más   conocimiento para hacerlo correctamente y   por lo tanto debe proporcionar más alto   soluciones de calidad. Esto es lo que dibuja.   la gente lo hace a través de VB.

En el otro campamento de Microsoft:

  

La filosofía de VB es que puedo y rápidamente   con poco conocimiento o esfuerzo de construir   algo que le permitirá a alguien hacer clic   Un botón y hacer algo útil y de   Valor empresarial, como lo hace no es.   muy importante. Esto es lo que dibuja.   la gente a través de C #.

Aquí hay un poco de información sobre los idiomas y sus filosofías:

  

Las personas de Perl tienden a preocuparse por lo que sucede exactamente a la gente de Python.

     

La gente de Java se preocupa por hacer dinero.

     

Atención de idiomas JVM (Groovy, Scala)   sobre el JMV y no sobre Java el   idioma.

     

Todos los lenguajes específicos de Microsoft   (VB, C #, F #, C ++ administrado) tienden a preocuparse por ganar dinero en Windows.

     

La gente de Erlang se preocupa por las cosas   Todos los demás, otras personas no han tenido que preocuparse,   y no aprecian lo que no saben.

     

A la gente de Lisp no le importa lo que   alguien más piensa que se preocupa por.

Lo que les importa a estos grupos determina el lenguaje, su desarrollo y su comunidad.

Las filosofías cambian con la experiencia y la necesidad

Adopté ASM y BASIC porque en 1983 eso era todo lo que tenías. Quería escribir juegos y demos, esas eran las herramientas para hacerlo. Principalmente ASM para demostraciones.

Adopté C y luego C ++ cuando era la única forma de escribir cosas como renderizado 3D y casi todo lo que era crítico para el espacio y el tiempo. No fue ASM, así que lo aprendí.

Adopté VB para ganar dinero, era lo más parecido a los entornos de desarrollo de Scala, Director y CanDo a los que estaba acostumbrado en Amiga. Estoy de acuerdo con la filosofía de desarrollo rápido

Adopté Java desde el principio para ganar dinero. Gané dinero con VB hasta 1999 y lo dejé atrás cuando Java 1.2 se estabilizó y maduró y la web ya estaba activa. Tenía 4 años de experiencia en Java cuando la gente realmente comenzó a tomarlo en serio. Estuve de acuerdo con escribir una vez, correr en cualquier lugar , ya que cuantos más lugares corrió mi código, más fácil sería poder venderlo. filosofía.

Adopté Python al final de su línea de tiempo, 2005 porque rasguñó una picazón que Java no hizo. Necesitaba escribir código rápidamente para usar algunas bibliotecas que solo estaban disponibles en C y también necesitaba hacer rápido creación de prototipos de servicios web Python era más rápido y menos código para hacer lo mismo en Java. Algunas cosas se pusieron en producción como Java, algunos se quedaron en Python, muchas cosas nunca llegaron a la naturaleza. Estuve de acuerdo con sus baterías incluidas, filosofías de un solo idioma y otras.

Adopté Lua cuando necesitaba colocar un motor de scripting ligero en mis programas C ++ y Java. Esto fue mucho antes de la compatibilidad con JSR233 en Java. Estoy de acuerdo con la incorporación de un lenguaje de secuencias de comandos con todas las funciones que sea fácil de usar, debe ser la simple filosofía de Lua.

Adopté Erlang en 2006 cuando comencé a necesitar escalabilidad masiva y ejecución multi-core relativamente indolora en problemas altamente paralelos y tengo ejecución multiplataforma. ** Estoy de acuerdo con su estado no compartido, paso de mensajes, filosofía de estado inmutable. * 8

Adopté Objective-C cuando empecé a necesitar construir aplicaciones OSX e iOS. Estoy de acuerdo con su complemento justo a la derecha de la orientación de objetos a C para hacerlo mejor . También para hacer mejor dinero.

Adopté JavaScript oficialmente en 2009 porque estaba de acuerdo con la filosofía de CouchDB y usa JavaScript. Todavía no me gusta JavaScript cuando tengo que lidiar con el DOM.

Todavía no he adoptado oficialmente a Lisp, ¡pero finalmente lo haré! Estoy de acuerdo con su Los que no saben nada están condenados a reinventarla .

    
respondido por el Jarrod Roberson 04.05.2011 - 23:04
0

Una pregunta interesante por cierto. Es uno de esos en los que entiendes la respuesta en el nivel subconsciente pero te esfuerzas por expresarlo en palabras.

Se ve mejor como un bucle de causalidad.

La cultura es responsable de la composición "étnica" de los desarrolladores atraídos por la plataforma. Esa composición, a su vez, define las cualidades del programador "promedio". La calidad de los desarrolladores que ahora usan la plataforma influye en la cultura o en su percepción externa, lo que, por consiguiente, tiene un efecto en que los desarrolladores lleguen a la plataforma o la abandonen. El valor de la "calidad" cambia como resultado.

He estado intentando crear reglas específicas, pero me resulta difícil generalizar. Necesitamos investigar por separado cada plataforma. Algunas observaciones que he hecho:

  • La velocidad a la que se desarrolla, amplía y mejora una plataforma en particular tiene una correlación directa con la calidad de los desarrolladores. El flujo constante de nuevas funciones y herramientas brillantes atrae a los desarrolladores entusiastas (que en promedio son más capaces de realizar trabajos de calidad) y repele a las mentes conservadoras que se sienten irritadas por el constante esfuerzo de aprendizaje.

  • Los límites que ofrece una plataforma, incluso a costa de un mayor riesgo de dispararse en el pie, también atraen mentes experimentales entusiastas

  • Cuanto más complejas sean las cosas que uno necesita comprender y dominar para poder utilizar la plataforma, atrae igualmente a los individuos resueltos y ahuyenta a los desarrolladores perezosos

respondido por el user8685 04.05.2011 - 22:14

Lea otras preguntas en las etiquetas