Porque usamos Dart na Venosyd

Sergio Eduardo Lisan
Venosyd Stories
Published in
4 min readJan 11, 2017

Cresci profissionalmente ouvindo dos meus mentores que o Java é a linguagem mais importante do mundo. E de fato, ainda é. Ao mesmo tempo, escuto continuamente sobre sua morte iminente, praticamente o meme do “Lula preso amanhã” das linguagens de programação. Eis que vivemos o advento das linguagens web que fazem de tudo, inclusive o trabalho do Java (agora vai?) e nesse caos, nomeado carinhosamente de JavaScript, encontro um milagre vindo das mãos do Google: a Dart.

O Porque usamos Java na Venosyd será explicado um dia, mas por ora, ele é usado nos mesmos casos que a maioria das empresas encaixam ele: backend e serviços web de sistemas grandes.

Falar “Java Web” é tido como pedido de demissão na Venosyd

Também, por obrigação, usamos Java nas soluções feitas nativamente pro Android como o eterno em desenvolvimento, Ágora.

Como fundador e primeiro programador da Venosyd, eu, obviamente, trouxe minha experiência para a empresa e seriamos uma startup Java-based. O problema é que Java Web não dá, em pleno século 2015 tinhamos que ter uma linguagem para a web.

Propuseram PHP (outro pedido de demissão) ou Python (até que vai). Pensei em tornar o software da Venosyd Javascript-based, já hoje em dia temos NodeJS e inúmeros frameworks. Então me veio a cabeça, no começo de 2016, de finalmente tentar aprender de fato uma linguagem web que atendesse a minha política de adoção de tecnologias (isso um dia vai ser um livro).

Em resumo: eu odeio complexidade estúpida. Eu gosto de solidez, uma stack firme que dure alguns anos. Gosto de uma stack que seja fácil para o time aprender e estar alinhado, que seja universal para que todos possam trabalhar na empresa falando a mesma linguagem. Isso é uma utopia, mas eu gosto de tentar alcançá-la.

O problema do Javascript é que hoje você precisa primeiro se converter a uma religião para começar a adotar o seu framework e sua stack, que vão durar… uns 2 anos no máximo até aparecer algo ridicularmente mais complexo na moda.

O “over support” da comunidade está gerando uma quantidade gigantesca de garbage e tirando atenção do que realmente importa: aumentar a produtividade.

O que vemos hoje é uma luta pela conquista do ecossistema.

Foi então que comecei a sondar o Dart e tentar entender porque o Google apostou em criar sua própria linguagem para poder enfrentar o JavaScript.

Dart mata vários problemas do JavaScript, que são suportados até hoje por causa da acomodação e da evolução sem planejamento do ecossistema ao longo do tempo.

Basicamente, a organização do Dart é o que chama atenção.

JavaScript e PHP são mais desorganizados que quarto de adolescente. É fácil se perder no código de ambas as linguagens. É fácil criar uma estrutura macarrônica nonsense. É fácil fazer algo que só vai ser mantido uma vez antes de ser recodificado porque os programadores perderam a paciência tentando arrumar a bagunça de desenvolvedores passados.

Dart é organizada em módulos, que ficam dentro de arquivos .dart. Esses módulos tem ponto de entrada (o famoso main() ) e podem ser organizados em bibliotecas, e tem muito do estilo Python. A interação entre eles pode ser através de importação (a lá Python) ou através do paralelismo.

Eu amo o paralelismo do Dart. A programação assíncrona é tão apaixonante que você vai abandonar o Java hoje mesmo. Callback hell not anymore. Todo módulo é um Isolate, e usando o conceito de Actors, você pode interagir com eles via URI. Lindo demais!

Fortemente tipada, a tipagem é opcional (usada mais para documentação mesmo e no modo checked para debug e verificação de erros) e tem vários sintax sugar que ajudam a deixar o código conciso e legível.

Posso dizer que o ecossistema Dart é realmente pensado para a geração atual de sistemas e aplicações: tem Dart pra web, pro servidor e pro mobile.

Angular 2 Dart/Polymer são os bem definidos e funcionais frameworks para web.

A DartVM funciona perfeitamente no lado do servidor. É de dar inveja a JVM/NodeJS.

Não testei o Flutter ainda, o framework mobile, mas acredito que está sendo desenvolvido para acabar com a tretinha com a Oracle.

Temos o pub que é o magnífico gerenciador de libraries do Dart. Você pode subir suas libs opensource para o pub central, ou deixar seu código privado em um repositório git, com o arquivo do pub no seu projeto apontando para ele. Como diziam nos anos 90: “mamão com açúcar”.

Quer desempenho e/ou esconder o código privado de uma lib? Basta criar um snapshot do módulo.

Dart é a Swift do Google. Dart é um Tesla, já vem tudo o que interessa de série. Eles estão criando uma linguagem única para fullstack (Go vai ser especificamente para alto desempenho e baixo nível de abstração). Isso aumenta e muito a produtividade de um time alinhado com a tecnologia.

Programadores vindos do Java, CaosScript e Python passam por uma curva de aprendizado de apenas alguns dias para se adaptar a linguagem.

Não vou ficar extendendo muito esse artigo, pois apenas serve de introdução. Ao longo do tempo vou postar as vantagens com detalhes, se possível até dados sobre as vantagens do uso da stack do Dart na Venosyd.

Mas por ora, pode ter certeza de que foi uma das decisões mais acertadas feitas pelo time nos últimos tempos.

Até a próxima!

Links para a galerinha:

--

--