🛠️ Quatro novos recursos da ECMA já disponíveis para JavaScript
Tem novidades como Object.groupBy(), parecido com o GROUP BY do SQL, entre outras. Mais: Brasil top 10 em investimentos de TI, Llama 3 disponível, Valkey como alternativa ao Redis e bolha na IA.
Quatro novos recursos da chamada ECMASCript 2024 ou ES15 — especificação que padroniza o JavaScript — estão disponíveis e já são suportados em navegadores e no Node.JS.
Embora nem todos venham a ser usados no dia a dia de uma pessoa desenvolvedora, vale se manter atualizado.
Os recursos estão resumidos a seguir (os links levam à documentação da Mozilla):
Promise.withResolvers: permite acesso externo às funções
resolve
ereject
dePromises
, o que possibilita casos de uso mais avançados, como reutilizá-las para eventos recorrentes, por exemplo. Na prática, em vez de aninhar toda a lógica dentro do executor da promessa, permite manipular a resolução/rejeição externamente.Object.groupBy: permite organizar elementos de objetos iteráveis em grupos, baseados em alguma característica. Exemplo: você pode ter um objeto contendo arrays. Cada array especifica um produto, com categoria e quantidade. Em vez de usar loops, você pode usar
Object.groupBy()
para agrupar os diversos produtos por categoria ou por quantidade. Lembra doGROUP BY
no SQL? É parecido.Map.groupBy: similar ao
Object.groupBy()
, permite agrupar elementos identificados por objetos. Pegando o exemplo acima, de arrays de produtos,Map.groupBy()
permite retornar produtos de acordo com uma condição atendida, como a quantidade do produto ser maior ou menor que um valor desejado. Útil, principalmente, se o objeto mudar com o tempo.Atomics.waitAsync: permite aguardar assincronamente por uma mudança em uma área de memória compartilhada, sem bloquear a thread principal, como ocorreria com
Atomics.wait()
. Requer arrays tipados Int32Array ou BigInt64Array como parâmetros. Desabilitada por padrão nos browsers, mas disponível no Node.String.isWellFormed: permite determinar se uma string é válida em UTF-16, padrão que JavaScript consegue processar. Útil para lidar com entradas de usuários, dados incorretos ou falhas de redes, por exemplo, que geram "lone surrogates" (algo como "substitutos solitários", na falta de uma expressão em português).
String.toWellFormed: faz o caminho inverso de
isWellFormed
. Permite transformar uma determinada string em padrão UTF-16, capaz de ser processada em JavaScript. Na prática, converte qualquer "lone surrogate" no caractere U+FFFD ou � (ponto de interrogação em um losango preto).
Este artigo da InfoWorld traz mais explicações e exemplos em código. Este artigo no Medium traz uma visão geral e soma recursos em discussão.
Outros recursos da ES15 envolvem ArrayBuffers, SharedArrayBuffers e RegExps. Um novo release do grupo de trabalho da padronização está previsto para junho.
Os códigos e discussões ocorrem neste GitHub. A fonte oficial de novas especificações são os drafts da ECMAScript, como o ECMA-262.
Embora extensa, com redundâncias pela própria história do JavaScript e novidades discutidas o tempo todo, é interessante acompanhar a evolução ECMAScript, ao menos por alto.
Mesmo que nem todos os recursos façam sentido no dia a dia, podem surgir alguns que economizem esforços e umas boas linhas de código.
🇧🇷 Brasil volta ao top 10 das potências de TI
O Brasil retornou à lista dos dez países que mais investiram em TI, superando Coreia do Sul e Itália. Dos US$ 3,2 trilhões do setor, globalmente, em 2023, US$ 50 bilhões foram de investimentos brasileiros. Software (+13,4%) e serviços (+10,6%). Mesmo com os investimentos, o tamanho do mercado permaneceu o mesmo de 2022 para 2023 (-0,4%). Para 2024, a expectativa é que o Brasil cresça 6%, se aproximando da média global (7,4%). Soluções de ERP e CRM (US$ 5,6B), cybersegurança (US$ 1,7B), dados em nuvem (US$ 1,5B) e mercado de IA dobrando de tamanho são tendências. Mais em estudo da Abes com o IDC.
🦙 Meta lança LLama 3, IA open source que bate concorrentes
A Meta lançou esta semana o Llama 3, LLM open source em versões 8B e 70B (bilhões de parâmetros). É interessante ficar ligado porque é um dos modelos abertos mais usados por empresas para implementar soluções próprias de IA. O modelo bate concorrentes como Gemma (Google) e Claude 3 Sonnet (Anthropic), e foi treinado com um conjunto de dados 7x maior que o Llama 2, sendo 4x mais códigos. Ele será incorporado como assistente de IA nos produtos Meta gradativamente. Llama está disponível para uso no GitHub e diversas plataformas. Para quem quer brincar, está também no HuggingChat. Mais no meta.ai.
⤴️ Valkey, fork open source do Redis, disponível no GitHub
Na edição de 28/03/2024, falamos da mudança de licença do Redis e como isto provocou forks na comunidade. Pois saiu a primeira versão estável do Valkey, fork open source do Redis, no GitHub. Valkey é uma criação da Linux Foundation com apoio de Amazon, Google, Oracle, Ericson e Snap. Um dos motivos para o fork é que o Valkey torna a distribuição do kernel Linux mais independente das decisões de terceiros. O fork é baseado na última versão do Redis. A versão 7.2.5 mapeia prefixos binários de “redis” para “valkey” ao migrar de um serviço para outro. Mais aqui, aqui e aqui.
💸 Mudou o discurso: agora, IA é bolha
A fase de hype de qualquer tecnologia diz muito mais sobre comportamentos irracionais de, nós, humanos do que sobre a própria tecnologia. Tem surgido mais críticos dizendo que a IA já vive uma "bolha". Sequoia, empresa de capital de risco, estima que empresas gastaram US$ 50 bi em hardware Nvidia em 2023, para gerarem meros US$ 3 bi de receita com IA. CEO da Deepmind diz que a indústria de IA está cheia de "trapaceiros". Venture capitalistas criticam Sam Altman, da OpenAI, de megalomaníaco. O newsletter The Algorithm Bridge amarra isso e mais. O bom é que depois de hypes a tecnologia costuma avançar em bases mais sóbrias.
🌐 35 anos do domínio ".br", um dos mais populares do mundo
O Comitê Gestor da Internet no Brasil (CGI.br) comemorou esta semana 35 anos do domínio ".br". Há 5,3 milhões de nomes registrados, o que faz dele um dos domínios para país mais populares do mundo. Atualmente, ocupa a 6ª posição dentre os mais de 300 existentes. O ".br" disponibiliza mais de 130 categorias, desde as mais tradicionais até as mais recentes, como para cidades ("floripa.br", "rio.br" etc.). O gov.br, do Governo Federal, é um dos endereços ".br" mais acessados mundialmente, com milhares de acessos por segundo. Mais no nic.br.
❓Você consegue definir o que é desenvolvimento de software e o que é engenharia de software?
Ok, vale usar o ChatGPT. Mas é sempre bom pesquisar e anotar nas próprias palavras para fixar o aprendizado. Explicaremos na próxima edição.
A propósito, a resposta à pergunta anterior é: usamos mais GPUs do que CPUs para treinar IAs porque, grosso modo, são otimizadas para cálculos de matrizes em paralelo. GPUs foram construídas para operações gráficas, que envolvem cálculos matriciais para renderizar imagens. Modelos de IA, em essência, também lidam com grandes matrizes ou tensores de dados — pense em arrays multidimensionais. Sejam texto (matrizes de palavras ou tokens), sejam imagens (matrizes de pixels), tudo isso pode ser convertido em arrays de números. No fim das contas, como explica a Nvidia neste artigo sobre o assunto, é uma grande "lasanha matemática".
Obrigado por ler!
Voltaremos com mais fatos, tendências e dicas na próxima sexta. Curta, compartilhe, comente e vote na enquete. Obrigado por ler e por estar com Be!