Não sou da área de TI – estou para me formar em agronomia –, mas sempre curti a ideia de criar programinhas. Já parei para estudar algumas linguagens como C, C++, Python e algumas linguagens web, mas nunca prossegui muito por conta de outras obrigações.
Tenho vontade de criar um RPG em modo texto complexo, o que pode ser feito através de várias linguagens, mas há algumas peculiaridades:
(1) - Esse é um projeto que me tomará muitos anos. A linguagem tem que ser “estável”
Desconsiderando o tempo que levarei para dominar a linguagem a um nível adequado para o que me proponho fazer, esse projeto pode me tomar um, dois, cinco ou até dez anos ou mais para chegar a versão 1.0, não sei ao certo até eu por a mão na massa e ver as dificuldades.
Sei que ninguém aqui tem bola de cristal, mas eu gostaria de saber quais linguagens cuja sintaxe seja mais à prova de mudanças. Por exemplo: do Python 2 ao Python 3 houve algumas mudanças, talvez não muitas, mas os softwares feitos na segunda versão dessa linguagem tiveram que ser rescritos; por outro lado, apesar de todas as atualizações do compilador e modos de escrita, imagino que um código em C++ escrito em 1999 pode ser compilado sem problemas num compilador de 2019. Me corrijam se eu estiver errado.
Em resumo, eu quero um mínimo de garantia de que poderei usar o mesmo código que escrevi hoje daqui a vinte anos, ou seja, um código escrito em 2020 poderá ser compilado/interpretado em 2040 sem muitas dificuldades.
(2) - Curto um pouquinho mais de performance
Sei que isso é bombagem de quem não é da área, mas gosto mais de programas compilados por causa da melhor performance, como C ou C++, embora eu poderia usar uma linguagem interpretativa como Python; mas tecnologias como Electron estão fora de cogitação.
Não quero dar a impressão que quero aproveitar bem cada byte do computador (não penso em programar em Assembly, por exemplo), mas quero fugir dos extremos.
(3) - Computação na nuvem (argh!)
Me parece que caminhamos para um mundo onde os computadores se tornarão meros terminais e todos os aplicativos serão na verdade sites da web e os documentos estarão o tempo todo na nuvem; essa me parece uma realidade bem possível e a acho abominável por N motivos (aqui um deles). Mas você pode contestar se é esse o futuro que teremos, mas por favor, não vamos fugir do foco do tópico.
Eu não quero construir meu jogo com base em tecnologias focadas na web (HTML, Javascript, PHP), mas eu quero que a linguagem que eu use seja compatível com o ambiente da nuvem (ou pretenda ser compatível no futuro). Eu explico: se a computação na nuvem dominar tudo, ainda vou querer que as pessoas tenham acesso ao meu jogo. Eu queria saber se há uma linguagem que faça ser possível o port para a web, tendo eu que reescrever apenas uma pequena parte do jogo para adaptá-lo aos navegadores.
Mas se você acha que o futuro não será bem assim como estou pensando, você pode ignorar esta questão da computação na nuvem e se focar nos pontos (1) e (2).
Observação: não sou contra guardar arquivos pessoais na internet, eu mesmo faço isso com meus documentos na minha conta do GDrive. Mas faço isso como backup, não como armazenamento principal. Mas não vamos sair do foco do tópico.
Sobre meu jogo. Como eu havia dito, será um RPG em modo texto (de forma que não me preocuparei com sprites/modelos 3D, sons, sistemas de colisão, etc), rodado no terminal mesmo. O diferencial é que pretendo dar ao jogador liberdade absoluta (sei lá, o jogador pode queimar uma casa cheia de pessoas, andar nu na praça, etc) e o ambiente e pessoas ao redor respondem a essas atitudes (pessoas comentarão se você estiver vestido inadequadamente, um incêndio pode destruir uma floresta e alterar a biodiversidade).
É um projeto complexo e por isso que já coloquei na minha cabeça que isso pode me tomar uns bons anos.
Acredito que a linguagem C seria a mais resiliente, pois o kerneis dos sistema operacionais são escritos nessa linguagem assim como vários softwares importantes, de forma que ela continuará a ser suportada durante muitas décadas. Sem contar que tenho esperança que poderemos ainda compilar programas em computadores. Se bem que a falta de suporte a orientação a objetos na linguagem C é um problema pra quem quer fazer um RPG.
Mas quero ver a opinião de vocês.