São muitas opções de linguagens
C# vs JavaScript

Série: Como escolher uma linguagem de programação para começar a estudar desenvolvimento de jogos em 2018? PARTE 3/3


Por Júlio Rodrigues em

Para fechar a série de como escolher uma linguagem vou abordar as linguagens que considero mais adequadas para quem está começando em 2018 que são: javascript e C#

Se você ainda não leu o nosso primeiro artigo onde falamos da linguagem C++ e elencamos os critérios que estão sendo usados para fazer tais avaliações você pode conferir aqui ou o nosso segundo artigo onde são abordadas as linguagem php, python e java por este link

Ranking das Linguagens

2ª JavaScript

Esta linguagem possui um histórico muito interessante. No começo de sua existência foi considerada (e com razão) uma linguagem de brinquedo, pois os navegadores da época não permitia que se fizesse praticamente nada com ela. O acesso ao DOM era bastante limitado, quase inexistente.

Com o passar do tempo os navegadores foram abrindo as possibilidades do que é possível de ser feito com JavaScript e esta foi acumulando mais respeito na comunidade de desenvolvimento web. Ao passo que a linguagem explodiu de popularidade com a chegada de jQuery.

jQuery foi tão popular que muitas pessoas nem aprendiam mais a API do browser (ainda é assim hoje de certa forma) mas somente a API fornecida pelo jQuery, o que é bom pois existia muita incosistência entre as implementações e jQuery chegou pra normalizar isso tudo com uma interface muito mais fácil de usar.

Ao passo que mais e mais formas de interação com o navegador foram sendo desenvolvidas e o anúncio da queda do flash JavaScript se tornou a linguagem mais popular entre todas as linguagens de acordo com pesquisas feitas pelo StackOverflow.

E onde quero chegar? Hoje em dia é muito natural você fazer qualquer coisa em JavaScript, desde aplicações do lado servidor, robôs e jogos. Eu indicaria o uso de JavaScript para jogos somente no navegador mas a linguagem é muito utilizada em conjunto com toolkits como Cocoon para se criar builds de aplicativos ou NW.js para se criar versões desktop, as opções são muitas.

É uma linguagem relativamente fácil de se começar a usar, demorou bastante tempo para adotar conceitos antigos como orientação à objetos através de classes ou sistemas de módulos, o jeito que se fazia a integração entre vários arquivos era bem precário. E existem muitos tutoriais sobre a linguagem, uma infinidade na verdade. Aos critérios.


Repositório com bibliotecas úteis e modernas
Nota: 4 (0 a 5)

Bibliotecas de todos os estilos, para todas as necessidades, e de variadas qualidades também. Não se pode acreditar cegamente em uma biblioteca JavaScript únicamente pelo número de estrelas de seu GitHub.

Como a linguagem é extremamente popular é comum ver bibliotecas de baixa qualidade com muitas estrelas. Mas, existe uma base sólida que resolve os problemas mais difíceis e de maneira correta, sim.


Compatibilidade entre diversos sistemas operacionais e plataformas
Nota: 5 (0 a 5)

É a linguagem do navegador. Eu diria que nada é mais compatível entre sistemas do que JavaScript dentro de um browser.


Performance nua e crua
Nota: 4 (0 a 5)

Iniciativas como asm.js ou WebAssembly mudaram totalmente esse jogo. Pra quem programa JavaScript à mão isso não faz muita diferença, mas se as suas dependências fazem uso dessas tecnologias, verá um grande ganho.

Cada vez mais os compiladores JavaScript ficam melhores e com maior esperteza, fazendo análise do seu código em tempo de execução para trocar a estratégia de interpretação, entre outras inúmeras coisas, é possível implementar muitas aplicações de modo otimizado com a linguagem.


Base de usuários
Nota: 5 (0 a 5)

Provavelmente é a linguagem com o maior ecosistema open source de hoje. Nada se compara ao que esta linguagem oferece em termos de dúvidas publicadas na internet, cursos, número de pessoas para se contratar.


Vagas de emprego
Nota: 5 (0 a 5)

Como diria o criador da linguagem, Brendan Eich, sempre aposte em JavaScript. A linguagem já sofreu todo o tipo de escrutínio e ataque mas parece sobreviver e evoluir com o tempo.

Está certo que a "aplicação" Internet é algo difícil de se superar e tendo o JavaScript como parte integrante (e quase que exclusiva no front-end) realmente vale a pena apostar na linguagem por pelo menos mais uma década.

Os empregos são inúmeros.


Uso em um studio independente de jogos
Nota: 2 (0 a 5)

Aqui já entra a minha opinião polêmica. Eu não acho que o mercado de jogos para navegador seja algo extremamente promissor para um estúdio pequeno. Jogos de navegador, assim como jogos para celulares e tablets são voltados para o público casual/mainstream e essas pessoas não costumam muito trocar os seus jogos.

É um mercado bem diferente do mercado de jogos da Steam ou até mesmo de consoles. Este mercado casual depende de investimento pesado em divulgação e estratégias de crescimento profissionais para não se depender de sorte para que o jogo vingue.

Como na internet e nas lojas de aplicativos as pessoas estão acostumadas a poder jogar sem gastar um tostão é criado um ambiente de negócios extremamente desfavorável para o estúdio pequeno de capital baixo.


Total
25 de 30

É uma linguagem que faz muito sentido de ser aprendida no ano de 2018, ela possui lá os seus problemas, as suas peculiaridades mas com o tempo você aprender a lidar e como é possível escrever código bem enxuto com ela, é até prazeroso.

Ela recebeu um desconto no último critério mas se o seu plano é fazer jogos para navegadores, vá em frente, é uma excelente escolha. E pensando também em aproveitar o conhecimento para a criação de outros tipos de aplicação não tem como errar.


