Desde a década de 1950, os cientistas da computação criaram milhares de linguagens de programação. Muitos são obscuros, talvez criados para um Ph. D. tese e nunca ouvi falar desde então. Outros se tornaram populares por um tempo e depois desapareceram devido à falta de suporte ou porque estavam limitados a um sistema de computador específico. Algumas são variantes de idiomas existentes, adicionando novos recursos como paralelismo - a capacidade de executar muitas partes de um programa em computadores diferentes em paralelo.
Leia mais sobre O que é uma linguagem de programação?
Comparando idiomas de programação
Existem várias maneiras de comparar as linguagens de computador, mas, por simplicidade, as compararemos por Método de compilação e Nível de abstração.
Compilando para código de máquina
Alguns idiomas exigem que os programas sejam transformados diretamente no Código da Máquina - as instruções que uma CPU entende diretamente. Esse processo de transformação é chamado compilação. Linguagem Assembly, C, C ++ e Pascal são linguagens compiladas.
Idiomas Interpretados
Outras línguas são Interpretado como Basic, Actionscript e Javascript, ou uma mistura de ambos sendo compilados em uma linguagem intermediária - isso inclui Java e C #.
Um idioma interpretado é processado em tempo de execução. Cada linha é lida, analisada e executada. Ter que reprocessar uma linha todas as vezes em um loop é o que torna as linguagens interpretadas tão lentas. Essa sobrecarga significa que o código interpretado é executado entre 5 e 10 vezes mais lento que o código compilado. As linguagens interpretadas como Basic ou JavaScript são as mais lentas. A vantagem deles não é a necessidade de recompilação após as alterações, o que é útil quando você está aprendendo a programar.
Porque compilado programas quase sempre corre mais rápido do que o interpretado, linguagens como C e C ++ tendem a ser as mais populares para escrever jogos. Java e C # são compilados para uma linguagem interpretada que é muito eficiente. Como a Máquina Virtual que interpreta Java e a estrutura .NET que executa C # são altamente otimizadas, afirma-se que os aplicativos nessas linguagens são tão rápidos, senão mais rápidos quanto o C ++ compilado.
Nível de Abstração
A outra maneira de comparar idiomas é o nível de abstração. Isso indica o quão perto um idioma específico está do hardware. O código da máquina é o nível mais baixo, com a linguagem Assembly logo acima. C ++ é maior que C porque C ++ oferece maior abstração. Java e C # são maiores que C ++ porque são compilados para uma linguagem intermediária chamada bytecode.
Como os idiomas se comparam
Idiomas compilados rapidamente
- Linguagem Assembly
- C
- C ++
- Pascal
- C #
- Java
Interpretado razoavelmente rápido
- Perl
- PHP
Interpretado lentamente
- Javascript
- ActionScript
- Basic
Código da máquina é as instruções que uma CPU executa. É a única coisa que uma CPU pode entender e executar. Os idiomas interpretados precisam de um aplicativo chamado Intérprete que lê cada linha do código fonte do programa e o executa.
Interpretar é mais fácil
É muito fácil parar, alterar e reexecutar aplicativos escritos em uma linguagem interpretada e é por isso que eles são populares para aprender programação. Não há estágio de compilação necessário. Compilar pode ser um processo bastante lento. Um aplicativo Visual C ++ grande pode levar de minutos a horas para compilar, dependendo da quantidade de código que deve ser reconstruída e da velocidade da memória e da CPU.
Quando os computadores apareceram pela primeira vez
Quando os computadores se tornaram populares na década de 1950, os programas foram escritos em código de máquina, pois não havia outra maneira. Os programadores tiveram que alternar fisicamente os interruptores para inserir valores. Essa é uma maneira tediosa e lenta de criar um aplicativo que teve que ser criada uma linguagem de computador de nível superior.
Assembler: Rápido para executar - lento para escrever!
A linguagem Assembly é a versão legível do Machine Code e tem a seguinte aparência
Mov A, US $ 45
Como está ligada a uma CPU específica ou a uma família de CPUs relacionadas, a Linguagem Assembly não é muito portátil e consome muito tempo para aprender e escrever. Idiomas como C reduziram a necessidade de programação em linguagem Assembly, exceto onde a RAM é limitada ou é necessário código crítico de tempo. Isso geralmente está no código do kernel no coração de um sistema operacional ou em um driver de placa de vídeo.
Linguagem Assembly é o nível mais baixo de código
A linguagem Assembly é de nível muito baixo; a maior parte do código apenas move valores entre os registradores da CPU e a memória. Se você estiver escrevendo um pacote de folha de pagamento que deseja considerar em termos de salários e deduções fiscais, não registre A no local XYZ da memória. É por isso que linguagens de nível superior como C ++, C # ou Java são mais produtivos. O programador pode pensar em termos do domínio do problema (salários, deduções e acréscimos) e não do domínio do hardware (registros, memória e instruções).
Programação de sistemas com C
C foi criado no início dos anos 70 por Dennis Ritchie. Pode ser pensado como uma ferramenta de uso geral - muito útil e poderosa, mas muito fácil de transmitir bugs, o que pode tornar os sistemas inseguros. C é uma linguagem de baixo nível e foi descrita como linguagem Assembly portátil. A sintaxe de muitas linguagens de script é baseada em C, por exemplo, Javascript, PHP e ActionScript.
Perl: Sites e Utilitários
Muito popular no mundo Linux, o Perl foi uma das primeiras linguagens da web e continua sendo muito popular atualmente. Para fazer uma programação "rápida e suja" na Web, ela permanece incomparável e gera muitos sites. Embora tenha sido um pouco eclipsado por PHP como uma linguagem de script da web.
Codificação de sites com PHP
PHP foi projetado como uma linguagem para servidores da Web e é muito popular em conjunto com Linux, Apache, MySql e PHP ou LAMP, para abreviar. Ele é interpretado, mas pré-compilado para que o código seja executado razoavelmente rapidamente. Ele pode ser executado em computadores desktop, mas não é tão amplamente utilizado para o desenvolvimento de aplicativos de desktop. Com base na sintaxe C, também inclui Objetos e Classes.
Pascal foi concebido como um idioma de ensino alguns anos antes de C, mas era muito limitado com pouca manipulação de cordas e arquivos. Vários fabricantes estenderam o idioma, mas não havia líder geral até o Turbo Pascal da Borland (para o Dos) e o Delphi (para o Windows) aparecerem. Essas foram implementações poderosas que adicionaram funcionalidade suficiente para torná-las adequadas para o desenvolvimento comercial. No entanto, a Borland enfrentou a muito maior Microsoft e perdeu a batalha.
C ++: uma linguagem elegante!
As classes C ++ ou C plus, como era originalmente conhecida, surgiram cerca de dez anos após C e introduziram com êxito a Programação Orientada a Objetos em C, além de recursos como exceções e modelos. Aprender todo o C ++ é uma grande tarefa - é de longe a mais complicada das linguagens de programação aqui, mas depois que você o domina, não terá mais dificuldade com nenhuma outra linguagem.
C #: A grande aposta da Microsoft
C # foi criado por DelphiO arquiteto Anders Hejlsberg, depois de se mudar para os desenvolvedores da Microsoft e Delphi, se sentirá à vontade com recursos como formulários do Windows.
A sintaxe do C # é muito semelhante ao Java, o que não é surpreendente, pois Hejlsberg também trabalhou no J ++ depois de se mudar para a Microsoft. Aprenda C # e você está no caminho de conhecer Java. Ambas as linguagens são semi-compiladas, de modo que, em vez de compilar para o código da máquina, elas compilam no bytecode (o C # compila no CIL, mas ele e o Bytecode são semelhantes) e são interpretados.
Javascript: Programas no seu navegador
Javascript não é nada como Java, é uma linguagem de script baseada na sintaxe C, mas com a adição de Objetos e é usado principalmente em navegadores. JavaScript é interpretado e muito mais lento que compilado código, mas funciona bem em um navegador.
Inventado pela Netscape, mostrou-se muito bem-sucedido e, após vários anos em crise, está desfrutando de uma nova vida por causa de AJAX; Javascript assíncrono e XML. Isso permite que partes das páginas da web sejam atualizadas no servidor sem redesenhar a página inteira.
ActionScript: uma linguagem chamativa!
ActionScript é uma implementação de JavaScript, mas existe apenas nos aplicativos Macromedia Flash. Utilizando gráficos baseados em vetores, é usado principalmente para jogos, reprodução de vídeos e outros efeitos visuais e para o desenvolvimento de interfaces de usuário sofisticadas, todas em execução no navegador.
Básico para iniciantes
Basic é um acrônimo para código de instrução simbólico para todos os fins para iniciantes e foi criado para ensinar programação na década de 1960. A Microsoft criou o idioma com muitas versões diferentes, incluindo o VBScript para sites e o muito bem-sucedido Visual básico. A versão mais recente disso é o VB.NET e é executada na mesma plataforma .INTERNET como C # e produz o mesmo bytecode CIL.
Lua é uma linguagem de script livre escrita em C que inclui coleta de lixo e corotinas. Ele faz uma interface bem com o C / C ++ e é usado na indústria de jogos (e também não nos jogos) para criar scripts de lógica de jogo, gatilhos de eventos e controle de jogos.
Conclusão
Embora todo mundo tenha seu idioma favorito e tenha investido tempo e recursos para aprender a programá-lo, existem alguns problemas que são melhor resolvidos com o idioma certo.
Por exemplo, você não usaria C para escrever aplicativos da Web e não escreveria um sistema operacional em Javascript. Mas qualquer que seja o idioma escolhido, se for C, C ++ ou C #, pelo menos você sabe que está no lugar certo para aprender.