A API do Google V8 une o WebAssembly e a Web assíncrona

Os desenvolvedores do mecanismo V8 JavaScript/WebAssembly do Google introduziram a API JavaScript Promise Integration (JSPI), permitindo que aplicativos WebAssembly que assumem que o acesso à funcionalidade externa seja síncrono funcionem sem problemas em ambientes assíncronos. Isso foi feito pois hoje, API WebAssembly JavaScript Promise Integration suspende um aplicativo Wasm quando ele emite uma chamada de API síncrona e a retoma quando a operação de E/S assíncrona é concluída.

Importante!!!!!

Atualmente em estágio experimental, o JSPI ainda não deve ser usado em aplicativos de produção, disseram os desenvolvedores. Eventualmente, ele se tornará um padrão para implementação nos principais navegadores, disseram eles.

Quando aconteceu?

Apresentado em uma postagem de blog V8 em 19 de janeiro, o JSPI faz a ponte entre aplicativos WebAssembly síncronos e APIs da Web assíncronos. Isso é feito suspendendo o aplicativo quando ele emite uma chamada de API síncrona e retomando quando a operação de E/S assíncrona é concluída. E o JSPI faz isso com pouquíssimas alterações no próprio aplicativo.

Muitas APIs modernas na Web funcionam de forma assíncrona, dividindo a funcionalidade no início e na resolução de uma operação. JSPI intercepta o JavaScript Promise retornado de uma chamada de API assíncrona, suspendendo a lógica principal do aplicativo WebAssembly e retornando um Promise da exportação usada para entrar no aplicativo WebAssembly. Quando a API assíncrona é concluída, o aplicativo WebAssembly é retomado para que possa processar os resultados da chamada de API.

Trabalhar com Promises é difícil, particularmente com WebAssembly, porque a manipulação direta de Promises no WebAssembly não é possível, disseram os desenvolvedores. O JSPI permite que os desenvolvedores criem aplicativos WebAssembly usando APIs síncronas e ainda participem do ecossistema assíncrono da web.

O JSPI está sendo desenvolvido nas arquiteturas Intel e ARM64. Está disponível para Linux, Windows, macOS e ChromeOS. Os desenvolvedores podem testar o JSPI localmente acessando chrome://flags no Chrome, procurando por “Experimental WebAssembly JavaScript Promise Integration (JSPI)” e marcando a caixa. Recomenda-se o uso do canal Chrome Canary. JSPI ainda não pode ser habilitado para usuários finais.

O WebAssembly foi aclamado como um avanço no desempenho de aplicativos da web. O formato de instrução binária permite que muitas linguagens de programação diferentes, incluindo C/C++, C# e Rust, sejam usadas para programação na web.

Microsoft cria proposta de tipagem para o JavaScript

A proposta planejada pela Microsoft e outros, incluindo desenvolvedores do programa Igalia Coding Experience e da Bloomberg, trata de adicionar “tipos como comentários” à linguagem.

A teoria é que seria possível ter uma sintaxe para tipos que poderiam ser usados ​​por ferramentas que precisam desses ganchos (como o próprio TypeScript da Microsoft) e ignorados por aqueles que não precisam.

Para ver a proposta orgina, clique aqui: https://devblogs.microsoft.com/typescript/a-proposal-for-type-syntax-in-javascript/

Em Resumo

“A ideia desta proposta”, disse Rosenwasser, “é que o JavaScript poderia criar um conjunto de sintaxe para tipos que os mecanismos ignorariam completamente, mas que ferramentas como TypeScript, Flow e outras poderiam usar”.

Rosenwasser foi rápido em enfatizar que a proposta não é colocar a verificação de tipo TypeScript em cada runtime JavaScript (certamente, pode-se imaginar todos os tipos de problemas de compatibilidade no futuro), em vez disso, o plano é que a abordagem seja escolhida por qualquer tipo verificador, não apenas os gostos de TypeScript.

