✏️ Toda linguagem tem propósito de ser útil em alguma coisa? Bem... já ouviu falar de *linguagem esotérica*? Vejamos sobre nessa divertida thread! 1/7
"Linguagem esotérica" são linguagens de programação cujo único intuito é ser divertida, mind-blowing, por em prática alguma ideia bizarra, por mais inútil que seja.
Por exemplo, Piet é uma linguagem esotérica que se programa usando pixels. Abaixo está um hello world em Piet
2/7
Piet está na categoria de linguagem esotérica não-textual, uma vez que o código é uma imagem.
Outra categoria são as bidimensionais, tais como MarioLANG, da qual o cursor percorre um texto que se parece (?) com as fases de Mario.
3/7
E claro, não podia deixar de citar brainfuck, certamente a linguagem esotérica mais popular.
Ela é bem antiga: 1993.
Seu criador a fez com o objetivo de escrever o menor compilador possível para Amiga OS, e desafiou outras pessoas a fazerem algo "útil" com ela.
4/7
Porém, fica claro que não é prático fazer algo "útil" nelas. Nem foram desenhadas para tal.
Porém, isso não quer dizer que são completamente inúteis!
Programar num ambiente limitado é um desafio divertido. Se obriga a sair da zona de conforto e pensar em outras soluções.
5/7
Outro ganho com tais linguagens é explorar conceito de programação de forma mais lúdica.
Por exemplo, como é programar numa linguagem stack-based? Piet é um exemplo divertido para explorar.
E o que é Turing-complete? Como provar que brainfuck é? E o que é Turing tarpit?
6/7
Aqui encerro essa breve thread 🎉
Se quiser ver mais sobre linguagem esotérica, pode pesquisar com a abreviação em inglês: "esolang".
Há diversas wikis, projetos e comunidades.
E se desafie: tente programar algo foda em Piet, ou criar sua própria esolang! 😝
7/7
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Hoje é o Dia Mundial da Língua Portuguesa. Algumas curiosidades sobre o nosso idioma.
🇦🇴🇧🇷🇵🇹🇲🇿🇨🇻🇬🇼🇸🇹🇹🇱🇬🇶
#1 Em São Paulo se localiza o "Museu da Língua Portuguesa", o único dedicado exclusivamente ao tema.
#2 O português falado no Brasil, em especial no interior do Rio de Janeiro, se assemelha mais ao falado em Portugal em ~1800. Isso é um fenómeno presente em várias ex-colónias, da qual a língua sofria mais mudanças na metrópolis enquanto era mais conservada nas colónias.
#3 Um importante fator para se falar português em todo o território brasileiro, com pouca presença de idiomas nativos, outros idiomas europeus, ou mesmo misturas, foi o "Diretório dos Indios do Marquês de Pombal", lançado em 1757. Com mãos de ferro, impôs a língua portuguesa.
📓 Na faculdade decidi fazer um paper como TCC, já que monografia é inócuo: puta trabalho para algo que ninguém lerá.
Optei em falar sobre segurança ofensiva e aproveitar um hype: protocolo IPFS.
Apesar do paper ser em português, ele já foi citado num artigo em inglês!
Porém...
+
Escrevi num ano e foi publicado no seguinte, na 2ª tentativa.
Dentre as razões para a recusa inicial: "a visão parece ser de um atacante criando uma botnet".
Mas isso é artigo de segurança ofensiva! Pensar como um atacante para antever os próximos passos e mitigá-lo.
+
Isso é frustrante. Não faz sentido deixar de publicar por ser a visão de um atacante. Cedo ou tarde a possibilidade será descoberta.
Tanto que 3 anos depois um outro artigo abordou sobre o mesmo tema, de forma bem mais aprofundada, e foi citado 14 vezes.
+
⚙️ Você sabe o que acontece quando manda o compilador executar?
Entender mais sobre os aspectos fundamentais da computação é importante para evoluir como desenvolvedor!
Bora explorar esse tópico nessa breve thread! 1/9
Começando pela definição: o que é um compilador?
Em linhas gerais, é converter a representação de dados A para a representação B, de forma que haja uma relação entre elas.
Por exemplo, Babel compila de JS para outra versão de JS (ex: ES6 -> ES5), ou num equivalente minificado
2/9
As etapas de compilação geralmente são: código fonte -> análise léxica -> parser -> análise semântica -> otimização -> geração de código.
Um compilador pode ter mais ou menos etapas, dependendo da complexidade exigida pela linguagem/arquitetura alvo/trade-off. 3/9
🔍 Como criar foco enquanto desenvolve um projeto pessoal?
É uma dúvida comum. Sempre faziam para mim quando eu apresentava um projeto pessoal que dediquei mais que um ano focado programando.
Segue breve thread abordando qual foi a minha estratégia - e que você pode replicar! 1/9
Na thread abaixo comentei que uma excelente forma para aprender a programar é colaborar num projeto opensource.
Isso favorece o engajamento numa comunidade, o que é importante - porém, falta algo a mais para garantir mais foco. 2/9
Fazer parte de uma comunidade gera sentimento de grupo, da qual ajuda a se manter em algo. Não é à toa que jogos onlines incentivam a colaboração, para criar amizades que prendem o jogador.
Porém, um outro mecanismo importante e presente em game design é o "Skinner Box". 3/9
🪄 Uma pergunta frequente é "como começar a programar?". Sei que muita gente já escreveu sobre isso, mas como essa pergunta ainda aparece, vou respondê-la em primeira pessoa, focando em como deu certo para mim. Espero que você possa aproveitar a experiência para se inspirar. 1/9
A primeira vez que "escrevi algum código" foi ainda criança, usando ferramentas bem visuais: Delphi e RPG Maker. É fantástica a empolgação em rapidamente ter um feedback do que estou criando, resolver puzzles e ter a sensação de poder mandar o computador fazer o que quero. 2/9
Como primeiro passo, creio que o mais importante é criar gosto. Linguagens visuais e/ou educaionais como Scratch e Logo são voltadas para crianças, mas algumas graduações a usam. São úteis para o primeiro contato, para já ajudar a pensar em como se comunicar com o computador. 3/9