Stack Overflow Survey: JavaScript ganha linguagem mais popular

Para aqueles que acompanham as pesquisas do Stack Overflow, saiu recentemente os resultados da pesquisa de 2019. Está é a maior e mais abrangente pesquisa do mundo para envolver programadores e suas preferências. A edição de 2019 desta pesquisa tocou cerca de 90.000 desenvolvedores.

Do que toca o JavaScript, a linguagem ficou em 1º lugar em popularidade entre todos os tipos de linguagem (programação, marcação, query, etc…). Este é o 7º ano seguido!!

Para uma listagem completa acesse: https://insights.stackoverflow.com/survey/2019#technology-_-programming-scripting-and-markup-languages


Outros resultados interessantes para o mundo JavaScript são os resultados sobre os frameworks web e é possível ver através da imagem abaixo que os frameworks para JS estão muito fortes:

Acesse: https://insights.stackoverflow.com/survey/2019#technology-_-web-frameworks

Por último, na categoria outros frameworks, bibliotecas e ferramentas, temos mais um representate de peso em 1º lugar e diversos com um bom posicionamento:

Para a listagem completa da imagem acima, acesse: https://insights.stackoverflow.com/survey/2019#technology-_-other-frameworks-libraries-and-tools


Os resultados da pesquisa são bem mais abrangentes que os 3 itens mostrados acima, vale apenas acessar o link oficial do Stack Overflow e conferir todos os detalhes, como linguagens que maid adoradas/odiadas, IDEs e outras pesquisas que eles fizeram para você saber melhor como estão as opiniões dos profissionais da area em relação as tecnologias atuais.

JNation: Confêrencia para Desenvolvedores Java e JavaScript

A JNation é uma conferência de desenvolvedores atualmente incorporando Java e JavaScript em sua essência, as duas linguagens de programação mais populares do mundo. A conferência que traz a Portugal diversos desenvolvedores conhecidos mundialmente ao Convento São Francisco, em Coimbra.

Para aqueles que podem se viajar até o local, no ano passado, a conferência contou com mais de 450 participantes, sendo que quase metade dos participantes tinham mais de 6 anos de experiência.

 O orador mais esperado e já anunciado é Venkat Subramaniam, professor na Universidade de Houston, autor premiado de livros de referência para qualquer programador, tais como “Practices of an Agile Developer” ou “Rediscovering JavaScript”, e fundador da Agile Developer, Inc. É Venkat quem faz o keynote de abertura.