Também ainda é apenas uma proposta no momento, prevista para a Etapa 1 do processo ECMA TC39. Há, portanto, muitos obstáculos pela frente antes que o conceito (se aceito) chegue à forma ECMAScript e muitas oportunidades para debate.

No entanto, a julgar pelas respostas de pouco mais de 16.000 desenvolvedores que responderam a perguntas na pesquisa State of JavaScript de 2021, há apetite por algum tipo de funcionalidade de tipo. A proposta dos desenvolvedores é um primeiro passo no caminho.

Live sobre Front-end JS e APEX

Olá pessoal, hoje é mainha primeira live solo apresentando sobre programação Front-end com o Oracle APEX. Nele estarei falando de diversas funcionalidades nas ações dinâmicas (event listeners) e como usar expressões javascript para estender as funcionalidades do código.

Onde?

A live será hoje, dia 21/06/22 as 20:00 no youtube pelo link:

Link da Live

Quais serão os tópicos?

Estarei falando de Oracle APEX, Ações Dinâmicas, JavaScript e jQuery

Isso ai, quem tiver interesse pode dar um pulo lá ou assistir depois.

JavaScriptLandia – Para aqueles que amam JavaScript

O que é?

JavaScriptLandia, o programa de suporte individual da OpenJS Foundation, é um lugar onde todos os fãs de JavaScript, não importa seu sabor ou preferência de tecnologia, podem expressar de forma criativa suporte para o ecossistema JavaScript e comunidades OpenJS

Quais são os benefícios do programa JavaScriptLandia?

  • Um crachá digital para adicionar aos seus perfis online, avatar, blog e/ou site pessoal. Os detalhes serão enviados por e-mail separadamente dentro de uma semana.
  • Reconhecimento nesta página! Novos apoiadores serão adicionados à página semanalmente.
  • Um boletim semanal de apoiadores que o mantém atualizado sobre as últimas novidades dos projetos OpenJS, do Conselho de Projetos Cruzados e do Conselho de Administração. Você também será convidado a participar de discussões sobre governança e novas iniciativas.
  • Descontos para treinamento, certificação, conferências e outras ofertas exclusivas.

Angular 14 – Formulários Digitados e Componentes Independentes

Angular 14 foi lançado no início deste mês com a atualização mais significativa desde Ivy. Ele inclui dois recursos muito esperados, formulários reativos digitados e componentes autônomos, além de várias pequenas melhorias.

Os formulários reativos estritamente tipados são uma solicitação da comunidade de longa data que pode ser datada do lançamento do Angular 2.

Até o Angular 14, o Reactive Forms não incluía definições de tipo em muitas de suas classes, e o TypeScript não detectava bugs como no exemplo a seguir durante a compilação.

const login = new FormGroup({
  email: new FormControl(''),
  password: new FormControl(''),
});

console.log(login.value.notanemail);

Com o Angular 14, FormGroup, formControl e classes relacionadas incluem definições de tipo que permitem que o TypeScript detecte muitos erros comuns.

A migração para os novos Formulários Reativos Digitados não é automática. Os controladores de formulário, grupos, etc. existentes serão prefixados com Untyped durante a atualização, que retém a definição de tipo exata das versões anteriores do Angular.

Para aproveitar os novos formulários reativos tipados, os desenvolvedores precisarão remover manualmente o prefixo não digitado e corrigir quaisquer erros que possam surgir.

Os desenvolvedores podem encontrar mais detalhes na documentação de Formulários Reativos Digitados. A segunda grande mudança fornecida com o Angular 14 é o conceito de componentes autônomos.

Módulos Angular têm sido um assunto contestado há muito tempo, com muitos membros da comunidade alegando que isso leva a complicações desnecessárias nos aplicativos Angular.

Com o Angular 14, agora é possível criar componentes autônomos simplesmente passando a propriedade standalone: ​​true no decorador Component.

