Você está na página 1de 24

11/02/2017 10 

Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

Home (http://www.aprenderprogramar.com.br/)
Sobre (http://www.aprenderprogramar.com.br/sobre/)
Davit API (http://www.aprenderprogramar.com.br/davit­api/)

(http://www.aprenderprogramar.com.br)

Home (http://www.aprenderprogramar.com.br/)
Artigos
(http://www.aprenderprogramar.com.br/topico/artigos/)
Lógica de Programação
(http://www.aprenderprogramar.com.br/serie/curso­de­
logica­de­programacao­com­davit/)
Davit API (http://www.aprenderprogramar.com.br/davit­api/)
Projetos (/projetos­para­programar/)
Fórum (http://www.aprenderprogramar.com.br/forums/forum/forum­aprenderprogramar/)

Search  

(#) (#) (#) (#) (#) (#) (#)

(http://www.aprenderprogramar.com.br/feed/)Assine nosso Feed! (http://www.aprenderprogramar.com.br/feed/)
(http://twitter.com/ApProg)Nos Siga no Twitter! (http://twitter.com/ApProg)

Links Externos
Anúncios Google

Programação

Aprender a programar

Login
Log In
Username: 
Password: 
 Remember Me
Log In
Register (/wp­login.php?action=register) Lost Password (/wp­login.php?action=lostpassword)

Apoie o Projeto!

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 1/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

AprenderProgramar
2,606 likes

Like Page Share

Be the first of your friends to like this

 
 

Followers (24)
(http://networkedblogs.com/)

Follow this blog
(http://networkedblogs.com/blog/aprenderprogramar/?
ahash=f4eee5472a1f6a8f967bfd9aadbf8b41)

(http://www.dihitt.com.br?ref=265695)

10 Linguagens de Programação que Você Deveria Aprender!
Posted by renato on maio 5th, 2011

Em 2006 foi publicado o artigo 10 Linguagens que Você Deveria
Aprender Imediatamente (http://http://www.eweek.com/c/a/IT­
Management/10­Programming­Languages­You­Should­Learn­Right­
Now/) que ganhou certa fama na internet. Embora o artigo tenha seu
mérito, existem dois problemas básicos com ele:
1­ É de 2006, e as coisas mudam; e
2­ É focado na popularidade das linguagens e, principalmente, no
mercado de trabalho.

Sim, eu creio que recomendar o aprendizado de linguagens baseando
seu argumento na popularidade ou mercado de trabalho como falho.

Para ilustrar o motivo, entre as 10 recomendações do artigo indicado
acima temos:
­ C#; VB.NET e Java;

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 2/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

Estas 3 linguagens são todas orientadas a objetos baseadas em classes. Todas as 3 carregam conceitos muito próximos.
Se você programa muito bem em C#, aprender Java não vai mudar sua vida e nem ampliar verdadeiramente seus
conhecimentos. O inverso também é igualmente verdadeiro.

“Uma linguagem que não afeta a maneira que você pensa sobre programação, não vela a pena ser aprendida” – Alan Perlis

O que eu quero dizer é que se deva aprender linguagens que sejam diferentes entre si ou que, ao menos, lhe ensinem
conceitos novos. É claro que se o trabalho exige que você aprenda alguma linguagem afim à alguma que você já domina,
vá em frente e você tirará a missão de letra pois você já conhecerá os princípios que regem aquela nova linguagem.

Não sou o único a sugerir que um programador deva aprender sempre linguagens que lhe ensinem novos conceitos – e
não simplesmente uma nova linguagem. No altamente recomendável artigo Teach Yourself Programming in Ten Years
(http://norvig.com/21­days.html), Peter Norvig (http://en.wikipedia.org/wiki/Peter_Norvig) indica que um programador deveria
conhecer ao menos 6 linguagens. Porém, utilizando uma das afirmações de Alan Perlis
(http://pt.wikipedia.org/wiki/Alan_Perlis) lembra que: “Uma linguagem que não afeta a maneira que você pensa sobre
programação, não vela a pena ser aprendida”. Uma ótima tradução para este artigo pode ser encontrada aqui: Aprenda a
Programar em Dez Anos (http://pihisall.wordpress.com/2007/03/15/aprenda­a­programar­em­dez­anos/).
Baseado na premissa acima, segue agora a minha versão da lista “10 Linguagens Você Deveria Aprender”. Retirei a
palavra “Imediatamente” porque se você acessou os artigos indicados acima, já deve ter percebido que a pressa não é
uma boa amiga nesta hora. E se você seguir a recomendação do livro “O Programador Pragmático” que sugere aos
programadores a meta de se aprender uma nova linguagem por ano, segue abaixo uma sugestão de trabalho para os
próximos 10 anos! (Isso não rima com o artigo “Aprenda a Programar em Dez Anos”?)

 ATENÇÃO

Não é tão simples quanto parece definir uma linguagem de programação. Para fins deste artigo
considerei como linguagem de programação qualquer linguagem padronizada, que sirva para expressar
instruções para um computador e que, necessariamente seja Turing Completo
(http://en.wikipedia.org/wiki/Turing_complete). Isto deixa de lado linguagens como SQL, HTML, CSS, XML e
JSON que, embora tenham grande importância no mundo de hoje, ficam de fora do escopo deste artigo.

Índice das Linguagens Recomendadas:
1. C (#c) – Para aprender ‘como as coisas realmente funcionam’;
2. Java ou C# (#java_csharp) – Orientação a Objetos e entrar no mercado de trabalho;
3. PHP ou Python (#php_python) – Programação Web em uma linguagem Script;
4. JavaScript (#javascript) – Orientação a Objetos baseada em protótipos. Programação web do lado do cliente;
5. LUA (#lua) – Para aprender co­rotinas;
6. Smalltalk (#smalltalk) – Linguagem orientada a objetos pura. Sintaxe baseada na troca de mensagens entre
objetos;
7. Lisp/Scheme ou Haskell (#lispscheme_haskell) – Programação funcional. Força a trabalhar com recursão;
8. Prolog (#prolog) – Programação Lógica;
9. Sisal (#sisal) – Programação paralela. Apresenta a programação orientada a fluxo de dados; e
10. Rebol (#rebol) – Linguagem funcional – não pura – rica sintaticamente e altamente econômica.

Linguagens

Não existe uma linguagem de conhecimento obrigatório. Mas se existisse esta linguagem, seria o C. Não seria exagero
afirmar que a base da tecnologia hoje está, em sua maior parte, construída em C.

Não existe uma linguagem de conhecimento obrigatório. Mas se existisse esta linguagem, seria o C. Também não
recomendo ninguém começar a programar por ela. Mas seria uma ótima 2a ou 3a linguagem.
C está apenas uma camada de abstração acima do chamado código de máquina. Então é uma linguagem importante para

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 3/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

você aprender ‘como as coisas realmente funcionam’.
Outro forte argumento para aprender C é que no mundo da programação, a cultura C impera. C influenciou e/ou foi
utilizado para criar várias outras linguagens. Isto significa que a sintaxe C está espalhada por várias outras linguagens
como C++, Java, C#, PHP ou Javascript. Logo se você aprende C, várias outras linguagens passam a ser familiares.

O próprio C++ inicialmente era compilado para C e, utilizando o compilador C, era compilado para linguagem de máquina.
Embora hoje tenhamos compiladores C++, em geral compiladores C++ também compilam as instruções em C. E fato é
que esta dobradinha C/C++ tem criado e inspirado várias outras linguagens. Para dar um exemplo, baixe o código fonte do
PHP (http://br.php.net/get/php­5.3.6.tar.bz2/from/a/mirror). Veja que ele é construído em C.

Se com C construímos o interpretador e bibliotecas da linguagem PHP, logo tudo o que pode ser feito com PHP também
poderia ser produzido com C. Com C poderíamos até dispensar o Apache fazendo com que nosso programa responda
diretamente as requisições que chegam pela porta 80. É claro que nunca sugeriria que alguém fizesse isso. Utilizar o PHP
para desenvolvimento web é muito mais prático. A linguagem PHP é focada em desenvolvimento web. E, caso seja
necessário, pode­se criar novas extensões para PHP utilizando a linguagem C.

Outro ponto é que a possibilidade de acessar diretamente endereços de memória, faz com que teoricamente tudo possa
ser feito com C. Como conseqüência, C é a escolha lógica para com deseja construir um novo sistema operacional. C
está na base dos sistemas Windows, Linux, Unix, Minix etc.

Em resumo, não seria exagero afirmar que a base da tecnologia hoje está, em sua maior parte, construída em C, direta ou
indiretamente.

Java, C# se já não souber C++

Se você busca por uma boa colocação no mercado de trabalho, escolher entre Java ou C# é uma ótima idéia.

Estas são, sem sombra de dúvidas, as linguagens que geram mais oportunidades de emprego da atualidade. Então se
você busca por uma boa colocação no mercado de trabalho, escolher entre Java ou C# é uma ótima idéia. Mas como falei
a idéia deste artigo não é limitar a nossa analise no mercado, mas sim buscarmos conceitos.

A indicação aqui é que você escolha uma linguagem orientada a objetos, baseada em classe, compilável (mesmo que para
bytecode) e tipagem estática para aprender a programar. Eu recomendaria você escolher entre Java e C# para entrar neste
mundo. Mas, caso você já saiba C++ você poderia pular para o próximo grupo de linguagens. Se você é contra a Microsoft
escolha Java. Caso a ame, vá de C#!

Ambas as linguagens apresentam uma rica biblioteca de classes para os mais variados fins (contando com a
biblioteca do .NET no caso do C#). São linguagens de propósito geral podendo ser utilizadas para criar aplicações
desktop assim como aplicações web.

A grande vantagem do Java é que a sua aplicação será independente de plataforma. Servidores Linux são bastante
utilizados em empresas e neste ambiente Java possui grandes vantagens. Por outro lado, C# é uma linguagem mais nova,
quase 10 anos, e isto, nesta área, é muito tempo. Então C# traz muitos conceitos que Java simplesmente não
implementa. Não vou me deter na comparação entre as duas, mas para uma analise mais profunda, visite o artigo
Comparação entre Java e C Sharp (http://en.wikipedia.org/wiki/Comparison_of_Java_and_C_Sharp). Então se seu
objetivo é simplesmente aprender novos conceitos, C# trará mais benefícios. Por exemplo C# traz suporte a Expressões
Lambda e “Closures”, sendo possível:

Fazer com que um método retorne uma função que faz referência a uma variável fora de seu escopo:

(...)
Adder CreateAdder(int addend)
{
return delegate(int augend)
{
return addend + augend;

}
(...)

Ou ainda passar uma função como parâmetro:
http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 4/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

var evens2 = numbers.FindAll((int n) => { return n % 2 == 0; });

Outro fator em favor do C# é que, por razões óbvias, opera melhor em conjunto com outras soluções Microsoft o que em
determinados cenários pode ser uma grande vantagem.

Mas apesar da aparente vantagem para a linguagem da Microsoft, não desconsidere Java. Afinal Java é a linguagem mais
utilizada – segundo o índice TIOBE – e aprender a linguagem que a maioria fala é tentador. E se você pensa em sistemas
verdadeiramente independentes de plataforma, Java é a escolha. Sem falar que, mesmo sendo seu objetivo aprender
novos conceitos, estes mesmos que o C# implementa pode ser encontrado em outras linguagens listadas abaixo.

Um outro fator em relação a Java: Se você considerar Java como não apenas uma linguagem mas como uma plataforma,
existem outras linguagens que rodam sobre a JVM, como o Groovy, e que suportam estas e outras funcionalidades de
linguagem script e/ou tipicamente funcionais. Se você já conhece Java, e principalmente se você só conhece Java e é
apaixonado pela JVM, talvez aprender Groovy seja um bom caminho.

E porque não aprender ambas, Java e C# ? Bem, eu continuo defendendo que, mesmos diferentes, elas ainda são muito
próximas. Ambas são inspiradas em C++, sem falar que Java foi a grande inspiração de C#. É lógico que ao final você
poderia as duas. Mas recomendo que escolha uma e vá aprender outras linguagens. Se um belo dia tiver necessidade da
outra, você aprenderá fácil.

PHP ou Python

A recomendação é para que o programador tenha também alguma experiência com programação para web com uma
destas linguagens scripts (PHP ou Python). A lógica é bem diferente do que ocorre com a programação para desktop.

Depois de termos passado pelas linguagens orientadas a objetos usualmente compiláveis e de tipagem estática, o passo
natural é conhecermos agora alguma linguagem ainda orientada a objeto, porém interpretada e de tipagem dinâmica. E
estas duas são exatamente isto: linguagens scripts, de tipagem dinâmica, orientadas a objetos, bastante utilizadas no
desenvolvimento web embora as duas possam ser utilizadas em ambiente desktop.

Mas a recomendação aqui é principalmente para que o programador tenha também alguma experiência com programação
para web com uma destas linguagens scripts. A lógica é bem diferente do que ocorre com a programação para desktop.
Normalmente, ao programarmos para desktop, a nossa aplicação fica instanciada ‘rodando’, até que o usuário feche a
aplicação. Não raro, principalmente em programação com C, temos uma rotina principal que implementa um loop quase
eterno, e tudo ocorre dentro deste loop. Por exemplo:

while(!saiu_do_programa) {
/* Aqui são capturado e tratados os eventos, as rotinas para redesenhar a interface são chamadas etc.
*/
}

Embora em Java e C# não tenhamos a necessidade de criarmos tal loop, a idéia é que o programa fica em execução. Os
dados são persistentes e o foco da programação fica no tratamento dos eventos que o usuário gera ao interagir com os
elementos de interface. Por exemplo, numa clássica aplicação desktop, implementaríamos uma rotina determinando o que
deve ocorrer ao se clicar em um certo botão.

Já uma aplicação web nestas linguagens, a idéia é muito diferente. Seu programa não ‘fica rodando’ a espera dos eventos
do usuário. Sua aplicação nasce e morre em cada requisição do usuário. O foco não é mais nos eventos do usuário, mas
sim nas entradas de dados/acessos que estes usuários fazem. Os dados não são persistentes, então em cada acesso,
você deverá redefinir as constantes, variáveis, conexões com o banco, ler a entrada do usuário, decidir o que fazer com
ela, criar uma página html, enviar o html para o navegador e terminar a aplicação. Em resumo, cada acesso é uma vida
inteira.

Destas duas linguagens listadas, PHP é a que tem o foco para web mais bem definido, enquanto a outra tenta se
posicionar como uma linguagem de propósito mais geral. Talvez por isso PHP seja a linguagem mais utilizada neste meio.
A grande maioria dos CMS existentes é construído em PHP. E isto inclui nomes de muito peso como o WordPress,
Joomla, Moodle e Drupal. Portanto se você pensa em focar no desenvolvimento de Sistemas Web, e/ou ainda dar suporte
ou customizar os CMS listados acima, considere o PHP. Vale ainda dizer que o próprio Facebook é em sua maior parte
PHP. Só para deixar claro eles criaram um compilador de PHP para C++, o HipHop
http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 5/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

(http://developers.facebook.com/blog/post/358/). Com isso eles uniram o foco e agilidade do PHP para desenvolvimento
web com a rapidez característica de uma linguagem compilada.

Por outro lado, das duas PHP é a mais pobre em recursos – leia­se conceitos. Faltam para linguagem construções como
threads que normalmente temos como algo básico em outras linguagens. Talvez a maior motivo disto seja exatamente seu
foco bem definido para Web onde a necessidade de criação de threads é algo bem mais raro do que costuma ocorrer com
aplicações desktop.

Python, por sua proposta mais generalista, é uma ótima escolha como linguagem para prototipação de sistemas
construídos em linguagens, digamos, mais burocráticas como C, C++, C# ou Java. Mas, vale lembrar, o Python pode ser
utilizado sozinho, como a linguagem escolhida para o desenvolvimento de um grande sistema, web ou desktop. Por ser
simples e de propósito geral, é também uma ótima linguagem para o aprendizado de programação, onde o aluno pode
aprender diretamente lógica de programação sem perder muito tempo com as já ditas ‘burocracias’ das linguagens acima.

JavaScript

JavaScript não tem concorrentes. Ela é simplesmente a linguagem de programação web no lado do cliente. Por isso vale
aprender, e aprender bem.

A Orientação a objetos está obrigatoriamente ligada ao conceito de classes, correto? Resposta: Não!
Enquanto as linguagens do grupo anterior são baseadas em classes, JavaScript é uma linguagem orientada a objetos
baseada em protótipo. Assim, conceitualmente, tudo é objeto e não temos classes. Ter contato com este outro paradigma
é o primeiro motivo para conhecer a linguagem. Vale comentar que, em relação a criação e definição de objetos,
JavaScript é, em geral, muito mais expressivo do que linguagens baseadas em classes.
O outro motivo é que Javascript é uma linguagem importante por definição: É praticamente impossível falar em
desenvolvimento web sem falar em Javascript. Quase todos os navegadores possuem um interpretador Javascript. Logo,
virtualmente, Javascript está presente e pode ser executado em praticamente todos os computadores do mundo. Sem
falar que com as novas implementações do HTML5, a utilização do Javascript do lado do cliente, no contexto web ganha
uma grande força.

Douglas Crockford (http://javascript.crockford.com/javascript.html) fala, em seu artigo, que Javascript é a linguagem mais
incompreendida do mundo. E entre seus argumentos um deles aponta o amadorismo que envolve a linguagem. De fato, se
por um lado a maioria das pessoas que criam/utilizam pequenas rotinas em JavaScript não são programadores da fato,
JavaScript é uma das linguagens mais flexíveis. Ou seja, temos muito sendo JavaScript sub­aproveitado.

Para dar uma idéia desta flexibilidade/dinamismo, em JavaScript:
1­ Embora não tenha classes, você pode programar como se tivesse;
2­ Pode­se implementar herança simples, múltipla ou até parcial, ou seja, selecionando os métodos que se quer herdar;
3­ Pode­se adicionar ou substituir os métodos para as ‘classes’(na verdade seriam protótipos). Isto afeta todos os objetos,
atuais ou futuros, funcionando retroativamente; e
4­ Pode­se adicionar ou substituir os métodos para apenas um objeto específico.

Por fim, vale lembrar que, diferente do que ocorre com outras linguagens que normalmente concorrem entre elas: Java vs
C# ou PHP vs Python, JavaScript não tem concorrentes. Ela é simplesmente a linguagem de programação web no lado
do cliente. Por isso vale aprender, e aprender bem.

LUA

Que tal aprender sobre co­rotinas utilizando uma linguagem brasileira que está perto de alcançar o TOP­10 das linguagens
mais utilizadas do mundo? Na linguagem LUA, as co­rotinas são construções completas.

Uma das recomendações do artigo “Aprenda a Programar em Dez Anos” é que entre as linguagens que o programador
escolha para aprender, inclua uma com suporte a co­rotinas. Então que tal aprender sobre co­rotinas utilizando uma
linguagem brasileira que está perto de alcançar o TOP­10 das linguagens mais utilizadas do mundo, segundo o índice
TIOBE (http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html)?

Para quem não sabe, uma co­rotina é uma generalização de rotina/função/procedimento que permite que a execução da
mesma seja suspensa temporariamente passando o controle para outra rotina. E em algum ponto no futuro, ao retornar o

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 6/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

controle para a co­rotina inicial, sua execução é restabelecida no ponto onde havia parado e tendo seu contexto local
recuperado.

Na linguagem LUA, as co­rotinas são construções completas. Em outras palavras, nesta linguagem elas são construções
stackfull de primeira classe. Ser stackfull significa que em LUA as co­rotinas podem ser suspensas mesmo enquanto
executam uma função aninhada. Ser de primeira classe significa que as co­rotinas podem ser livremente manipuladas pelo
programador, podendo ser invocadas em qualquer ponto do programa ou ordem. Isto, por exemplo, oferece um grau de
expressividade muito maior do que encontramos na implementação dos geradores de Python (que também é um exemplo
de implementação de co­rotina).

Mas LUA possui outros fatores que fazem valer a pena o seu aprendizado. Possui um tipo de dados básico muito versátil
chamado de tabela. Embora LUA não seja originalmente uma linguagem orientada a objetos, a flexibilidade encontrada
neste tipo de dados permite que ela se comporte como se o fosse, caso isto seja necessário.

Outro fator é que o foco de LUA é diferente do foco das linguagens vistas até agora. Lua nasceu para ser uma linguagem
de extensão incluindo funcionalidades/facilidades de uma linguagem script em linguagens como C, C++ ou Java. Embora
LUA também possa ser utilizada em modo standalone ou ainda como linguagem script para web.

Smalltalk

Smalltalk é uma linguagem orientada a objetos pura. Um programa em Smalltalk se resume em objetos e em trocas de
mensagens entre eles. O maior benefício de se aprender Smalltalk talvez seja começar a fugir da ‘cultura C’. Sua sintaxe
é bem diferente das linguagens tradicionais.

Smalltalk é uma linguagem orientada a objetos pura. Isto significa que tudo é objeto. Mesmo os tipos primitivos como o
inteiro. Até mesmo a classe é um tipo especial de objeto assim como os métodos ou blocos de código. Um programa em
Smalltalk se resume em objetos e em trocas de mensagens entre eles. O próprio nome da linguagem, ‘Papo Furado’,
mostra bem como este conceito de troca de mensagens entre objetos é importante nesta linguagem. A idéia é que os
objetos fiquem ‘batendo papo’ ou melhor, troquem mensagens entre eles.
Como tudo é um objeto, tudo em Smalltalk é um objeto, tudo em Smalltalk também é um elemento de primeira ordem. Isto
significa que um inteiro é encarado da mesma forma que um bloco de código e que ambos podem ser atribuídos a uma
variável.
Da Wikipedia, seguem os conceitos trazidos pela linguagem:

Tudo é representado como objetos. (De longe, a regra mais importante em Smalltalk)
Toda computação é disparada pelo envio de mensagens. Uma mensagem é enviada para um objeto fazer alguma
coisa.
Quase todas as expressões são da forma .
Mensagens fazem com que métodos sejam executados, sendo que o mapeamento de mensagens para métodos é
determinado pelo objeto recebedor. Os métodos são as unidades de código em Smalltalk, equivalente a funções ou
procedimentos em outras linguagens.
Todo objeto é uma instância de alguma classe. 12 é uma instância da classe SmallInteger. ‘abc’ é uma instância da
classe String. A classe determina o comportamento e os dados de suas instâncias.
Toda classe tem uma classe mãe, exceto a classe Object. A classe mãe define os dados e comportamento que
são herdados por suas classes filhas. A classe mãe é chamada de superclasse e suas filhas, subclasses.

Mas o maior benefício de se aprender Smalltalk seja começarmos a fugir da ‘cultura C’. Como você poderá observar neste
exemplo de Hello World abaixo, A sintaxe de Smalltalk é bem diferente das linguagens tradicionais.

publish
Transcript show: 'Olá Mundo!'

Entenda o código acima como sendo o envio da mensagem [show: 'Olá Mundo!'] ao objeto Transcript. Esta instrução
definem o método publish.

Vale ainda dizer que o padrão MVC (http://st­www.cs.illinois.edu/users/smarch/st­docs/mvc.html) que conquistou o mundo
e que inspiraram o chamado MVC Web ou MVC 2 que viraram moda, saiu do Smalltalk. Isto mostra o como estudar novas

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 7/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

linguagens e, principalmente, o como estas resolvem seus problemas, nos tornam programadores melhores e podem nos
inspirar a reaplicar conceitos muito utilizados em uma linguagem em áreas bem diferentes da aplicação original.

Lisp/Scheme (e/ou talvez Haskell)

Uma grande vantagem do aprendizado da programação por meio de uma linguagem funcional é que o programador
obrigatoriamente aprende recursão já em suas primeiras aulas e passa a ver este conceito como algo muito natural.

Um programador que queira abrir sua mente deve considerar fortemente a possibilidade de aprender a programar numa
linguagem funcional. Mesmo que, cada vez mais, linguagens classicamente imperativas e/ou orientada a objetos estejam
importando conceitos funcionais, aprender a montar os problemas seguindo uma lógica funcional é um diferencial.

Um programador adaptado a linguagens imperativas ou orientada a objetos, estranhe práticas adotadas em uma
programação funcional como:
­ Ausência de Atribuições;
­ Ausência de comandos iteradores como for, while e until;
­ Ausência de alocação explícita de memória; e
­ Ausência de declaração explícita de variáveis.

Para qualquer “programador imperativo” as ‘ausências’ listadas acima fariam uma falta absurda. São atributos normalmente
entendidos como fundamentais em uma linguagem. Isto significa que aprender uma linguagem funcional lhe dará uma nova
visão sobre como resolver problemas computacionais.

Uma grande vantagem do aprendizado da programação por meio de uma linguagem funcional é que o programador
obrigatoriamente aprende recursão já em suas primeiras aulas e passa a ver este conceito como algo muito natural.
Normalmente, ao se utilizar uma linguagem imperativa, como Pascal, ou orientada a objetos, como Java, numa matéria
introdutória, este conceito só vai ser visto, se muito, ao final do 1o período. Porém, não raro, a matéria ainda é empurrada
para um 2o e 3o período. Resultado: temos profissionais que simplesmente ainda não trabalham bem com recursão, ou
pior: não a entende completamente. O que é uma limitação grave para um profissional. Citando novamente Alan Perlis:
“Recursão é a raiz da computação(…)”.

Prolog

De todas as linguagens listadas neste artigo Prolog é a mais diferente. Mas não deixe que a linguagem te engane pelo
estilo. De fato Prolog é uma linguagem Turing Completa o que significa que pode implementar qualquer algoritmo.

De todas as linguagens listadas neste artigo Prolog é a mais diferente ­sempre comparando com um mundo imerso numa
‘cultura C’. E não estou falando apenas de sintaxe, mas sim em relação ao paradigma da linguagem: Prolog é uma
linguagem lógica, além de declarativa como as outras linguagens funcionais. Alguns perguntariam:
­ “Ué? Mas toda linguagem, não é lógica?” Veremos com um pouco mais de detalhes.
Para programar em Prolog devemos:
1­ Enumerar os fatos verdadeiros do mundo – estou falando do mini­mundo que iremos abstrair. E não do mundo
inteiro, claro!;
2­ Ditar as regras existentes entre estes fatos.
3­ Realizar a pergunta certa para o interpretador que te responderá.
Bem diferente das outras, não?

– Exemplificando –
Fatos:

gato(tom).
rato(jerry).

Com o exemplo acima definimos dois fatos: Tom é um gato e que Jerry é um rato.
Regras:

come(X,Y) :­ gato(X), rato(Y).

Resumidamente, definimos acima a clássica regra de que gatos comem ratos.
http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 8/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

Perguntas/Avaliações:

?­ come(tom, jerry).

E o interpretador retornará yes.

Mas não deixe que a linguagem te engane pelo estilo. De fato Prolog é uma linguagem Turing Completa o que significa
que pode implementar qualquer algoritmo. Por exemplo veja o algoritmo da Torre de Hanoy implementada nela:

hanoi(N) :­ move(N, left, centre, right).
move(0, _, _, _) :­ !.
move(N, A, B, C) :­
M is N­1,
move(M, A, C, B), inform(A, B), move(M, C, B, A).
inform(X, Y) :­
write('move a disc from the '),write(X), write(' pole to the '), write(Y), write(' pole'),
nl.

(sisal)

Sisal

Peter Norvig, em seu artigo, sugere ainda que entre uma daquele mínimo de seis linguagens que um programador deveria
conhecer, tenha alguma com suporte a paralelismo. E é aqui que entra a indicação de Sisal.

Peter Norvig (http://en.wikipedia.org/wiki/Peter_Norvig), em seu artigo, sugere ainda que entre uma daquele mínimo de seis
linguagens que um programador deveria conhecer, tenha alguma com suporte a paralelismo. E é aqui que entra a indicação
de Sisal (http://en.wikipedia.org/wiki/SISAL). Outro motivo para aprende­la é que você poderá conhecer um outro paradigma
de programação: Programação orientada a fluxo de dados (diagramas)
(http://en.wikipedia.org/wiki/Dataflow_programming). Sobre o paralelismo e como este conceito pode ajudar a você
novamente mudar o como você vê a programação, é melhor mostrar através de um exemplo. Veja e analise o código
abaixo:

for i in 1, quantidade_produtos
preco_final:= preco_liquido[i] + incremento[i]
returns array of preco_final
end for

Reflita e responda, o que você espera que este código faça? Bem, claramente ele soma um ‘preço líquido’ de algum
produto e o soma com seu respectivo incremento e o atribui a um ‘preço final’. E, claro, já que estamos num for ele
repetirá o processo para todos os produtos. Só que se você estiver atento talvez diga que há um erro no código: todas as
somas estão sendo atribuídas para uma mesma variável. Logo cada operação sobrescreverá o resultado da operação
anterior, correto? Não!

No Sisal temos dois tipos de Loops e um deles é feito para casos onde as iterações são independentes entre elas. Este
costuma ser um ótimo caso para paralelismo e é isso que Sisal faz. Ele não faz uma operação após a outra. Ele faz
todas, idealmente, ao mesmo tempo!

Se tivermos 50 produtos ele criará 50 instâncias independentes, do corpo da iteração. Ou seja preco_final:=
preco_liquido[1] + incremento[1] e preco_final:= preco_liquido[50] + incremento[50] estarão coexistindo em regiões
diferentes da memória.

Ao final a operação returns array of preco_final junta todos os valores preco_final destas instâncias e monta num array.
Diferente de uma programação imperativa, não?

Rebol

“Rebol é uma linguagem moderna, porêm com algumas idéias muito semelhante ao Lisp. Mas Rebol é muito mais rico
sintaticamente. Rebol é uma linguagem brilhante e é uma pena que não seja mais popular, porque merece ser.” – Douglas
Crockford

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 9/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

Que tal conhecer uma das linguagens que inspiraram a criação do padrão JSON? REBOL é uma linguagem
multiparadigma, com traços bem fortes de linguagem funcional e programação simbólica, criada por Carl Sassenrath, o
arquiteto e principal desenvolvedor do AmigaOS. A linguagem teve inspirações de Lisp, Forth, Logo e Self.
Pelas palavras de Douglas Crockford (http://www.google.com.br/search?q=Douglas+Crockford&ie=utf­8&oe=utf­
8&aq=t&rls=org.mozilla:pt­BR:official&client=firefox­a), falando sobre as influências de JSON: “Outra influência foi
Rebol. Rebol é uma linguagem moderna, porêm com algumas idéias muito semelhante ao Lisp. (…) Mas Rebol é
muito mais mais rico sintaticamente. Rebol é uma linguagem brilhante e é uma pena que não seja mais popular,
porque merece ser. (http://reboltutorial.com/blog/it­marketing/)”

REBOL apresenta conceito de dialetos que é a capacidade/facilidade de se criar linguagens para um domínio específico.
De acordo com seu próprio criador, este é o aspecto mais importante da linguagem:
“Embora possa ser utilizado para a programação, escrevendo funções, e executando processos, a sua maior força é a
capacidade de facilmente criar linguagens de domínio específicas ou dialetos. ”

Outra característica interessante do REBOL é que ela é uma linguagem econômica. Eu fui apresentado ao Rebol entre
2002/2003 por um colega de trabalho, que havia implementado um programa de Instant messaging para a empresa num
tempo relativamente curto. Para se ter idéia de quão econômica esta linguagem pode ser, baixe o interpletador e execute o
código abaixo:

REBOL[title:"Demo"]p: :append kk: :pick r: :random y: :layout q: 'image
z: :if gg: :to­image v: :length? g: :view k: :center­face ts: :to­string
tu: :to­url sh: :show al: :alert rr: :request­date co: :copy g y[style h
btn 150 h"Paint"[g/new k y[s: area black 650x350 feel[engage: func[f a e][
z a = 'over[p pk: s/effect/draw e/offset sh s]z a = 'up[p pk 'line]]]
effect[draw[line]]b: btn"Save"[save/png %a.png gg s al"Saved 'a.png'"]btn
"Clear"[s/effect/draw: co[line]sh s]]]h"Game"[u: :reduce x: does[al join{
SCORE: }[v b]unview]s: gg y/tight[btn red 10x10]o: gg y/tight[btn tan
10x10]d: 0x10 w: 0 r/seed now b: u[q o(((r 19x19)* 10)+ 50x50)q s(((r
19x19)* 10)+ 50x50)]g/new k y/tight[c: area 305x305 effect[draw b]rate 15
feel[engage: func[f a e][z a = 'key[d: select u['up 0x­10 'down 0x10 'left
­10x0 'right 10x0]e/key]z a = 'time[z any[b/6/1 < 0 b/6/2 < 0 b/6/1 > 290
b/6/2 > 290][x]z find(at b 7)b/6[x]z within? b/6 b/3 10x10[p b u[q s(last
b)]w: 1 b/3:((r 29x29)* 10)]n: co/part b 5 p n(b/6 + d)for i 7(v b)1[
either(type?(kk b i)= pair!)[p n kk b(i ­ 3)][p n kk b i]]z w = 1[clear(
back tail n)p n(last b)w: 0]b: co n sh c]]]do[focus c]]]h"Puzzle"[al{
Arrange tiles alphabetically:}g/new k y[origin 0x0 space 0x0 across style
p button 60x60[z not find[0x60 60x0 0x­60 ­60x0]face/offset ­ x/offset[
exit]tp: face/offset face/offset: x/offset x/offset: tp]p"O"p"N"p"M"p"L"
return p"K"p"J"p"I"p"H"return p"G"p"F"p"E"p"D"return p"C"p"B"p"A"x: p
white edge[size: 0]]]h"Calendar"[do bx:[z not(exists? %s)[write %s ""]rq:
rr g/new k y[h5 ts rq aa: area ts select to­block(find/last(to­block read
%s)rq)rq btn"Save"[write/append %s rejoin[rq" {"aa/text"} "]unview do bx]]
]]h"Video"[wl: tu request­text/title/default"URL:"join"http://tinyurl.com"
"/m54ltm"g/new k y[image load wl 640x480 rate 0 feel[engage: func[f a e][
z a = 'time[f/image: load wl show f]]]]]h"IPs"[parse read tu join"http://"
"guitarz.org/ip.cgi"[thru]i: last parse my none
al ts rejoin["WAN: "i" ­­ LAN: "read join dns:// read dns://]]h"Email"[
g/new k y[mp: field"pop://user:pass@site.com"btn"Read"[ma: co[]foreach i
read tu mp/text[p ma join i"^/^/^/^/^/^/"editor ma]]]]h"Days"[g/new k y[
btn"Start"[sd: rr]btn"End"[ed: rr db/text: ts(ed ­ sd)show db]text{Days
Between:}db: field]]h"Sounds"[ps: func[sl][wait 0 rg: load sl wf: 1 sp:
open sound:// insert sp rg wait sp close sp wf: 0]wf: 0 change­dir
%/c/Windows/media do wl:[wv: co[]foreach i read %.[z %.wav = suffix? i[p
wv i]]]g/new k y[ft: text­list data wv[z wf <> 1[z error? try[ps value][al
"Error"close sp wf: 0]]]btn"Dir"[change­dir request­dir do wl ft/data: wv
sh ft]]]h{FTP}[g/new k y[px: field"ftp://user:pass@site.com/folder/"[
either dir? tu va: value[f/data: sort read tu va sh f][editor tu va]]f:
text­list[editor tu join px/text value]btn"?"[al{Type a URL path to browse
(nonexistent files are created). Click files to edit.}]]]]

Considerações Finais
Não existe saída para um artigo como este. Mesmo que existam linguagens ‘hors concours’, é inevitável que muitas
linguagens boas acabem ficando de fora. Não ter mencionado Ruby entre PHP e Python é algo que será notado e
questionado por muitos. Ter incluído Rebol entre as 10 e ‘esquecido’ Erlang como um belo exemplo de processamento
http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 10/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

paralelo pode ser encarado por muitos como algo discutível. Em resumo, decidir quem entra e quem sai é uma decisão
difícil e extremamente pessoal. Até incluir Forth como exemplo de programação baseada em pilha foi considerado. Sem
falar que é humanamente inviável conhecer todas as linguagens. Então, por estes motivos, ao fim, a minha seleção foi
esta apresentada acima.
Para compensar esta falta, gostaria de tornar este post um ‘post aberto’. Fique livre para, nos comentários, criticar a
seleção, apresentar uma linguagem que tenha sido ‘injustamente’ esquecida ou, ainda, apresentar a sua própria seleção.
Se este post tiver a capacidade de inspirar você, e se você quiser escrever um post semelhante em seu blog, contendo a
sua própria seleção ou simplesmente apresentando melhor uma linguagem que você acredite que vale apena o
aprendizado, me informe que eu porto o link sem problemas.

Abraços e espero que tenham gostado!

Anúncios Google Aprender java Aprender php Aprender c#


Posted in Artigos (http://www.aprenderprogramar.com.br/topico/artigos/)
« Davit – Aula 1 – Ao seu Comando! (http://www.aprenderprogramar.com.br/davit­aula­1­ao­seu­comando/)
Davit – Aula 2 – Dados na Memória! (http://www.aprenderprogramar.com.br/davit­aula­2­dados­na­memoria/) »
You can leave a response (#respond), or trackback (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­
voce­deveria­aprender/trackback/) from your own site.

51 Responses to “10 Linguagens de Programação que Você Deveria Aprender!”

1. Aprenda a programar – Parte 2 | Filipe Teixeira (http://filipeteixeira.com.br/blog/2015/06/29/aprenda­a­programar­
parte­2/) disse:
29 de junho de 2015 às 20:42 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­
aprender/comment­page­1/#comment­8509)

[…] Mas e depois? Eu achei este excelente artigo que dá dicas de linguagens que você deve aprender: 10
Linguagens de Programação que Você Deveria Aprender! […]

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8509#respond)
2. 10 Linguagens de Programação que Você poderia Aprender! « Segurança da Informação
(http://blog.segr.com.br/10­linguagens­de­programacao­que­voce­poderia­aprender/) disse:
30 de julho de 2014 às 17:33 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­
aprender/comment­page­1/#comment­8440)

[…] Fonte: http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/
(http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/) […]

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8440#respond)
3. Thadeu (http://www.thadeudepaula.net) disse:
31 de janeiro de 2014 às 23:45 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­
voce­deveria­aprender/comment­page­1/#comment­8387)

Uma linguagem interessante pelo seu comportamento é Gnu Octave (parente gratuito do Matlab que é de
preço salgado) e R que começa a despontar. Desenvolvidos para exploração científica e estatística, estão muito
em voga com mineração de dados. O que me surpreendeu em Octave é o modo como se cria matrizes e as
manipula. É possível multiplicar, somar, subtrair etc. colunas ou linhas entre si e facilmente ver o resultado gráfico
com gnuplot.

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8387#respond)
4.  Bruno Menezes disse:
5 de dezembro de 2013 às 22:13 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­
voce­deveria­aprender/comment­page­1/#comment­8353)

Estou querendo começar agora nesta área de programação,porem existem varias duvidas e gostaria que
muito de vocês já trabalha na área e tem experiencia nisso me ajudassem qual tipo de linguagem seguir,acabei de
concluir logica de programação e com isso já quero investir em alguma linguagem como citado acima pensei entre
Java e C#,porem como estou desempregado gostaria de acerta no investimento,qual linguagem teria um retorno
mais rápido em termo de emprego já não tenho experiência na área.

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 11/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

Obrigado.

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8353#respond)
renato disse:
27 de dezembro de 2013 às 14:44 (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/comment­page­1/#comment­8360)

Para que se interessar, este assunto teve prosseguimento na página do site:
https://www.facebook.com/aprenderprogramar/posts/646623152048180
(https://www.facebook.com/aprenderprogramar/posts/646623152048180)

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8360#respond)
5. Marcos Cals disse:
8 de outubro de 2013 às 3:24 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­
deveria­aprender/comment­page­1/#comment­8339)

Excelente artigo, virou um verdadeiro ícone no assunto esse post.

Seria bacana dar dicas de onde se aprender a programar, mas de maneira gratuita e online, algo bem ‘livre’.

Andei pesquisando e achei alguns projetos bacanas, umas apostilas boas:
Apostila de HTML: http://www.htmlprogressivo.net (http://www.htmlprogressivo.net)
Apostila de C: http://www.cprogressivo.net (http://www.cprogressivo.net)
Apostila de Java: http://www.javaprogressivo.net (http://www.javaprogressivo.net)

Espero mais dicas de outros usuários, e que minhas dicas sejam proveitosas!
Abraço!

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8339#respond)
6. Denner disse:
18 de setembro de 2013 às 16:22 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­
voce­deveria­aprender/comment­page­1/#comment­8330)

Muito bom seu artigo.
Realmente me inspirou a buscar novas linguagens.
Não conhecia a necessidade.
Mito obrigado!!!

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8330#respond)
7. Daniel disse:
17 de julho de 2013 às 14:26 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­
deveria­aprender/comment­page­1/#comment­8315)

Sensacional o artigo!!! Me ajudou muito, abriu minha cabeça e definiu minha “rota” profissional!

Muito Obrigado!!

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8315#respond)
8. ricardo (http://www.scriptcase.com.br) disse:
28 de junho de 2013 às 17:30 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­
deveria­aprender/comment­page­1/#comment­8300)

Muito bom o post, parabéns ajudou bastante ! no site Scriptcase tem algumas informações interessantes
tbm.

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8300#respond)
9. Valter disse:
15 de junho de 2013 às 22:09 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­
deveria­aprender/comment­page­1/#comment­8296)

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 12/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

Olá Renato
Aprendi toda parte básica da linguagem Pascal sem entrar na
programação orientada a objeto. Após isto fiquei vários anos sem praticar. Gostaria de aprender este novo conceito
de programação (orientada a objeto)sem gastar muito tempo. Você recomendaria utilizar o Delphi ou o C# ?
At.
Valter

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8296#respond)
10. Toni (http://www.regifelix.com) disse:
24 de abril de 2013 às 11:15 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­
deveria­aprender/comment­page­1/#comment­8245)

Parabens pelo post, as diferenças entre as linguagens de programação estão sempre presentes em
calorosas discussões nos grupos de programadores, encontrei uma piadinha antiga criada originalmente para
explicar as vertentes do Metal que foi reaplicada para as linguagens de programação e dar uma visão das
diferenças entre cada linguagem.

Segue no site abaixo
http://regifelix.com/2013/04/23/linguagens­de­programacao/ (http://regifelix.com/2013/04/23/linguagens­de­
programacao/)

Abraço

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8245#respond)
11. Ronald disse:
16 de abril de 2013 às 23:12 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­
deveria­aprender/comment­page­1/#comment­8243)

Renato,
Primeiramente parabéns pelo post, bastante esclarecedor!
Tenho noçao de VB6 e já “programei” bastante em VBA, me interessei muito pelo Python, pelo que li aqui e em
outros lugares e agradeço se puder me ajudar com o seguinte: Gostaria de entender melhor a diferença entre
programar com Python para web e para desktop. Na verdade gostaria de por em prática, num primeiro momento,
algumas idéias de aplicativos simples para desktop para facilitar o dia­a­dia, e como futuramente pretendo me
aprofundar mais em programaçao, queria fugir do velho VB e de ficar preso à M$. Qualquer dica é bem vinda!
Obrigado!

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8243#respond)
12. Blog de Programação (http://blog.literati.com.br/tutorial­scala/) disse:
31 de março de 2013 às 22:04 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­
deveria­aprender/comment­page­1/#comment­8240)

Prezados, acredito que Lisp e Haskell poderiam ser sugeridas separadamente, pois cada uma merece
destaque especial. Estamos trabalhando em um tutorial Scala o qual gostariamos de sugerir também à comunidade
Aprender Programar.
Abs.
Literati

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8240#respond)
13. Luis (http://www.querocursos.com.br) disse:
26 de março de 2013 às 10:11 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­
deveria­aprender/comment­page­1/#comment­8236)

Muito bom!!!!!

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8236#respond)
14. Vitor disse:
6 de fevereiro de 2013 às 13:24 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­
deveria­aprender/comment­page­1/#comment­8216)

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 13/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

Olá, Voce poderia fazer algum post de trabalhos/projetos para nos treinarmos a programar, pois muitas
pessoas tem vontade de aprender, mas nao sabem ao certo o que pode fazer com cada linguagem, voce
poderia dar ideias de algumas linguagem e alguns projetos interessantes para serem desenvolvidos pelos
estudantes.
Obrigado

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8216#respond)
renato disse:
11 de fevereiro de 2013 às 16:21 (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/comment­page­1/#comment­8219)

Opa Vitor,
eu não só acho que você tem razão como eu já havia começado a me mover para isso!
Veja o post Como se tornar um programador? (http://www.aprenderprogramar.com.br/como­se­tornar­um­
programador/), nele eu falo justamente desta necessidade prática. Logo no menu principal do blog, tem um
link chamado Projetos (http://www.aprenderprogramar.com.br/projetos­para­programar/), onde a idéia é
justamente essa que você deu.
Atualmente temos apenas um projeto, mas estou com com ideias de pelo menos 2 outros, um mais básico e
outro mais avançado. Agora em favereiro estou voltando com toda a força, então espere por novidades!

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8219#respond)
15. weslly disse:
20 de janeiro de 2013 às 20:45 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­
voce­deveria­aprender/comment­page­1/#comment­8206)

Tenho como aprender java e c++ ao mesmo tempo?
Na minha faculdade so usa java mais eu gosto muito da linguagem c++, se eu estuda as 2 ao mesmo tempo.
Atrapalhara meu desempenho de apredizagem de ambas as liguagens?

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8206#respond)
16. Joao disse:
2 de dezembro de 2012 às 22:00 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­
voce­deveria­aprender/comment­page­1/#comment­8190)

Deixou Perl de fora da lista!!!Isso é um sacrilégio!

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8190#respond)
17.  Temístocles disse:
29 de outubro de 2012 às 12:01 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­
voce­deveria­aprender/comment­page­1/#comment­8180)

Cara, acho que você esqueceu algo muito importante, o estudo de uma linguagem de bando de dados que
no caso é o SQL, importantíssimo. De resto muito bom.

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8180#respond)
renato disse:
29 de outubro de 2012 às 14:16 (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/comment­page­1/#comment­8183)

Entendo, Temístocles,
Sem dúvida linguagem de banco de dados é muito importante. Mas, como disse no início do artigo, minha
análise foi restrita ao que chamei de linguagens de programação. Embora estas possam ser definidas de
várias maneiras, a definição escolhida foi o de linguagens que sejam Turing completas. E isso descartou
SQL da análise. Mas sem dúvida o aprendizado de SQL é importantíssimo.

Abraços

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8183#respond)
Jorge Miranda disse:

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 14/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

26 de junho de 2013 às 23:25 (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/comment­page­1/#comment­8299)

Datalog, só digo esta palavra.

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8299#respond)
18. Adélio disse:
23 de outubro de 2012 às 16:25 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­
voce­deveria­aprender/comment­page­1/#comment­8179)

Jonny,

Parabéns pelo artigo, muito bom…

Quando puder poderia, criar uma artigo sobre linguagem voltada,
só para aparelhos moveis( Celular, Tablet ).

Sei que a linguagem mais dita neste meio é o C, Java e Obj­C. Mas entre
estas não existe uma mais simples e ao mesmo tempo poderosa.

Não gostaria de desenvolver aplicativos WEB, para estes aparelhos,
pois acho que não tem muita segurança.

Obrigado,
Adélio.

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8179#respond)
19. pablo disse:
6 de setembro de 2012 às 19:12 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­
voce­deveria­aprender/comment­page­1/#comment­8122)

obrigado pela informação

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8122#respond)
20. pablo disse:
6 de setembro de 2012 às 19:10 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­
voce­deveria­aprender/comment­page­1/#comment­8121)

voces nem falaram do boo

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=8121#respond)
21. João Henrique disse:
20 de abril de 2012 às 11:24 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­
deveria­aprender/comment­page­1/#comment­4840)

Bom dia, só passando para dar os parabéns pelo excelente artigo. É dificil achar hoje me dia pessoas que
saibam tratar as principais diferenças entre Java e C# sem “insultar” os fanboys.

No meu ver, essas duas linguagens estão tão próximas como Ciência e Religião, todos que defendem uma
preferem criticar a outra mas somente quem olha sem nenhum preconceito sabe que as duas são “parceiras”.

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=4840#respond)
22.  Jhonny Freitas Dutra (http://jhonld.blogspot.com) disse:
18 de agosto de 2011 às 12:00 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­
voce­deveria­aprender/comment­page­1/#comment­383)

Oi Renato, respondi a pergunta acima, e queria dar uma dica. Vc não citou F#, uma linguaem nova e
funcional, umas das primeiras desse tipo a entrar pro indice TIOBE entre as 20 mais ultilizadas. Acho que vale a
pena comentar algo sobre esta linguagem!!

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=383#respond)

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 15/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

renato disse:
18 de agosto de 2011 às 15:44 (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/comment­page­1/#comment­388)

Olá Jonny,
O mesmo que eu disse do Scala, em relação a plataforma JVM, eu digo sobre F# sobre a plataforma .NET:
Reconheço que é uma linguagem nova e importante. Não desmereço a linguagem. Apenas não a conheço
bem o suficiente a ponto de recomenda­la. Tão pouco sei se acrescenta conceitos diferentes das linguagens
já listadas. Eu não tentei ser exaustivo nesta listagem e sei que muita coisa boa, como Ruby, F# e Scala
ficaram de fora.

Mas deixo o post aberto para quem quiser ‘defender’ outras linguagens.
Você conhecê ao menos um pouco de F# a ponto de ‘defender’ o porque é interessante aprender a linguagem
e dar alguns exemplos de conceitos legais implementados nela?
Se sim, se você quiser e tiver um tempo, escreva algum artigo ou, ao menos algumas linhas sobre a
linguagem.
Daí você pode postar no seu próprio blog e eu crio um link ou, se for o caso, publico por aqui mesmo.

Fica a provocação. 
Abraços

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=388#respond)
Jhonny Freitas Dutra (http://jhonld.blogspot.com) disse:
18 de agosto de 2011 às 21:49 (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/comment­page­1/#comment­389)

Olá Renato , infelizmente eu tmb não conheço a lingugem, apenas vi no TIOBE, e fiquei
curioso pelo fato de ser uma das primeiras linguagens funcionais a ficar entre as 20, por isso achei
que deveria ser citada. Quanto ao artigo, posso pesquisar algo e criar um, talvez eu possa postar por
aqui mesmo como vc disse.

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=389#respond)
renato disse:
19 de agosto de 2011 às 4:47 (http://www.aprenderprogramar.com.br/10­linguagens­
de­programacao­voce­deveria­aprender/comment­page­1/#comment­391)

Sim, isso é verdade. Sem dúvida é digno de nota. E fique a vontade sobre o artigo,
acho que seria sim um bom tema!

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=391#respond)
23.  Manuel disse:
18 de agosto de 2011 às 0:57 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­
deveria­aprender/comment­page­1/#comment­376)

Olá, adorei seu artigo.Está sendo muito construtivo para mim como iniciante no mundo da programação.

Só fiquei como uma dúvida.Você foi categórico ao afirmar que JavaScript não têm concorrentes, mas e quanto aos
outros scripts como VBS e Ajax ?Eles não têm nenhum valor frente ao javascript ?

Grato

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=376#respond)
renato disse:
18 de agosto de 2011 às 11:38 (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/comment­page­1/#comment­380)

Olá Manuel,
Vamos por partes.
Ajax não é linguagem. Ajax é uma metodologia que basicamente permite à uma página continuar recebendo

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 16/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

dados do servidor sem precisar ser atualizada como um todo. Ajax utiliza algumas tecnologias como:
Javascript, XML, HTML, e uma linguagem de servidor.

Em outras palavras, utilizamos Javascript para implementar o Ajax. Ajax não é concorrente do javascript.
Ajax é uma forma de se utilizar a linguagem javascript assim como outras tecnologias. Se você ouviu ou leu
alguém chamando Ajax de linguagem: Foi um erro.

O VBScript (VBS) sim é linguagem, que também pode ser utilizado em páginas webs e sim, a uma década
era um concorrente relevante ao Javascript. Mas hoje, volto a afirmar, o Javascript se encontra sem
concorrentes a altura.

O VBS é uma linguagem da Microsoft e só é implementado nativamente pelo IE. Já escutei que existe, ou
deve existir algum plugin para o Firefox que o faz interpretar o VBS. Mas, sem problematizar muito, entenda:
VBS é IE.

Quando o IE representava mais de 90% do mercado de navegadores, então sim, o VBS era utilizado por
vários desenvolvedores.
Mas hoje a participação do IE no mercado mundial de navegadores está a menos de 50%.

Pergunta direta: hoje você criaria um site web limitado a menos de 50% dos usuários?

Hoje, sem sombra de dúvidas a grande maioria dos desenvolvedores utiliza javascript em suas páginas. Até
porque uma ideia do desenvolvimento web é que, ao menos para o cliente, seja realmente independente de
plataforma.

Só vejo algum sentido em utilizar o VBS para desenvolvimento web se vc tem uma equipe muito fluente em
Visual Basic e nada fluente em Javascipt. E se o que você estiver desenvolvendo é para rodar numa intranet
muito específica onde 100% dos navegadores sejam IE. Mas ainda assim eu consideraria o Javascript pois
os grandes frameworks voltados para UI/Web são em Javascript:
jQuery
YUI
DOJO
ExtJs
Prototype
Mootools
Scriptaculous
Spry.

E é por isso que eu volto a afirmar, embora o IE mantenha o suporto ao VBS, talvez até por conta dos
sistemas legados, no mondo de hoje, no desenvolvimento de páginas webs, Javascript está, virtualmente,
sem concorrentes. É ele ou ele. Para desenvolvimento web não dá para fugir de aprende­lo.

Abraços

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=380#respond)
Jhonny Freitas Dutra (http://jhonld.blogspot.com) disse:
18 de agosto de 2011 às 11:58 (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/comment­page­1/#comment­382)

Olá manuel, me chamo Jhonny e resolvi responder sua pergunta.

Ajax não e uma linguagem de programação, mas um conjunto de tecnologias. Ajax é a junção de XML e
JavaScript(Wikipédia), ou seja quando vc ultiliza ajax na verade vc estára ultilizando JavaScript.

VBScript, eu ja ouvi falar, mas não sei se é realmente uma linguagem para desenvolvimento WEB do lado
cliente, e mesmo que fosse, não é citado no Indice do
TIOBE(http://www.tiobe.com/content/paperinfo/tpci/index.html
(http://www.tiobe.com/content/paperinfo/tpci/index.html)) e JavaScript sim, e está em 10º posição, porntanto,
muitos poucos usam o VBScript, não poderia ser considerado concorrente.

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 17/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=382#respond)
Jhonny Freitas Dutra (http://jhonld.blogspot.com) disse:
18 de agosto de 2011 às 12:04 (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/comment­page­1/#comment­384)

ops acho q demorou pra aparecer sua resposta aquie, pode excluir esse coment

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=384#respond)
renato disse:
18 de agosto de 2011 às 13:09 (http://www.aprenderprogramar.com.br/10­linguagens­
de­programacao­voce­deveria­aprender/comment­page­1/#comment­386)

Sem problemas, fique a vontade para responder. Mas só a título de informação, o
VBScript é sim uma linguagem para desenvolvimento web tanto no lado do servidor assim
como no cliente. Mas, só para IEs. Mas do ano 2000 para cá vem perdendo força. Hoje
páginas webs com VBScript por sorte são raras.

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=386#respond)
24.  Jhonny Freitas Dutra (http://jhonld.blogspot.com) disse:
16 de agosto de 2011 às 17:35 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­
voce­deveria­aprender/comment­page­1/#comment­357)

Olá renato, estou procurando um artigo que trate de livros de referencia de cada Linguagem, por exemplo
Linguagem C, o melhor livro de referencia seria o C Completo e Total de Herbert Schildt, para Java o Java Como
programar da deitel(pelo menos é minha opnião sobre as duas), gostaria que vc criasse um artigo tratando deste
tema. Vlw!

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=357#respond)
renato disse:
16 de agosto de 2011 às 18:05 (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/comment­page­1/#comment­359)

Ótima dica, sem dúvida, Jhonny.
Vou trabalhar nisso sim.
Abraços.

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=359#respond)
Jhonny Freitas Dutra (http://jhonld.blogspot.com) disse:
16 de agosto de 2011 às 21:17 (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/comment­page­1/#comment­362)

ok ok, vlw, tenta colocar Principalmente das linguems diferentes do “mundo C”. Vlw renato!
Até os Proximos Posts

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=362#respond)
25.  Ramon disse:
25 de julho de 2011 às 6:40 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­
deveria­aprender/comment­page­1/#comment­280)

Olá Renato,
parabéns pelo artigo, mas acredito que você cometeu um equivoco:
Quando você compara PHP e Python, você diz que esta última linguagem é focada no desenvolvimento web, o que
não é verdade. Python é uma linguagem de propósito geral, mas que hoje em dia, com seus frameworks (como o
Django) está ganhando muito espaço neste cenário.
Outra coisa interessante há ressaltar, é que no Python tudo é objeto, e é uma linguagem de tipagem forte.
Acredito que a melhor comparação a ser feita no caso, seria PHP vs ASP e um outro tópico abordando Python vs
Ruby.
Bom, acho que é isso e mais uma vez parabéns pelo artigo.

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=280#respond)
http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 18/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

renato disse:
25 de julho de 2011 às 11:32 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­
voce­deveria­aprender/comment­page­1/#comment­283)

Olá Ramon,
Fico feliz que tenha gostado do artigo.
Mas em nenhum momento eu disse que Python tem foco na web. Pelo contrário. Eu falei
Do PHP:

Destas duas linguagens listadas, PHP é a que tem o foco para web mais bem definido

e
Do Python

Python, por sua proposta mais generalista, (…) Python pode ser utilizado sozinho, como a linguagem
escolhida para o desenvolvimento de um grande sistema, web ou desktop. Por ser simples e de propósito
geral, (…)

Talvez você tenha estranhado o fato de ter colocado ambas no mesmo grupo.
Neste grupo eu juntei linguagens scripts, orientada a objetos, baseadas em classes – mesmo no caso onde
a classe é um tipo especial de objeto, e de grande utilização na web. Sugerindo que o leitor aprenda
programação scritp/web com uma delas. Mas em nenhum momento pensei em limitar ou igualar qualquer
uma das duas.

Caso tivesse falado em Ruby, teria colocado no mesmo grupo. Embora saiba que Ruby também tem
diferenças significativas destas duas.

Repondi?

Nota: a divisão que tentei fazer com as linguagens pelos grupos tenta ter os seguintes critérios:

1­ Função ­> Neste grupo elejo linguagens com boa indicação para programação web. Python é também
indicado para programação web, mesmo não sendo seu foco.
2­ Conceitos novos ­> Neste grupo o leitor aprende o que é uma linguagem script e percebe a particularidade
de uma programação script para web.

Ou seja, a ideia central é que o leitor passeando pelos grupos e escolhendo ao menos uma linguagem de
cada grupo ele absorva os mais variados conceitos em programação.

Só para deixar mais claro a minha postura:
Eu me senti mais culpado em não ter falado em Forth, que é baseado em pilhas mas ultrapassada, do que
em Ruby, uma linguagem realmente moderna, bonita e com vários conceitos legais.

O ponto é que a grande maioria dos conceitos de Ruby, você pode encontrar espalhadas por estes grupos de
linguagens.

Abraços

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=283#respond)
Ramon disse:
25 de julho de 2011 às 13:15 (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/comment­page­1/#comment­286)

O que me fez fazer a tal afirmação foi o seguinte paragrafo:

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 19/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

“E estas duas são exatamente isto: linguagens scripts, de tipagem dinâmica, orientadas a objetos,
focadas no desenvolvimento web embora as duas possam ser utilizadas em ambiente desktop.”

Que da o sentido de ambas foram projetadas focando o desenvolvimento web, anyway , mas há
centenas de linguagens mundo a fora, que trazem conceitos e filosofias interessantes, porem essas
ai já estão de bom tamanho 
Bom, nunca ouvi falar sobre a linguagem Forth, depois dou uma pesquisada…
ps: se vc fazer um post falando dela leio com o maior prazer =)
abraços.

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=286#respond)
renato disse:
25 de julho de 2011 às 14:39 (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/comment­page­1/#comment­288)

Hum…. verdade.
Ficou mal escrito o parágrafo. Troquei de ‘focadas’ para ‘bastante utilizadas’. Obrigado pela
ajuda.

Quanto ao Forth, é uma linguagem antiga e muitos diriam: ultrapassada. Mas ainda assim
ainda encontramos ela sendo utilizada hoje.
Mas a grande questão é a orientação a pilha que, embora raro nos dias de hoje, é encontrada
em várias linguagens assembly.
Provavelmente que você já saiba, mas internamente, quando uma função é chamada, seus
parâmetros e variáveis locais são empilhados. Quando esta função chama outra os parâmetros
e variáveis locais da nova são novamente empilhados. Ao fim do processamendo os
parâmetros são retirados da pilha e o retorno é empilhado. A primeira função lê o retorno da
pilha e assim segue.
Normalmente estas operações ficam invisíveis para o programador numa linguagem de alto­
nível. Em Forth não. Passagens de parâmetros entre funções são pela pilha.
Se algum dia você quiser criar uma linhagem para rodar na JVM ou na plataforma .NET
encontrará novamente este conceito. Pois no Java bytecode e no CIL da Microsoft, as
passagens de parâmetros também são via pilha. Então, em termos de conceito, este ficou
faltando no artigo. Não creio que seja grave, mas… o que você acha?

Só ilustrando um pouco mais de Forth, segue a expressão:
2 4 * 2 + .
imprime 10
Ele é processado da seguinte maneira:
2­ empilha 2
4­ empilha 4
* – multiplica desempilhando os dois últimos valores da pilha e empilha o resultado: 8
2­ empilha 2
+­ soma desempilhando os dois últimos valores da pilha e empilha o resultado: 10
.­ imprime o topo da pilha.

Legal, né?

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?
replytocom=288#respond)
26.  Felipe dos Santos de Morais (https://twitter.com/#!/felipedemoraes) disse:
24 de julho de 2011 às 15:36 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­
deveria­aprender/comment­page­1/#comment­276)

Olá,

Sobre o artigo senti falta de algumas linguagens que ouço muito falar como .Net, VB, Delhpi.Entendi suas escolhas
pessoais mas gostaria de saber porque não às citou.

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 20/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

Acabei de me tornar técnico de informática vi um pouco de Delphi, Java, e PHP.Acabei de entrar para o curso de
Ciência da Computação onde só vi um pouco de C no primeiro período(estou indo para o segundo este semestre).

Gostei muito do seu artigo.Estou em uma época de decidir quais serão minhas próximas linguagens.Então gostaria
de me aprofundar mais nas que eu aprendi, um pouco superficialmente, e então ir para as próximas, gostaria de
saber se você tem algumas indicações não somente de livros pode ser blogs, pessoas, … qualquer referência
nessas linguagens citadas no artigos.

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=276#respond)
renato disse:
25 de julho de 2011 às 11:21 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­
voce­deveria­aprender/comment­page­1/#comment­282)

Olá Felipe. Vamos lá:
.NET não é uma linguagem. Na realidade é uma plataforma sobre a qual rodam várias linguagens. Por
exemplo, uma das linguagens que rodam sobre a plataforma .NET é a C# que eu citei. Na realidade a C# é a
principal linguagem da plataforma .NET. Uma outra é o Visual Basic, no caso: VB.NET.

O antigo Visual Basic, o VB, foi até a versão 6 e depois foi migrado para a plataforma .net. Então após o VB
6 vem o VB.NET. Então, eu não sitei o VB por uma razão muito simples: Se você sabe o C#, não te
agregaria nenhum valor aprender VB.
Se você já vem do VB6, ir para o VB.NET pode ser a entrada mais fácil para a plataforma .NET mas, caso
contrário, vá de C# sem dúvida. Ou vá para o mundo Java. Posso vir a ser alvo de apedrejamento pelo que
falarei mas o único sentido que vejo no VB.net é este: absorver para a plataforma .NET o povo legado do
VB6. Nada mais.

Quanto ao Delphi, também não é linguagem. Delphi é o nome de um ambiente de desenvolvimento que
utiliza a linguagem de programação Object Pascal, que é um pascal orientado a objetos. O Object Pascal, a
linguagem utilizada pelo Delphi, utiliza o paradigma Orientado a Objeto baseado em classes. Ou seja,
nenhum conceito muito inovador caso você já conheça Java ou C#.

Lembrando, eu procurei listar as linguagens que te dessem novos conceitos. Dado as linguagens listadas, o
VB e o Object Pascal não te dão nada novo. Já a plataforma .NET está com a sua participação garantida
pela linguagem C#.

Em resumo é isso!
Abraços

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=282#respond)
Felipe deMorais disse:
25 de julho de 2011 às 11:51 (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/comment­page­1/#comment­284)

Gostei muito do seu artigo.Estou em uma época de decidir quais serão minhas próximas
linguagens.Então gostaria de me aprofundar mais nas que eu aprendi, um pouco superficialmente, e
então ir para as próximas, gostaria de saber se você tem algumas indicações não somente de livros
pode ser blogs, pessoas, … qualquer referência nessas linguagens citadas no artigos.

Sobre essa parte das referências, o que você tem a me dizer ?

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=284#respond)
renato disse:
26 de julho de 2011 às 1:14 (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/comment­page­1/#comment­290)

Opa,
Realmente passei batido nesta questão.
Bem… Tanto C assim como Java e até PHP, justificam uma carreira. Olhando apenas para
mercado de trabalho destas Java é a que tem maior demanda.

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 21/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

Aqui você pode encontrar as linguagens mais populares e o quão usadas elas estão sendo no
mundo de hoje. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
(http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html)

Então a primeira dica é esta mesma que você já se deu: Escolha uma destas 3 e se
aprofunde. Pode continuar estudando/brincando com as outras. Mas veja qual destas você
mais se identifica para se aprofundar. E, como eu já falei neste blog, a única maneira de
aprender a programar é programando: http://www.aprenderprogramar.com.br/como­se­
tornar­um­programador/ (http://www.aprenderprogramar.com.br/como­se­tornar­um­
programador/)
Então procure criar ou se envolver em projetos com a linguagem escolhida. E procure as
comunidades/fóruns da linguagem.

Quanto a próxima linguagem, pelas linguagens que você conhece, posso dizer que você está
contaminado pela sintaxe C. PHP e Java se inspiraram em C++ que vem da linhagem C.
Vamos quebrar isso?
1o Opção: Conhecer uma Linguagem Orientada a objetos pura – nem java ou php são – com
sintaxe completamente diferente de C e que trabalha com envio de mensagens para objetos.
Smalltalk: http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­
deveria­aprender/#smalltalk (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/#smalltalk)
Para aprender smalltalk:
http://www.inf.ufsc.br/poo/smalltalk/jonathan/ (http://www.inf.ufsc.br/poo/smalltalk/jonathan/)

2a Opção: Vamos aprender logo outro paradigma trabalhando com programação funcional?
Aprendendo Scheme – um dialeto lisp – ou ainda Haskell você ‘subverterá’ aquilo que você
entende por programação:
http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­
aprender/#lispscheme_haskell (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/#lispscheme_haskell)

Sobre Scheme
http://pt.wikipedia.org/wiki/Scheme (http://pt.wikipedia.org/wiki/Scheme)

Sobre Haskell
http://haskell.tailorfontela.com.br/chapters (http://haskell.tailorfontela.com.br/chapters)
http://pt.wikipedia.org/wiki/Haskell_(linguagem_de_programa%C3%A7%C3%A3o)
(http://pt.wikipedia.org/wiki/Haskell_(linguagem_de_programa%C3%A7%C3%A3o))
Mas, destas 3, veja que você listou já Delphi, Java, e PHP.Acabei de entrar para o curso de
Ciência da Computação onde só vi um pouco de C

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=290#respond)
27.  jardel disse:
7 de junho de 2011 às 21:26 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­
deveria­aprender/comment­page­1/#comment­59)

obrigado pela atençao vou seguir suas dicas valeu!!!!!!!

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=59#respond)
renato disse:
21 de junho de 2011 às 12:16 (http://www.aprenderprogramar.com.br/10­linguagens­de­
programacao­voce­deveria­aprender/comment­page­1/#comment­98)

De Nada!

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=98#respond)
28. jardel disse:
6 de junho de 2011 às 23:10 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­
aprender/comment­page­1/#comment­54)

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 22/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

Oi não sou programador ainda, mais adorei o artigo! Na verdade quero pedir uma orientação, quero aprende
a desenvolver aplicativos para android, sei que ele é baseado em java, estou certo?? Então qual linguagem
devo aprende primeiro?? Java, c ,?? Há mais uma dúvida se android é baseado eu java, android também é
uma linguagem?

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=54#respond)
renato disse:
7 de junho de 2011 às 8:38 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­
voce­deveria­aprender/comment­page­1/#comment­55)

Olá Jardel,
Vamos começar do início: Android é um sistema operacional, assim como o Windows, assim como o Linux.
Claro que ele é focado em dispositivos móveis, mas, ainda assim, é um sistema operacional.
Na verdade ele é baseado no Linux, já que usa a sua kernel.
E tal qual o Windows ou Linux você pode programar em qualquer linguagem para a qual exista um
compilador ou um interpretador da linguagem naquele sistema.
Talvez, o que tenha feito a confusão é que a plataforma de desenvolvimento oficial para Android é o SDK
Java. Então pode­se entender que Java é a ‘linguagem oficial’ do sistema. Mas não ache que é a única.
Pode­se programar até em C# utilizando o Monodroid.Ou ainda em C/C++ utilizando o Native Development
Kit (NDK).
Mas se você quer realmente é focar no desenvolvimento para o Android e vc ainda não tem preferências por
nenhuma linguagem é sempre melhor seguir a linha que tenha um melhor suporte da comunidade e dos
mantenedores e, neste caso, a resposta é sim Java.
Mas, se você ainda não sabe programar, é melhor iniciar por uma linguagem onde, primeiro, você possa
aprender lógica de programação. E para isso eu não recomendo Java e muito menos C.
Minha recomendação é: primeiro aprenda a programar. Busque por apostilas introdutórias de python ou siga o
nosso curso: http://www.aprenderprogramar.com.br/logica­programacao­davit/
(http://www.aprenderprogramar.com.br/logica­programacao­davit/)
Depois, que você já souber um mínimo de programação e lógica, aí sim, aprenda Java e a orientação a
objeto.

Abraços e espero ter ajudado!
Renato

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=55#respond)
29.  Eli Moura (http://www.embits.com) disse:
7 de maio de 2011 às 18:01 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­
deveria­aprender/comment­page­1/#comment­13)

Não posso acreditar que vocês não falaram de SCALA (scala­lang.com) muito boaa para quem trabalha
com Java ou odeia java mas precisa de rodar softwares na JVM… recomendo ainda que eu esteja apenas
começando a conhecer…

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=13#respond)
renato disse:
8 de maio de 2011 às 22:41 (http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­
voce­deveria­aprender/comment­page­1/#comment­14)

Olá Eli,
entendo a sua ‘revolta’, sério. Concordo que Scala é um ótimo exemplo de linguagem multiparadigma que,
assim como o citado Groovy, também roda sobre a JVM, sendo uma escolha também natural para os
nascidos no Java, terem contatos com novos conceitos e paradigmas que o próprio Java não aborda.
Porém como falado em ‘Considerações Finais’, a seleção destas linguagens foi uma difícil escolha pessoal.
E, pessoalmente, eu nunca fiz um mero ‘hello world’ em Scala. Por isso não me senti apto a defender a
linguagem. Mas do pouco que eu li sobre, acho que é uma pena ela ainda não tenha chegado aos top 50 do
índice TIOBE.
Mas, caso você queira, use este espaço para ‘defender’ a linguagem, pontuando, principalmente os pontos
pelos quais vale a pena aprender Scala.

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 23/24
11/02/2017 10 Linguagens de Programação que Você Deveria Aprender! | Aprender a Programar

Caso prefira criar um conteúdo no seu próprio blog ‘http://estagionerd.blogspot.com/’ defendendo o porquê de
aprender Scala eu dou a referência, combinado?

Responder (/10­linguagens­de­programacao­voce­deveria­aprender/?replytocom=14#respond)

Leave a Reply

 Name (required)

 Mail (will not be published) (required)

 Website

Qual é o resultado de 1 + 2? (Utilize números na resposta. Dica: 2, 3, 4, 5 ou 6) (obrigatório)

Submit Comment

Copyright © Aprender a Programar (http://www.aprenderprogramar.com.br) ­ Lógica de Programação, Cursos, Artigos e
Projetos para Aprender a Programar
Powered by WordPress (http://wordpress.org/) | Visit www.iFreeCellPhones.com (http://www.ifreecellphones.com/) for
Free Cell Phones. | Thanks to Palm Pre Blog (http://palmpreblog.com/), Find Best CD Rates
(http://www.thepiggybanker.com/best­cd­rates/) and Fat burning furnace (http://fatburningfurnacetrial.com)

http://www.aprenderprogramar.com.br/10­linguagens­de­programacao­voce­deveria­aprender/#c 24/24

Você também pode gostar