09/11/2013 Programação Lua

Estava lendo um desses blogs de curiosidades, abrindo aba após aba no navegador, esperando que em algum momento terminasse o ciclo vicioso, quando tive a ideia. Escrever um histórico sobre as linguagens de programação que já aprendi. Tenha em mente, que o que segue apresenta minha opinião pessoal sobre as linguagens, e minha opinião geralmente diverge do conceito de mercado em geral sobre linguagens de programação. E apesar que eu dou minhas recomendações a esta ou àquela linguagem, não estou discutindo aqui qual a melhor linguagem de programação. Vamos em ordem cronológica.

BASIC

Em 1997, minha situação financeira ainda era nula, a de meus pais não era grande coisa. Mas devido ao interesse em informática que eu demonstrava, ganhei um 386 do meu tio. E o que eu fazia com um computador de 33Mhz com MS-DOS 6.22 e Windows 3.1? Sei lá, mas em algum momento eu descobri que o DOS vinha com QBASIC e programar era legal.

Tempos depois quando fiz o curso técnico, conheci um Apple II (não sei exatamente o modelo) que basicamente era um interpretador BASIC e mais nada. É uma linguagem interpretada, numa mistura caótica de programação procedural com código espaguete. Não tenho nenhum arquivo salvo da minha experiência com QBASIC, é uma péssima linguagem que não recomendo.

Turbo Pascal

Ainda na época do 386 conheci o Turbo Pascal. Enfatizo o Turbo, apesar da linguagem se chamar simplesmente Pascal, porque por algum motivo enigmático até hoje se diz que Pascal é uma linguagem procedural. No entanto, qualquer compilador moderno traz os recursos de orientação a objetos, que é um padrão de fato.

Tenho salvo vários dos programas inúteis que criei em Pascal. É uma linguagem compilada, com ótima estrutura tanto procedural quanto orientada a objetos. É uma linguagem que até recomendo, mas não é muito popular. É a linguagem compilada que mais gosto.

C/C++

Se existe uma coisa que odeio, é C. Mas é a linguagem mais importante que já aprendi. Na verdade, nunca aprendi muito bem, pois lidar com gerenciamento de memória é de arrancar os cabelos. Tentei criar algo de útil, mas fui pego enrolado com os vazamentos de memória e outros problemas. Evito programar em C a todo custo.

É uma boa linguagem e essencial, pois tudo é feito em C (direta ou indiretamente). Recomendo fortemente o aprendizado, mesmo que seja somente para ter uma base. A linguagem é compilada e procedural (orientada a objetos, no caso de C++).

CLIPPER

Está ai algo que aprendi por pura obrigação, pois fazia parte do meu curso técnico. Não era porque não gostasse, pois em estudo de programação eu gosto até das piores linguagens. Mas já era um sistema de legado na época. Sua importância persistiu por muito tempo, e ainda hoje existem sistemas de automação comercial em operação escritos em CLIPPER. Mas já é raro o uso, porque a própria estrutura da linguagem é fortemente atrelada a um banco de dados específico, que já se tornou obsoleto, e ao modo texto.

É uma linguagem interpretada, pois o executável é uma máquina virtual com bytecodes. Criei várias coisas interessantes durante o curso técnico, inclusive meu trabalho do estágio. É um sistema simples de controle de estoque, com documentação e tudo. Não é uma boa linguagem, apesar da importância histórica. Não recomendo.

Lua

Chegamos ao apogeu. Lua é a melhor linguagem de programação que conheço. É uma linguagem interpretada criada por brasileiros. É procedural, no entanto com a estrutura de tabelas podemos implementar orientação a objetos, descrição de dados, e outras coisas criativas, ou até mesmo bizarras. Gosto porque é fácil, leve, pequena, portável e extensível. Mas acima de tudo, é a estrutura de tabelas que dá todo o sentido para a linguagem. Em geral, linguagens interpretadas são mais fáceis de lidar e portáveis. No entanto, a maioria delas (Java, Ruby, Python) são lentas, grandes e pesadas além do tolerável (por mim). Isso em grande parte é causado por uma supervalorização dos mecanismos de orientação a objetos inseridos na linguagem, o que não ocorre em Lua onde orientação a objetos é simplesmente açúcar sintático e mecanismos básicos. Portanto Lua simplesmente cai como uma luva.

A maior parte do que já programei é em Lua. É uma ótima linguagem que recomendo. Estaria em primeiro lugar, não fosse a ordem cronológica.

Ruby, JavaScript, Shell Script, e outros aliens

Aprendi Ruby por causa do RPG Maker, criei alguns scripts. É uma linguagem interpretada que atualmente é bastante valorizada no mercado, mas leva o conceito de orientação a objetos ao extremo desnecessário. Orientação a objetos é uma forma de programar, não precisa da linguagem ser fixada nisso. No RGSS (framework do RPG Maker), precisamos criar um monte de classes que serão instanciadas uma única vez durante toda a vida do programa, algo no mínimo inútil. Exceto se estiver considerando o mercado ou RPG Maker, não recomendo.

Já conhecia JavaScript, mas foi por causa do Tribal Wars que aprendi fazer algo de útil (ou não) com ela (scripts para o jogo). É uma linguagem interpretada utilizada nos navegadores. Se vai programar para web, precisa aprender. Nem é recomendação, é falta de opção mesmo. Os navegadores não trazem nenhuma outra alternativa. Por qualquer outro motivo, não recomendaria de forma alguma.

Shell Script é legal, mas só considere aprender se utiliza Linux ou outro Unix. Não é eficiente para grandes softwares, mas é ótimo para pequenas coisas. Essencial nos Unix, pois esses sistemas costumam reunir pequenos pedaços para criar grandes coisas.

Já brinquei com Assembly, mas por favor mantenha distância. É uma notação humana da própria linguagem de máquina, sem nenhuma portabilidade ou estrutura. O único motivo para aprender, é se estiver criando um compilador ou coisa parecida. De forma que não recomendo.

Também já brinquei com Perl, PHP e Python, mas nem posso dizer que aprendi realmente. Não recomendo nada disso, mas deveria. Todas tem sua importância em cada caso, mas eu substituiria tudo por Lua. Mas isso eu, ninguém mais faria isso, pois elas (assim como Ruby acima) possuem uma gama de bibliotecas prontas disponíveis muito maior.

br_lemes, o Elfo insano (Megalomaníaco)