Por que alguém desenvolveria sua própria linguagem para usá-la somente nessa empresa quando você tiver XY outras linguagens que podem ajudá-lo com suas bibliotecas, lógica etc.? Não é muito mais simples acompanhar o fluxo com algo mais do que desenvolver seu próprio idioma?
programming-languages
Josip Ivic
fonte
fonte
Respostas:
É muito mais fácil entender quando você percebe que geralmente é um produto de longo processo e não alguém apenas dizendo "queremos criar um novo idioma".
Geralmente, começa com a ideia de que algum problema pode ser resolvido usando uma linguagem específica de domínio simples. Muitas vezes, a intenção é que não-especialistas usem essa linguagem, por isso é simples e muitas vezes carece de recursos como digitação forte e módulos.
Por enquanto, tudo bem. Mas então, as pessoas começam a enfrentar problemas que não podem ser resolvidos pela linguagem. Assim, novos "recursos" são adicionados lentamente para resolver esses problemas. E como o processo é lento e apresenta recursos pouco frequentes, não há motivação para projetar esses novos recursos adequadamente, desde que os problemas sejam resolvidos.
Com o tempo, o novo idioma ganha recursos que o transformam de um idioma simples e específico de domínio para um idioma de propósito "geral" complexo, geralmente com semânticas conflitantes e confusas e regras de sintaxe difíceis de seguir.
E quando as pessoas percebem que criaram um animal tão grande, já é tarde para matá-lo e substituí-lo por uma linguagem projetada adequadamente.
Há algumas línguas que evoluíram como este, que não estão vinculados a empresas específicas tosse JavaScript tosse PHP tosse .
fonte
Claro, mas, para seguir isso até um fim absurdo, todos estaríamos escrevendo tudo em assembly se ninguém desenvolvesse novos idiomas.
Às vezes não há fluxo. Novas linguagens surgem porque alguém tem vontade de coçar, seja um hobby de linguagem que quer apenas inventar algo novo ou uma empresa com uma necessidade não atendida pelo que já existe.
Foi exatamente o que aconteceu quando John Backus propôs o Sistema de Tradução de Fórmulas Matemáticas da IBM em 1953. Ele queria uma maneira mais fácil para os usuários científicos especificarem fórmulas matemáticas do que escrevê-las em montagem. Esse produto proprietário se tornou a primeira linguagem de programação que não era assembly, e você o conhece como Fortran.
Onde Fortran foi o primeiro a seguir esse caminho, Erlang é praticamente o garoto-propaganda dele. A Ericsson queria melhorar a maneira como o software para seus comutadores telefônicos era desenvolvido e inventou uma linguagem para prototipagem com recursos específicos para o que eles precisavam. Quando eu o explorei pela primeira vez, meu argumento foi que ele foi desenvolvido por pessoas com um problema real para resolver que não teria sido bem atendido por nenhum dos outros idiomas disponíveis em 1986. Erlang continuava sendo um produto interno e proprietário como o seu um colega encontrou até ser de código aberto mais de uma década depois, e agora é um idioma comum.
Go e Scala são idiomas relativamente jovens no grande esquema das coisas, e é perfeitamente possível que o idioma em uso na empresa de seu colega seja anterior a ambos. O que ele precisa fazer é perguntar sobre sua história, por que ela veio a existir e por que continua sendo usada.
Passei a década entre 2003 e 2013 trabalhando para uma empresa que fazia uso extensivo de um ambiente específico do setor, que incluía seu próprio idioma com raízes no final da década de 1970. Embora alguns idiomas mais recentes possam ter sido substituições mais adequadas (e ganchos para eles foram enxertados com o tempo), esse setor teve um investimento grande o suficiente e um enorme corpo de código comprovado de que simplesmente não havia um bom caso comercial para mudar para outra coisa.
fonte
Eu já vi isso antes. Isso nunca funciona bem. Algumas pessoas têm um complexo "não inventado aqui". Geralmente, faz com que uma empresa corra reinventando a roda.
Pense nisso. Esse novo idioma provavelmente quebra o tempo todo. Entre um analisador, compilador, VM, vinculador, o que for ... Agora existem milhares de bugs com os quais as pessoas gastam horas depurando problemas aleatórios. Tudo pelo que eles acham que precisam e que outros idiomas não têm.
O C / C ++ é usado para escrever sistemas operacionais como, você sabe, todos eles. E, no entanto, alguém pensou que precisava de algo diferente.
fonte