# Introdução à programação/Linguagens de programação
## História e evolução das linguagens

Este capítulo apresentará uma breve discussão sobre a história e evolução das linguagens de programação.

#### Assembly

Criada na década de 50, o Assembly foi das primeiras linguagens de programação a aparecer. Ela usa uma sintaxe complicada e "exageradamente" difícil, isto porque, antes da década de 50 os programadores de máquinas tinham que escrever instruções em código binário, qualquer coisa como: 0110010110011011010110011010111010110101 ... Para escrever uma instrução. Na verdade, o Assembly foi criado para facilitar o uso dessa tarefa, mas é considerado uma linguagem de baixo nível, pois tudo o que o processador interpreta tem que ser descrito pelo programador. Assim o código acima seria "add EAX" em Assembly. Bastava apenas, depois de estar concluída a escrita do código, rodar o compilador e tínhamos o programa.
* Vantagens: programas extremamente rápidos e pequenos.
* Desvantagens: tempo de desenvolvimento lento e sujeito a erros; código preso a uma arquitetura
Sobre Assembly:
* Assembly na Wikipédia

#### Fortran

Esta linguagem Fortran (Formula Translator) é uma linguagem de Alto nível, que foi criada partindo do problema e da dificuldade apresentadas pelo Assembly. Apareceu também na década de 50 e foi considerada uma das melhores linguagens da época. Aqui temos várias funções e instruções pré-definidas que nos permite poupar tempo na datilografia de instruções base do processador, ao contrário da linguagem Assembly.
* Vantagens:
* Desvantagens:
Sobre Fortran:
* Fortran na Wikipédia

#### Pascal

Outra linguagem de Alto nível dos anos 60, bem estruturada, mas com regras rígidas, o que a torna difícil de modelar, para se criar novas ideias. É a típica linguagem usada para iniciar os cursos de Programação. Atualmente ambientes de desenvolvimento (IDE) como o FreePascal, o Kylix e o Delphi são ótimas opções para se programar em Pascal.
* Vantagens: fortemente tipada (boa para iniciantes,os quais não tem muita familiaridade com a programação)
* Desvantagens: por ser fortemente tipada, prende programadores mais veteranos
Sobre Pascal:
* Pascal na Wikipédia
* Pascal aqui na Biblioteca

#### Cobol

Foi uma linguagem usada para a criação e estruturação de bancos de dados financeiros nos anos 60 que ainda hoje é usada por este tipo de serviços. Comparada com o Pascal e o Assembly, esta linguagem é bem amigável e bastante acessível e atualmente serve para várias tarefas.
Sobre Cobol:
* Cobol na Wikipédia

#### Linguagem C

Pode-se dizer que o C é uma das maravilhas das linguagens de programação. Muitos dos programas existentes hoje foram escritos nesta linguagem. O C foi desenvolvido nos laboratórios Bell na década de 70, e possui as seguintes características:
* Portabilidade entre máquinas e sistemas operacionais
* Dados compostos em forma estruturada
* Total interação tanto com o SO como com a máquina
* Código compacto e rápido.
Nos anos 80, C era a linguagem mais utilizada por programadores, por permitir a escrita intensiva de todas as características das linguagens anteriores. O Próprio UNIX e Linux foram escritos em C, assim como o front-end do MS-DOS, Windows e as aplicações Office mais usadas no mundo (OpenOffice.org, Microsoft Office, embora cada uma delas incluísse suas próprias linguagens de script), sendo também utilizada em aplicações gráficas e criação de efeitos especiais nos filmes Strar Trek e Star Wars.
* Vantagens: programas extremamente rápidos e pequenos.
* Desvantagens: tempo de desenvolvimento lento e sujeito a erros
Sobre C:
* Wikilivro Programar em C
* C na Wikipédia
* Aprendendo a Linguagem C

#### O C++

Uma linguagem que adiciona ao C um conjunto de recursos a mais, como o próprio nome sugere. O C++ é o C orientado a objetos. Avançando nos 90, passou por diversas atualizações e padronizações nesta época, o padrão do C++ foi exaustivamente trabalhado pelos desenvolvedores durante oito anos, quando finalmente foi aprovado pelo ANSI. Vários projetos como o KDE (front-end para UNIX, Linux, BSD e recentemente para Windows) são escritos em C++.
* Vantagens: programas extremamente rápidos e pequenos; proteção contra alguns erros comuns em C
* Desvantagens: tempo de desenvolvimento lento
Sobre C++:
* Wikilivro Programar em C++
* C++ na Wikipédia

#### Java, C#

As linguagens em ascensão no fim dos anos 90 e começo do ano 2000, são linguagens de alto poder de abstração e com boas capacidades de virtualização, o que lhes conferem boas possibilidades de independência de plataforma, embora estas características ainda estão sendo melhoradas.
* Vantagens: uma maior facilidade que em C/C++ e vínculos de patentes com as empresas que as desenvolveram.

#### PHP

O PHP apareceu em 1994 e pretendeu revolucionar o mercado de linguagens na criação de scripts para a internet. Realmente é uma linguagem excepcional onde é permitido fazer tudo o que os CGIs faziam inclusive mais coisas ainda. Para quem quer seguir programação para aplicações web é uma linguagem a estudar, assim como o Perl, usado também na criação de ferramentas em sites.
* Link Para o Curso de PHP no Wikilivros
* Vantagens: facilidade de implementação e execução.
* Desvantagens: certa lentidão, que depende do ambiente onde foi instalado o servidor.

#### Perl, Python, Ruby

Ciclos de processamento e tempo de computador são cada vez mais baratos; tempo de programador e criatividade são cada vez mais caros. Por isso, a tendência atual no mercado é favorecer linguagens de alto nível, menos otimizadas para a máquina, e mais otimizadas para o programador: linguagens como Perl, Python e Ruby, consideradas linguagens de programação de alto nível, com um nível de abstração relativamente elevado, longe do código de máquina e mais próximo à linguagem humana.
* Linguagem Python desenvolvida no Wikilivros
* Vantagens: maior facilidade de implementação e execução em relação ao Java e ao C#
* Desvantagens: programas mais lentos do que em C/C++

#### Mais sobre o assunto

* Lista de linguagens de programação existentes
* Exemplos de Algoritmos em várias linguagens de programação
* O que são linguagens de programação

## Igualdades e diferenças nas linguagens

As igualdades entre as várias linguagens são óbvias: A Lógica binárias, as instruções if, else, goto, switch, etc... Entre outros processos. Porém é necessário notar-se que a sintaxe básica dessas linguagens modifica-se e é necessária a sua aprendizagem. Para isso o melhor local para aprender e se aperfeiçoar são os livros sobre a matéria.
O problema mais importante, hoje, na área de Linguagens de Programação, é o desenvolvimento de linguagens que aumentem a produtividade do programador. Linguagens que permitam escrever programas corretamente, esta é a razão do rápido crescimento de linguagens como Java, C# e Ruby.
Por enquanto já pode encontrar Manuais de PHP, C++, C, Python e Javascript aqui na Wikibooks.