Que tipo de papel a “história cultural da linguagem” desempenha com uma plataforma?

15

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,

Morgan Herlocker
fonte
É um dia de C # vs. VB.NET?
@ DeveloperArt - Essa não é minha intenção. De fato, a pergunta que tive foi interessante devido ao fato de o artigo parecer muito datado hoje, mas o conceito pode ser recuperável. O artigo faz parecer que os C # devs são todos gênios. Eu sou um, então sei em primeira mão que todos podemos ser tão desleixados quando o clima chegar.
Morgan Herlocker 04/04
1
@ Art Developer: Li esse artigo ontem, e tenho certeza que era um link postado em uma resposta aqui que me levou a ele. Talvez tenha sido assim que o professor Plum também conseguiu - uma pergunta sobre C # vs. VB.NET leva a outra. :-)
Carson63000

Respostas:

8

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 :)

Demian Brecht
fonte
2
+1: Além disso, a idéia de que existe uma cultura VB que de alguma forma transcende os limites da empresa é ridícula. Como essa cultura se preservaria? Reuniões secretas entre programadores de VB fora do trabalho? Uma "união" ou "associação" de programadores de VB para impor essa "cultura"? Tendo passado 30 anos pulando entre centenas de lojas de TI, posso dizer que a única cultura que eu já vi é puramente localizada. A escolha do idioma não cria essa "outra" cultura mencionada na pergunta.
S.Lott 4/11
1
Interessante. Se você marcou isto com +1, pergunte-se quem votou menos e por quê: P
Demian Brecht 04/04
1
@ S.Lott: Eu estou corrigido então (tenho que amar o subproduto das suposições;)). Mais vezes do que não, tenho recebido downvotes sobre temas como estes sem realmente conseguir qualquer feedback, o que às vezes pode ser valioso e fornecer-me com informações de que eu estava anteriormente inconsciente :)
Demian Brecht
1
@prof: A automação realmente torna a pessoa inferior, ou você acha superior porque ela entende quais atalhos podem ser necessários para obter a mesma saída, mas com mais eficiência? :) Obviamente, isso é generalização excessiva e quase impossível de responder com precisão. Estou meio que em dúvida sobre os codificadores Go serem mais apaixonados. Você ainda pode encontrar pessoas igualmente apaixonadas pelo Fortran. Ele seria , no entanto, me levam a crer que o programador Go é mais apaixonado por nova tecnologia e práticas, que é uma coisa boa IMHO :)
Demian Brecht
1
@Prof Plum: "a escolha da plataforma / idioma não tem nada a ver com a qualidade média do desenvolvedor". Corrigir. Como pode ser diferente? Mais do que tudo, a cultura da organização é importante. Os codificadores do Google Go - eles mesmos - são apenas pessoas. A organização limita as pessoas ao VB ou as incentiva a usar o Go. Pessoas são todas pessoas.
S.Lott 5/05
4

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:

A filosofia do C # é que ela é mais puramente orientada a objetos, promove idiomas mais modernos e requer mais conhecimento para fazê-lo corretamente e, portanto, deve fornecer soluções de qualidade mais alta. É isso que atrai as pessoas para o VB.

No outro campo da Microsoft:

A filosofia da VB é que eu posso rapidamente e com pouco conhecimento ou esforço criar algo que permita que alguém clique em um botão e faça algo útil e de valor comercial, como isso não é tão importante. É isso que atrai as pessoas para ele em C #.

Aqui estão algumas línguas e expressões faciais nas línguas e suas filosofias:

As pessoas Perl tendem a se preocupar exatamente com o oposto das pessoas com Python.

O pessoal de Java se preocupa em ganhar dinheiro.

As linguagens JVM (Groovy, Scala) se preocupam com a JMV e não com a linguagem Java.

Todas as linguagens específicas da Microsoft (VB, C #, F #, C ++ gerenciado) tendem a se preocupar em ganhar dinheiro no Windows.

As pessoas de Erlang se preocupam com coisas com as quais outras pessoas não precisam se preocupar e não apreciam o que não sabem.

As pessoas ciganas não se importam com o que os outros pensam.

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
0

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
Como essa cultura transcende os limites da empresa?
S.Lott 4/11/21
1
A @Lott Technology quase sempre transcende as fronteiras culturais. Existem grandes divisões culturais entre diferentes usuários do sistema operacional. Muitos designers gráficos e engenheiros de áudio que eu conheço pensariam que era um divisor de águas ir para uma empresa que usava qualquer coisa, menos Mac. Mac promoveu uma cultura em torno desses dois grupos em particular que é totalmente tangível. As linguagens de programação são ferramentas como o Photoshop e o GIMP; portanto, não é surpreendente que elas tenham culturas construídas em torno delas. Se não o fizessem, não teríamos guerras de chamas.
Morgan Herlocker
@Prof Plum: Seus exemplos não são mapeados para "cultura" com base em ferramentas. Seus exemplos são exatamente o oposto. A cultura real (engenheiros de áudio) escolhe ferramentas comuns. Nem todos os usuários do Logic Pro são forçados a se tornar engenheiros de áudio, porque de alguma forma o Logic Pro cria uma cultura. Eu acho que os exemplos em seu comentário (mesmo trabalho -> ferramentas similares) são uma excelente prova de que não há "história cultural da linguagem". Em vez disso, existe uma cultura comum de casos de uso ou uma cultura comum de trabalho do usuário final.
S.Lott 5/05