Pitch: ExpressoTS um framework nodejs/typescript Brasileiro - Richard, ExpressoTS e um convite a você!
Quem sou eu
Olá pessoal, antes de mais nada, me chamo Richard Zampieri e sou Brasileiro! :)
Já trabalhei em diversas empresas no Brasil, China, Europa e nos últimos quase 7 anos trabalhando e morando no Canadá. Tive oportunidade de trabalhar em projetos grandes como montagem da fabrica da Foxconn em SP/Jundiai e Indaiatuba para produção dos equipmentos da Apple e injeção do software, como na Positron com rastreamento e alarme, Fleury com integraçoes de sistemas clínicos e SAP, e mais recentemente como Líder técnico da Hitachi/Wenco na criação de uma ISO/AWI 23725 ( FMS interface to autonomous haulage ) que define como deve ser uma interface para carro autônomo na área de mineração. Atualmente trabalho para Imdex Limited como líder técnico desenvolvendo uma engine de renderização de modelos geostatísticos para exploração de minério, óleo e gás.
Já fui eleito pela Revista ComputerWorld como os 100 melhores CIO's do Brasil nr 67 e tambem fui professor universitário da LaSalle College Vancouver por 5.8 anos no curso de bacharelado em desenvolvimento de jogos, e já tive diversos alunos brasileiros que estudaram comigo e hoje estão na indústria de jogos em grandes empresas como EA, RockStar, Ubisoft, Coallition e por ai vai.
Trabalho atualmente com
- C++
- C#
- Nodejs/Typescript
- Python
Contexto
Resolvi começar o texto me apresentando dessa forma, que nem no Linkedin e na twitch onde faco streaming ocasionalmente me apresento, pelo simples motivo de dar um contexto para o conteúdo real desse post, que é, o ExpressoTS Framework.
Com certeza não vou conseguir expressar tudo que gostaria nesta publicação, então muitas coisas provavelmente vão ficar em aberto para discussões, o que é saudável. Se quiser conhecer de fato minha linha de pensamento a gente pode conversar na Twitch onde faco streaming ou pelo discord, ou me envie um email e conversamos.
Bom, tive a sorte de ter trabalhado em varias linhas de negocio e feito varios projetos para a industria privada, e alguns poucos, mais muito poucos para Open Source. Sempre entendi a importância de projetos Open Source e agora no atual momento que a tecnologia transforma a área de desenvolvimento, a colaboração, criação e compartilhamento se fazem mais que vitais para o contínuo crescimento da área de engenharia de software, diria até a sobrevivência.
Quando trabalhando no Brasil, sempre foi muito corrido desenvolver tecnologia, é a nossa vida, a gente acorda cedo, vai pro trabalho, investe e é pago, pelas nossas melhores horas do dia pra contribuir para um produto da iniciativa privada. Nada de errado com isso, mas o que sobra pra gente compartilhar com a comunidade?
Acho que muitos de vocês talvez se reconheçam nessa história, pois é a vida de muitos, a gente chega cansado e não consegue trabalhar em mais nada.
Além desta questão eu sempre fiquei um pouco frustrado com o fato de termos tanta gente boa no Brasil mas nenhuma tecnologia de nome internacional que elevasse a gente a uma categoria de criadores de tecnologia ao invés de consumidores de tecnologia. Acho que as únicas technologias que desenvolvemos até hoje foram o elixir
e o lua
. Já tivemos a nossa distribuição linux kurumim
mas é isso, desconheço outras que representem o Brasil no cenário internacional. Sempre imaginei que podemos fazer mais e podemos chegar lá.
A minha mudança de país, hoje morando no Canada, tive condições de ter uma vida mais organizada onde consigo investir tempo em pesquisa e desenvolvimento e contribuir não só com a industria privada mas com Open Source. Foi nesse sentido e com essas idéias em mente que comecei a contribuir mais forte com o Open Source nos últimos 4 anos. Daí nasceu o ExpressoTS :)
ExpressoTS Framework
Antes de você questionar, nossa mais um framework no cenário!!! nós precisamos entender a big picture. Framework não é bala de prata
mas é outra abstração para facilitar e acelerar o desenvolvimento de software. Nesse sentido não é diferente de uma linguage de programação ou paradigma de desenvolvimento, pois ambos tentam definir um padrão de como desenvolver aplicações rapidamente e de maneira escalável.
O ExpressoTS não é melhor que o NestJS, ou Angular, ou .NET Core, ou Spring Boot, na verdade, ele é o resultado de experiências e boas práticas tidas com esses frameworks. O que o ExpressoTS tenta entregar é uma experiência de documentação atualizada e fácil de entender, além de evitar que o desenvolvedor gaste tempo em boilerplate toda vez que ele precise iniciar um novo projeto, por exemplo como definir estrutura de projeto, definir banco e criar conexão com banco, escolher e configurar ORM, definir método de autenticação e aí acho que você já entendeu onde quero chegar.
Recentemente fizemos o benchmark do ExpressoTS com outras ferramentas como Nestjs, Adonis e até mesmo em outros frameworks, e adivinha o que descobrimos? O ExpressoTS tem a mesma performance, se não melhor em alguns quesitos em relação aos outros frameworks, que no final do tempo de respota produtivo de 1000 usuários concorrents com 59k transações, o tempo médio de reposta era de 8.9ms, ou seja, novamente tão rápido quanto qualquer outro framework. O que faz sentido, pois usamos o mesmo http server, ou express ou fastify.
Então o que torna o ExpressoTS tão diferente? A simplicidade, a extensibilidade, e o fato de estar sendo desenvolvido somente por brasileiros. Abri o projeto publicamente no início deste ano no github, pois o mesmo vem sendo desenvolvido desde o início da pandemia, e todo mundo é bem vindo para poder contribuir. Temos reuniões semanais, no sábado as 16h no horário de Brasilia, onde discutimos o estado atual e o que vamos implementar. Todos são bem vindos! Na verdade, mais cabeças, melhores idéias.
Recebo constantemente mensagens de comunidades de TS e Nodejs aqui na gringa querendo participar do desenvolvimento de maneira mais ativa. Entendo que seja um erro estratégico não permitir que essas pessoas entrem nesse momento, ajudando na espanção do projeto internacionalmente. Mas o que para uns seja um erro estratégico que impeça o framework de avançar mais rápido, na minha visão não, quero poder segurar o quanto puder, pois no momento tem sido uma forma de dar oportunidade para a comunidade brasileira desenvolver tecnologia, ao invés de aceitar os PRs internacionais. Vamos ver até quando conseguimos segurar isso.
Pronto para Produção
Hoje ainda não fizemos um lançamento oficial pois nossa página institucional está em desenvolvimento, mas o projeto já é produtivo e está funcionando em 4 empresas, onde damos suporte diretamente. O lançamento oficial está chegando nas próximas semanas.
Quanto maior a adoção, mais problemas temos, o que ajuda a solidificar e melhorar o framework ainda mais. Então, tragam problemas. :)
Aqui está a documentação oficial em contínua melhoria.
Convite
Se você tiver a oportunidade de ler esse texto até aqui, considere contribuir com o projeto dando uma estrela no projeto Star ExpressoTS, revisando a documentação, traduzindo, fazendo QA, subindo sua PR com ideias, entrando no discord, e etc.
Essa é a forma mais efetiva para esse framework brasileiro tomar seu lugar nas estrelas junto com Nestjs como uma forte alternativa para server side applications enterprise solution.
Também uma oportunidade de você mergulhar em problemas complexos que é construir um framework e aprender a fundo conceitos que não fazem parte do nosso dia a dia de criação de CRUDs.
Conclusão
O objetivo deste post é te apresentar o projeto e dizer que você é mais que bem vindo para contribuir com projeto além de poder explicar um pouco da história do projeto e quem está por de trás da iniciativa.
Espero que esse convite te instigue a contribuir para o sucesso do ExpressoTS. E ouvir sua opinião sobre a iniciativa é bem importante.
Mensagem Final ao Dev
Olá, Dev
Obrigado por embarcar conosco nesta jornada para criar uma experiência de desenvolvimento ambiciosa e empolgante que está sempre melhorando. 🎉🎉🎉
ExpressoTS é tão simples, porém eficiente em fazer o trabalho. Queremos continuar fazendo isso, abstrair todas as complexidades que o mundo do desenvolvimento de software traz e facilitar a construção do seu próximo projeto.
Se você pensar a respeito, cada funcionalidade de linguagem de programação, framework construído, é para acelerar seu processo de desenvolvimento, no entanto, estamos continuamente falhando em fornecer uma boa documentação, boa experiência para o desenvolvedor, além de reduzir a quantidade de código boilerplate que você precisa escrever. Tudo deveria simplesmente funcionar!
Este é o nosso compromisso, tornar a sua vida mais fácil, e fazer com que você seja mais produtivo.
Estamos muito abertos a feedbacks, ideias e contribuições. Somos um projeto impulsionado pela comunidade, e queremos ouvir de você.
Obrigado novamente por fazer parte desta jornada conosco, Happy Coding! 🚀