Por que não existe uma linguagem de programação funcional nos dez primeiros?
Porque a maior parte do software lá fora é uma porcaria!Tenho a certeza que escrevi outra resposta sobre este tema. E não, eu não estou dizendo que apenas FP produz software de boa qualidade. É no entanto uma abordagem intelectualmente disciplinada e rigorosa que tende a funcionar bem.
Mas pense no seu restaurante favorito. Agora vou perguntar-lhe:
Por que é tão melhor que o McDonalds?
Vocês terão inevitavelmente uma lista de razões. Os ingredientes ou o chef ou o serviço ou apenas o sabor... seja o que for, de acordo com você, este lugar sabe fazer boa comida! Agora vou perguntar
Por que não é tão popular como o McDonalds?
Viu o que acabou de acontecer? Não te parece ridículo? Você pensa em fast food, você não acha uau, experiência culinária incrível! Você pensa em estar faminto ou exausto durante uma viagem de carro ou viagem ou apenas em uma perda de algum tipo e a conveniência que ela proporciona. Também sim, adoro-lhes batatas fritas...., apesar de serem muito melhores nos anos 90. De qualquer forma, a ideia de tentar aumentar a escala e popularizar em massa o seu restaurante favorito Michelin star parece absurda! Não se pode treinar tanta gente para cozinhar assim! Mesmo que você pudesse, simplesmente não há recursos suficientes...
O fato é que a escolha do idioma é muito parecida com isto. As pessoas pegam no negócio de refeições número 2, sim, superam-no e acham que vão fazer algum exercício extra mais tarde para o queimar(ou não)...
Look at JavaScript...É simultaneamente a linguagem mais odiada e mais usada por aí, neste momento. Porquê? É odiada porque foi criada em cerca de 10 dias ou algo assim e tem muitas verrugas. É muito usada porque é a única coisa que corre no browser. É o único restaurante num raio de 20 milhas!
C será sempre grande porque é a língua nativa de todos os nossos sistemas operativos modernos. Isto fornece uma base enorme a partir da qual se pode trabalhar fora.
C++ - fornece compatibilidade com C, e novas abstracções a custo zero. Fácil de ver a conveniência lá.
Java- ok talvez eu não entenda totalmente como ele ficou tão popular. Parece-me que falhou para o seu propósito original, sendo a linguagem applet da web. No entanto o software Enterprise adoptou-o quando se tornou suficientemente rápido porque era essencialmente uma versão em baixo do C++ com um colector de lixo. A sintaxe sendo muito semelhante, se não quase exatamente a mesma. Mas acho que a história tem mais a ver com isso. Algo sobre os backends Java versus os backends LAMP? Possivelmente envolvendo o eBay?? Não sei bem o que era exactamente essa história...
C# - a mesma história do Java. Estúpido em C++ com um lixeiro.
Php- ok realmente não tem experiência com ou pista do porque Seria popular mas também tem uma sintaxe em C.
Linguagens de programação funcional por outro lado ficaram um pouco órfãs. Se a máquina Lisp tivesse sobrevivido e prosperado, as coisas poderiam ter sido muito diferentes! Lisp teria sido a escolha mais conveniente para um monte de coisas. Mas como não foi, a programação funcional teve que evoluir para o lado, em grande parte na academia. Naturalmente, parece muito diferente. Um tipo diferente de sintaxe. Uma sintaxe diferente e incompatível de C.
Practitioners mais recentemente começaram a ver que existem benefícios reais de FP. Portanto, muito esforço tem sido feito para tornar o paradigma mais conveniente. Linguagens como Scala e F# permitem ao FP interagir com as caixas de areia JVM e CLR. Até o C++ adicionou muitas funcionalidades de FP. Infelizmente , por outras razões , acho que os resultados desta abordagem são realmente cosméticos e acho que isto não será suficiente para desencadear o uso real da programação funcional em geral.
Apenas porque você usa o Java stream api e escreve algumas lambdas de vez em quando não significa que você está perto de FP...Assim como se eu criar uma estrutura em C que inclua dados e alguns apontadores de funções, não significa que eu estou fazendo OOP...
Artigos semelhantes
- A linguagem Assembly é considerada uma linguagem de programação funcional?
- Quais são as vantagens de uma linguagem de montagem na programação sobre uma linguagem de máquina?
- Qual é a diferença entre linguagem de máquina, linguagem de montagem e linguagem de alto nível em computadores?
- Em que linguagem de programação o Netflix está codificado? Como eu uso essa linguagem?