Linguagem de programação: qual a melhor?



A pergunta mais óbvia que o iniciante em programação tem que responder a ele mesmo é: Qual linguagem devo usar? Escolher uma linguagem de programação nem sempre é um processo tranqüilo, face a grande variedade existente. Para responder essa pergunta, é preciso analisar dois itens fundamentais: a natureza do problema a ser resolvido e a disponibilidade ou não do tradutor para a linguagem a ser usada.




Primeiramente, é preciso ter em mente que o computador é uma máquina utilizada para automatizar a solução do problema e não ser a solução em si. Por isso, antes de usá-lo, é necessário ter total domínio e conhecimento sobre a aplicação a ser desenvolvida (por exemplo, antes de programar um game, deve-se pensar em todas as regras e exceções; o mesmo vale para uma aplicação comercial ou científica). Quando esse aspecto do projeto estiver resolvido, aí sim o computador poderá ser empregado de maneira adequada, auxiliando no processo de maneira mais rápida e eficiente.

Então, voltando ao primeiro item da questão colocada inicialmente, é preciso conhecer a aplicação a ser desenvolvida para escolher a linguagem adequada. Embora a elaboração de um programa consista, em última instância, numa seqüência lógica de instruções que levam à solução do problema, o fato de dispor de uma linguagem de programação com estruturas adequadas às formulações lógicas propostas tornará o trabalho de programação mais fácil e mais eficiente.

Desse modo, o primeiro item que deveria nortear a escolha de uma linguagem, acaba, infelizmente, cedendo lugar à realidade do item dois - que diz respeito às qualidades e características da linguagem considerada.

Vejamos o seguinte: ao escolher uma linguagem baseada apenas no critério de conhecimento da aplicação, poderia ser notado a posteriori que tal linguagem idealizada não existe ou não está instalada no computador em questão. Assim, poderia ser necessário algum investimento, o que inviabilizaria um projeto por motivos econômicos, e a opção seria o desenvolvimento numa linguagem disponível, mas não aconselhável.

Existem os casos em que a linguagem é determinada à priori, seja pelo fato de se dispor de programadores que só conhecem essa linguagem ou mesmo pela intransigência do chefe que assim determina. Querem um exemplo? Pois tentem desenvolver uma aplicação acessando um banco de dados, utilizando o Pascal! Mas poderia ser pior: imaginem se o chefe fosse daqueles apegados à idéia de que o C pode tudo e obrigasse os programadores a usarem essa linguagem! Não seria melhor utilizar uma linguagem que trabalhasse diretamente com um SGBD?

Atualmente, as linguagens mais usadas para desenvolvimento de aplicações são Visual Basic, Delphi e Java, além das linguagens destinadas a produzir aplicações para a Internet. Todas elas são consideradas Linguagens de Alto Nível (em particular Visual Basic e Delphi, consideradas também ferramentas RAD). De qualquer forma, seja qualquer linguagem, ela tem, evidentemente, que possuir um tradutor do código-fonte para a linguagem de máquina, que é a utilizada efetivamente pelo computador.

Esse tradutor pode ser de dois tipos: Interpretador ou Compilador. Quando se diz que uma linguagem está disponível para um computador, estamos dizendo que existe um programa tradutor dessa linguagem. Desse modo, surge uma outra questão a ser analisada: qual dos dois tipos de tradutor é o mais indicado?

O Compilador é um programa que gera outro programa em linguagem de máquina a partir da tradução integral do programa-fonte (programa original escrito em Linguagem de Alto Nível), dando como resultado um programa executável, que pode ser carregado diretamente do prompt do sistema operacional ou de uma janela (como no caso do Windows).

Na verdade, após o processo de compilação, normalmente um outro processo se faz necessário: é a Linkedição. Nessa etapa intermediária - que em algumas linguagens é transparente ao usuário - são agregadas algumas funções que estão em bibliotecas, produzindo finalmente o arquivo executável do programa, com extensão .exe.

Já o Interpretador faz a leitura/tradução/execução (nesta ordem) de cada linha do programa-fonte, permitindo ao programador saber, de imediato, se determinada instrução é válida ou não.

