Recentemente, tropecei em como a cultura que rodeia uma plataforma ou outra afeta a qualidade do desenvolvedor médio nessa plataforma, se é que existe? nesseartigo de alguns anos atrás. Ele argumenta que diferenças significativas na cultura em torno de VB e C #, não as diferenças reais no idioma, contribuem para que os codificadores C # sejam geralmente mais talentosos que os codificadores VB. Obviamente, isso causou muitas guerras de chamas e a pergunta sobre se os C # ou VBers são os mais idiotas nunca será respondida. Dito isto, os escritores afirmam que a cultura em torno de uma plataforma específica contribui para a qualidade da equipe ainda pode ser plausível. Por exemplo, embora o Java seja mais eficiente no desenvolvimento de aplicativos no momento, uma equipe de desenvolvedores do Google Go parece ter um calibre mais alto, em média, do que uma equipe de desenvolvedores de Java, pois para aprender o Go, um desenvolvedor provavelmente tem ser um adotante super-precoce e um gênio da invasão de fronteiras. Então, em poucas palavras,
fonte
Respostas:
RealmentePergunta interessante. Minha opinião pessoal é que é uma pergunta que é feita com muita frequência e que realmente não retém água.
As crianças de script (e as empresas que os contratam) permitem que o idioma escolhido dite seu status entre os escalões dos "programadores". Boa engenheiros não se importam com o idioma escolhido, mas concentram-se em resolver os problemas apresentados da maneira mais ideal (obviamente, ideal é uma afirmação geral e pode ser aplicada a muitos fatores diferentes). Seja C #, VB, C ++, Python ou assembly escrito à mão, não importa, pois há um claro benefício em usar essa tecnologia para resolver o problema.
Então, resumindo, acho que é mais valioso olhar para a complexidade dos problemas que se resolve regularmente, em oposição à linguagem que eles usam para resolvê-los.
Apenas meus dois centavos sobre o assunto :)
fonte
A qualidade do código desenvolvido em cada uma dessas linguagens é baseada nessas filosofias fundamentais e menos nos desenvolvedores individuais
Cada idioma tem uma cultura em torno dele, porque cada idioma foi desenvolvido por uma razão por alguém com uma agenda e uma filosofia subjacente a por que seu idioma seria melhor em algo do que o que existia na época foi criado.
Como as religiões, as linguagens de programação tendem a atrair pessoas que já têm a mesma predisposição para os principais princípios e filosofias do criador da linguagem.
Exemplo sobre qualidade percebida de soluções
Em um acampamento da Microsoft, você tem:
No outro campo da Microsoft:
Aqui estão algumas línguas e expressões faciais nas línguas e suas filosofias:
O que esses grupos se preocupam molda a linguagem, seu desenvolvimento e sua comunidade.
As filosofias mudam com a experiência e a necessidade
Eu adotei o ASM e o BASIC porque em 1983 isso era tudo que você tinha. Eu queria escrever jogos e demos, essas eram as ferramentas para fazê-lo. Principalmente ASM para demos.
Adotei o C e depois o C ++ quando era a única maneira de escrever coisas como renderização em 3D e praticamente qualquer outra coisa crítica em termos de espaço e tempo. Não era ASM, então eu aprendi.
Adotei o VB para ganhar dinheiro, pois era o mais próximo dos ambientes de desenvolvimento Scala, Director e CanDo aos quais estava acostumado no Amiga. Eu concordei com a filosofia de desenvolvimento rápido
Adotei o Java desde o início para ganhar dinheiro melhor. Ganhei dinheiro com o VB até 1999 e o deixei para trás quando o Java 1.2 se tornou estável e maduro e a Web já havia entrado em vigor completamente. Eu tinha 4 anos de experiência em Java quando as pessoas realmente começaram a levar a sério. Eu concordei com a gravação uma vez, execute em qualquer lugar onde, quanto mais lugares meu código funcionasse, mais fácil seria vendê-lo. filosofia.
Adotei o Python no final de sua linha do tempo, 2005, porque ele coçava uma coceira que o Java não fazia. Eu precisava escrever código rapidamente para usar algumas bibliotecas que só estavam disponíveis em C e também fazer prototipagem rápida de serviços da Web. Python era mais rápido e menos código para fazer a mesma coisa em Java. Algumas coisas foram colocadas em produção, já que Java permaneceu em Python, muitas coisas nunca chegaram à natureza. Concordei com as baterias incluídas, filosofias de expressões únicas e outras.
Adotei Lua quando precisei colocar um mecanismo de script leve nos meus programas C ++ e Java. Isso foi muito antes do suporte ao JSR233 em Java. Concordei com a incorporação de uma linguagem de script com todos os recursos e fácil de usar, que deve ser uma simples filosofia Lua.
Adotei o Erlang em 2006, quando comecei a precisar de escalabilidade massiva e execução multi-core relativamente indolor em problemas altamente paralelos e execução em várias plataformas. ** Concordo com seu estado não compartilhado, passagem de mensagem, filosofia de estado imutável. * 8
Adotei o Objective-C quando comecei a precisar criar aplicativos OSX e iOS. Eu concordo com a adição da Orientação a Objetos ao C para torná-lo melhor . Também para ganhar dinheiro melhor.
Adotei o JavaScript oficialmente em 2009 porque concordei com a filosofia do CouchDB e ela usa JavaScript. Ainda não gosto de JavaScript quando tenho que lidar com o DOM.
Ainda não adotei oficialmente o Lisp, mas vou finalmente! Eu concordo com a sua. Aqueles que não conhecem o cece são condenados a reinventar sua filosofia.
fonte
Uma pergunta interessante, de fato. É um daqueles em que você entende a resposta no nível subconsciente, mas se esforça para colocá-la em palavras.
É melhor visto como um loop de causalidade.
A cultura é responsável pela composição "étnica" dos desenvolvedores atraídos pela plataforma. Essa composição, por sua vez, define as qualidades do programador "médio". A qualidade dos desenvolvedores que agora usam a plataforma influencia a cultura ou sua percepção externa, o que consequentemente afeta os desenvolvedores que chegam à plataforma ou a deixam. O valor da "qualidade" muda como resultado.
Eu tenho tentado criar regras específicas, mas acho difícil generalizar. Precisamos investigar separadamente cada plataforma. Algumas observações que fiz:
A velocidade com que uma plataforma específica é desenvolvida, ampliada e aprimorada tem uma correlação direta com a qualidade dos desenvolvedores. O fluxo constante de novos recursos e ferramentas brilhantes atrai desenvolvedores entusiasmados (que, em média, são mais capazes de oferecer um trabalho de qualidade) e repele mentes conservadoras, irritadas pelo esforço constante de aprendizado.
Os menos limites que uma plataforma oferece, mesmo ao custo de um risco maior de se dar um tiro no pé, atraem igualmente mentes experimentais entusiasmadas
Quanto mais complexas as coisas que você precisa entender e dominar para usar a plataforma, atrai igualmente indivíduos resolvidos e afasta desenvolvedores preguiçosos
fonte