Olha,
segue aqui a minha opinião quanto ao assunto...
Em
quase todos os cursos que fazemos da área de Tecnologia da
Informação, nós somos apresentados a tal técnica que é dita ser
preliminar à programação, uma codificação genérica que serve
para qualquer linguagem, pois é não é dependente de uma linguagem
em específico.
Sinceramente,
na minha opinião, o tal do Português estruturado deve ser bom
demais para linguagens da época do onça, coisas antigas como C,
Pascal, Clipper, etc. Contudo, do Java pra cá, ainda mais agora com
o .NET da Microsoft forte no mercado com as linguagens C# e VB.NET,
Delphi, C++, etc., linguagens onde temos um aparato enorme de
recursos para programar através de bibliotecas e assistentes
(wizards), eu não vejo o Português estruturado como uma coisa
pertinente, e vou dizer o porquê na minha ótica.
Como
toda linguagem, o Português Estruturado possui sua própria sintaxe,
com instruções genéricas que são escritas de forma específica
dentro do universo de cada linguagem. Eu vejo que o universo de
sintaxe do Português Estruturado é algo tão simplório que atende
apenas as linguagens muito antigas acima mencionadas. Como exemplo,
eu cito:
Como
fazer para computar o tamanho de uma string de caracteres em C
(antigo) e em Java (mais moderno) por exemplo?
Em
Java, nós temos uma função (método) criada para isso, de forma
que o desenvolvedor simplesmente pegue-a e a utilize, obtendo como
retorno o valor inteiro do tamanho da string, coisas do tipo:
size();
length();
Em
C, mesmo que este exemplo não seja o mais apropriado, o que quero
dizer é que a linguagem não dispõem de tantos recursos já
prontos, sendo que teríamos que inventar o nosso próprio método de
obter o tamanho de uma string, dentre outras coisas.
Java
contém um tipo de dado chamado String, ao passo que C trata strings
como arrays do tipo “char”, o que é uma das diferenças.
Voltando
ao Português Estruturado, sua sintaxe permite fazer o que hoje pode
ser chamado como reinventar a roda, escrever códigos estilo
linguagem C ou Pascal para a obtenção do que queremos. Contudo, com
o que dentro do Português Estruturado nós podemos chamar uma rotina
do tipo size() ou length() do Java ou do C#, por exemplo?
Quem
programa com linguagens modernas não codifica dentro do universo do
Portugol, sua sintaxe é obsoleta para as linguagens atuais, que
diferentemente da época do C e do Pascal onde a programação era
estrutural, hoje o paradigma mais utilizado é a Orientação a
Objeto, algo importantíssimo e que introduz uma nova maneira de
tratar as coisas, através de Classes, Objetos, Herança,
Encapsulamento, Polimorfismo, etc. coisas que o Português Estrutural
nem sonha.
Resumindo,
querer criar um algoritmo em Portugol hoje em dia e na sequência
tentar implementar um programa com ele, com uma linguagem moderna,
significa jogar fora toda a API de programação moderna e sair
reinventando a roda, programando dentro do ambiente .NET no estilo
linguagem C, por exemplo, o que praticamente ninguém deve fazer no
mundo, ninguém vai desprezar a Orientação a Objeto, coisas que o
Java e o .NET nem permitem realizar pra se ter uma idéia.
Senti
tal dificuldade ao tentar criar um algoritmo para a conversão de
números Binários para Decimal, onde senti na pele a limitação de
não poder chamar um método length() para determinar o tamanho de
uma String, e sim ter que criar o método do zero (reinventar a roda)
como seria feito em linguagens mais antigas. Confesso que desisti da
tentativa, embora o programa em Java saiu e está postado antes deste
texto (em Inglês), onde ainda fiz o possível para não utilizar
Orientação a Objetos, tentando simplificar as coisas.
Na
vida real, no mercado de trabalho, em anos, nunca vi ninguém criando
Português Estruturado antes de sair programando. O que se costuma
fazer é a criação de um diagrama de classes (recurso da Orientação
Objeto), e não há nem tempo para se aventurar em como utilizar um
recurso tão antigo para dificultar no desenvolvimento de aplicativos
comerciais dos dias de hoje.
Apesar
de tudo, vejo o Portugol como um recurso excelente para
desenvolvimento de lógica de programação, desde que o mesmo código
genérico seja implementado em uma linguagem como o C, pois seria um
treinamento grandioso sobre como fazer as coisas da forma mais
complexa (hoje em dia tudo está mais simplificado). Isso ajuda no
raciocínio lógico, mas ao mesmo tempo, é algo que não se usa no
mercado de trabalho ao lado da modernidade do mundo do
desenvolvimento de software.
Para
terminar, deixo a pergunta no ar, até que ponto vale a pena aprender
isso na faculdade? Não é melhor ensinar Orientação a Objeto e
coisas realmente utilizadas no mercado do século XXI?
Código
em Português Estruturado que parei no meio frente às dificuldades
acima explicitadas:
programa
CONVERSAO_PARA_DECIMAL
var
numeroBinario:
string
numeroCaracteres,
potenciaMaxima: inteiro
arrayCaracteres:
conjunto[] de caracteres
array Strings:
conjunto[] de strings
arrayInteiro:
conjunto[] de inteiros
potenciaDigitos:
conjunto[] de inteiros
inicio
escreva
“Qual o numero binário a ser convertido?”
leia
numeroBinario
numeroCaracteres
= tamanho_numeroBinario;
potenciaMaxima
= numeroCaracteres - 1;
var
i: inteiro
para
i de 0 até numeroCaracteres passo 1 faça
se
(numeroBinario <> 0 E numeroBinario <> 1)
escreva
“Você não inseriu um número binário”
fim
fim_se
fim_para
para
i de 0 até numeroCaracteres passo 1 faça
arrayCaracteres[i] =
Razão:
há coisas que não dá para serem expressas em Português
Estruturado, ao menos que você esteja disposto a desenvolver as
coisas com as “facilidades” dos anos 80 e início dos 90.
Quem quiser o código do programa em Java, basta ler a postagem imediatamente anterior a esta.
Fica
aí minha opinião,
Abraços!
No comments:
Post a Comment