1.5.3 Time Complexity of While and if #3
Linguagens de programação de hoje em nível comercial - C ++ e Java, em particular, são muito complexos e inadequados para os ambientes de computação atuais, disse Rob Pike, engenheiro do Google, em uma palestra na Conferência de Código Aberto da O'Reilly. "linguagens de programação industriais" durante sua palestra na conferência em Portland, Oregon.
"Eu acho que essas linguagens são muito difíceis de usar, muito sutis, intricadas demais. Elas são muito verbosas e sua sutileza, complexidade e verbosidade parecem a aumentar com o tempo ", disse Pike. "Eles estão exagerados e usados de forma muito ampla."
Pike detalhou as deficiências de tais idiomas para descrever as metas que ele e outros engenheiros do Google têm para uma nova linguagem de programação desenvolvida por eles, chamada Go.
Como ilustração da complexidade de tais linguagens, Pike mostrou alguns exemplos de código C ++. Um exemplo foi uma declaração variável que se estendia por quase toda a linha da tela.
"Como temos coisas como essa [chegar a ser] o modo padrão de computação ensinado nas escolas e usado na indústria? " ele perguntou, retoricamente. Esse tipo de programação "é muito burocrático. Cada passo deve ser justificado para o compilador", disse ele.
Enquanto Pike admitia que estava sendo um tanto ou quanto brincalhão, ele afirmou que tais perguntas ainda deveriam ser feitas. O C ++ surgiu devido à frustração das pessoas em trabalhar com a linguagem C de baixo nível, e o Java surgiu como uma maneira de simplificar o C ++. Com o tempo, no entanto, novos recursos foram adicionados aos dois idiomas, tornando-os cada vez mais complexos.
"O ruído vem com sofisticação", disse ele.
Pike também acrescentou que tais linguagens foram desenvolvidas antes do advento do processamento multicore e rede ampla, para que eles não acomodem facilmente esses novos ambientes.
Pike não é o único funcionário do Google expressando insatisfação com os idiomas comerciais tradicionais.
Na conferência anual da USENIX no mês passado, o engenheiro do Gmail Adam de Boor Surpreendeu o público observando que o serviço Gmail da empresa foi escrito inteiramente em JavaScript e que todo o seu código, com cerca de 443.000 linhas, foi escrito à mão.
Ele observou que, embora Java seja mais expressivo, também é mais detalhado. "Neste ponto, para mim, é uma questão de escolha qual linguagem você usa", disse de Boor.
O JavaScript é um dos muitos idiomas - outros incluem Ruby e Python - que foram desenvolvidos nos últimos 10 anos. anos em resposta à crescente complexidade de C ++ e Java. Mas, apesar de ter uma sintaxe mais simples, essas linguagens também têm suas desvantagens, ele argumentou.
Essas novas línguas tendem a ser mais lentas, não escalam tão bem e podem conter mais erros, elaborou Pike. tendem a ser interpretados em vez de compilados, o que significa que os programas escritos em tais linguagens não são compilados antes de serem executados, portanto tendem a ficar mais lentos como resultado. Eles também tendem a ser dinamicamente digitados, o que significa que os programadores não precisam especificar que tipo de dados suas variáveis terão.
"Tipagem dinâmica não é necessariamente boa. Você obtém erros estáticos em tempo de execução que você realmente deveria ser capaz de captura em tempo de compilação ", disse ele.
Com tudo isso em mente, Pike descreveu o Go como uma tentativa de fundir os melhores atributos de ambos os conjuntos de linguagens.
" Go é uma tentativa de combinar segurança e desempenho de linguagens estaticamente tipadas com a conveniência e a diversão de linguagens interpretativas dinamicamente tipadas ", disse ele, antes de adicionar," na medida em que tiver sucesso, você terá que julgar por si mesmo ".
Um membro da audiência, Larry Augustin O CEO da fornecedora de software de gerenciamento de relacionamento com clientes SugarCRM concordou com a avaliação de Pike de que C ++ e Java se tornaram muito complexos, embora tenha observado que isso geralmente acontece com todas as linguagens à medida que crescem para atender a uma gama mais ampla de casos de uso."A razão pela qual essas linguagens cresceram em complexidade é porque quanto mais elas são usadas, mais erros e ambigüidades nós encontramos, e as tentativas de remover essas ambigüidades e erros criaram algo mais complexo", disse Augustin, que tem um Experiência em engenharia de software e design de linguagem de programação.
"Eu aprecio seu objetivo", disse ele sobre os esforços de Pike. "A questão é se ele consegue atingir seu resultado-alvo ou se torna mais complexo à medida que mais pessoas o usam", disse Augustin. Joab Jackson cobre o software empresarial e a tecnologia em geral para as últimas notícias do
. Siga Joab no Twitter em @Joab_Jackson. O endereço de e-mail de Joab é [email protected]