Por que existem tantas linguagens de programação?
E o que leva alguém a criar uma linguagem de programação, apesar de outras línguas já existirem?
Por que existem tantas linguagens de programação?
E o que leva alguém a criar uma linguagem de programação, apesar de outras línguas já existirem?
Respostas:
Novas linguagens de programação geralmente aprendem com as línguas existentes e adicionam, removem e combinam recursos de uma nova maneira. Existem alguns paradigmas diferentes, como orientado a objetos e funcionais, e muitas linguagens modernas tentam misturar recursos dos dois.
Há também novos problemas que precisam ser resolvidos, por exemplo, o aumento de CPUs com vários núcleos. A solução mais comum para isso foram os threads, mas algumas linguagens de programação tentam resolver o problema de concorrência de uma maneira diferente, por exemplo, o modelo do ator. Veja Erlang - Software para um mundo simultâneo
É um ciclo. Você inicia um novo idioma e fica livre para se livrar de todas as más sintaxes e más escolhas de seus antecessores. Na versão 1, o idioma parece ótimo porque não possui essa bagagem e faz o trabalho. Então, nas versões mais recentes, você começa a experimentar recursos que podem não funcionar, ou traz recursos de outros idiomas mais novos que fazem com que sua sintaxe fique um pouco desagradável. Eis que, depois de mais algumas versões, você percebe que seu idioma agora é tão complicado quanto o que você substituiu, com problemas de sintaxe boba e bagagem herdada. E de repente, você percebe que, se você criar um novo idioma, poderá consertar tudo isso ...
Pela mesma razão, existem martelos, chaves de fenda, serras de mão, serras de fita, britadeiras, pés de cabra e uma série de outras ferramentas: nem todo idioma é perfeito para todas as tarefas. Algumas linguagens são direcionadas a domínios de problemas específicos: R é particularmente bom para análise estatística, C é particularmente bom para escrever kernels de sistema operacional, Haskell é particularmente bom para cálculos financeiros ou matemáticos, Erlang é particularmente bom em programação simultânea etc.
Além disso, pela mesma razão que as camisas têm cores diferentes: algumas pessoas gostam do "estilo" de um idioma em detrimento de outro.
E, é claro, muitos programadores acham divertido inventar uma nova linguagem, apenas para ver o que acontece, ou talvez porque tenham algum conhecimento sobre linguagens e queiram coçar ou experimentar algumas idéias.
Porque todos são péssimos (de um jeito ou de outro).
No momento, criamos cerca de 5.000 idiomas para descrever problemas naturais e nenhum deles está disponível para escrever programas (um exemplo seria "inglês").
Até que alguém encontre uma maneira de criar uma linguagem de programação que possa expressar o que você pode expressar em uma frase em uma linguagem natural, ela continuará chegando.
Obviamente, uma motivação importante para criar um novo idioma é conseguir algo melhor do que os idiomas já existentes. E como sempre há espaço para melhorias, sempre haverá novos idiomas.
Os interesses comerciais são outro grande motivo. Acredito que é importante, por exemplo, a Microsoft, que eles possam oferecer um idioma para todas as necessidades, para que empresas e desenvolvedores prefiram suas plataformas.
Código legado. Se você inicia um novo idioma, não precisa ouvir / considerar todas as reclamações ao alterar um idioma antigo. Mesmo que todos concordem que a nova implementação é melhor, ela não pode quebrar o código antigo. E há muitos códigos antigos por aí.
porque é divertido criar novos idiomas, mesmo que eles não tenham uso real
Uma linguagem de programação esotérica (às vezes abreviada para esolang) é uma linguagem de programação projetada para testar os limites do design da linguagem de programação de computador, como prova de conceito ou piada.
Criar uma linguagem de programação é bastante divertido. É quase um trabalho criativo, já que você não está limitado aos requisitos anteriores. Não é mais tão difícil de implementar, pois você sempre pode compilar em C e compilar o código C para obter um desempenho adequado se estiver escrevendo um compilador em primeiro lugar.
É claro que a maioria de nós tem menos boas idéias do que pensamos, por isso muitas vezes acabam decepcionando ou não sendo amadas por ninguém além do designer original.
Pense em qualquer linguagem de programação que você conhece. Você pode facilmente criar várias coisas de que não gosta, certo? Você presumivelmente tem idéias de como elas podem ser corrigidas. Com um pouco mais de impulso, supondo que você saiba muito sobre a criação de compiladores (e muitas pessoas sabem), você pode começar a projetar e até implementar o seu próprio.
Resposta rápida e curta
Reinventando a roda ... Qual é a tendência atual ...
Resposta longa e chata
Muitas pessoas esquecem que "outra nova linguagem semelhante para programadores antigos" é "uma nova linguagem simples para novos programadores".
O que quero dizer com isso?
Bem, por "vários anos" programadores, Java ou C # pode ser uma linguagem de programação adicional para o Cobol existente, (OO / Procedural) Basic, C / C ++, enquanto para "novos" programadores, Java ou C # são novas linguagens, enquanto Cobol, (OO / Procedural) Básico, o C / C ++ não existe para eles, portanto, reinventar a roda se torna algo comum ...
E, se houver uma nova tendência em tecnologia, as pessoas podem criar uma nova linguagem de programação com base nessa tendência, como ecmascript / javascript para a Web e programação funcional ...
Felicidades.
novas linguagens de programação são criadas por vários motivos diferentes, principalmente porque há um novo paradigma de programação ou devido aos avanços nas pessoas de hardware que criam uma nova linguagem para tirar proveito dos novos recursos de hardware, como multitarefa, etc.
no meu caso, geralmente construo pequenos compiladores (com uma nova linguagem de programação), por motivos especiais. se eu faço vários jogos e acredito que uma linguagem de programação criada especificamente para o desenvolvimento de jogos resultará em um código menor e um desenvolvimento mais rápido, então eu o construo. e, no final, verifica-se que também pode ser usado para outra programação de uso geral.
Eu acho que a maioria das pessoas que cria linguagens de programação tem um objetivo específico em mente, há quem as crie para fins gerais desde o início. mas a maioria não é.
A propósito, acho que existem muitas linguagens de programação, mas centenas de novas sempre serão lançadas. alguns por diversão, outros por um objetivo de nicho, como um projeto escolar, ou por centenas de outros motivos. e mais cedo ou mais tarde um novo se tornará popular. Isso nunca vai acabar.
Pela mesma razão, existem tantos <whatever> e continuamos criando novos <whatever>
Há uma dúzia de estruturas PHP MVC, por exemplo, mas as pessoas sempre criam novas para atender a necessidades específicas, para evitar se tornar dependente de outra equipe ou apenas para tentar criar algo melhor. O mesmo vale para basicamente todos os tipos de ferramentas ou aplicativos.
É uma coisa muito boa, praticamente uma vitória para todos na minha opinião.
As universidades contribuem com muitas linguagens de programação, assim como grandes empresas como Ericsson (Erlang = linguagem Ericsson), Bell Labs (linguagens B e C), Google (linguagem Go alguns meses antes). Muitos dos que foram escritos como parte da pesquisa universitária não são muito utilizados. Existem algumas exceções notáveis, no entanto. Suponho que escrever sua própria linguagem / compilador seja um bom tópico para teses de doutorado de pessoas que estudam a teoria da computação ou disciplinas relacionadas. Parece-me que o Python é uma das primeiras linguagens nascidas do esforço online colaborativo de vários programadores em torno de uma única idéia.
Existem algumas razões, a maioria ocorre porque as pessoas pensam que o que existe não facilita a resolução de alguns conjuntos de problemas. Alguns são apenas por diversão ou por interesse acadêmico.
Eu acho que há um argumento sólido de que a questão de como você cria a linguagem perfeita ainda não foi resolvida (e talvez nunca seja). Portanto, desde que as pessoas tenham novas idéias sobre o que tornaria uma ótima linguagem, as pessoas continuarão tentando. Algumas dessas tentativas mapearão novos espaços legais como Erlang e outras fracassarão, mas desde que alguma coisa seja aprendida com o flop, tudo bem.
Como mencionado anteriormente, os idiomas tentam direcionar determinadas tarefas específicas e os novos idiomas podem direcionar para uma nova área. Esses idiomas podem usar recursos de outros idiomas que estão atualmente fora.
Outro motivo para novos idiomas é tentar incorporar muitas tarefas diferentes e ser o idioma de escolha para muitas necessidades diferentes. Algumas dessas linguagens estão tentando ser todas as linguagens abrangentes que você sempre usaria, independentemente da necessidade.
Aprendi na minha aula de linguagens de programação que a maioria das linguagens foi inventada para coçar. A maioria das linguagens foi inventada para expressar melhor um conjunto de algoritmos. Por exemplo, linguagens funcionais foram inventadas para dar aos algoritmos recursivos um espaço muito mais expressivo.
Perguntar por que existem tantas línguas é como perguntar por que C ++ 0x? :)
Além disso, quanto mais idiomas você souber, mais expressivo poderá se tornar - isso é verdade tanto na programação quanto nas linguagens naturais!