Entendendo Apple, GPL e Compiladores
HTML-код
- Опубликовано: 13 окт 2024
- Finalmente! Chegamos no episódio 42!
Se você é geek que nem eu sabe que 42 é um número especial. Segundo o sábio profeta Douglas Adams o número 42 é a resposta da vida, do universo e de tudo. Se não acreditam leiam a bíblia do Guia do Mochileiro das Galáxias. De curiosidade é por isso que minha empresa se chama Codeminer 42. E em especial este ano eu vou completar meus 42 anos. Mas chega de numerologia, vamos começar a história de hoje.
Hoje vamos fugir um pouquinho do tema de Back-end, que pretendo retomar semana que vem. Desta vez quero contar uma história que eu pessoalmente acho interessante. Vou falar sobre Apple, sobre licenças de software livre, sobre compiladores, um pouco do mundo mobile e um pouco do mundo web de novo. É uma história meio complicada mas que vai ajudar vocês a entenderem um pouco da dinâmica de como o mundo real afeta a evolução e adoção de linguagens e tecnologias.
Errata: várias vezes no vídeo eu falo "SpiderMonkey" mas eu queria dizer "JavascriptCore". A SpiderMonkey é a engine de Javascript do Firefox, a JavascriptCore que é a engine que vem no WebKit e Safari. E o V8 é o do Chrome.
Errata 2: Eu falo que GPL é General Protection License, mas na verdade é General Public License.
Errata 3: me avisaram nos comentários e eu realmente comi bola quando falei dos emuladores de Android. Antigamente as imagens do OS eram realmente só de ARM mas hoje em dia de fato já existem imagens compilados pra x86, então em um Virtualbox habilitado pra usar os recursos de virtualização dos processadores AMD e Intel como o VT-X é possível acelerá-los. Ainda não é a mesma coisa que no MacOS/iOS que é um simulador sem necessidade de camada de virtualização, mas não deixa de ser um avanço.
Links:
Why WebAssembly is Faster Than asm.js (hacks.mozilla....)
Awesome Wasm (github.com/mba...)
Swift is like Kotlin (nilhcem.com/swi...)
THE CASE THAT NEVER ENDS: ORACLE WINS LATEST ROUND VS. GOOGLE (www.wired.com/...)
Facts and effects of Caldera/SCO vs IBM (www.computerwe...)
A new GCC runtime library license snag? (lwn.net/Articl...)
A visual timeline of the Microsoft-Novell controversy (arstechnica.co...)
The Microsoft-Novell Linux deal: Two years later (www.infoworld....)
An Introduction to Tivoization (www.linfo.org/t...)
Linus Torvalds, Dual-Licensing Linux Kernel with GPL V2 and GPL V3 (lkml.org/lkml/...)
An insider's look at drafting the GPLv3 license (opensource.com...)
Apple’s great GPL purge (meta.ath0.com/2...)
Apple Invests in LLVM, Suggests Merge with GCC (www.osnews.com...)
Arquitetura LLVM (www.aosabook.o...)
What is LLVM? The power behind Swift, Rust, Clang, and more (www.infoworld....)
Transcript: www.akitaonrai...
Audio: anchor.fm/dash...
Pra entender mais sobre licenças de software, assista este outro que fiz usando o exemplo da controvérsia da Lerna vs ICE ruclips.net/video/WObC_2e0kZk/видео.html
Quarta é quarta! Mais uma obra histórica contada de forma perfeita. Fim de ano teremos o maior compilado já publicado em pt-br sobre TI.
Se no final dos seus videos você aplicar uma prova posso falar que fiz um MBA em Aquitetura de Software? xD
O conteúdo que você está trazendo ajuda não só a quem está começando, a entender melhor como é essa área, como traz alguma reflexões a quem já é da área.
Parabéns pelo trabalho.
Oi Akita,
Permita-me uma correção: você acerta quando diz que para desenvolvimento iOS roda-se um simulador e no Android temos um emulador, mas já faz uns anos que temos imagens x86 do emulador do Android. Com isso e as opções de virtualização como VT-x ou HAXM, o emulador do Android roda muito rapidamente. Poderia discorrer e ainda entrar em detalhes sobre Dalvik, ART, JIT e AOT, mas foge do escopo.
Grande abraço e continue, a série está legal
Você tem razão. Mancada minha. Vou fazer uma correção nas descrições mesmo.
Ond fica o botao do super like??? Vc merece.
Excelente episódio, Akita! É muito divertido sentar e assistir um episódio grande assim que vai a fundo em temas de ciência da computação. Mal vi o tempo passar.
Fantastico novamente,video incrivel, estou fazento um trabalho da faculdade sobre swift, e a sua explicação do LLVM e CLang, foi incrivel, Obgado !! Showw
Cara, o final sobre o JS ser o assembly do navegador foi surpreendente.
Eu não fazia ideia que isso era possível. Realmente abre um mar de possibilidades.
9:54 pequena errata GPL significa General Public License
Sensei, já esta ficando difícil eleger ou escolher os seus melhores videos, detalhes históricos riquíssimos e objetivos,(a historia e evolução dos factos, é muito importante para se entender os casos de estudo na nossa área) com indentação limpa e legível que pode rodar em qualquer cerebro. Na expoxição o Sr. ja esta mais preciso do que uma faca Tramontina. Parabéns pelo video.
Que vídeo foda!!! Parabéns, Akita!
Esse é o tipo de vídeo que tem que assistir várias vezes pra poder absorver tudo.
Muito Obrigado Akita! Já estou compartilhando com amigos e conhecidos!
Show, é muito importante saber a história para o porque de cada coisa, entender qual o problema havia para ser resolvido antes de uma ferramenta ter sido ou uma linguagem de programação ter surgido, esse compilado sobre Apple e GPL foi sensacional.
Japa tu manja, heim... eu já conheia 80% do que vc falou, mas fiquei impressionado.
muito bom o vídeo! Eu senti falta de você falar sobre compilação de React Native e Flutter para ARMs/Intel. Tem algum vídeo seu que fala sobre eles?
A informação desse vídeo vale por 6 meses de curso de graduação, parabéns pela quantidade de informação útil e relevante. Um excelente trabalho, simplesmente muito bem feito!
Cara estou viciado no seu canal. Adoro as partes históricas e como você conta como as coisas evoluíram. Parabéns!
se prepara que vc vai gostar do da semana que vem ;-) 1h de história
Na verdade, quando estava estudando linguagens formais e compiladores, se diz que o front-end é a análise léxica (lexing), sintática (parsing) e semântica, o back-end é a síntese e otimização de código (sintetiza o produto das análises em código intermediário e o produto da otimização desse código em assembly). Acho que por isso que muitos quando falam sobre o LLVM ser ou não um compilador, falam que na verdade ele é um framework, já que ele é quase um PoC desses conceitos para implementação de novas linguagens e permitindo um foco maior no front-end.
Melhor pós feriado! Obrigado Akita, estava esperando ansioso por um vídeo novo seu. #melhorquenetflix
Assisti Kaiji nesse meio tempo, simplesmente fantástico. Depois posta mais recomendações kk
Agora percebo o quanto o WebAssembly é muito promissor.
Ótimo conteúdo! Muito interessante o vídeo sobre a história dos compiladores e LLVM relacionados à Apple! Legal ver como a tecnologia por trás das cenas evoluiu ao longo do tempo.
Graças ao seu vídeo sei qual licença devo usar em meus softwares open source, muito obrigado.
Acabei de fazer uma graduação em várias áreas. Alienígena... sábio demais!!! Parabéns pelo conteúdo 🎉
Obrigado !!!!
Muito bacana o conteúdo.
Chefe, fala sobre Flatpak e como ele faz para rodar em sandbox.
Akita seus vídeos são de qualidade internacional, talvez legendas em inglês e a tradução automática dos títulos do RUclips, podem fazer o mundo inteiro ver estes vídeos
Novamente, muito bom o episodio. Mano, parabéns por não ficar 'preso' a serie de videos que esta fazendo, informação e conhecimento sempre são bem vidas e uteis, sempre pode ter algo que não sabíamos ou motivar a pesquisarmos mais sobre alguma coisa e aprender mais, a parte da Apple + BSD sabia muito por alto e entendi bem melhor o processo de acordo com o que já sabia antes. Muito obrigado.
Keep walking.
Amo vídeos de história da computação, aprecio vídeos de história da Apple. Soma-se os dois e temos um dos meus vídeos favoritos do canal. Obrigado, obrigado.
LLVM é realmente uma técnologia incrível, tive a oportunidade de utiliza-lo na implementação do meu trabalho de conclusão de curso e com ele consegui portar a linguagem portugol que era interpretada e feita em java para ser compilada nativamente para windows, linux e android.
que projeto interessante, se estiver num GitHub não deixe de mandar o link.
Fabio Akita
Claro, segue o link do front-end do portugol github.com/bernardo-bruning/portugol-core-llvm.
E um "binder" para manter compatibilidade de bibliotecas no back-end github.com/bernardo-bruning/portugol-llvm-bibliotecas.
Da hora!
A história é muito massa!!! Há um livro chamado Os inovadores que conta os detalhes das inovações no século XX, muito interessante...
Parabéns pela didática.
Excelente !! Parabéns !! Gostei muito deste assunto. Descobri navegando e estou gostando. Como tem muitos videos em seu canal, fica confuso achar o inicio de um assunto como compiladores. Não sei se existe uma forma de criar uma lista por assuntos aqui, ou se isso já existe pronto. Mas novamente este canal faz toda a diferença na internet, meu muito obrigado.
As que tem sequência e são introdução é a playlist Programação para Iniciantes mas recomendo assistir em ordem cronológica que publiquei mesmo, se possível
Mais uma grande aula! Tem sido um prazer aprender um pouco mais a cada semana.
Sem palavras amigo, "quequeisso?" Parabéns Akitão! até o próximo video!
Show Akita. Claro como cristal. Obrigado por compartilhar tanto conhecimento.
Excelente vídeo, muito didático. Parabéns pelo trabalho e pelo esforço ao trazer o conteúdo!
Estou maratonando o seu canal!! hahah Finalmente eu entendi o que era essa tal de "LLVM" que todo mundo fala!! Você é o cara!
Excelente história. E por coincidência, ou não, hoje eu estava assistindo ao filme Pirates of Silicon Valley e na hora que eu terminei recebi a notificação desse vídeo. Se combinaram perfeitamente.
Parabéns pelo excelente conteúdo, Akita
Mais um vídeo sensacional, parabéns Akita
Quanto conteúdo em um único vídeo. Parabéns pelo canal Fabio!
Acho que eu sofro de NIH, mas não sabia que isso tinha um nome. Excelente vídeo. Concordo que é difícil dar um título que resume tudo. Visto que a espinha dorsal é o LLVM, um título alternativo poderia ser "A Evolução do LLVM e seu ecossistema".
Sensacional, como sempre.
Essa musiquinha de motel no final também está sensacional.
Muito bom o material apresentado, o youtube precisa de mais conteúdo desse tipo!
Puta merda, vou ter de ouvir algumas vezes pra receber todos esses METEOROS DE PEGASUS..... Ao contrário do que possa parecer, gostei muito deste episódio!
41:43 estou estudando webasm, acredito que os jogos no futuro serão todos em webasm, ou compilados pra ele. É muito rápido e prático o resultado.
Volto aqui depois de ter estudado C# a fundo, entender CLR e CIL. Agora entendo muito melhor esse vídeo, e como o .NET converte C# pra iOS e Android com o .NET MAUI
Raras aulas na minha faculdade se compara com esse vídeo. MEUS PARABÉNS pelo conteúdo excelente!!!
Vou ter q assistir novamente esse video pra assimilar todo o conteúdo.
+1
Muito bom, como sempre! Parabéns e continue a nos informar sobre esse maravilhoso mundo!
Cara, que vídeo bacana...
Passei por quase todas as fases de desenvolvimento da Apple.
Nostalgia de gerenciar memória. hahaha
Ótimo conteúdo Akita, parabéns.
Aproveitando que falou bastante sobre como o Google gosta de reinventar a roda, gostaria de saber se você tem acompanhado o Flutter e o que você acha da iniciativa.
Muito obrigado pelo conteúdo compartilhado.
Como você pode lembrar de tantos detalhes na hora de contar essas histórias? Queria ter uma memória assim
Conheci seu canal hoje!! Gostei muito, Parabéns!
Quanta informação excelente!
Você fala de uma maneira empolgadora e não cansativa, dá vontade de assistir e re-assistir pra absorver tudo...
Parabéns!
Thanks! Reassista! 😁
Esse cara é um grande banco de dados ... meu deus.
eu faço engenharia mecânica e não sei que porra tô fazendo aqui, mas não quero sair.
Muito interessante essa história, licença é coisa séria mesmo. Ótimo vídeo obrigado 😀
Parece que vamos de Intel para AMD em um futuro próximo 😁.
Parabéns, você é espetacular!
Sobre gerenciamento de memória em dispositivos com poucos recursos, ainda hoje isso é necessário em sistemas embarcados, onde os processadores (ou Microcontroladores) possuem poucos mb, kb ou até poucos bytes de RAM.
Muito Show!!!! Parabéns!!!
Mais uma excelente aula!
Eu estou indo para o quinto ano consecutivo usando Go, depois de quase 30 anos na área, nunca me diverti tanto.
Caramba, da pra fazer um livro de cada video kkk ficou muito top
Muito bom o vídeo, sucesso!
Akita, vale a pena estudar Objective-C ou é loucura?
como que ? umanimidade ? hahahah zoira grande akita novo no seu canal e e to curtindo muito, da a imprenção que vc é um deus dos computadores
Mais um excelente episódio! Obrigado!
Agora com o M1, acredito q vai ser compilado uma vez só, ao invés de compilar pra Intel e depois pra arm correto? será q pra quem faz Cross plataform como xamarim e flutter será mais rápido tbm (referente a Android) já que a arquitetura é ARM?
foda, obrigado, este LLVM, estava vendo no kubuntu e não sabia o que era e tinha só deixado para lá, achei que fosse algo para virtualizar ou algo assim kkk, e este webassembly, foda também naõ sabia qual era, show demais o episódio.
Excelente!
No comedo de 2000, nas palestras de java, a impressao que se tinha, é que tudo seria reescrito em java, não faria mais sentido escrever em c/cpp/etc, pois com o tempo o hardware iria compensar a diferença. Estamos quase em 2020, e ainda uso cpp. C# cresceu muito, python infelizmente não cresceu como eu esperava ou queria. Não quão bom ou ruim é isso, mas fico encucado como as coisas dão voltas no mundo do TI, de certa forma até gosto, pensa só ter java? eheheh
Uma curiosidade foi quando troquei de um i7 no passado por um velho MacBook Pro Core 2 Duo… a queda não foi brutal e rodava decente até sistemas Windows, seria o chipset que a Apple usa?!
Akita, eu tava querendo migrar um pouco de linux e ir pra alguma distro bsd (FreeBSD no caso) só que como trampo com Rails fiquei na duvida se seria seguro migrar com alguns projetos em andamento... ai o RoR é compativel juntos com as gems (em geral) funcionam bem em alguma distro bsd? ja perguntei em grupos de Ruby e Rails mas ninguem soube responder =/
A princípio deveria funcionar. Mas eu recomendaria primeiro instalar num Virtual Box e ver se o que você precisa funciona
Maravilhoso! Obrigado :)
Meu guri, mais uma vez show de bola... apenas um detalhe, creio que aqui ruclips.net/video/suSvMnNwV-8/видео.html vc falou "General Protection License" como significado de GPL mas na verdade é "General Public License" (www.gnu.org/licenses/licenses.html#GPL)
oops, na minha cabeça sempre fica protection sei lá porque :-)
O final do vídeo sobre escrever em uma linguagem e gerar tanto prq web e nativo, nao é o que o google esta fazendo com o dart/flutter? E tambem alguem sabe pq o google escolheu dart e nao go?
Rapaz.. Fábio Akita para presidente ! Obrigado por compartilhar seus conhecimentos ! Sucesso!!
Fantástico sou fã desse cara !!!
vc diz "nos episodios passados" mas esse é o primeiro da playlist. qual video exatamente vc ta falando ? referencia 0:40
Excelente
Faz um video falando sobre A apple silicon
Bem que podiam fazer cache no armazenamento permanente dos binários gerados via JIT.
A Americanasa.com nasceu e rodou por quase 10 anos com Web Objects. O CIO era o German Quiroga, um gênio a altura de Mandic.
Legal, sempre procurei muito sobre o directX para desenvolver games, mas ainda tenho muitas dúvidas para desenvolvimento com gpu,
RapaZ. Que vídeo excelente!!!
Esse vídeo é um tapa na cara de todo desenvolvedor que diz "A Apple não influencia na minha vida, eu não tenho nenhum produto dela".
muito legal akita, parabens!
Belo "tangenciamento"! kkkk!
Muito interessante!
Ahhh agora entendi o que é llvm que aparece no meu Ubuntu quando eu dou um "sudo apt update" e "sudo apt upgrade". 🤔
Conteúdo muito bom. Obrigado
Só lembrei do debian quase virando um bsd... Saudade.
Massa demais!!!
A informação é livre.
Esse IOS simulator agora com Macs com ARM deve tá uma maravilha hein
sim, pq agora não precisa mais cross-compilar, é o mesmo binário
Sensacional! Parabéns
Show!!
Já pensou em fazer um podcast com entrevistas?
não, já tem outros lugares que fazem entrevistas, fora que dá muito trabalho :-)
Ainda usam DV-R para câmeras de segurança/vigilância.
Fantástico!!!