Recientemente me topé con estoArtículo de hace unos años. Sostiene 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 llamas y la pregunta de si C # ers o VBers son los más tontos nunca será respondida. Dicho esto, los escritores afirman que la cultura que rodea a una plataforma en particular contribuye a la calidad del equipo aún podría ser plausible. Por ejemplo, a pesar de que Java es más eficiente para desarrollar aplicaciones en este momento, un equipo de desarrolladores de Google Go parecería tener 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 de fronteras. Entonces, en pocas palabras,¿Cómo afecta la cultura que rodea a una plataforma u otra la calidad del desarrollador promedio en esa plataforma, si es que lo hace?
fuente
Respuestas:
Pregunta realmente interesante. Mi opinión personal es que es una que se pregunta con demasiada frecuencia y que realmente no retiene agua.
Los script kiddies (y las compañías que los contratan) permiten que el lenguaje de elección dicte su estado entre los escalones de los "programadores". Los buenos ingenieros no pueden preocuparse menos por el idioma de elección, sino concentrarse en resolver los problemas dados de la manera más óptima (obviamente, óptimo es una declaración general y se puede aplicar a muchos factores diferentes). Ya sea que se trate de C #, VB, C ++, Python o ensamblaje escrito a mano, no importa, ya que existe un beneficio claro al usar esa tecnología para resolver el problema.
En resumen, creo que es más valioso observar la complejidad de los problemas que uno resuelve de manera regular en lugar del lenguaje que usan para resolverlos.
Solo mis dos centavos sobre el tema :)
fuente
La calidad del código desarrollado en cada uno de estos lenguajes 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 razón por alguien 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 ese momento.
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 sobre calidad percibida de soluciones
En un campamento de Microsoft tienes:
En el otro campamento de Microsoft:
Aquí hay algunas tomas de lengua y mejilla sobre los idiomas y sus filosofías:
Lo que les importa a estos grupos da forma al lenguaje, su desarrollo y su comunidad.
Las filosofías cambian con la experiencia y la necesidad.
Adopté ASM y BASIC porque en 1983 eso fue todo lo que tenía. Quería escribir juegos y demos, esas fueron las herramientas para hacerlo. Principalmente ASM para demos.
Adopté C y luego C ++ cuando era la única forma de escribir cosas como el renderizado 3D y prácticamente cualquier otra cosa que fuera crítica en cuanto al espacio y el tiempo. No era ASM, así que lo aprendí.
Adopté VB para ganar dinero, era lo más parecido a los entornos de desarrollo 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 más dinero. Gané dinero con VB hasta 1999 y lo dejé atrás cuando Java 1.2 se estabilizó y maduró y la web ya se había puesto en marcha por completo, tenía 4 años de experiencia en Java cuando la gente realmente comenzó a tomarlo en serio. Estuve de acuerdo con la escritura una vez, ejecutar en cualquier lugar en que cuanto más lugares se ejecutó mi código, más fácil sería poder venderlo. filosofía.
Adopté Python tarde en su línea de tiempo, 2005 porque rascó 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 prototipos rápidos de servicios web. Python fue más rápido y menos código para hacer lo mismo en Java. Algunas cosas se pusieron en producción cuando Java se quedó Python, muchas cosas nunca llegaron a la naturaleza. Estuve de acuerdo con sus baterías incluidas, las filosofías de un solo idioma, así como las demás.
Adopté Lua cuando necesitaba poner un motor de secuencias de comandos ligero en mis programas C ++ y Java. Esto fue mucho antes del soporte JSR233 en Java. Estuve de acuerdo con la incorporación de un lenguaje de secuencias de comandos con todas las funciones que sea fácil de usar, debería ser una simple filosofía Lua.
Adopté Erlang en 2006 cuando comencé a necesitar una escalabilidad masiva y una ejecución multinúcleo relativamente indolora en problemas altamente paralelos y tengo una ejecución multiplataforma. ** Estoy de acuerdo con su estado de no compartir, pasar mensajes, filosofía de estado inmutable. * 8
Adopté Objective-C cuando comencé a necesitar construir aplicaciones OSX e iOS. Estoy de acuerdo con que agrega la orientación correcta de objetos a C para mejorar su filosofía. También para ganar mejor dinero.
Adopté JavaScript oficialmente en 2009 porque estaba de acuerdo con la filosofía 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 eventualmente lo haré! Estoy de acuerdo con los que no saben lisp están condenados a reinventar su filosofía.
fuente
Una pregunta interesante de hecho. Es una de esas en las que entiendes la respuesta en el nivel subconsciente pero te esfuerzas por ponerla en palabras.
Se ve mejor como un ciclo 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 su percepción externa, lo que en consecuencia tiene un efecto en los desarrolladores que llegan a la plataforma o la abandonan. El valor de la "calidad" cambia como resultado.
He estado tratando de llegar a 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, extiende, 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 desarrolladores entusiastas (que en promedio son más capaces de realizar un trabajo de calidad) y repele las mentes conservadoras que están irritadas por el esfuerzo constante de aprendizaje.
Los límites menores que ofrece una plataforma, incluso a costa de un mayor riesgo de dispararse en el pie, atraen igualmente mentes experimentales entusiastas.
Cuanto más complejas son las cosas que uno necesita comprender y dominar para usar la plataforma, igualmente atrae a personas resueltas y ahuyenta a los desarrolladores perezosos.
fuente