Palestra principal: Escrevendo Software Por David Heinemeier Hansson
Pronto, aí sim!
Software é difícil! Hardware, também.
Bom... No último ano, tive o prazer pessoal de
celebrar dez anos trabalhando com Ruby
e dez anos trabalhando com Rails. Mas, neste ano,
teve um aniversário muito mais interessante:
dez anos de compartilhamento do Ruby On Rails
com todos vocês e todos que o usaram na última década.
A imagem no fundo é do momento quase exato
em que eu fiz a primeira apresentação sobre Ruby on Rails
numa universidade dinamarquesa
dez anos atrás.
Dez anos atrás, tive que falar muito
sobre o que era MVC, por exemplo. Hoje, nem tanto.
Existem muitas coisas com que estávamos preocupados
nos últimos dez anos que,
com o nosso amadurecimento enquanto comunidade e programadores,
simplesmente não são mais relevantes.
A gente já parte do princípio de que elas vão estar lá.
E isso é ótimo! Assim, a gente pode
se dedicar a um monte de outras coisas.
Mas, olhando para os últimos dez anos
(que é a maior parte da minha vida adulta),
estive trabalhando com Ruby on Rails
É engraçado olhar mais ainda para o passado
Parece que existe uma ideia aí
de que qualquer um que crie algo como o Rails
ou faça outra coisa dentro de
desenvolvimento de software ou Ciência da Computação
deve ser alguém
que programa desde os cinco anos de idade.
Tem toda essa ideia do hacker, alguém que
meio que conseguiu o primeiro computador
20 anos atrás e programa desde então.
Bom, esse não fui eu.
Eu não aprendi a programar
quando tinha cinco anos de idade. Não aprendi a programar
até estar perto dos vinte. Estive interessado em
computadores por muito tempo, mas foi só
no fim dos anos 90, começo dos anos 2000
que entrei no mundo da programação
como algo que eu quisesse fazer.
Muitos amigos meus programavam.
Conheci muitos programadores.
Mas nunca me interessei muito...
Antes de começar a escrever software para mim mesmo
e antes de encontrar tipo um lugar
no mundo do software.
O motivo
Já vi muitos textos falando sobre
o que é ser um hacker de verdade
e que uma das coisas que falam a toda hora
é essa coisa dos dez anos. Você já
deve ter programado por dez anos, senão
com certeza estará ultrapassado.
Bom, eu aprendi a programar três anos antes
de liberar o Ruby on Rails. E deu tudo certo.
E não estou dizendo isso
como quem cresceu na fazenda
e não sabia o que era um computador.
Esse no meio segurando um graveto sou eu
de camiseta azul, em 1985. Essas são as crianças que
moravam no meu bairro.
Em 1985, ganhei meu primeiro computador.
Eu tinha uns cinco anos de idade.
Entrei no mundo dos computadores pelos jogos. Tipo assim,
a gente brincava de ninja na rua
e depois brincava de ninja no computador.
Eu achava fascinante, desde o começo,
os computadores eram muito fascinantes
e os jogos realmente
me davam asas à imaginação, desde sempre.
Eu lembro que, naquela época,
havia muitos pais que diziam "Então, vê se vai lá fora brincar bastante."
"Você não vai querer passar",
ou melhor, "desperdiçar seu tempo" (era assim
que eles falavam) "na frente do computador, hein..."
Bom... Eu queria mesmo
desperdiçar meu tempo na frente dos computadores.
E esse era o computador do meu bairro em 1985.
Mas não dava para comprar um desses. Só tinha um cara no bairro
que tinha um desse. Então, todo mundo
usava aquele e a gente jogava Yie-Ar Kung Fu.
Mas aí, no ano seguinte, eu não tinha condições
de comprar aquele computador, mas aí meu pai
estava consertando TVs e rádios
e ele trocou um rádio com um cara que deu a ele um computador,
um Abstraught 646.
E eu fiquei muito empolgado. Não conseguia rodar
Yie Ar Kung Fu, o que me decepcionou um pouco,
mas ele tinha outros joguinhos tontos.
De qualquer maneira, era um computador.
E foi minha introdução aos computadores, aos seis anos.
E eu tentei aprender programação.
Eu arranjei uma revista e, no verso dessa revista,
tinha programas que você podia digitar
E era, tipo, uau, que incrível,
posso controlar esse computador!
Aí eu construí meu primeiro sistema de tecnologia da inforamação
Eram mensagens para minha mãe de aonde eu fui.
Era um sistema esperto,
que otimizava o fato de escrever uma mensagem de
aonde eu fui e quando eu estaria
em casa. Era muito complicado.
Seria mais fácil se eu só escrevesse
num pedaço de papel o tempo exato
até onde avançar uma fita
para aí ela ouvir onde eu estava.
Eu pensava: "Cara, que genial...
Só preciso escrever 2-28 e aí
poderia programar a nota, e ela nunca
saberia que eu estive na casa do Peter jogando Kung Fu.
Aquilo não era programação de verdade. Só digitei umas coisas lá.
Eu não sabia o que eu estava fazendo.
Só descobri o comando PRINT
que colocava coisas na tela.
Era só isso. Mas já era
minha primeira tentativa de programar.
E eu meio que fracassei.
Era isso que eu sabia fazer programando,
eu sabia avançar até uma mensagem pré-gravada.
Não era grande coisa.
Bom, aí, uns anos depois, fim dos anos 80,
eu vi um jogo pela primeira vez: Battle Squadrant.
E eu me lembro de pensar: "Caraca, olha esses gráficos!"
"Como é que eles fazem isso?" Fica muito bom quando
você está acostumado com um Commodore 64,
os gráficos do Amiga 500, que são incríveis.
E aí, de novo, eu senti aquela coisa:
"Nossa, seria demais participar disso!"
"Poder criar algo desse jeito"
Eu adoraria fazer jogos.
Então, eu meio que comecei a procurar
e achei um tal de Amus.
Alguém aqui já programou em Amus?
Nem um gato pingado... Esse Amus deve ter sido coisa de europeu.
Mas era um ambiente real de programação
Eu comprei a caixa
e, bom, meu inglês não era aquelas coisas,
então eu só ia passando o olho
e tentando achar o código.
E aí tina um monte de negócios de sprites, vetores, ifs, variáveis...
e não fez sentido nenhum para mim.
Aí eu pensei: "Esse negócio é
muito complicado". Graças a Deus, existia um tal de Easy Amos
Opa, agora vai... Um é muito difícil,
então é só pegar o outro
que é fácil.
Mas, infelizmente, no Easy Amos, ainda era programação, e
ainda tinha condicionais e variáveis e um monte de
outras coisas que eu não entendia.
É engraçado que, quando você aprende alguma coisa,
às vezes é difícil voltar atrás e
pensar: "Como era antes de
eu saber isso?" Mas eu lembro bem:
Para quê ter uma variável?
Tipo, se você atribui um negócio uma vez,
vai querer mudar isso? Por que
precisa ser um espaço? Por que
não pode ser a própria coisa
Eu não conseguia entender o conceito de variáveis.
E isso foi quando eu tinha, tipo, dez anos
ou sei lá. Então, nada feito, programação não estava fazendo
sentido para mim. Então,
eu desisti disso, também.
Então, em 1993, fui a um negócio chamado "O Encontro".
O Encontro 3, que era uma festa grande de mostrar demos
na Dinamarca, aonde ia gente de toda a Europa
e talvez dos EUA também.
Eles iam lá para mostrar suas habilidades
de criar demos.
E essas demos eram basicamente uns vídeos de música
com computação gráfica. E eu achava aquilo o máximo!
Aí, de novo, eu tive aquela sensação de
"Uau, incrível! Olha o pessoal criando
essas sequências, é muito da hora,
eu adoraria fazer parte disso".
Isso foi em 93, e eu tinha 14 anos.