DEV Community

Cover image for Qual a melhor linguagem de programação?
Flávia Correia for Devs Jequié

Posted on

Qual a melhor linguagem de programação?

Fala pessoal, tudo bem?

Pra você, qual a melhor linguagem de programação (LP)?

A resposta correta é... Depende!

Lá vem o depende...

Pois é, isso mesmo. Saber qual a melhor LP depende do contexto, da aplicação, do problema, do que precisa na aplicação, a arquitetura do cliente. E esse contexto precisa ser analisado de modo que essa escolha seja a melhor para a situação problema e não porque o colega A prefere a LP X ou Y.

Vamos por partes:

Antes de tudo: O que é uma LP?


Esse conceito peguei daqui.

É uma linguagem formal que, através de uma série de instruções, permite que um programador escreva um conjunto de ordens, ações consecutivas, dados e algoritmos para criar programas que controlam o comportamento físico e lógico de uma máquina.


1. LPs de baixo nível
a. Linguagem de máquina: coleção de binários que o computador lê e interpreta.
b. Linguagem Assembly: primeira tentativa para uma linguagem próxima da usada por seres humanos.

2. LPs de alto nível
Essas usam tradutores (a) ou compiladores (b):
a. os códigos são executados à medida que são traduzidos.
b. os códigos são traduzidos de uma só vez.


O que se leva em consideração em um projeto de LP

É importante ter alguns pontos que devemos levar em consideração quando vamos escolher uma LP para um projeto, como nos trás Sebesta (2011):

Tabela 1 Critérios de avaliação de linguagens e as características que os afetam

  • A legibilidade diz respeito à facilidade com a qual os programas podem ser lidos e entendidos;
  • A facilidade de escrita é a medida da facilidade que uma linguagem pode ser usada para criar programas;
  • A confiabilidade diz respeito ao quanto um programa está de acordo com suas especificações em todas as condições;
  • O custo diz respeito a treinar programadores para usar a LP, escrever programas na linguagem, compilar programas na linguagem, executar programas escritos em uma linguagem, sistema de implementação da linguagem, a confiabilidade baixa e manter programas (correções + modificações).

Algumas características que devem ser levadas em consideração:
a. simplicidade geral (construções básicas e multiplicidade de recursos);

b. ortogonalidade ( um conjunto construções primitivas pode ser combinado a um número de formas para construir as estruturas de controle e de dados da linguagem);

c. tipos de dados (presença de mecanismos adequados para definir tipos e estruturas de dados);

d. projeto de sintaxe (tem a ver com o formato dos identificadores, as palavras especiais e a forma e semântica);

e. suporte à abstração (habilidade de definir estruturas em que muitos dos detalhes sejam ignorados);

f. expressividade (existência de operadores que permitem muitas computações com um programa muito pequeno);

g. verificação de tipos (execução de testes para detectar erros de tipos em um programa);

h. tratamento de exceções (habilidade de um programa de interceptar erros em tempo de execução);

i. restrição de apelidos (permitidos quando é possível ter um ou mais nomes para acessar a mesma célula de memória);

j. portabilidade (a facilidade com a qual os programas podem ser movidos de uma implementação para outra);

k. reusabilidade (diminuir a necessidade de criar diferentes subprogramas que implementam o mesmo algoritmo em diferentes tipos de dados);

l. generalidade (a aplicabilidade da LP a uma ampla faixa de aplicações);


Programação procedural X Computação paralela

Na programação procedural, o programador descreve de forma detalhada o que a máquina deve fazer.

Já na computação paralela, resolvem-se os problemas com vários computadores trabalhando ao mesmo tempo, isso com o foco em um único alvo.


Os paradigmas

Dando um gugôu você encontra qual o significado do que é um paradigma: um exemplo que serve como modelo ou padrão.

Na programação, temos diversos paradigmas, diversos modelos e padrões para resolver diversos problemas:
1. Imperativo: o foco da solução está em como o problema deve ser resolvido pela máquina (procedural). Usado quando a aplicação requer manutenção e mudanças a longo prazo. Linguagens como Pascal e Fortran usam esse tipo de paradigma.

2. Orientado a Objetos: os atributos e comportamentos estão contidos dentro de um único objeto, geralmente usam classes para definir esses objetos. Além disso, as aplicações são desenvolvidas e interpretadas por diferentes plataformas. C++, Java, JavaScript e Python são exemplos de projetos de LP orientados a objetos.

3. Orientado a Eventos: aqueles que definem a execução de determinadas funções conforme os eventos são disparados pelo usuário. Visual Basic e Delphi são exemplos que usam esse paradigma.

4. Funcional: indicado quando a resolução do problema querer, majoritariamente, de uma base matemática. Aqui se destaca o uso das funções e, na hora de resolver um problema, o divide em blocos onde são implementadas funções. Linguagens que usam esse paradigma são LISP e Haskell.

5. Declarativo: foca em o que deve ser resolvido, nesse paradigma são utilizadas verdades lógicas imutáveis, possuindo nível de abstração maior que os outros paradigmas, XML e HTML são exemplos de linguagens de marcação que usam esse paradigma.

6. Lógico: ou restritivo é o uso de uma notação lógica formal para comunicar processos computacionais para um computador, sendo muito utilizado para resolver problemas na área de Inteligência Artificial, baseando-se em análises lógicas e matemáticas, além disso são usados fatos, regras de inferências e busca. A Prolog é uma LP que faz uso desse paradigma.


Muita coisa pra processar? É assim mesmo! Consegue perceber agora que não existe LP perfeita para todas as situações? Depois entro mais a fundo nesse tema de Conceitos de LPs. Recomendo a leitura do livro Conceitos de Linguagens de Programação do Robert W. Sebesta, nesse post usei a 9ª edição como base.

Top comments (0)