Com qual linguagem devo programar? – Parte 1

Ambiente de desenvilvimento
Ambiente de desenvilvimento

Nos dias atuais temos cada vez mais linguagens disponíveis no mercado, assim como suas infinidades de bibliotecas e frameworks, mas ai bate uma grande dúvida que é muito comum para qualquer desenvolvedor: “Qual linguagem devo utilizar?”.

Antes de mais nada, recomendo para quem está iniciando dar uma lida antes no artigo: Dicas para começar na carreira de programador, pois terá um aproveitamento melhor ao ler o artigo atual.

Eu diria que não existe uma “bala de prata” quando se trata de desenvolvimento, ou seja, para cada caso pode haver uma ferramenta mais adequada para resolver determinado problema. Tanto que é comum hoje em dia ver programadores que sabem mais de uma tecnologia para desenvolvimento, principalmente desenvolvedores web.

Existem sim meios de usar uma linguagem em várias situações, mas nem sempre será o ideal. É como tentar apertar um parafuso usando uma faca, é possível, mas com certeza usar a chave de fenda/philips com o tamanho correto é melhor e mais seguro.

O objetivo deste artigo é guiar quem está começando, dando uma visão das ferramentas (linguagens ou frameworks) mais usadas no mercado e pela na comunidade atualmente.

Desktop

Nesta plataforma a linguagem com mais destaque pelo mercado é o Java, que possui a possibilidade de rodar em várias plataformas com o mesmo código fonte através da JVM.

As IDEs mais utilizadas para o desenvolvimento nesta linguagem é o Eclipse, Netbeans e IntelliJ, que possibilitam trabalhar com o recurso visual de drag and drop e são de grande ajuda no momento de criar código.

Para quem deseja entrar no mercado essa é a linguagem que mais recomendo devido a alta demanda de busca pelas empresas e fora a grande vantagem de Java rodar em quase tudo. A comunidade do Java é bem grande e ativa, sendo muito fácil obter suporte caso necessite.

Outra linguagem excelente é o C# (C sharp) que lembra muito o Java em vários aspectos. É uma linguagem mantida pela grande Microsoft, sendo uma das linguagens mais populares já criadas desta empresa.

Hoje em dia com o .NET Core (framework) existe a possibilidade de também rodar em qualquer plataforma desde que tenha o .NET instalado na máquina, é bem similar a ideia da JVM.

Outro fato é que o .NET Core está mais rápido, principalmente em um ambiente Linux com relação ao antigo .NET que só rodava em ambientes Windows, o que aumentou bastante o interesse pelas empresas e desenvolvedores em utilizar essa linguagem.

Para desenvolvimento se utiliza o Visual Studio, que é uma excelente IDE, muito robusta e com diversos recursos, ela é considerada uma das melhores IDEs do mercado.

No mercado de trabalho o C# tem uma grande busca pelas empresas de desenvolvedores com este conhecimento, que deve crescer ainda mais devido ao .NET Core. É uma linguagem que também recomendo bastante para quem quer entrar no mercado.

O JavaScript também vem crescendo muito com a criação do node js e ele também oferece a possibilidade de criar aplicativos desktop com interface gráfica através do framework Electron, que possibilita criar a interface com HTML, CSS e JS, e usar o JS para controlar a lógica de negócio.

O Electon foi desenvolvido pelo GitHub e o próprio Atom foi criado usando ele. Além do Atom outros programas criados com ele foram: Slack, Discord, Visual Studio Code, Kitematic, GitKraken, GitHub Desktop, dentre outros.

A grande vantagem é a enorme flexibilidade de criar interface gráfica como uma página web, o que possibilita uma interface muito rica, dinâmica e flexível.

Infelizmente não existe uma grande demanda no Brasil ainda, sendo assim não recomendo para quem quer entrar no mercado de trabalho, mas indico para aqueles que querem desenvolver por conta própria ou até mesmo para ser usado em uma startup.

O Delphi (Linguagem Object Pascal) ainda é uma opção para o mercado de trabalho, apesar de atualmente muitas empresas evitarem criar novos projetos com ele, ainda tem sistemas legados que requerem programadores, principalmente no RJ onde se vê uma boa demanda por ele.

Muitas pessoas estão elogiando o novo Delphi por poder rodar em Windows, Mac, Linux e Android, IoT, o que ajudar a sustentar essa ferramenta no mercado.

Não devemos considerar o Delphi como obsoleto, pois a maioria se prende ainda as versões antigas do mesmo, empresas como a Alterdata Software estão tendo essa visão e adotando o novo Delphi.

Eu recomendo para quem já viu ou conhece, mas para quem ainda está querendo entrar na área eu indico aprender Java ou C# devido à tendência.

Para ter uma breve noção da popularidade dessa linguagens, poderá acessar o Google Trends dessas linguagens.

Mobile

No mundo mobile a IDE mais utilizada é o Android Studio que pode ser instalada no Windows, Linux e Mac, mas o mesmo só serve para criar aplicativos para a plataforma Android como o nome sugere. É uma das ferramentas mais utilizadas para desenvolvimento de apps para esta plataforma e é mantida pelo próprio Google.

A ferramenta ajuda a realizar um desenvolvimento ágil com recursos de drag and drop. Para desenvolver é utilizada a linguagem Java.

Uma ótima notícia para quem odeia o Java por ser excessivamente verboso: a JetBrains criou a linguagem de programação chamada Kotlin, que possui uma sintaxe muito simples que torna mais prazeroso programar em “Java”.