@Component({
  selector: 'sample-component',
  standalone: true,
  template: ``,
  imports: [ ComponentOne, ComponentTwo, SampleDirective,
             SampleService, CommonModule]
  ],
})
export class SampleComponent {
    ...
}

Como a injeção de dependência Angular ainda é necessária, muitas definições de módulo foram movidas para o decorador de componentes.

Ainda não está claro como a comunidade adotará esse novo recurso, e a equipe do Angular sinalizou o recurso como uma prévia do desenvolvedor e pode alterar a API em versões futuras.

Esta versão também inclui uma nova framework de diagnóstico estendida, que fornece feedback aprimorado sobre erros de modelo e práticas recomendadas.

Atualmente, o framework inclui dois novos avisos, um para a sintaxe inversa de banana em uma caixa ([]) (que é válida, mas raramente pretendida) e união nula desnecessária (??) quando a entrada não é anulável.

Por fim, o Angular 14 usa o TypeScript 4.7 mais recente e tem como alvo o ES2020 por padrão. Para uma lista completa de mudanças, acesse o anúncio oficial de lançamento

Angular é um software de código aberto disponível sob a licença do MIT. Contribuições são bem-vindas através do repositório Angular GitHub.

Fonte:

https://www.infoq.com/news/2022/06/angular-14-typed-forms/

https://github.com/angular/angular

Começa hoje a JS Nation

Gostaria de saber tudo que está acontecendo de novo com o JavaScript? Começa hoje 16/07/22 as 9:00 a JS Nation

O que é?

JSNation é um evento de 2 dias e 2 trilhas focado exclusivamente no desenvolvimento JavaScript. Descubra o futuro do ecossistema de desenvolvimento JavaScript e conecte-se à sua multidão estelar!

Este ano, o formato do evento será híbrido, com o primeiro dia (16 de junho) transmitido do local de Amsterdã, incluindo recursos híbridos de rede e entretenimento interativo; e segundo dia (20 de junho), além dos inúmeros workshops gratuitos, transmitidos online para o público global.

Palestras Grátis

A melhor parte para a grande maioria é sempre o fato de haverem palestras grátis 🙂

Veja aqui no link a lista de palestras: https://jsnation.com/remote-js-workshops

Workshops

Gostaria e pode gastar um pouco mais para aprender mais? então de uma olhada nos workshops disponiveis. Infelizmente eles tem um valor a parte até de alguns ingressos pagos, mas se o conhecimento tiver valor para o seu crescimento, vale o investimento. Veja aqui o link https://jsnation.com/js-workshops

Qwik.JS – Mais velocidade no site

Sobre o Qwik

O Qwik foi projetado para o tempo de carregamento de página mais rápido possível. Ele alcança isso fazendo com o HTML seja carregado todo primeiro enquanto deixa o máximo possível de javascript para após esta carga inicial.

Isso está em total contraste com as estruturas existentes que tratam a renderização do lado do servidor e o tempo de interação mais como uma reflexão tardia em vez de um objetivo principal, que orienta todas as outras decisões de design.


Replayable x Resumable

Esse dois são dificieis de traduzir… kkkkkk… Mas a grande sacada que o Qwik tenta trazer é essa questão de que o lado do cliente deve dar continuidade (resumable) ao trabalho entregue pelo servidor e o que temos na maioria dos casos é um custo de rexecução de lógica em duas pontas (replayable). Esse custo começa a crescer muito conforme o site cresce.


Mais informações

HTML-first, JavaScript last: the secret to web speed!

A first look at Qwik – the HTML first framework

Death by Closure (and how Qwik solves it)

Qwik: the answer to optimal fine-grained lazy loading

Visual studio Code agora tem um Debugger JavaScript nativo.

Para a felicidade dos programadores JavaScript, o VS code agora vem com uma forma nativa de fazer o debug do código. Antes era necessário baixar uma extensão que atende-se a esta necessidade como uma que a própria microsft fez e que funcionava em conjunto com o chrome.

