Com um número tão grande de linguagens de programação disponíveis, pode ser difícil escolher apenas uma para aprender. JavaScript e Ruby são duas das linguagens mais conhecidas e por bons motivos. Para te permitir tomar uma decisão informada sobre que linguagem seria mais benéfica para ti, criámos este guia. Mas lembra-te: no que diz respeito à programação, não há resposta errada — apenas formas diferentes de alcançar o mesmo objetivo.
O que é o JavaScript?
JavaScript é uma linguagem interpretada, de alto nível, multiparadigma e dinamicamente que está em conformidade com o padrão ECMAScript. Agora, se essas palavras não são nada além de sons indecifráveis para ti, não te preocupes. Vamos definir cada termo:
JavaScript: Interpretado
Esta palavra significa o oposto de “compilado”. E o que significa compilado? Uma linguagem compilada é aquela cujo código fonte precisa de ser passado a um compilador, que é um programa que pode transformar uma linguagem em bytecode (1 e 0) que o seu computador pode entender e depois executar. Uma linguagem interpretada é aquela que não tem de ser pré-compilada; em vez disso, um intérprete lê o código linha a linha e executa cada linha à medida que lê, sem necessidade de uma base de código pré-compilada.
JavaScript: Alto nível
Alto nível é um termo relativo, mas o consenso geral é que o JavaScript é uma linguagem de alto nível. Uma linguagem de alto nível é aquela que resume os detalhes da máquina em que é executada; é uma linguagem que fornece aos programadores ferramentas (elementos de linguagem) que facilitam a reflexão e a resolução de problemas, sem terem de se preocupar com os detalhes de como um computador funciona. Afinal, não precisas de um diploma de engenharia elétrica para mudar uma lâmpada e não deves precisar de um diploma de engenharia informática para poder escrever um bom código.
JavaScript: Multiparadigma
Esta é uma palavra que irás ouvir cada vez mais à medida que inicias a tua jornada tecnológica. À medida que as linguagens de programação evoluem, os seus responsáveis adicionam continuamente funcionalidades vistas noutras linguagens que os programadores possam querer; isto significa que à medida que as linguagens crescem, tornam-se cada vez mais semelhantes umas às outras. Agora, o que é que isto tem a ver com “multiparadigma?”
JavaScript é multiparadigma no sentido de que as suas funcionalidades estão associadas a linguagens que seriam consideradas funcionais ou orientadas para objetos, que são dois paradigmas completamente separados. Eis uma descrição:
JavaScript é funcional no sentido de que as funções são “cidadãos de primeira classe” e podem ser passadas, devolvidas e consumidas por outras funções.
Podes escrever código JavaScript totalmente funcional sem utilizar qualquer composição de função.
JavaScript também é orientado para objetos: permite criar objetos que herdam de outros objetos e estruturas de dados complexas que uma linguagem “puramente funcional” nunca permitiria.
JavaScript: Dinâmica
Como muitas outras linguagens interpretadas, JavaScript é dinâmico, o que significa que os tipos atribuídos a variáveis, parâmetros e funções não são verificados quanto à consistência antes de o código ser executado. Esta funcionalidade tem várias vantagens, mas também várias desvantagens. Permite aos programadores escrever scripts curtos muito rapidamente, mas também pode ser a raiz de horas e horas de frustração quando uma correspondência de tipo causa um bug que nunca teria sido possível numa linguagem estática.
Tendo isso em mente, se pretenderes uma linguagem que esteja em conformidade com a norma ECMAScript, mas que seja forte e estática, não procures mais do que TypeScript.
Certamente que não precisas de conhecer ou compreender totalmente os quatro termos definidos acima para poderes escrever um bom código JavaScript, mas como programador, deves conhecer as informações das ferramentas que utilizas.
No caso de JavaScript, é bastante simples: JavaScript é a linguagem de programação web development front-end de facto e a esmagadora maioria dos websites usa JavaScript para scripting do lado do cliente; qualquer navegador Web sério terá uma linguagem JavaScript dedicada para executar o código de forma eficiente nos dispositivos do utilizador.
JavaScript é adequado para mim?
Bem, isso depende dos teus objetivos de carreira:
Queres ser web developer de front-end? Então sim, JavaScript é exatamente a linguagem que deves aprender.
Queres ser web developer de back-end? JavaScript é uma ótima escolha, mas há muitas, muitas linguagens e estruturas para escolher.
Queres ser um web developer full-stack? Então, sim, sim, mil vezes sim! JavaScript permite-te escrever facilmente todas as partes da tua aplicação.
Melhores formas de aprender JavaScript
Já ouviste falar da regra das 10 000 horas? É um conceito introduzido por Malcolm Gladwell, que significa basicamente que quanto mais fizeres algo, melhor o fazes. Gladwell afirma que apenas depois de praticar uma competência durante 10 000 horas é que alguém pode ser considerado especialista. E embora não possamos confirmar ou negar que é isso que terás de fazer para te tornares um especialista em código, podemos dar-te uma dica: começa a escrever!
Certo, é bastante óbvio! Aqui estão algumas outras formas de aprender:
Fazer um bootcamp! Oferecem orientação especializada, objetivos de aprendizagem claros e feedback em tempo real sobre como estás a progredir na tua jornada de aprendizagem
Segue os guias no website oficial JavaScript
Escolhe um livro! Experimenta JavaScript Eloquent de Marjin Haverbeke ou JavaScript: The Definitive Guide de David Flanagan
Já conheço JavaScript: Que linguagem devo aprender?
Se já conheces JavaScript, é muito provável que sejas um web developer de front-end. JavaScript é a escolha natural para o que fazes e não há verdadeiras alternativas no mercado. Mas se estiveres a perguntar que linguagem deves aprender a seguir, provavelmente estás a tentar expandir o teu conjunto de competências para poderes assumir tarefas diferentes. Se for esse o caso, considera aprender Python, Java, C ou (adivinhaste!) Ruby.
Python
Python é muito semelhante a JavaScript, no sentido de que também é uma linguagem interpretada, de alto nível, multiparadigma e dinâmica. Se isso não fosse suficiente, também é consistentemente classificado como uma das linguagens mais populares do mundo, o que significa que existe uma enorme comunidade de utilizadores que são capazes de responder a quaisquer perguntas que possas ter e milhares de bibliotecas testadas disponíveis que te ajudarão a fazer o que quiseres, mas mais rápido.
Java
Outra excelente opção é Java. Ao contrário da JavaScript, Java é compilado, de alto nível, orientado para objetos e de tipo estático. Vais ter de fazer as coisas e pensar nos problemas de forma diferente, devido à natureza das diferenças entre as duas linguagens. E não terás qualquer problema em aprender Java, uma vez que existem excelentes livros dedicados especificamente a esse fim.
C
C não é nada parecido com qualquer uma das opções mencionadas anteriormente; é uma linguagem compilada, de baixo nível, de tipo estático. Aprender C irá forçar-te a que fiques confortável com ponteiros e aritmética de ponteiros e irás aprender rapidamente a estar grato por funcionalidades que tomaste como garantidas noutras linguagens de nível superior, como a recolha de lixo. C é incrivelmente rápido e cada peça de hardware que utilizarás tem um compilador C incorporado. Se souberes programar em C, podes escrever um programa informático em qualquer lugar.
Ruby
Se já conheces JavaScript, considera aprender Ruby. Tal como JavaScript, Ruby é uma linguagem interpretada, de alto nível, multiparadigma e dinâmica. Foi influenciado por muitas das mesmas linguagens que influenciaram a criação do JavaScript, mas tem uma grande diferença: o objetivo principal da linguagem Ruby é a produtividade do programador.
O que é Ruby?
Nós lembramos-te: Ruby é uma linguagem interpretada, de alto nível, multiparadigma, de tipo dinâmico, inicialmente criado como linguagem de script orientada para objetos (não existia nenhuma na altura), mas desde então foi adicionado um grande número de funcionalidades para torná-la tão valiosa como Python e Java. Mas aqui está o senão: Ruby não é uma “funcionalidade da linguagem”, mas sim uma filosofia de design; o principal objetivo do Ruby é tornar os seus programadores felizes e produtivos.
Ruby é o melhor para mim?
Bem, isso depende dos teus objetivos:
Se quiseres escrever software e usar uma linguagem que coloque a felicidade do programador em primeiro lugar, Ruby é a linguagem certa para ti.
Se procuras uma linguagem popular, poderosa e fácil de aprender, então não procures mais!
Uma vez que foi concebida como linguagem de scripting, mas evoluiu para uma potência multiusos, é muito fácil começar a escrever código e explorar todas as funcionalidades que Ruby tem para oferecer.
As melhores formas de aprender Ruby
Existem muitas formas fantásticas de aprender Ruby — tudo depende apenas da tua preferida:
Tem alguns livros de referência à mão, como Programming Ruby 3.2 de Noel Rappin ou Eloquent Ruby de Russ Olsen
Acompanhar um projeto num dos livros mencionados anteriormente
Aprende Ruby Koans
Escolhe o teu próprio projeto e começa a escrever código!
Seja qual for a tua escolha, lembra-te de que demoras algum tempo a tornar-te um especialista – não vai acontecer de um dia para o outro! O truque para te tornares bom em algo é continuar: decide como queres aprender, continua a fazê-lo e em pouco tempo vais programar em Ruby.
Já sei Ruby: Que linguagem devo aprender?
Se já conheces Ruby, então já conheces a linguagem mais adequada para os programadores alguma vez criada — toda a linguagem que aprenderes a partir de agora irá fazer-te perguntar: “porque é que conceberam esta funcionalidade assim?” No entanto, dependendo do que pretendes fazer, existem algumas opções excelentes:
Se quiseres ser um web developer de front-end, recomendamos vivamente que aprendas JavaScript.
Se quiseres ser um web developer de back-end, então tens muito mais escolhas, mas Java ou Python são duas escolhas naturais que são amplamente utilizadas na indústria.
Se estás apenas a tentar aprender algo novo e interessante, considera aprender uma linguagem funcional pura como Haskell.
Não existem escolhas erradas no que diz respeito à aprendizagem e, independentemente da linguagem que escolheres aprender a seguir, temos a certeza de que farás a escolha certa para ti e para a tua carreira. E se quiseres começar já com a próxima linguagem, consulta o Bootcamp de Web Development da Ironhack, onde aprenderás exatamente o que o mercado de trabalho exige. O que poderia ser melhor?