O Reino encantado do JavaScript – Hipsters #38
JavaScript tomou a comunidade de desenvolvedores como uma tempestade! Saiu de patinho feio para a queridinha hipster. Como isso aconteceu? O que mudou? Onde e como ele é utilizado atualmente? Bem, a resposta é simples: em todo lugar, de todas as maneiras. Vamos falar de alguns frameworks, alguns usos e reclamar bastante. Sim, esquecemos de falar do ember e de outros.
Participantes:
- Paulo Silveira, host do Hipsters
- Mauricio Balboa Linhares, o cohost da treta
- Jaydson Gomes, o cara da BrazilJS!
- Flávio Almeida, o cangaceiro do JavaScript na Alura e na caelum
- Sérgio Lopes, nosso guru front-end
Links bacanas:
- Porque começar a programar com JavaScript
- Overview de todas as mudanças do ES6 (em inglês)
- Episódio #16 sobre Single Page Applications
- Portal BrazilJS e evento BrazilJS Conf
- Todos os cursos de front-end da Alura, onde tem muita coisa de JavaScript!
Produção e conteúdo:
- Alura Cursos online de Tecnologia – https://www.alura.com.br
- Caelum Ensino e Inovação
Edição e sonorização: Radiofobia Podcast e Multimídia
William Oliveira
Fala, galera!
Também fiz um post, em PT-BR, com um geral sobre ES6: https://medium.com/@woliveiras/sim-outro-post-sobre-ecmascript-2015-ou-es6-6d50a7f33bd4
Paulo Silveira
valeu william pelo link e pelo post!
Diogo Barros
Excelente material!
Cesar Lemos
Faz um podcast “Batalha das linguagens”…
só pela treta
Flávio Almeida
Ai não vale, se não terei que falar de Rust Lang!
Cesar Lemos
kkkk,
Fanime Fartoon
Queremos ver treeeeeeeeeeeeeeeeeeeeeetaaaaaaaaaaaaaa o/
Sérgio Lopes
Ruby ja era #prontofalei #treta
Fanime Fartoon
Tanto já era que nem aparece ngm pra defender mais #oooooooooooloko
rs
Cesar Lemos
Delpli vs VB
Maurício Linhares
Rust acaba com todo mundo, não ia ter graça.
Flávio Almeida
Ah, não exagera querido co-host! Eu sei um “pouquinho” de Rust. Ela não compete com as outras. É treta!!!!!!
Denis Candido
Podcast está reproduzindo?
Welton Vaz de Souza
@flaviohalmeida Obrigado Professor! do hipsters e vc foi e é a pessoa que me ensinou Javascript que gostei transformado aprendizado em diversão! Obrigado @paulo_caelum e equipe da Alura.
Flávio Almeida
Fala cangaceiro! No fundo, eu que tenho que agradecer por você ter sido meu aluno. Aliás, não existe professor sem aluno. Fico muito contente em saber que pude aliar o bom humor à aprendizagem de uma tecnologia e tornar esse sertão da aprendizagem menos chato.
Sucesso e bom estudo meu aluno!
Ricardo Lima
Só acho que faltou chamar o Suissa para participar o podcast.. para ele JS é algo divino. kkkk
Sérgio Lopes
Ia ter que colocar muito Piiii na edição hahaha.
Brincadeiras a parte, precisava mesmo, quem sabe numa proxima
João Felipe Alves
deveria ter uma conversa assim como aula 1 de todos os cursos.
Paulo Silveira
um por carreira! é uma boa ideia
Osmar Petry
Flavião é meu herói
Flávio Almeida
Tamo junto, cangaceiro!
Leo Cavalcante
Query selector foi inspiração da jQuery? Não foi da especificação do CSS que a jQuery implementou no JS?
Sérgio Lopes
A ideia de usar seletores CSS pra selecionar elementos no JS foi do John Resig em 2005: http://ejohn.org/blog/selectors-in-javascript/
Claro, ja existiam os seletores no CSS, mas na epoca o JS nem tocava nisso. Ai veio o jQuery e a ideia foi padronizada no querySelector. O primeiro rascunho da spec (na epoca document.matchAll() ) saiu em 2006: https://www.w3.org/TR/2006/WD-selectors-api-20060525/
Daniel, o Conte - Caps
Queria um sobre Django. Mas não é mais hipster :/
Paulo Silveira
é sim! está nos planos, mas ainda sem agendamento
Flavio
Qual é o projeto do github pra acompanhar a evolução da linguagem?
vitornogueira
https://github.com/tc39/ecma262
Flavio
Obrigado!
Alexandre Costa
galera tive dificuldade no node.js principalmente na organização da sua estrutura dos arquivos então pergunto o que devo saber antes de sair do javascript front para o back tipo saber mvc, O.O e etc.
Maurício Linhares
Olha, é bom ter uma idéia de MVC mas se você pegar um framework como express ele já deve ajudar a abstrair um bocado desse entendimento inicial. Meteor.js é uma boa pra começar também.
Pedrinho Aoki
Gostei bastante do podcast e concordo com o Sérgio em relação ao Node.
Muitos acham que é bala de prata para o back-end. Mas é necessário entender melhor os requisitos decada projeto, são diversas variáveis que podem influenciar na decisão de usar Node ou não.
Faltou falar de typescript ( Em quais situacoes devo migrar meu codigo para TypeScript? Qual area que o Typescript veio atender que o JS nao atende?)
Mateus Queiroz Correia
Também senti falta do Typescript, mas como a turma da Alura é tão inteligente, deve estar preparando um episódio sobre o tema, uma vez que ele é mais amplo.
Quando forem falar, talvez vale a pena comentar que a própria google adotou o typescript para o Angular 2^
Maurício Linhares
PureScript é muito mais legal
Patrícia Lima
Melhor episódio! Vocês poderiam fazer mais episódios assim, mostrando o contexto da linguagem, desde que ela foi criada até o Boom dela. Ajuda a entender algumas coisas. Parabéns pelo podcast e pelo episódio!
Paulo Silveira
queremos ter mais destes!!
Douglas dos Santos
Concordo! Sugiro o Ruby on Rails.
ricardo
Porra massa o site e o podcast, vou seguir
Leandro Severino
Parabéns pelo EXCELENTE podcast.
Com certeza está nos favoritos do que eu já assiti.
Visite também a nossas página no Facebook:
– https://www.facebook.com/maxigenios
Visite também o nosso grupo no Facebook:
– https://www.facebook.com/groups/maxigenios
E também o nosso blog:
– http://profissionaldetecnologia.blogspot.com.br
Ob: Este material já está publicado lá no grupo
Vinícius Santos Albuquerque
Muito bom o podcast
Sugestão: Coloquem configuração de velocidade de execução no player. Eu sempre tenho que baixar para rodar em 2x no computador.
Sérgio Lopes
Vinicius, tem uma gambiarra que eu faço: abre o console do chrome e cola: `document.querySelector(‘audio’).playbackRate = 2`
Juscilan Moreto
Só a nata. #Js
Diogo Machado
Muito bom esse podcast! Já vou seguir os participantes no Twitter, me amarro em Javascript.
trumae
Nao dah pra fugir do JS no Browser. No backend eu tenho problemas com JS. Mas tambem tenho problemas com Ruby e Python :). Esse tipo de linguagem eh otimo pra prototipos e prototipos eternos. Mas se o sistema fica de porte medio, vira um inferno. A desculpa eh que se escreve muito menos do que em linguagens com tipagem mais forte como C++ ou Java, mas parecem que nao contam a montanha de codigo de testes a mais que se tem que escrever em JS ou Python. Em linguagens menos “dinamicas” precisamos escrever muito menos testes.
Mas sempre podemos escrever rapidamente uma goiaba sem escrever testes, neh?
Flávio Almeida
” Em linguagens menos “dinamicas” precisamos escrever muito menos testes.”. Se você se referiu a linguagem estaticamente tipadas, há uma surpresa aqui.
Estatic typing não blinda seu runtime
Aliás, o que acontece é o posto! Pesquisa realizada pelo titio Elliot demonstrou que projetos feitos em Java ou C# possuem muito mais issues abertas do que projetos com linguagens dinâmicas. Qual o motivo? A cobertura de testes.
A cobertura de testes não muda para uma linguagem dinâmica ou uma estaticamente tipada. Teste unitário continua sendo teste unitário, teste de integração, continua sendo de integração.
Flávio Almeida
“Em linguagens menos “dinamicas” precisamos escrever muito menos testes.”. Linguagens menos dinâmicas, você diz as com tipagens estática? No número de testes não tem relação com essa ou aquela linguagem, porque se você faz teste unitário, esta testando a menor unidade testável de seu sistema, se você faz teste de interação, esta testando algo maior. Aliás, pesquisa recente do Eric Eliot ao levantar projetos nas mais diversas linguagem apontou que linguagem estáticas como java e C# são as que possuem maiores issues abertas, um número menor do que projetos feitos dom JavaScript. Ou seja, a tipagem estática não protege o seu runtime, ou seja, só um teste pode demonstrar se o seu código faz corretamente o que ele deveria fazer. Então, na minha experiência e pegando carona na pesquisa do Eliot, não faz muito sentido dizer que linguagens “menos dinâmicas” escrevem menos testes. É treta!!!!!!!!!
Flávio Almeida
Ah, e por ser linguagens dinâmicas, você não precisa usar mocks ou outros artefatos bizarros para dar uma volta no compilador e poder testar seu código. Sendo assim, o burdem para testar linguagem “menos dinâmicas” (eu entendi que você quis dizer estáticas) é bem maior.
trumae
Flavio, eu nao escrevi que TDD nao eh necessario. Soh que parte do
que se escreve em linguagens dinamicas jah eh feito pelo compilador das
linguagens com tipagem forte. E isso eh pouco discutido.
Procurei
esse Elliot, li um artigo dela ha respeito. Li o do Uncle Bob que
originou tudo. Concordo com o Uncle Bob. TDD eh necessario. E bons
programadores devem usa-lo. Meu ponto eh que linguagens estaticas jah
provam varios “teoremas” sobre seu codigo, e isso torna possivel
escrever menos testes. Muitos desses teoremas sao bem mais forte que
testes baseados em casos. Obvio que nao eh prova de corretude, ate pq o
compilador nem saberia que teoremas provar pra isso. Alem da dificuldade
de provar a grande maioria das proposicoes interessantes.
O TDD inventado pelo pessoal do SmallTalk, de acordo com o Bob, e o
melhor que nos temos. Donald Knuth, ao escrever o Tex, fez algo muito
parecido e estava usando uma linguagem fortemente tipada.
Flávio Almeida
Tem uma coisa que não disse, que acho que é o lado que você estava se referindo. Se programamos com uma linguagem dinâmica e queremos garantir que o tipo recebido é aquele que esperamos, temos que realizar uma série de testes (aqui sai dos testes unitários…ou escopo). Nesse caso, se o programador for por esse lado, ele escreve sim, um monte de código que não existiria se a linguagem fosse estaticamente tipada.
trumae
Acho dificil entender algumas atitudes: na hora de automatizar tarefas
no desenvolvimento, o pessoal de Ruby, Python e JS manda muito bem. Mas
usar tipagem? Nao, isso eh o demonio!
JUNIOR FERREIRA
Tenho certeza que o titulo foi dado pelo Paulo Silveira.. kkkk
Paulo Silveira
fui eu mesmo
JUNIOR FERREIRA
Abraço Paulo..
Eduardo Henrique
Poderiam ter mencionado o Electron.js que ta começando a dominar o mundo desktop também. Podcast 10/10
Paulo Silveira
valeu Eduardo! mas varios acabaram ficando de fora mesmo
Ulisses de Castro
Ontem, estava estudando sobre ele, muito interessante, fiquei mais animado porque consegui integrar um projeto angular js nele.
Flávio Almeida
Tem uma surpresa de Electron… vindo por ai. Não é minha, mas estou acompanhando. Aguardem!
Maurício Linhares
Hahah, falta de react e react native, angular, ember, electron, tanta coisa boa
Flávio Almeida
Algum passarinho me contou que terá alguma coisa de Electron numa das melhores plataformas de ensino online. Vamos aguardar!
Gustavo Edny
Que coisa linda! Tava já pedindo pra fazer um podcast sobre JS. Muito bom!
Edy Silva
Adoraria um sobe Python
Maurício Linhares
Tá vindo!
Edy Silva
Muito show! Estou viciado nos podcasts.
E sou fã do Python estou esperando ansioso
Jose Paulo
aguardo anciosamente
Marlon Baptista de Quadros
Ainda está vindo? Não esquece de nós! hehehehe =P
Maurício Linhares
hahaha, tá sim, estamos organizando a fila
Juliano Soares
pray for python
Samuel Rocha
Excelente cast pessoal, parabéns, pena que a treta não foi maior
Não teria como falar sobre todo o universo Javascript em uma hora, são tantos frameworks que eu nem sei contar hehehe.
Jaydson e o Felipe mandam muito bem no BrazilJs, a conferência é incrível, só estou esperando a desse ano /
Flávio Almeida
Nem podia ter muita treta com o cangaceiro aqui! Ninguém iria me encarar
Vagner Araújo
JS JS JS JS
Jose Paulo
Galera sou dev backend, e já tentei me aventurar no front(não deu certo rsrsrs). Qual a real relevância do nodejs, vale a pena começar um projeto com node hoje, ou uma linguagem(sei que nodejs não é uma linguagem) com mais tempo, ou mais madura, como php ou python. Valeu
Flávio Almeida
Tem que perguntar para a Microsoft, Paypal, Wallmart, Twitter e outras grandes empresas corporativas que usam Node.js em produção
Sem puxar a sardinha pro lado do JavaScript, talvez seja interessante investir naquela que tem mais oferta de emprego perto de você. Há também o fator motivação. É balancear a necessidade do mercado e seu gosto. Só não esqueça que dominar JavaScript é mais de meio caminho para aprender a plataforma Node.js.
Abraço João!
Jose Paulo
Vlw cara agradeço a ajuda e orientações
Zava
Tinha q dar um tapa na cara desse cara quando fala q prefere Java no back em vez de Node. (uma crianca morre na africa cada vez que vc nao usa node no back)
Flávio Almeida
Não era um bebê foca? Saindo do mundo da treta e vido mais para o mercado, o Java apesar de ser uma linguagem mais verbosa que o JavaScript e outras do mercado, conseguiu consolidar plataforma. Há zilhões de empresas que investiram em treinamento e infraestrutura em Java.
O Node.js hoje frequenta ambientes corporativos, mas com o advento das Web APIS (micro serviços), no final das contas o dev faz sua API com a tecnologia que for melhor para aquele problema específico. Há espaço para todos.. feliz é aquele dev que sabe transitar em cada uma das tecnologias e aplicar aquela certeira para o problema. Aliás, qualidade de um bom cangaceiro desenvolvedor.
Abraço Zava!
Luiz Fernando Alves
Eu fiquei confuso com o comentário: “Se fosse por performance todos escolheriam C, C++ ou Java”. A performance de NodeJS não seria superior por ele ser dirigido por evento em um single thread?
Maurício Linhares
Nope, C, C++ e Java continuam sendo mais rápidos, sendo single thread ou não. Tem várias soluções que usam event-loops nessas linguagens (e bem anteriores ao NodeJS, inclusive) como o Netty no Java.
Clayton Passos
Fim da guerra dos browsers? Quando isso acabou que eu não to sabendo?
Tenho de lidar com IE, Edge, Firefox, Chrome, Neon no desktop, sem falar que a nova versão do Chrome (56 e 57) quebrou um monte de coisas que funcionavam, pra piorar, hoje tenho que lidar com o mobile que me impôe as mesmas variações em celulares, tablets, e smart TV, e no mobile ainda tem o navegador do Android que nem não é nenhum desses que comentei anteriormente.
Ao meu ver a guerra dos browsers só piorou, nunca acabou.
Mas tudo bem, no final tenho programado usando Java, Vue e Angular
Rafael Antonio da Silva
Alura deixa a desejar nos cursos!!
Sugeri há mais de 3 meses o curso de AWS e nunca foi feito! (sendo mais votado na pesquisa)
Flávio Almeida
Olá! nesses 2 meses, estamos trabalhando no curso de AWS focado no EC2 e outro focado no S3. E estamos planejando mais.
Rafael Antonio da Silva
Obrigado pela resposta! Sou aluno e estou super esperando conteúdos sobre AWS.
Fico no aguarde destes citados e dos próximos, abraço!
Flávio Henrique Almeida
Saiu hoje
https://cursos.alura.com.br/course/introducao-ao-cloud-do-ec2-no-aws
Flávio Henrique Almeida
Boa notícia!
https://cursos.alura.com.br/course/introducao-ao-cloud-do-ec2-no-aws
Sucesso e bom estudo meu aluno!
Maurício
É um sonho distante, mas seria maravilhoso ver um curso da Alura sobre IoT e Node.js Embedded (https://tessel.io/)
Ronan
Olá, poderia citar alguns exemplos de situações em que equipes que trabalham com outras linguagens back-end optaram por adotar Node para determinada solução?
Em outras palavras: em quais situação que uma aplicação baseada em Java, Python, PHP precisou optar por Node?
Pedro Scursel
toda vez que o Flávio fala, me vem ele na cabeça no canto inferior esquerdo, com fundo de chromakey, que nem nas aulas da alura heheheheheh
Pedro Scursel
*inferior direito :s
Flávio Henrique Almeida
É cangaceiro pra todo lado…esquerda, direita, cima baixo…kkk
José Luiz
“Mas vem cá, será que tem como melhorar nosso código?” kkkk
Pingback: Javascript na Linha do Tempo - Dart Digital