Depois desta primeira sessão, os participantes vão dividir-se em 4 salas onde mais de 24 oradores vão partilhar as suas experiências e apresentar novidades de Java e JavaScript. Até dia 31 de março, os bilhetes estão disponíveis em jnation.pt a um preço reduzido, havendo também descontos para estudantes. Mas há mais oradores já confirmados (veja a lista oficial: https://jnation.pt/our-speakers/): Emily Jiang (IBM), Paulo Lopes (Principal Software Engineer, Red Hat), Burr Sutter (Founder, DevNexus), Philipp Krenn (Developer Advocate, Elastic) e Carlos Sanchez (Principal Software Engineer, CloudBees).

Esta segunda edição do evento traz a novidade do JavaScript. A edição do ano passado foi dedicada exclusivamente à comunidade Java. Dois meses antes da conferência ter lugar, já não havia bilhetes para a participar na JNation. Como causa, Roberto Cortez e Bruno Baptista, organizadores do evento, apontam: “nunca tinha havido uma conferência de Java em Portugal que desse o privilégio de falarmos com pessoas que só vemos nos códigos dos programas com que trabalhamos”.

A patrocinar a conferência estão marcas como Idealista, Present Technologies, Mercedes-Benz.io, Red Hat, Wit Software, Mindera, Blip, La Redoute, Feedzai, Tomitribe, Bosh e Critical Software.

A JNation está a ser organizada por duas comunidades de programadores: a JUG Coimbra, comunidade de programadores de java, e a undefined.js, comunidade de programadores de JavaScript, e ainda pela AlphaCoimbra, um grupo que tem como missão sedimentar o ecossistema empreendedor e tecnológico na cidade.

Fonte:

Site Oficial da Jnation

Tataruga Imobiliaria

Google está procurando Devs JS

Google continua seus esforços para o desenvolvimento do Fuchsia. Se você não ouviu falar segue um resumo:

Ao contrário de sistemas operacionais anteriores desenvolvidos pelo Google, como o Chrome OS e o Android, que são baseados no kernel Linux, Fuchsia é baseado em um novo microkernel chamado Zircon (o nome anterior era Magenta), derivado do Little Kernel, que foi destinado para sistemas embarcados e é principalmente escrito em C. Fuchsia foi projetado para ser executado em uma infinidade de dispositivos, incluindo telefones celulares e computadores pessoais.

Fonte: https://pt.wikipedia.org/wiki/Google_Fuchsia

De acordo com uma postagem feita no Twitter pelo desenvolvedor Yang Guo, a Google está procurando um engenheiro de software para trabalhar na Alemanha e ajudar o Fuchsia a rodar JavaScript, já que a vaga pede conhecimentos em Node.js, C++ e C++ toolchain. Segue uma tradução da postagem

Para elaborar um pouco:
– A “nova plataforma” é fúcsia.
– A posição é uma posição de engenheiro de software em tempo integral no Google Munique.
– Eu não estou considerando remoto neste momento.
– A experiência com o desenvolvimento principal do Node.js, C ++ e C ++ toolchain seria útil.

Fonte: https://twitter.com/hashseed/status/1108016705920364544

O fato de a Google estar procurando alguém para tornar o Fuchsia compatível com JavaScript não é uma surpresa, já que, de acordo com a Pesquisa Stack Overflow Developer 2018, o JavaScript é a linguagem mais utilizada do mundo, com quase 70% dos desenvolvedores que participaram da pesquisa afirmando que estão trabalhando em pelo menos uma aplicação com ela.

A novidade é que, até então, a equipe do Fuchsia estava trabalhando baseado no JavaScriptCore, utilizado principalmente pela Apple, e deixando de lado o Node.js, que é usado por grande parte dos desenvolvedores e é a base de aplicações para web voltadas para desktop, como o app do Slack.

Ainda que o Node.js não dê suporte oficial a aplicações para Android, o fato de ele ser usado em diversos aplicativos para desktop o torna importante para o funcionamento do Fuchsia, e a Google parece pensar a mesma coisa sobre o caso. Então garantir o suporte a mais uma linguagem só ajudará a empresa a fazer com que mais desenvolvedores se interessem por utilizar o Fuchsia.

Fontes:

https://br.noticias.yahoo.com/google-est%C3%A1-contratando-desenvolvedores-javascript-161400421.html

https://canaltech.com.br/android/google-esta-contratando-desenvolvedores-javascript-para-o-fuchsia-135345/?utm_source=yahoo&utm_campaign=parceiro-feed&utm_medium=rss

 

Como criar um app React sem configuração

Para aqueles que ainda não saber, o Facebook lançou uma ferramenta que promete reduzir toda complexidade envolvida em configurar um novo projeto React. O projeto disponibilizado no github e chamado de “Create React App”,, permite que os desenvolvedores criem suas aplicações React com apenas um comando.

Se você estiver bem no inglês, pode ler a postagem feita a um tempinho atras no blog oficial do React através deste link: https://reactjs.org/blog/2016/07/22/create-apps-with-no-configuration.html, caso seu inglês esteja enferrujado ou precisando de um prática, abaixo segue um resumo dos passos envolvidos.

Antes de mais nada, Node.js 4.x ou uma versão mais recente é necessária.

Primeiro, precisamos utilizar o npm para instalar a ferramenta globalmente na nossa máquina usando o comando:

npm install -g create-react-app

O comando acima instalará o Create React App na sua máquina, que permitirá criar um projeto utilizando o comando create-react-app seguido do nome do nosso projeto:

create-react-app hello-world

A estrutura abaixo é a gerada automáticamente na criação dos projetos

node_modules/
src/
.gitignore
README.md
favicon.ico
index.html
package.json

Ao abrir o package.json, iremos notar que há somente uma dependência de desenvolvimento chamada react-scripts e três scripts:

  • start: react-scripts start
  • build: react-scripts build
  • eject: react-scripts eject

O script start iniciará nossa aplicação com base nos componentes que estão no diretório src/.

Na criação, ele irá conter os seguintes arquivos:

App.css
App.js
index.css
index.js
logo.svg

Era isso, você já tem as coisas que precisa para executar seu projeto.

Gostaria de saber mais? Então acesse o git deste projeto, aprenda, pergunte e contribua.

Até mais


Fontes:

https://tableless.com.br/criando-sua-aplicacao-react-em-2-minutos/

https://reactjs.org/blog/2016/07/22/create-apps-with-no-configuration.html

https://github.com/facebook/create-react-app

Bibliotecas JavaScript para autenticação de usuários

A autenticação serve para identificar usuários e fornecer diferentes direitos de acesso e conteúdo, dependendo do seu id. Como novos tutoriais aparecem na web e mais pessoas tentam entender a equação de custo-benefício para implementar sua própria solução versus usar uma biblioteca ou serviço, reunimos uma breve revisão do que está por aí. Confira abaixo algumas opções:

1. Passaport
O Passport é um middleware de autenticação compatível com o Express para o Node.js. O objetivo do Passport é autenticar solicitações, o que é feito por meio de um conjunto extensível de plugins conhecidos como estratégias. Ele não monta rotas nem assume qualquer esquema de banco de dados específico, o que maximiza a flexibilidade e permite que decisões do nível do aplicativo sejam tomadas pelo desenvolvedor. A API é simples: você fornece ao Passport uma solicitação para autenticação e o Passport fornece ganchos para controlar o que ocorre quando a autenticação é bem-sucedida ou falha.

O Passport não é apenas uma biblioteca user-auth amplamente usada, é provavelmente a maneira mais comum de usar uma biblioteca externa para autenticação do usuário por desenvolvedores JS. Basicamente, esta biblioteca oferece o Node.js middleware relativamente flexível e modular que pode ser integrado em qualquer aplicação web baseada no Express.

2. Permit
Antes da Permit, a única opção real para bibliotecas de autenticação no Node.js era o Passport.js. O Permit facilita a adição de uma camada de autenticação a qualquer API do Node.js. Ele pode ser usado com qualquer uma das estruturas de servidor populares (por exemplo, Express, Koa, Hapi, Fastify) e pode ser usado para qualquer tipo de API (por exemplo, REST, GraphQL, etc.) devido ao seu design simples e não animado.

Também, o Permit permite que você se autentique por meio dos dois esquemas que a maioria das APIs precisa: um único token de portador secreto ou um conjunto de credenciais de nome de usuário e senha. Como a bilbioteca não é fortemente acoplada a um framework ou modelo de dados, ela fornece controle total sobre como você escreve sua lógica de autenticação – exatamente da mesma maneira que você escreveria em qualquer outro manipulador de solicitações.

3. Grant
Uma biblioteca relativamente nova e promissora com mais de 180 fornecedores suportados e um playground ao vivo para Express, Koa e Hapi com o OAuth Middleware. Se você quiser usá-lo com seu provedor OAuth particular, poderá especificar a chave necessária. Embora esta biblioteca já tenha tração (+1 K estrelas), ela tem relativamente poucos recursos, então tente com cuidado.

4. Feathers
Feathers é uma estrutura open source para o NodeJS que permite controlar seus dados por meio de recursos RESTful, soquetes e plug-ins flexíveis em tempo real. O Feathers também oferece módulos de autenticação e gerenciamento de autenticação que permitem adicionar verificação, redefinição de senhas esquecidas e outros recursos para autenticar as penas locais.

A ideia geral é combinar vários métodos de autenticação em uma infraestrutura flexível sob o mesmo teto.

5. Autenticação do Firebase (para pequenos aplicativos)
A autenticação do Firebase é necessária para fornecer aos seus usuários privilégios de leitura/gravação por meio de regras de segurança. Ainda não abordamos as regras de segurança, mas sabemos apenas que as regras de segurança dependem do status de autenticação de um usuário.

O Firebase envia o Google, o Facebook, o Twitter e o GitHub com suas próprias integrações de email/senha auth e OAuth2. Você também pode integrar seus próprios autores a ele para fornecer aos usuários acesso aos dados sem forçá-los a criar uma conta fora dos sistemas existentes.

O Firebase pode não ser a solução de longo prazo para gerenciar a autenticação do usuário em sua plataforma de dimensionamento (ou é?). Mas é uma maneira muito útil de realizar seus aplicativos implantados com o Firebase de maneira rápida e fácil.

Atualizações no MundoJS

logo

Olá Pessoal,

Já faz um tempo que não são feitas alterações no site, mas como vocês devem ter acompanhado nestes últimos dias, comecei a retomar as postagens e fazer pequenas implementações.

Infelizmente o plano anterior de fazer grandes mudanças de uma vez não funcionou muito bem, então a ideia é de tornar as mudanças menor e mais frequentes. Segue abaixo uma lista de alterações:

  • O site foi atualizado para usar o PHP 7.2. Um grande passo já que o 7.0 estava causando diversos bugs com o WordPress e/ou plugins.
  • Temporariamente desativamos o cadastro de usuários, mas ele voltará assim que alguns pontos forem implementados.
  • Melhorias de performance. Estamos trabalhando para tornar o site mais rápido.
  • (BETA) Agora possuímos um botão para recebimento de notificações.

Caso você note algum problema, por favor nos mande uma mensagem explicando o ocorrido.

Criando a classe pilha com JavaScript

Neste post estarei fazendo uma implementação simples da estrutura de dados conhecida como Pilha utilizando o JavaScript. Apesar da lista JavaScript ser totalmente capaz de simular a pilha, fila, lista, etc… a ideia é focar na teoria e criar do zero uma pilha de nós (nodes) como se a funcionalidade não estivesse disponível.

Como funciona a pilha?

A pilha é um tipo de estrutura de dados que funciona no formato que o último item que foi inserido será o primeiro a ser removido da estrutura (Lifo – Last in, First out). Então quando você adicionar 3 números e quiser remove-los, eles serão removidos na ordem inversa que foram adicionados (terceiro – segundo – primeiro).

Considerações

Algumas considerações na nossa implementação para que não ocorra confusão:

  • A classe do JavaScript ainda não permite declarar propriedades como privadas, por isso usarei _ na frente do nome das propriedades ao qual NÂO deveríamos estar acessando externamente.
  •  Esta é uma implementação para uso acadêmico. Por favor utilize a lista do JavaScript para trabalhar com a pilha em produção (new Array ou []).
  • Alguns trechos de código poderiam ser resumidos em uma única linha, mas foram mantidos quebrados para auxiliar aqueles que estão aprendendo.

Implementação:

Classe e Construtor

Beleza, então vamos começar. A primeira coisa que precisamos é criar a classe e o construtor dela conforme o código abaixo. Para o nome da classe usaremos o termo em português, mas para o resto iremos utilizar os termos em Inglês pois parece ser o padrão mais utilizado por livros e cursos.

class Pilha {
  constructor() {
    this._top = null;
    this._count = 0;
  }

  //Continuação do código

Como você pode ver, teremos apenas duas variáveis de controle, _top que fará referencia para o topo da pilha e _count que controlará quantos itens a pilha possuí.

 

GetCount()

O método GetCount é o mais simples de todos. Ele apenas irá retornar a quantidade de itens na pilha.

GetCount = function () {
  return this._count;
};

 

Peek()

Exibe o item no topo da pilha ou null caso ela esteja vazia.

Peek = function () {
  if (this._top) {
    return this._top.data;
  }
  return null;
};

 

Push(item)

O método Push (empurrar) é a forma como adicionaremos itens a pilha. Pelo fato de ser uma linguagem não tipada, poderemos adicionar qualquer valor a pilha que ela o aceitará.

Push = function (data) {
  let node = {
    data: data,
    next: null
  };
  node.next = this._top;
  this._top = node;
  this._count++;
};

Como você pode ver, o método cria um objeto chamado node (nó) que é um objeto JS e terá 2 propriedades, o data (dados em inglês) para o valor e next (próximo) para referência o item anterior. Após isso definimos este novo valor como sendo o do topo e referenciamos o antigo topo no next.

Isto é feito desta forma pois para a pilha, é importante termos um controle de quem está no topo. Os outros itens serão manipulados apenas quando chegar a vez deles.

 

Pop()

O Método Pop (tirar) funciona da forma oposta ao Push, ele remove o item que está no topo da fila.

Pop = function () {
  if (this._top) {
    let out = this._top;
    this._top = this._top.next;
    if (this._count > 0) {
      this._count--;
    }
    return out.data;
  }
  return null;
};

Como você pode ver o código acima faz o seguinte: Confere se existe algum item no topo da fila para poder remove-lo, transforma o next em topo, reduz a contagem em 1 e retorna o item removido ou null caso esteja vazio.

 

DisplayAll()

Este método exibe todos os itens da pilha, do topo ao fundo, no formato de um vetor JavaScript. Caso a pilha esteja vazia, retorna null

DisplayAll = function () {
  if (this._top) {
    let arr = new Array();
    let current = this._top;
    for (let i = 0; i < this._count; i++) {
      arr[i] = current.data;
      current = current.next;
    }
    return arr;
  }

  return null;
};

Apesar deste código ter um pouco mais de lógica que os métodos anteriores, ele ainda é fácil de entender. Ele testa se o _top não está vazio e se verdadeiro, percorrerá a pilha copiando o valor armazenado dentro de cada nó para dentro do vetor.


Executando o código

Após criar a classe, um teste simples ajudará a verificar que todos os métodos estão fazendo o que deveriam

let pilha = new Pilha();

console.log(`Contagem: ${pilha.GetCount()}`);

pilha.Push(4);
console.log(`Peek: ${pilha.Peek()}`);
console.log(`Contagem: ${pilha.GetCount()}`);

pilha.Push(22);

console.log(`Contagem: ${pilha.GetCount()}`);

console.log(`Pop: ${pilha.Pop()}`);
console.log(`Pop: ${pilha.Pop()}`);
console.log(`Pop: ${pilha.Pop()}`);

console.log(`Contagem: ${pilha.GetCount()}`);

pilha.Push(1);
pilha.Push(-2);
pilha.Push(100);
pilha.Push(350);

console.log(`Todos: ${pilha.DisplayAll()}`);