Agora é possível debuggar apenas com pressinando F5 e ativando o icone de debug no menu e selecionando “Run and Debug” ou “Executar e debugar”… Depende da linguagem que seu vs code estiver configurada. :/

Claro que, a microsoft não da nó sem ponto, então eles também desenvolveram funcionalidades no edge que são mais integradas que permitem a inséção de elementos dentro do Visual Studio code. No blog deles eles escreveram:

“The first time you activate this button, the editor will ask you to install the Microsoft Edge DevTools for Visual Studio Code extension. Once you have this one installed, you won’t be prompted again,”

De forma resumida “Na primeira vez que for ativado o botão (inspeção no Edge), o edito pedirá para instalar o DevTools dele nas extensões e nada mais é necessário após isso.”

Separadamente, a Microsoft tem trabalhado em maneiras de melhorar a segurança para desenvolvedores por meio de um recurso que chama de Workplace Trust, que fornece “segurança extra contra a execução de código ao navegar por código-fonte desconhecido”. Ela também introduziu um Modo restrito “onde funcionalidades potencialmente prejudiciais são desabilitadas, para que você possa navegar pelo código com mais segurança e, eventualmente, tomar uma decisão informada”. Outra abordagens também estão sendo refinadas e serão liberadas conforme possível.

JavaScript dentro do Banco Oracle 21c

JavaScript dentro do Banco Oracle 21c

Recentemente a Oracle liberou a versão 21c do seu banco. Com essa nova versã, os desenvolvedores agora podem executar trechos de código JavaScript dentro do banco de dados. Isso permite que sejam executadas pequenas tarefas computacionais facilmente expressas em JavaScript, sem ter que mover os dados para uma camada intermediária ou navegador.

Como funciona?

O Multilingual Engine (MLE) no Oracle Database 21c, desenvolvido por GraalVM, mapeia automaticamente os tipos de dados JavaScript para os tipos de dados Oracle Database e vice-versa, para que os desenvolvedores não tenham que lidar com a conversão de tipo de dados eles próprios. Além disso, o próprio código JavaScript pode executar PL / SQL e SQL por meio de um módulo JavaScript integrado.

Tudo isso também permite que os desenvolvedores que utilizam a plataforma APEX (Oracle Application Express) usem JavaScript como uma linguagem de primeira classe em seus aplicativos APEX, sem ter que sacrificar o poder do PL / SQL e do SQL. Aqui está um exemplo de código que usa o pacote DBMS_MLE PL / SQL para executar o código JavaScript:

set serveroutput on;

DECLARE
  ctx dbms_mle.context_handle_t;
  source CLOB;
  greeting VARCHAR2(100);
BEGIN
  ctx := dbms_mle.create_context(); -- Cria um contexto para execução usando o MLE

  dbms_mle.export_to_mle(ctx, 'person', 'World'); -- Exporta os valores do PL/SQL

  source := q'~
    var bindings = require("mle-js-bindings");
    var person = bindings.importValue("person"); // Importa os valores exportados anteriormente
    var greeting = "Hello, " + person + "!";
    bindings.exportValue("greeting", greeting); // Exporta os valores para o PL
  ~';

  dbms_mle.eval(ctx, 'JAVASCRIPT', source); -- Avalia e executa o código dentro do contexto

  dbms_mle.import_from_mle(ctx, 'greeting', greeting); -- Importa os valores exportados pelo MLE

  dbms_output.put_line('Greetings from MLE: ' || greeting);

  dbms_mle.drop_context(ctx);
END;

Como você pode ver, o JavaScript pode ser usado como algumas linguagens de script já funcionam quando são invocadas dentro de outras.

Para aqueles que usam APEX

Agora se você estiver utilizando o APEX com o banco 21c, você poderá executar o código de forma bem mais simples e sem utilizar uma linha de PL. Basta mudar a configuração e executar seu código