1ª C#

Tanto foi escrito nessa série para chegarmos na recomendação automática feita por muitos por conta da Unity. E, sim, como a Unity representa hoje a porta de entrada para os jogos 3D e 2D, principalmente nas plataformas móveis, não poderia aqui recomendar algo diferente. A Unity é onipresente quando se fala de desenvolvimento de jogos, principalmente para quem está começando ou estúdios pequenos. E a cada nova versão ela vai ficando mais e mais sofisticada chegando perto de velhas lendas como a Unreal em termos de recursos para jogos AAA.

Eu tenho a fé de que você deve aprender algo que seja bastante popular quando você está começando a estudar algum assunto. Você já vai ter que aprender inúmeros conceitos e técnicas, coisas essas que você vai levar pro resto da sua carreira, e quanto mais rápido você puder aprender isso, quanto mais tutorias, cursos e livros existirem que utilizam a ferramenta que você vai usar, melhor. Quando você já tiver desenvolvido um bom entendimento do que está por trás da ferramenta você pode se dar ao luxo de ir atrás de ferramentas menos populares visto que você não vai precisar de tanta ajuda como quando você começou.

Além da Unity existe também o MonoGame que é um framework muito interessante utilizado pelo famoso Bastion. É parecido do ponto de vista de funcionalidades básicas oferecidas com o framework libGDX mas exporta para muito mais plataformas como iOS, Android, MacOS, Linux, Windows, PS4, PSVita, Xbox One, e Switch! Só recomendo pra quem já sabe o que está fazendo. Não é amigável e a comunidade é muito menor do que da Unity.

Sobre a linguagem em si temos uma competidora do Java que a Microsoft foi obrigada a criar pois segundo foi documentado, a Sun, antiga detentora da linguagem Java, processou a Microsoft por manter uma implementação própria da JVM. O projetista principal da linguagem diz que na verdade C# bebe muito mais de C++ do que Java, e de fato existe muita coisa que Java se negou a fazer por um tempo como Enums e diferenças no funcionamento de Generics, existência da sobrecarga de operadores, namespeces, etc. Mas independente dessas coisas o mercado alvo de C# não é mais o de desenvolvedores C++, isso é bem óbvio.


Repositório com bibliotecas úteis e modernas
Nota: 3 (0 a 5)

Pela experiência que tive com a linguagem e pelo fato de C# não ter algo do nível de maven/gradle a linguagem peca muito nesse sentido. É bem comum o desenvolvedor .NET depender somente das bibliotecas oficiais, o que é péssimo. Muitos problemas recorrentes são resolvidos de maneiras distintas por conta disso.

A Unity acaba de implementar o seu Package Manager para atacar este problema também. Ainda esta engatinhando, falta muito para você ter a flexibilidade de um npm ou gradle, mas está na direção certa.


Compatibilidade entre diversos sistemas operacionais e plataformas
Nota: 5 (0 a 5)

Para o ponto de vista dos jogos não cabe reclamação. Pois na prática isso vira um problema da Unity ou do MonoGame. E eles resolvem este problema muito bem, pode ficar tranquilo que o seu jogo vai ficar praticamente igual entre as plataformas. Se você for iniciante, então, não sentirá diferença nenhuma. Essa é na verdade uma das grandes promessas da Unity (e do MonoGame).


Performance nua e crua
Nota: 4 (0 a 5)

Em jogos, por C# ter um sistema de tipos bem definido, principalmente tipos numéricos, é de se esperar que mesmo lidando com uma máquina virtual seja possível produzir código de máquina extremamente eficiente, além da técnica de JIT.

O JIT infelizmente não é possível de ser feito em muitas plataformas no caso da Unity e difícilmente outras engines tentariam fazer diferente, inclusive em algumas isso é até proibido por contrato como no caso do iOS.

Se estiver fazendo um jogo Standalone (Windows, OSX e Linux) esta restrição não existe e o código que será executado pela máquina é bastante otimizado, em muitos casos chegando bem próximo ao código C++. Leia mais sobre o assunto neste artigo do autor da mono, motor por trás dos scripts da Unity.


Base de usuários
Nota: 5 (0 a 5)

Muita gente começa a programar jogos através de C# ultimamente. Assim como JavaScript, não podemos reclamar aqui.


Vagas de emprego
Nota: 4 (0 a 5)

C# não é tão bom quanto JavaScript e Java para se conseguir um emprego mas a Microsoft é muito forte no meio corporativo, muitas empresas desenvolvem seus sistemas internos utilizando .NET. Se estamos falando de jogos C# é uma obrigação, para o bem e para o mal caso você queira ser um empregado.


Uso em um studio independente de jogos
Nota: 5 (0 a 5)

Vou na linha da defesa que acabei de fazer para os dois últimos critérios. Acho muito difícil alguém conseguir começar a desenvolver jogos e fazer algo de qualidade sem usar Unity e alcançar todas as suas plataformas e produtividade. É claro que existem exceções, mas estou falando da regra aqui.


Total
Nota: 28 (0 a 30)

Ganhou então a C#. Não vou mais me alongar em sua defesa. Só aprenda, você vai precisar dela. Se você quer saber o melhor jeito de aprender esta linguagem, principalmente no contexto do desenvolvimento de jogos, mande um email para [email protected] pedindo informações que eu irei lhe enviar com o maior prazer. Se inscreva em nossa lista de email para receber artigos de desenvolvimento de jogos.


Perguntas/Queries relacionadas
  • melhor linguagem programação 2018 2017
  • linguagem iniciantes
  • linguagem programacao de jogos
  • linguagem desenvolvimento de jogos
  • JavaScript para jogos
  • C# para jogos
  • C# vs JavaScript
© Bladecast 2018. Todos os direitos reservados.