O Kotlin é interoperável com o Java e gera o bytecode para JVM, ele tem todos os recursos do Java e mais algumas novidade como o null safe, para mais informações sobre essa linguagem poderá ver nesse link recomendado: Kotlin: Presente ou Futuro?

O Google e a Jet Brains estão trabalhando juntos nisso fazendo o Kotlin ser a nova linguagem oficial para o Android Studio, que promete ser algo muito promissor.

Apesar dessa IDE servir apenas para Android, isso não é um problema pelo fato de a maioria das pessoas utilizarem o Android e além disso é o que gera mais vaga para desenvolvedores mobile. Caso queira trabalhar nessa área, sem dúvida o Android Studio + Java + Kotlin são uma ótima opção.

Para a plataforma IOS a linguagem mais indicada é o Swift que vem crescendo bastante e veio como uma melhor solução com relação ao antigo Objective-C no cenário mobile devido a melhor performance, melhor para programação funcional, fácil de usar, seguro, uma linguagem mais moderna e flexível.

Praticamente quando se fala em IOS hoje em dia, logo sem pensa em Swift para desenvolver. É uma ótima opção no mercado para queles que buscam uma carreira no desenvolvimento para IOS e IPad.

A Microsoft não ficou fora no mundo do desenvolvimento mobile, de fato o Windows Phone é utilizado por uma parcela bem menor do que IOS e Android e existe uma reclamação dos usuários pela falta de aplicativos comparado ao IOS e Android.

Um grande problema era que para desenvolver para Android se usa Java/Kotlin, para IOS se usa Swift/Objective-C e para Windows Phone se utiliza C#, ou seja, aprender linguagens e ferramentas diferentes para desenvolver para as 3 plataformas e nisso o Windows Phone acabava ficando um pouco de lado, tanto pelos desenvolvedores como pelo mundo corporativo.

A Microsoft fez um investimento e há alguns anos comprou o Xamarin, que é uma ferramenta que utiliza a linguagem C# para desenvolvimento e possibilita com apenas um código rodar nas 3 plataformas, além disso ainda foi lançado o Xamarin Studio que possibilita a flexibilidade de se utilizar drag and drop como no Android Studio, mas usando a poderosa IDE do Visual Studio.

As expectativas são muito promissoras para o mundo mobile, se tornando uma ótima opção para quem quer entrar no mercado de trabalho nos próximos anos.

Outra opção para quem quer desenvolver para as 3 plataformas ao mesmo tempo é Ionic que utiliza a linguagem TypeScript com o Angular para a lógica de negócio e para criar a interface gráfica utiliza-se HTML5, CSS3/SASS e JavaScript, além de diversos componentes visuais do Ionic.

A vantagem é que ele é fácil de se aprender e ágil para criar aplicativos, além da enorme flexibilidade da interface gráfica e fica ainda mais interessante com os recursos da IDE Visual Studio Code para desenvolvimento.

Apesar das vantagens e da sua grande popularidade lá fora que vem crescendo muito rápido, ele possui alguns problemas como a instabilidade das versões que têm tido atualizações com algumas mudanças drásticas e no mercado brasileiro ainda não possui muita demanda, mas é um boa opção para quem trabalha como freelancer.

Como o Ionic trabalha em cima do Angular que é mantida pela Google, a tendência é melhorar com o tempo e como qualquer tecnologia nova, ele vai passar por uma fase de amadurecimento e assim que estiver mais maduro é provável que cada vez mais utilizado.

É uma tecnologia que recomendo a todos experimentar, mas não trabalhar ainda em produção para grandes projetos.

Segue o Google Trends das ferramentas citadas.

Jogos

Na área de jogos existem 2 engines muito utilizadas, que são a Unity e Unreal. Na maioria dos jogos para PC, console e mobile você verá muito na inicialização do jogo algum logo dessas engines.

Para quem quer trabalhar na criação de jogos multiplataforma poderá escolher qualquer uma delas que são umas das mais populares.

Unity é mais delas, sendo muito mais fácil encontrar cursos, vídeo-aulas e documentação em português sobre o mesmo.

A principal linguagem de programação utilizada é o C#, mas também há a possibilidade de usar JavaScript e Bool (uma linguagem que lembra o Python). Apesar de poder usar essas outras duas linguagens, recomendo trabalhar com C# devido à esmagadora maioria dos cursos, tutoriais e documentações para Unity focarem nessa linguagem.

O Unreal é outra excelente opção para desenvolver jogos multiplataforma, mas é limitado a somente trabalhar com a linguagem de programação C++.

Não entrarei no critério de comparação entre os dois, pois é algo extenso e tem muitos tópicos de discussão sobre o assunto que são encontrados facilmente na Internet.

Outra engine que ainda está ficando popular é o Cocos 2D, que permite rodar o jogo em qualquer plataforma desktop, mobile, web e xbox, com a restrição de apenas criar jogos em 2D.

Ele tem suporte a uma diversidade maior de linguagens como Python, Objective-C, C++, Lua, JavaScript, Swift e C#.

Essa engine é mais simples com relação as maiores como Unity e Unreal, além de não ter um mercado tão vasto para o Cocos, mas vale a pena para projetos pequenos, projetos pessoais ou de pequenas equipes.

Segue o Google Trends destas engines.

Fontes