[Questionamento / Opinião] - Dart / JavaScript
Pessoal estudo programação desde 2019, na época estava na faculdade, lá começamos com a linguagem C e pouco tempo depois no Python. De lá pra cá, tenho usado Python em alguns projetos pessoais, CRUDs e projetos web com Django. Porém, estive pensando em investir tempo em aprender uma linguagem que me facilitasse o desenvolvimento de projetos que pudesse distribuir em multiplataforma. Nesse sentido, pensei em focar meu aprendizado em Dart ou JavaScript, pelas duas oferecerem o que estou buscando. Gostaria de saber o que acham dessas duas linguagens e qual delas seria interessante começar? Agradeço a todos que puderem deixar sua contribuição.
No início eu não gostava do JavaScript, até hoje vejo os memes do "1"+"1" = 11. Como uma linguagem foi utilizar o + para concatenar 😅. Mas o JavaScript foi evoluindo até chegar em um nível de simplicidade para manipular elementos do DOM sem a necessidade de utilizar nenhum framework ou biblioteca. Com a chegada do node.js / V8 a brincadeira ficou ainda mais divertida por ser a única linguagem que todos os programadores web já utilizam, caiu muito fácil na graça de todos. Até porque quando utilizamos o JS na manipulação do DOM o código todo é aberto, basta dar um ctrl+u. Eu mesmo já copiei muito código de outros sites. Já no backend isso não acontece. Atualmente tenho 2 linguagens preferidas PHP e JS.
Sobre o Dart nunca utilizei na prática mas com certeza se utilizar vou me apaixonar também!
Em 2020 até cheguei fazer um vídeo sobre os 5 motivos que fez o JS ficar tão famoso. https://youtu.be/FeyNsqTnMws
Esse tipo de pergunta é sempre difícil de responder, pois vai muito de entender em detalhes o contexto que a pessoa vive. Mas vou tentar dar uma visão macro no que acredito e isso obviamente vai ter um viés na linguagem que uso hoje que é JavaScript.
Mas eu preciso começar destacando que Dart, na minha visão, é uma linguagem muito mais profissional que o JavaScript, fora que ela não precisa manter backwards compatibility
que o JavaScript precisa. Então difícilmente o JavaScript consegue se desfazer de decisões erradas que foram implementadas na linguagem no passado para justamente manter a web compatível o máximo que der. Então ela só fica cada vez mais complexa.
Por outro lado, o Dart foi criado para matar o JavaScript e literalmente essa era uma das campanhas informais que eram rodadas no passado quando a linguagem surgiu. Isso foi um baita passo em falso, deu super errado e a linguagem ficou num limbo... até se tornar a linguagem base do Flutter em maio de 2017.
Então hoje o maior volume das pessoas que utilizam Dart não é pela lingugem em sí, mas pelo Flutter, por um framework que resolve algum problema de uma forma ótima. E não tem nada de surpreendente nisso, porque com JavaScript é o exato mesmo comportamento.
Eu odiava com todas as minhas forças ter que programar em JavaScript, mas me forcei aprender para conseguir usar o Socket.io, que é uma biblioteca para trabalhar com WebSockets para Node.js. Eu não queria saber de JavaScript, eu não queria saber de Node.js, mas eu queria muito conseguir usar o Socket.io para fazer um chat em tempo-real.
E a popularidade do JavaScript vem em partes disso, sendo que com o Dart isso aconteceu apenas com o Flutter. O JavaScript não ganhou força pela linguagem que ela é, mas ganhou com diversas "ondas", frameworks, bibliotecas, em diversas áreas e também em diversas etapas do desenvolvimento. Por exemplo, no passado era muito comum você programar utilizando qualquer stack que não fosse JavaScript, mas utilizar as "build tools" em Node.js para compilar assets estáticos. Muitas pessoas aprenderam JavaScript com a onda dos aplicativos desktop híbridos usando o Electron, ou os aplicativos mobile nativos com React Native, ou até com a inesperada popularização de vários editores de código escritos em JavaScript, com o ganhador sendo o VS Code.
E numa visão macro da história da linguagem, há duas enormes ondas, sendo que a primeira foi o JavaScript ser a única linguagem compatível com os navegadores, e a segunda onda foi justamente com a criação do Node.js e as pessoas conseguirem criar soluções "full stack" utilizando uma única linguagem de programação. Não que isso seja a melhor escolha, mas em muitos cenários isso é o suficiente. Bom, a gente está conversando pelo TabNews que é uma plataforma que tem o frontend e backend escrito em JavaScript.
Bom, independente disso, sempre que eu escolho uma tecnologia eu tento pensar se eu tenho um Plano B caso meu principal objetivo com ela não dê certo. Por exemplo, se eu escolhesse Dart e Flutter, eu pensaria no quanto eu aprenderia sobre desenvolvimento mobile, principalmente na parte de UX e como eu poderia reaproveitar isso para qualquer outro passo que as tecnologias vão dar. Se eu escolhesse JavaScript, eu pensaria em todas as outras áreas que eu posso atuar com essa mesma linguagem se React Native não der certo.
Enfim, fica agora no seu exercício pensar se tanto o Plano A da sua escolha, quanto os Planos B, C, D, etc... lhe agradam 🤝