Image for post
// getting page item values
const empno = apex.env.P1_ID;
const salary = apex.env.P1_SAL;

// executing DML operations
apex.conn.execute('update emp set sal = :sal where empno = :empno', {
    sal: salary,
    empno: empno 
});

// executing PL/SQL
apex.conn.execute('begin apex_debug.message(:1); end;', ['Updated salary for ' + empno]);

// messages passed to console.log will also end up in the debug logs
console.log('Updated salary for ' + empno, ' using console.log for printing');

// setting page item values
apex.env.P1_STATUS = 'Success!';

Como mostra este exemplo, você pode interagir com os itens da página via apex.env e executar DML ou PL / SQL via apex.conn.execute

A documentação formal da API dessas novas APIs ainda está por vir. No entanto, eles são um subconjunto do Driver Oracle Node.js, embora com diferenças notáveis, como a mudança de funções assíncronas para síncronas. Você também pode encontrar exemplos no texto de ajuda do respectivo atributo e navegando no preenchimento automático do editor de código.

JS Fest 2020

A JS Fest acontecerá na Ucrânia, nos dias 30-31 de Outubro de 2020. A JS Fest é um evento/conferência internacional que considera sobre todos os aspectos do desenvolvimento com javaScript. É uma das maiores conferências sobre desenvolvimento JavaScript de toda a Europa, reunindo centenas de pessoas com experiência na tecnologia. A conferência acontecerá pelo terceiro ano consecutivo e são esperados palestrantes de 10 países ao redor do mundo. Por tradição, a conferência ocorrerá na cidade de Kyiv – Ucrânia.

Será falado sobre:

  • Arquitetura de apps;
  • Frameworks modernos, como GraphQL, TypeScript, etc;
  • Blockchain;
  • Desenvolvimento mobile, em particular com Flutter;
  • Aplicativos JS de IA;
  • Tópicos recentes em desenvolvimento de software;
  • Como se manter atento com as tecnologias e requisitos de mercado.

Você pode esperar palestras sobre os temas:

  • Frameworks;
  • JavaScript no Backend;
  • Embarcados;
  • Mobile;
  • JS Core;
  • Arquitetura de software;
  • Design de software;
  • Otimização de aplicações;
  • Teste de aplicações;
  • Blockchain;
  • Inteligência Artificial;
  • Machine Learning.

O que você pode esperar do evento?

Abordagens e Ferramentas:

Na conferência, será abordado o tema de uso de ferramentas, frameworks e boas práticas no desenvolvimento.

Palestrantes famosos mundo afora:

Foram convidados especialistas dos Estados Unidos, Europa e Ucrânia que irão realizar palestras cheia de exemplos práticos sobre projetos utilizados na vida real.

Novos tópicos no mundo da tecnologia:

É uma oportunidade para aprender sobre as inovações e receber os insights em primeira mão.

Atmosfera especial:

Será criada uma atmosfera especial para a comunicação, receber novos conhecimentos, aprender, compartilhar ideias e inspirações.

Novas conexões e networking:

Este evento em larga-escala é uma excelente chance de adquirir novos contatos que poderão ser úteis no futuro de sua carreira no desenvolvimento.

Excelente Organização:

Trabalhando apenas com fornecedores comprovados e com estrito cumprimento de cronograma, para não haver surpresas ruins para você.

Sorteios:

Os parceiros prepararam surpresas e concursos interessantes para os participantes do evento, então você pode, além do conhecimento, ganhar alguns presentes!

Casos práticos:

Profissionais com experiência prática compartilharão conhecimentos e contarão sobre os desafios enfrentados nos seus projetos.

Você pode verificar em: https://jsfest.com.ua/indexe.html

Gostou desta notícia? Comente abaixo e compartilhe com seus amigos!

Referências:

https://jsfest.com.ua/indexe.html

https://armacad.info/