Linguagens menos populares
Eu estava navegando (explorando) pela Github, e acabei pensando em procurar linguagens de programação bem menos conhecidas e recentes. Encontrei algumas bem maneiras como: https://github.com/simplyYan/Blackpard, https://github.com/AnyDSL/impala, https://github.com/ML-KULeuven/problog e outras. Me interessei pela Blackpard, parece ser bem documentada e tem uma landpage decente. Será que vale a pena aprender linguagens que estão emergindo? Existem varias dessas linguagens, e algumas parecem ser extremamente promissoras e atraentes. Qual é a vantagem de dominar uma linguagem assim?
Eu gosto disso. Vou fazer uma lista, aos poucos (work in progress), mas como traçar uma linha do que é popular ou não? Rust é popular? Poucas pessoas usam ou usarão, muitas falam dela. Zig é popular? COBOL é popular? Lisp? Qual? BASIC hoje é popular? Vale dialeto? Tem que estar ativa? Excel conta? Ela é popular, mas as pessoas acham que não é PL.
- https://boo-language.github.io/
- https://odin-lang.org/
- https://cyclone.thelanguage.org/
- https://whiley.org/
- https://www.cs.bu.edu/~hwxi/atslangweb/
- http://nemerle.org/About
- https://harbour.github.io/
- https://www.adaic.org/
- https://projects.eclipse.org/projects/technology.ceylon
- http://arclanguage.org/
- http://falconpl.org/
- https://ballerina.io/
- https://fsharp.org/
- https://en.wikipedia.org/wiki/MUMPS
- http://awklang.org/
- https://www.microsoft.com/en-us/research/project/spec/
- https://groovy-lang.org/
- https://en.wikipedia.org/wiki/Prolog
- https://beta.cs.au.dk/
- https://www.scheme.org/
- https://raku.org/
- https://ziglang.org/
- https://en.wikipedia.org/wiki/Pascal_Script
- https://www.cs.tufts.edu/~nr/c--/index.html
- https://www.eiffel.org/
- https://www.tcl-lang.org/
- https://www.haskell.org/
- https://www.mercurylang.org/
- https://ocaml.org/
- https://www.fantom.org/
- https://vlang.io/
- https://nim-lang.org/
- https://inductive.no/jai/
- https://projectoberon.net/
- https://www.modula3.org/
- https://smallbasic-publicwebsite.azurewebsites.net/
- https://www.seas.upenn.edu/~harmony/
- https://gosu-lang.github.io/
- https://dlang.org/
- http://cobra-language.com/
- https://opendylan.org/
- https://www.microsoft.com/en-us/research/project/bosque-programming-language/
- https://github.com/stokito/fortress-lang
- https://julialang.org/
- https://en.wikipedia.org/wiki/Smalltalk
- https://pdl.perl.org/
- https://www.scala-lang.org/
- https://wiki.clean.cs.ru.nl/Clean
- https://en.wikipedia.org/wiki/Clojure
- https://www.erlang.org/
- https://elixir-lang.org/
- https://hacklang.org/
- http://squirrel-lang.org/
- https://pizzacompiler.sourceforge.net/
- https://forth-standard.org/
- https://p4.org/
- https://racket-lang.org/
- https://pmg.csail.mit.edu/CLU.html
- http://pico.vub.ac.be/
- https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/dev-ref/xpp-language-reference
- https://iolanguage.org/
- https://ring-lang.github.io/
- https://www.ni.com/en/shop/labview.html
- https://www.angelcode.com/angelscript/
- https://www.curl.com/
- https://www.microsoft.com/en-us/research/project/comega/
- https://www.ponylang.io/
- https://plzoo.andrej.com/index.html
- https://github.com/jondgoodwin/cone
- https://processing.org/
- https://github.com/nesteruk/tlon
- https://myrlang.org/
- https://inko-lang.org/
- https://github.com/felix-lang/felix
- https://curry.pages.ps.informatik.uni-kiel.de/curry-lang.org/
- https://nitlanguage.org/
- https://coffeescript.org/
- https://vale.dev/
- https://github.com/carbon-language/carbon-lang/blob/trunk/README.md
- https://austral-lang.org/
- https://github.com/cdiggins/plato
- https://elm-lang.org/
- https://c3-lang.org/
- https://machinamentum.github.io/Jiyu-A-Programming-Language/
- https://helix-editor.com/
- https://github.com/hsutter/cppfront
- https://www.hylo-lang.org/
- https://pike.lysator.liu.se/
- https://www.cell-lang.net/index.html
- https://seed7.sourceforge.net/
- https://www.microsoft.com/en-us/research/project/koka/
- https://openeuphoria.org/
- http://www.mindhog.net/~mmuller/projects/crack/Manual-0.6.html
- https://wiki.gnome.org/Projects/Genie
- https://picolisp.com/wiki/?home
- https://www.emeraldprogramminglanguage.org/
- https://www2.cs.arizona.edu/icon/
- https://halide-lang.org/
- https://www.idris-lang.org/
- https://www.microsoft.com/en-us/research/project/project-verona/
- https://docs.unrealengine.com/udk/Three/UnrealScriptHome.html
- https://haxe.org/
- https://selflanguage.org/
- https://web.archive.org/web/20060211013421/http://www.cs.washington.edu/research/zpl/home/
- https://cruise.umple.org/umple/
- https://www.sas.com/pt_br/home.html
- https://ganelson.github.io/inform-website/
- https://hylang.org/
- https://agraef.github.io/pure-lang/
- https://vala.dev/
- https://www.gnu.org/software/sather/
- https://www.vitanuova.com/inferno/limbo.html
- https://www.purescript.org/
- https://mirah.org/
- https://www.ibm.com/products/pli-compiler-zos
- https://www.nial-array-language.org/
- https://learn.microsoft.com/en-us/azure/quantum/
- https://www.cs.kent.ac.uk/people/staff/dat/miranda/
- https://octave.org/
- https://www.mn.uio.no/ifi/personer/vit/dag/simula67/
- https://www.tynker.com/
- https://programming-nu.github.io/
- http://www.rebol.com/
- https://reasonml.github.io/
- http://mozart2.org/
- https://tom.loria.fr/
- https://newspeaklanguage.org/
- https://doublesvsoop.sourceforge.net/
- https://smlfamily.github.io/
- https://www.jedsoft.org/slang/
- http://opalang.org/
- https://pharo.org/
- https://github.com/jorgefranconunes/tea
- https://orc.csres.utexas.edu/
- https://squeak.org/
- https://www.scratchjr.org/
- https://p-org.github.io/P/
- https://www.ghostscript.com/
- http://parasail-lang.org/
- https://aplwiki.com/
Quer ajudar completar a lista?
A maioria dessas linguagens serve para aprender novos mecanismos e formas de pensar, nunca serão usadas de fato. Algumas tem coisas boas, outras não, só é o gosto do criador. Não que isso deva ser menosprezado, mas muitas delas não tem nada inovador, só o mix de features é diferente. E a maioria não serão popualres porque falta uma feature importante, a popularidade. É difícil quebrar esse ciclo.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).
Existem muito mais linguagens de programação do que os programadores normalmente pensam. O HOPL (https://hopl.info/) por exemplo indexa quase 9 mil linguagens de programação, e não são todas as que existem.
Agora falando sobre "vantagens" e se "vale a pena" depende do motivo do porque você estuda: você estuda para aprender ou para trabalhar?
Porque se você for do tipo que estuda para trabalhar então não vale a pena sair aprendendo qualquer linguagem que você nunca vai usar na vida.
Agora se você estuda para aprender, se você tá interessado no lado intelectual e não apenas profissional, então vale muito a pena e existem várias vantagens em estudar qualquer linguagem de programação. Não importa qual seja, não importa quantas pessoas usem.
Se você for esse tipo de pessoa eu tenho certeza que não preciso dizer isso para você, mas vale escrever mesmo assim: não adianta de absolutamente nada ficar decorando a sintaxe da linguagem e como usar suas funções/bibliotecas. O que tem de útil de estudar uma linguagem é realmente entender ela, então estude a especificação da linguagem e estude Programming Language Theory.
Com isso você entende os conceitos teóricos e os resultados práticos da linguagem, o que te dá insights sobre como a linguagem resolve determinados problemas, como a solução é ruim, como poderia ser melhor, vantagens e desvantagens desta solução e de outras alternativas, entender os pontos fracos e o que tem de ruim na linguagem etc.
Programadores que conhecem poucas linguagens, ou que já usaram muitas linguagens mas só sabem a sintaxe e funções/bibliotecas da linguagem (ou seja, só um conhecimento superficial), não costumam ter essa visão analítica sobre linguagens de programação.
É como a frase de Newton:
Se vi mais longe, foi por estar sobre ombros de gigantes
Entender como os outros resolveram problemas e entender os problemas em si, é a escalada até os ombros do gigante. É necessário esse embasamento para ser capaz de resolver problemas novos, pensar analiticamente e ser capaz de desenvolver algo a partir das suas ideias ou ter ideias inéditas. Ou seja, "ver mais longe".
Essa é a vantagem do ponto de vista intelectual. Se isso é vantajoso para o seu trabalho ou não, não sei. Para o meu é, mas por acaso. Nunca foi meu objetivo.
Enfim, intelectualmente falando existem inúmeras vantagens de estudar como linguagens diferentes funcionam (mas como falei estudar a spec da linguagem, só decorar sintaxe e como usar funções/bibliotecas não serve de nada).
E entender os defeitos e pontos fracos da linguagem que usa é muito importante. Porque não dá para evitar ou corrigir problemas que a gente não sabe que existem.
Tem programador que entra em negação (ou fica magoadinho) quando disparam críticas para à linguagem(ns) que ele usa/gosta. Não seja assim, pelo contrário: seja o maior crítico da linguagem que você usa/gosta. E para ser capaz disso você precisa do embasamento que eu mencionei acima.
Por exemplo: eu uso e gosto de C e sou a pessoa que mais critica a linguagem dentre as que eu conheço.
E isso é um pensamento científico, a premissa de tentar provar que sua hipótese está errada ao invés de fazer o contrário. Pois isso evita cair no viés de confirmação.
Não vejo vantagem em dominar essas linguagens. Sem contar que existem milhares de linguagens. No Rosetta Code existem diversos problemas resolvidos em diversas linguagens (mais de 900). É um bom local para dar uma olhada na sintaxe e como ela resolveu o problema.
Mas conhecer mais de uma linguagem é interessante para abrires um leque maior de ideias para a resoluação de problemas. Mesmo usando outra linguagem, podes usar o que foi aprendido.