A figura abaixo mostra esses dois tipos de tradução: Compilação e Interpretação. Portanto, existem linguagens compiladas e outras interpretadas; existem ainda aquelas que suportam os dois tipos de tradução simultaneamente.



Ainda nesta figura, pode ser notado que existe um tipo de tradução do código-fonte que não gera diretamente código de máquina. Ao invés disso, o que é gerado é um arquivo intermediário composto de bytecodes. Esses bytecodes são produtos resultantes da compilação, mas que ainda serão interpretados por uma máquina virtual para, finalmente, executar o programa. Um exemplo desse tipo de tradução é o utilizado pela linguagem Java, onde o arquivo contendo os bytecodes tem extensão .class.



Esta tabela mostra as vantagens e desvantagens do Compilador e do Interpretador e a pergunta que pode ser feita é a seguinte: qual dos dois é melhor? Bem, o ideal é poder utilizar uma linguagem que ofereça esses dois ambientes simultaneamente. Por exemplo, o Visual Basic (até a versão 6) possui os dois tradutores. Na fase de desenvolvimento, a aplicação pode ser testada com o Interpretador e depois de feitas todas as correções, o Compilador pode ser usado para gerar o código-executável da aplicação.

Já o Delphi 7, concorrente direto do Visual Basic 6, é apenas compilado; mesmo durante a fase de desenvolvimento, para cada teste é gerado em disco o arquivo executável. O mesmo acontece com o Clipper e o C (são apenas compilados), ao passo que o dBASE III+ só possui o interpretador.

Existe uma relação quase interminável de linguagens disponíveis: Actor, Ada, Algol, APL, Asp, Asp.Net, Basic, C, C#, C++, Cecil, Clipper, Clos, Cobol, Delphi, Delphi.Net, Eifell, Erlang, Forth, Fortran, GPSS (para simulação), Hakell, Java, JavaScript, Kylix, Lisp, ML, Modula, Objective C, Pascal, Perl, PHP, Phyton, PL/1, Prolog, RPG, RTCC (de tempo real), RTJava (de tempo real), Scheme, Smalltalk, VB.Net, VBScript e Visual Basic. Além dessas existe o Assembly (especifico para cada tipo de processador), o HTML (linguagem de marcação de texto utilizada para produzir páginas na Internet), o XML (definida como o formato universal para dados estruturados na Web, estendendo as funcionalidades do HTML) e o SQL (linguagem estruturada de pesquisa em bancos de dados, que pode ser empregado dentro de outras linguagens).

As linguagens de programação podem ser classificadas de várias maneiras:

. Quanto a Geração: 1a , 2a , 3a , 4a e 5a geração;
. Quanto ao domínio de aplicação: científicas, comerciais, de sistemas e para propósitos especiais;
. Quanto a implementação: compiladas, interpretadas e de tradução híbrida;
. Quanto ao paradigma de programação: imperativas, funcionais, lógicas e orientadas a objetos.

Entretanto, essas classificações podem sofrer alterações. Por exemplo: alguns autores classificam em apenas dois grandes grupos: imperativas e declarativas quanto ao paradigma de programação. Mas, apesar de existir um leque muito amplo de opções, atualmente a escolha de uma linguagem de programação está sendo definida em função do ambiente em que ela pode ser utilizada.

Com a tecnologia .NET, desenvolvida e lançada pela Microsoft em 2000, a escolha da linguagem passou a ser, também, uma questão de plataforma. Neste contexto, a “briga” por um padrão está centrada na questão: plataforma .Net versus Java. Qual delas vencerá o duelo? Esta é a pergunta que todos se fazem e que precisa de uma resposta rápida para que as empresas que utilizam TI possam (re)definir seus projetos.

De qualquer forma, a escolha de um padrão de linguagem é sua. Mas lembre-se: a melhor linguagem não é aquela que produz a melhor tela ou que está “na moda” e sim aquela que otimiza a aplicação, satisfazendo plenamente o cliente e sobre a qual você tem pleno domínio.








Originalmente em: Revista TI
http://www.timaster.com.br/revista/artigos/main_artigo.asp?codigo=1108&pag=1

Nenhum comentário:

Postar um comentário