This section identifies the source of quotes in the text and presents the original Portuguese and broader context for quotes taken from recorded interviews. See Transcription and Quoting Method for an overview of the transcription and quoting method.
Chapter 0
p. 1
The opening quote is based on field notes.
p. 3
The “world’s greatest library” quote is taken from a 2005 interview conducted in Portuguese.
Yuri: E quando você tá trabalhando na sua casa, escrevendo código, e você tem alguns tipos de dúvidas sobre como fazer alguma coisa, como você faz?
Jaime: A Internet. Hoje em dia a maior biblioteca mundial é a Internet. A Internet, hoje ela dispõe de todos os recursos imagináveis e não imaginaveis de dúvidas. Eu já resolvi muita…
Yuri: Você poderia me dar um exemplo?
Jaime: Basicamente às vezes são dúvidas de como uma rotina funciona, ou exemplo de alguma…
Yuri: Você tinha algum tipo de dúvida ontem?
Jaime: Não, ontem não, mas, vamo dizer assim, em linhas gerais, eu já tive uma dificuldade, por exemplo, em escrever uma rotina de… Eu não me lembro se foi alguma coisa de enviar email, de rotina de email. Pesquisei na Internet e consegui encontrar. Mas isso é muito freqüente, não é só… Às vezes é como funciona, como implementar… Às vezes o livro dá só aquela parte teórica, mas aí cê futuca lá, pesquisa na Internet e consegue.
Chapter 2
p. 47
The original code passage contained two typos — one in English and one in Portuguese. Both were corrected. The some of the lines in the passage should be indented—see errata.
p. 52–53
Fabio’s, Mauricio’s, and Rodrigo’s quotations are based on fieldnotes and were all recorded in English. Fabio’s and Mauricio’s quotation were spoken in Portuguese. Rodrigo’s quotations may have originally been either in Portuguese or English.
p. 54–55
Roberto’s quotation about the name “Lua” is from lua-l archives from July 1997 and was originally in English, in the context of discussing the meanings of the word “lua” in other languages. The longer quote was:
As most of you already know, “Lua” means “moon” in Portuguese (similar to “luna” in Spanish), and in our language it is a very beautiful word. We do appologize for any other unintentional meaning :–)
The long quote is from a 2007 interview conducted in English.
Yuri: Luiz Henrique also said that this version, the original version [of Lua] that you put on the web had comments in English.
Roberto: Yes. [Overlapping speech.] I told you. Even before that version the comments already were all in English.
Yuri: And why was that?
Roberto: I don’t know.
Yuri: What do you mean? I mean when you write code, do you always write…?
Roberto: Currently, yes. But I don’t remember if at that time I already did that. I know that some people at TecGraf do that and I can show you the first version that didn’t even have a version control copy. We just found it somewhere in some directory some time ago, it did have comments in English. I don’t know. Maybe… I remember that we discussed a lot about both error messages and reserved words. There were people, even me, that talked about… that maybe instead of “if” we should use “se” and use “enquanto” instead of “while.” And we just decided that this is not English—this is reserved words. Someone said that, I don’t remember who: those aren’t even quite English words, even for English people they couldn’t … that they were picked by European people who didn’t speak English properly. [Laughs.] But anyway, so we decided to stick with the usual reserved words. And I think that the error messages went together; they should be in English, it would be strange to write “while …” and then get “Erro na linha …” So maybe comments were in English for the same reason. I really don’t remember. I can maybe try to find some… but I think that I usually already wrote many things in English. I think it’s… I can’t swear, but there is a good chance…
Yuri: I’m curious at the time who did you see as the audience for those comments and for those error messages?
Roberto: For the error messages, for sure TecGraf. That’s why we discussed it. For the comments, just me, Luis Henrique and Waldemar. We didn’t think about other people reading the code. So I think it was in English because… That’s what I said: I think I tend to use English in comments because it’s difficult to put accents in with… text editors. We have this problem of ASCII vs. ISO and character codes and things like that so we prefer…
Yuri: ASCII vs. what? Oh, ISO?
Roberto: ISO. ISO and other codes so I think that’s the main reason we stuck to English for comments.
p. 56–57
All Roberto’s quotes here are from a 2007 interview conducted in English or from lua-l archives (also in English). The broader context of the interview quote is provided below:
[Continuing right after the previous quote.]
Yuri: I see. So but then… now this paper itself was also written in English, right?
Roberto: Yes.
Yuri: And in this case, how does that work? I mean, are SEMISH papers normally in English?
Roberto: They can be in English or in Portuguese. They accept English, Portuguese, and Spanish.
Yuri: And does it make any difference for, let’s say, how they count, or…?
Roberto: No, at that time it didn’t make any difference. At that time I remember that I usually prefered to write papers in English, exactly because I… Of course it makes a lot of difference of how many people are going to read it.
Yuri: And when you say “read it,” do you mean read it or you really mean cite it? I mean, is it a concern with actual audience…?
Roberto: Yes, that’s exactly what I was going to ask. I am very concerned, was very concerned about publications but… Incredible how I’m also concerned about readers. [Laughs.] I think it’s fine when people read what you write. [Laughs]. For instance, for that paper, we were really concerned about readers. And not exactly only this paper, it’s more a general… I usually prefer to write papers in English. Since that time I only wrote papers in Portuguese when it’s very fast or… Currently even fast, I prefer to write in English. But at that time, for instance, when there is some student that is not very good in English… But otherwise I usually prefer to write in English.
Yuri: But so when you say “prefer” you mean like when you sit down to write it just comes out more naturally in English, or you mean that you think it makes more sense to have this paper in English at the end of the day?
Roberto: The second. If I start from zero, I think it would come more naturally in Portuguese, but not that much more naturally. And mainly I want to have an English paper. And currently my tools are… Even when I want to do something in Portuguese in LaTeX, I always have a lot of problems. I am not even well-prepared to write Portuguese stuff anymore. I mean, most of the things I…
Yuri: In LaTeX?
Roberto : In LaTeX, yes. I write all my papers in LaTeX.
Yuri: And in LaTeX, are you saying there are problems with accents in LaTeX, or…?
Roberto: Yes, I do. There are a lot of packages to solve that but I do not have them installed properly. Or sometimes they are installed properly but I change some version but I only discover it two months, three months later that they are not working ok. I do not… Apart from emails, I almost never write anything in Portuguese.
[Same interview, seven minutes later, in the context of discussing the Roberto’s student’s command of English.]
Roberto: I usually expect that PhD students should write English because, exactly… I don’t… The problem I see is that in academics, when you go to a specific academic area, even in the world, the group of people interested in that—it’s small. So if you write in Por… In Brazil maybe there are four or five people who are going to read what I write. It’s not a problem of Portuguese, it’s a problem of any language. You must write in a language that everyone can read, unfortunately, or fortunately, because the number of people is so small. There is no point of writing a technical paper in Portuguese, or in Spanish, or in French, or in German, or in whatever language.
Lua-l quote:
Currently, the list members from Brazil (.br domains) are only ~15% of the list, from a total of almost 30 countries. (Our second “minority” are 10% of German speakers.) Whether we like it or not, the only language we can all communicate is English. Please keep in mind that it doesn’t have to be correct English; as far as people can understand what we want to say, it is Ok. We can have a much wider audience with poor English than with good Portuguese :–(
p. 60
Rodrigo’s quotes are based on fieldnotes and may have originally been either in Portuguese or English. (They were recorded in English.)
p. 61–62
Luciano’s quotes are from a recorded interview conducted in Portuguese. The original Portuguese is provided below:
Luciano: Ai na internet, eu fiquei curioso e vi HTML. Aí com o negocio de HTML eu queria fazer outras coisas legais, e saindo por mais coisas legais eu descobri a linguagem de servidor. Algum forum falou de PHP.
Yuri: E quando você tá falando sobre forum, na epoca você lia foruns em português ou em inglês?
Luciano: Em português.
Yuri: Agora você pode ler em inglês ou só portugês?
Luciano: Pra duvidas – qualquer coisa. Entendeu? Se tiver uma duvida… Agora lá: [unclear] resolução de meu monitor [unclear], sei lá. Vou colocar no Google em inglês. Pra ter mais resultado. Mas em termos de aprendizado, quero um tutorial sobre [unclear], aí vou botar em português. Se for textos longos — português. Com inglês é muito mais fácil me perder, entendeu, uma palavra vai mudar completamente tudo. Entendeu? Eu não garanto ainda.
Yuri: E inglês como você aprendeu ler?
Luciano: Forçando a barra.
Yuri: Que?
Luciano: Forçando. Um curso colegial me deu o basico. Inglês pra crianças de doze anos. Não vale. Por jogos. Jogos RPG.
Yuri: Explica…
Luciano: Jogos, jogos RPG. Conhece? Jogava muito — jogos RPG. Os jogos RPG me deram o minimo, e aí… Por exemplo para comprar coisas, eu ia atribuindo… Se aqui podia comprar, então aquela palavra era “comprar”, e a outra palavra era “vender,” entendeu?
Yuri: Falando com outra pessoas?
Luciano: Não, é embutido.
Yuri: Mais você tinha que aprender pra falar com outras pessoas jogando ou pra falar com o sistema mesmo.
Luciano: Com o sistema. Não foi multiplayer não. Com a maquina mesmo, entendeu? Se tem que abrir aquela porta, é “abrir a porta.” Atribuir as palavras “abrir a porta.” [Pause.] É… é “buy”, né? Essas palavras já tavam bem atribuidas.
Provavelmente com PHP… Nao, PHP tinha livro em português. O único livro em Inglês que eu li foi de Lua. É, único.
Yuri: E esse livro você leu tudo? Leu mesmo, do inicio até o final?
Luciano: Uhu.
Yuri: E entendeu?
Luciano: [Laughs.]
Yuri: Levou tempo?
Luciano: Muito, muito tempo.
Yuri: Mas quando já tinha lido um livro deve ser mais fácil ler outro, né?
Luciano: É, mas não arisco mais. Demora muito!
p. 63
Pedro’s quotes are from a recorded interview and were translated from Portuguese. The original Portuguese is provided below:
Pedro: Porque o que eu fiz, eu não fiz [a minha graduação] em quatro anos. Eu fiz em quatro anos e meio, porque eu decidi reduzir a carga para estudar inglês. Então, reduzi a carga para estudar inglês, pra estudar inglês um ano e meio, no curso comercial de inglês. If you want we can talk. [Laughs.] O meu inglês ainda tá… ainda tá… Eu ouço melhor do que falo.
Yuri: Você faz que melhor do que fala?
Pedro: Ouço. Ouvir. Listen. Entendo. Entendo melhor do que falo.
Yuri: E como você aprendeu?
Pedro: Curso de inglês. Curso semi-intensivo de um ano e oito meses, que tô fazendo. Continuo lá fazendo. Então reduzi minha carga na faculdade no sexto período. Há oito períodos. Reduzi no sexto, planejando ficar um período a mais, um semestre a mais. Porque no sexto período parei: se eu não estudar inglês, não vou poder fazer mestrado. Não vou ter recurso pra poder fazer mestrado.
Yuri: Porque?
Pedro: Porque os mestrados obrigam que a pessoa já seja fluente… fluente não, mas capacitado em leitura e entendimento.
Yuri: Leitura eu entendo. E entendimento talvez entendo. Mas falar?
Pedro: Não tem problema. Mas você tem que saber ler e escrever inglês. Porque tem que submeter artigos em Inglês, né? Então tem que saber ler e escrever. Então decidi fazer isso no sexto semestre, reduzi a carga, então tive que estudar um semestre a mais. Eu tô um semetre a mais da carga normal.
Yuri: E foi esse curso de seis meses?
Pedro: O curso de Inglês foi um ano e oito meses. Porque eu fiquei… Porque no sexto semestre eu comecei o curso de Inglês. Aí fiquei o setimo, oitavo, e o atual, que seria o nono, né, estudando inglês junto com a faculdade. Então, reduzi a carga…
Yuri: E foi bom?
Pedro: Pra mim foi bom, funcionou.
Yuri: Antes desse curso você não sabia…
Pedro: …nada de inglês.
Yuri: Até não sabia ler?
Pedro: Nada. Nem ler. A gente tem inglês aqui na escola fundamental, só que é muito pobre. É inglês que é baseado em tradução. E aí você não aprende nunca. Eu sabia muito pouco, muito pouco. De leitura muito pouco. Posso dizer que hoje eu consigo ler qualquer artigo em inglês.
p. 64
Edmundo’s quotation is from a 2005 interview conducted in Portuguese.
Edmundo: Eu uso Google… Por exemplo, eu tô com uma duvida de ler um arquivo binário. Eu esqueci, como é que eu faço? Ou eu perco tempo fazendo uma classezinha aqui dentro da [company name] pra ler o arquivo binário, ou dou um search “java binary file”. Aí eu vejo mais ou menos como o pessoal fez o código, e faço o meu.
Yuri: E você sempre usa palavras ingleses?
Edmundo: Sempre. Palavra inglês. Ó… Perdão, perdão. 80% em inglês, 20% em português. E te falo por quê. Por que os 20% em português? Porque aqui no Brasil, nós temos uma das maiores comunidades de Java do mundo, que é a comunidade Sou Java, que fica em São Paulo. E 80% porque no mundo inteiro, independente de comunidade Java, chama JUG, Java User Group, que independente de comunidades, tem programador Java pelo mundo inteiro, então é muito mais fácil você encontrar uma palavra que você post em inglês do que em português. Yuri: Então, às vezes você usa inglês, às vezes português?
Edmundo: 20% português, 80% inglês.
Yuri: Mas como você escolhe?
Edmundo: Boa pergunta. Como eu escolho isso? [Pause.] Quer saber mesmo? Quer saber mesmo? Quando eu tô cansado de escrever em inglês, aí eu boto em português. [Chuckle.] Tô cansado escrever inglês. [Chuckle.] Não existe nenhum padrão, “Ah, agora eu vou fazer em português”. Não, não. Não existe esse padrão. Yuri: Tá bom, então quando você tá cansado?
Edmundo: Quando tô cansado. [Laughs.] Quando eu não quero mais ler em inglês, não quero ler nada, não quero escrever inglês. Yuri: Ler em inglês é mais difícil pra você?
Edmundo: [Pause.] Com certeza, porque não é a minha línguamãe, entendeu? Não é a minha línguamãe. É tipo você, mesmo que você morando cinco anos já nos Estados Unidos, três anos nos Estados Unidos. Cinco anos você morou nos Estados Unidos, né?
Yuri: Dez.
Edmundo: Dez anos, né? É dez anos, pô… Ainda assim, ler em russo é muito mais fácil do que ler em inglês.
p. 64–66
Rodrigo’s and Luciano’s quotes are based on field notes. The original language was as indicated in the text.
p. 66–67
Rodrigo’s quotes are based on field notes and may have originally been either in Portuguese or English.
p. 66
Marcus’s quotes are based on field notes and were originally in Portuguese.
p. 68
Roberto’s quotes are from a recorded interview conducted in English.
Chapter 3
p. 71–72
Mauricio’s quotes are from a recorded interview translated from Portuguese. The original quotation is shown below:
Mauricio: Mas como eu passei na escola técnica, a minha mãe me deu de presente uma Amiga, Amiga 600. Aí eu fiquei com esse Amiga um tempão até ganhar meu primeiro 486. E lá [in a city in the State of Rio de Janeiro] eu fiz escola técnica, de eletrônica. E como era bem nerd, eu passava a maior parte de tempo no laboratório de informática.
Yuri: “Bem nerd” significa que?
Mauricio: Geek. Eu gostava muito disso. Não era uma pessoa muito sociável, ficava mais tempo instalando programas no computador do que outra coisa. Lá a gente aprendeu Pascal e aí do Pascal fui estudando outras coisas.
Yuri: Mas só no segundo grau você começou a programar? Antes você só jogava? Passava muito tempo no computador, mas só jogava?
Mauricio: É, eu já fazia algumas coisas, mas jogava a maior parte do tempo. Porque não tinha educação formal em programação. E os jogos que vinham eram muito melhores do que qualquer coisa que eu poderia fazer. Só no segundo grau mesmo que eu aprendi alguma coisa e deu pra melhorar.
Yuri: E tinha outros amigos que sabiam programar?
Mauricio: Não. Eu tinha uns três amigos que sabiam programar, o resto era jogar mesmo.
Yuri: E como você aprendeu? Fez o curso mesmo lá na escola?
Mauricio: Programação, Pascal, o professor deu o básico. Só que como ele não queria nada com nada, a gente teve que correr atrás. Porque ele entrava, dava uma aula, liberava todo mundo, e a turma ia jogar futebol. A turma toda saía e a gente ficava lá no laboratorio. É que saiu o Doom, né, então assim… A grande onda da gente era pegar, destruir mouse pra fazer o cabo no modem, pra jogar Doom contra…
Yuri: Explica…
Mauricio: Cabo de… no modem… Na verdade cabo serial, pra conectar computadores. Pra poder se comunicar. Não tinha rede naquela epoca. Ou até tinha mas não funcionava lá. Então a gente conetava os computadores pelo porto serial pra poder jogar Doom um contra o outro.
Yuri: Mas porque precisava usar mouse pra isso?
Mauricio: Porque o mouse tinha um conector certo — seriál. Era mais fácil…
Yuri: E não podia comprar o…
Mauricio: Era mais barato pegar um mouse, quebrar e fazer. Chegou um ponto quando a gente tinha tanta prática de fazer isso. A gente arrancava o mouse [picks up an imaginary mouse, rips off its cord and removes the isolation with teeth], juntava os fios, colocava… Demorava menos de dez minutos pra fazer um cabo.
Yuri: Isso foi com esses dois amigos?
Mauricio: É.
Yuri: E os outros, todo mundo jogando futebol?
Mauricio: Jogando futebol, indo pra praia, namorando. E eu lá no computador.
p. 73
Célio’s quotes are from a recorded interview conducted in English in 2005.
Yuri: The last thing: I was wondering if there is any question that you think I should have asked you that I didn’t? In terms of understanding your experience and how you…
Célio: Maybe when or why I got interested in computer science. This happened when I was six years old and I got an Atari—a video game. And this was my first contact with some electronic device. I was able to compute on something.
Yuri: And how did you get that Atari?
Célio: It was a gift from my father and mother.
Yuri: Was that a gift you wanted and asked for?
Célio: Yes, I asked for it. I saw it on television. I was a kid, just a small kid, so this was just for the fun.
Yuri: That was when you were eleven?
Célio: No, I was six.
Yuri: Six?
Célio: Yeah. Eleven I already knew that I wanted a computer, not a video game.
Yuri: So, Atari was just a video game? You couldn’t program it.
Célio: No.
Yuri: I see.
Célio: But in the end, video games are programmed. So, I decided I wanted to do that for my life. [Laughs.] Though I didn’t know what “that” was.
p. 73–83
Jason’s quotes presented in sections spanning pages 73–83 come from the first seventeen minutes of a recorded interview conducted in Portuguese in 2007. They are organized thematically in the book. The original transcription below shows the passages in the original order:
Yuri: Eu queria fazer algumas perguntas sobre como você chegou a trabalhar com informática.
Jason: Mhm.
Yuri: Voce agora tem quantos anos?
Jason: Eu tenho 32 anos.
Yuri: E como você começou a trabalhar, ou mexer com computação.
Jason: Eu mexo com computação desde [unclear] oito, oito anos de idade. Eu comecei trabalhando com pequenos computadores de lógica Sinclair que no Brasil eram comercializados com o nome de TK 85, TK 82. Eram computadores bem pequenininhos e meu pai comprou um desses pra mim e eu desenvolvia joguinhos neles e os meus primos, da mesma idade que eu, jogavam estes joguinhos e sugeriam mudanças que eu ia lá e implementava. Eu aprendi a linguagem BASIC no manual do próprio computador, né, que vinha com a linguagem BASIC nativa, e eu aprendi lá, mais ou menos sozinho mesmo, e fiquei muito interessado. Mas não persegui muito mais isso não porque, na verdade, eu queria ser escritor, escrever ficção. Eu sempre tive interesses muito diversificados em várias áreas, né?
Só anos depois, quando… Nos anos 80 a educação teve uma série de problemas com governo naquela época, então houve muitas greves, tinha um período de alguns anos. Tinha repetidas greves que deixavam os anos letivos com lacunas às vezes de quatro meses, assim. Então a gente começava a estudar e ficava quatro meses parados e só depois ia concluir. Numa dessas o meu pai achou importante me colocar em algum tipo de curso para eu não perder um ano sem estudar. E aí me colocou num curso de informática.
Yuri: Você tava fazendo faculdade ou foi durante o 2o grau?
Jason: Não, isso foi, eu devia estar na 6a série, 7a série, eu era garoto, devia ter…
Yuri: Ah, tá bom.
Jason: Devia ter 13, 14 anos. Aí no curso de informática eu fui apresentado a outras tecnologias, bancos de dados, essas coisas. Aí finalmente eu me interessei pela carreira. Pra ser mais preciso, eu acho que foi 1987.
Yuri: Quando seu pai te comrou o computador, você tinha quantos anos?
Jason: Eu tinha oito anos.
Yuri: Ah, oito! Eu achei que você disse “18”. Agora eu entendo.
Jason: Oito anos. Eu era criancinha ainda.
[Two minutes later.]
Jason: De 87 e ate 89 mais ou menos eu estudei informática no curso lá e terminei o 1° grau. Terminei o 1º grau em 89, eu acho. Aí eu já programava em BASIC, dBase, Clipper, Pascal, um monte de linguagens. Aí eu resolvi fazer o 2º grau técnico de informática, né? O 2º grau foi peace of cake, assim. Passei [unclear] completo, porque eu já entendia de tudo que estavam dando ali, por causa do meu contato com as coisas. O meu 2º grau era dividido em três anos: o primeiro ano era básico, estudava todas as matérias, biologia, física, química e só uma introdução à informática. E a partir do segundo ano é que começavam as matérias técnicas mesmo, programação, algoritmos, essas coisas todas. E aí no primeiro ano eu identifiquei uma necessidade de automação, de desenvolvimento de sistema pra escola, e aí comecei a desenvolver o software para controle de alunos, para o curso deles né?
Isso até era uma coisa engraçada porque eles tinham um aluno do primeiro ano, que nem era técnico, desenvolvendo um sistema bastante avançado já né. O que acabou me dando muito acesso às pessoas, aos professores, aos laboratórios. Eu tinha acesso aos laboratórios pra fazer. E me rendeu até um apelido na época, que é o apelido que eu uso profissionalmente até hoje, que me chamam de “Jason,” porque acho que naquela época tinha aquele filme “Sexta-feira 13,” o Jason com uma máscara e tal e ele não morria de jeito nenhum, você dava tiro nele e aí tinha… E eu era uma pessoa extremamente obsessiva com programação, então, eu ia lá e programava, passava os dias… Eu estudava pela manhã nesse ano, acho que foi 89 ou 90, acho que 1989, eu estudava pela manhã, de 7 da manhã ao meio dia. E durante a tarde o laboratório de informática tava liberado pra mim, porque ele tinha acesso restrito, nem todo mundo podia usar os computadores. Mas eu tinha acesso porque eu fazia um sistema pra escola. Aí, às vezes, eu emendava e começava a usar os computadores meio-dia e pouco, assim que abria o laboratório, e continuava usando até dez horas da noite, quando me chutavam de lá pra fora.
Yuri: E eles te pagavam?
Jason: Não, eles não me pagavam o sistema; eu ganhava uma bolsa de estudos, eu não pagava a escola em função de tar fazendo esse sistema. Para eles era um arranjo muito benéfico, eles teriam gasto muito mais dinheiro se tivessem contratado alguém pra fazer.
E aí uma vez, teve uma vez que eu fiz uma prova de inglês pela manhã, eu também era bom de inglês, então fazia a prova bem rápido, eu fiz uma prova de inglês e saí oito horas da manhã da prova e aí os laboratórios só abriam uma hora da tarde. E aí eu: “Pô, como é que eu vou fazer, pra fazer hora até a hora de começar a programar né?” Aí fui como quem não quer nada, por desencargo de consciência, fui lá no laboratório e por acaso tava aberto, estavam dando manutenção nos computadores, eu “Legal, então eu vou entrar” Entrei e fiquei lá sentado programando e as turmas entravam e saiam, entravam e saiam, e eu continuava lá fiquei lá de oito da manhã até às dez da noite sem levantar da cadeira. É, como 2º grau é uma coisa que a fofoca é uma coisa natural, no dia seguinte a escola inteira já sabia do garoto que tinha ficado de oito horas da manhã às dez da noite no computador. Então, me passaram a me chamar, ao longo da semana, de vários apelidos: “zumbi,” “vampiro,” “morto vivo,” “sem funções vitais.” No final o que pegou foi o “Jason”. Aí todo mundo: “Ah, o Jason que não morre, que tá ali no computador, como sempre, lá.”
Yuri: E o que você fazia o dia todo no computador?
Jason: Eu fazia o sistema, eu acho que na época eu chamava ele de Mirrage, que era o sistema de controle de alunos. Ele cadastrava os alunos, as notas, os professores, emitia relatórios e tal e aí eu montava o sistema em linguagem Pascal na época, no meu segundo ano…
Yuri: Você passava o dia todo, esse tempo só trabalhando com esse sistema? Presisava tanto tempo?
Jason: Eu era novo não entendia muito de análise de sistemas na época. Eu era lá um programador e tinha tido contato com algumas linguagens de baixo nível nos meus estudos nos anos anteriores, né? Eu tinha dificuldade de, por exemplo, armazenar dados, eu não entendia de banco de dados, e nem eram muito sofisticados os bancos de dados pra DOS naquela época. Então, tinha que fazer na mão o acesso a disco dos arquivos e tal. E aí a modelagem do sistema, às vezes, me causava problemas e eu pesquisava novas coisas, né? Alguém me trazia um programa novo, uma biblioteca nova, e eu ficava explorando ela.
Era uma época complicada, eu me lembro, porque obter informação era difícil, você descobrir como se fazia uma coisa, você ficar fazendo tentativa e erro. Os livros eram caros e difíceis de encontrar, você precisava encomendar livros importados. E você ia nas livrarias, pedia o catálogo, o cara te mostrava o livro. “Então, existe um livro sobre isso?” “Existe.” “Então, traz pra mim.” Aí demorava meses até chegar e você ir lá e comprar e eram caros às pampas. Então, a solução, normalmente, era conseguir os programas de alguma maneira, alguém que tinha, copiava e tal e aí você ia lá e tentava, testando ele e descobria como é que ele funcionava. E aí usava os recursos dele, aí de repente descobria alguém que já tinha feito uma coisa mais avançada do que aquilo. “Pô, como você fez isso?” Aí o cara explicava e ia lá e aplicava também no seu programa.
Yuri: E quando você fala de “alguém,” que tipo de pessoas eles eram?
Jason: Eu tinha alguns amigos que eram da mesma… se formaram com mais ou menos mesmo perfil do que eu, no curso de informática. O curso se chamava “Datacenter,” lá em Nova Iguaçu. O curso em que a gente tinha estudado, o panorama era interessante tecnologicamente porque era um grupo de jovens que tinham…
Yuri: Mais ou menos da mesma idade?
Jason: Mais ou menos da mesma idade. Eu devia ter 17 anos, 16, 17 anos… Que ficavam hanging around, em vez de ir no shopping, no curso de informática. [In a later email exchange Jason said that and his friends were actually 14 to 15 at the time. The number 17 is an incorrect on-the-fly calculation based on the year in which he remembers those things occurring (1987–1989) and his year of birth.]
E aí os professores do curso de informática eram pessoas experientes, profissionais experientes, sabiam muita coisa, eram uns caras bons e aí a gente ia lá e ficava pegando macetes e dicas com eles. O pessoal que programava coisas de baixo nível, um cara sabia assembler outro sabia C++, o outro sabia C. C++ acho que naquela época era muito incipiente, não era muito conhecido ainda. E aí a gente tinha saído do BASIC. A idéia da gente era construir aplicativos, nós queríamos fazer aplicativos porque era uma era em que os aplicativos eram poucos. Eram pocas coisas. Então, como nós entendíamos um pouco de programação nós achávamos que a gente tivesse condições de fazer um aplicativo daqueles e ficar ricos e famosos.
E a emoção ainda era maior ao ver que a gente conseguia fazer coisas que eram boas. Eu tinha um amigo, que chamava Rogério, na época, que ele… cada um tinha um perfil assim, e ele era o cara que era “fissurado” por editores de texto. Ele queria fazer um editor de texto porque estava frustrado com o editor de texto que existia naquela época chamado WordStar. E aí o WordStar, ele tinha uns defeitos que eram óbvios, que eram coisas, é… de decisões de projeto que tiveram ao fazer o software que não era um, é… que estavam se tornando inaceitáveis naquele mundo ali alguns anos depois, né? Era um software grande, que já tava no mercado, não ia poder sair trocando. Aí ele começou a construir um editor de texto que começou a ter funcionalidades melhores do que a do WordStar, um garoto lá de 16 anos, enfurnado num lugar lá bem longe. E isso era legal, esse prazer era…
Yuri: Longe onde?
Jason: Nova Iguaçu, longe com relação… até longe com relação a metrópole mais próxima, que era o Rio de Janeiro e longe com relação ao lugar que se fazia software comercial, que é lá nos Estados Unidos, lá no Silicon Valley e tal. Então, numa cidade periférica de um país de Terceiro Mundo, o cara foi lá e conseguia fazer um software, que era, que comparando o software comercial, você considerava “Esse software é bom.” Esse potencial motivava muito a gente de estudar, de aprender as coisas. Esse grupo de pessoas trocava figurinhas né? A gente dizia “Mas você conseguiu fazer isso como?” “Ah, eu descobri que na interrupção tal do DOS você pode botar um negocinho e o cursor passa a notificar cada vez que tá… você pode interceptar no relógio a parada e você consegue pegar as teclas do cara e aí você consegue passar um software por cima do outro e tal.” Umas decisões legais.
Eu lembro que na época eu era um cara que gostava de fazer gráficos, eu queria uma coisa que pudesse permitir que você rodasse vários programas ao mesmo tempo em janelas, um por cima do outro, assim. E aí pô, eu queria fazer isso de forma gráfica, na tela do DOS, mas era muito lento, muito ruim, eu queria ficar tentando soluções melhores, colocar buffers de vídeo mais espertos, copiar os dados mais rapidamente. Então, cheguei à conclusão que pra fazer isso eu ia ser obrigado a usar o disco e aí ia ficar muito lento e considerei inviável, desisti disso. Aí comecei a perseguir outras coisas. Fiquei muito indignado quando depois surgiu o Windows, alguns anos depois surgiu, justamente, usando o disco que era a idéia que eu tinha descartado como inviável, aí eu pensei “Sacanagem, se eu tivesse perseguido isso, tinha ficado rico.” [Laughs.] Ou não, né? [Long pause.]
A informação era difícil de obter, a gente tinha que mesmo explorar os softwares, por isso era muito lento, né, o desenvolvimento dos nossos horizontes né; a gente… Em compensação ele era bem thorough, bem minucioso, a gente conseguia coisas que às vezes espantavam os professores. “Nossa, mas você conseguiu isso?” “É, tive que esquadrinhar todas as interrupções ali e descobri que essa faz isso, essa faz assim; tive que dar uma solução pra poder contornar o negócio que eu não conseguia fazer”. E aí acontecia…
p. 80
Rodrigo’s quotes are based on fieldnotes and were likely originally spoke in English.
p. 81–83
Jason’s quotes in this section are from an interview passage quotes above.
p. 84–86
Jason’s quotes are from a recorded interview translated from Portuguese. The original quotes are shown below:
[Continues about seven minutes after where the previous segment left off.]
Yuri: Na época você pensava em fazer faculdade?
Jason: Eu comecei a fazer faculdade em 91… 92, isso, 92. Eu comecei uma faculdade em Nova Iguaçu, chamada UNIG.
Yuri: UNIG?
Jason: Isso.
Yuri: Como se escreve?
Jason: U. N. I. G.
Jason: Só fiz seis meses dessa faculdade lá. Nos primeiros seis meses eu comecei a me decepcionar com o curso, não gostei e tal e comecei a pesquisar, entrevistar os outros alunos pra saber como eram os cursos pra frente. Aí descobri que eu ia fazer o 2° grau de novo. E eu “Pô, pra isso eu estudo sozinho.” Não tinham novas linguagens de programação, as técnicas… Não eram grandes coisas que eles iam ensinar, né?
Eu não tinha uma visão completamente acurada das coisas que eles estavam me ensinando. Naquela época, eu era um cara extremamente técnico e muito pouco… Eu era extremamente “um escovador de bit” que a gente chama, né? Um cara de muito baixo nível. Eu queria aprender coisas que fossem bem próximas da linguagem de máquina, sabe? E de bem baixo nível mesmo. E aí eu subestimava conhecimentos como análise de alto nível. Até bancos de dados mesmo eu achava uma coisa muito trivial, “Pô, é um negócio que você pega o dado, bota lá e depois pega lá e tira, e depois bota de novo e tira, bota, tira. Não tem nada de especial nisso.” Então eu subestimei um pouco as cadeiras que eram disso, eu meio que analisei o currículo sob a ótica das tecnologias. Pensei assim: “Pô, não vão me ensinar tecnologia nova nenhuma nesse lugar, então não vou ficar aqui não.” E aí eu fui pra casa estudar mais coisa, né. E aí passei a fazer meio que um mosaico de diversas coisa, estudei essa coisa gráfica, estudei coisas de linguagem de programação, aprendi C++ nessa época, entre 91 e 94, e outras coisas.
Yuri: Aprendeu como?
Jason: Agora sim tinham livros decentes, né. Já era 91, 92, eu já podia entrar numa livraria, eles inauguraram, até aqui no Centro, era o playground da gente, Livraria Ciência Moderna aqui no edifício Avenida Central… Era a maior livraria de informática da época.
p. 86–88
Jason’s quotes are from a recorded interview translated from Portuguese. The original quotes are shown below:
[Continues seven minutes after where the previous segment left off.]
Yuri: Você disse que na época, que você trabalhava na Petrobrás, você começou a pensar de novo em fazer faculdade?
Jason: Isso. Na Petrobras foi quando eu meio que comecei a sentir a crise do meu supertecnicismo. Porque eu chegava lá e descobria que o mundo tinha mudado um pouco, as coisas eram mais fáceis de fazer no mundo do 1994, 1995, meio dos anos 90. A tecnologia já estava um pouco facilitada, o acesso a informação já tava facilitado e eu tinha uma bagagem técnica de “escovação de bit” muito grande mas ela já não era tão valiosa como era cinco ou seis anos antes, no final do anos 80. Então, me vi num mercado que precisava de aplicações de bancos de dados, basicamente, sistemas de informação, e eu não era uma pessoa com uma bagagem teórica grande sobre isso, né?
Acabei na Petrobrás mesmo me descobrindo talentoso pra modelagem orientada a objeto, pra as questões de orientação de objeto, que eu tinha entrado em contato em 91, com a orientação a objeto. Quando estudava os manuais do, na época, TurboPascal da Borland ele tinha umas capacidades de orientação a objeto, mas não tinha introduzido na linguagem Pascal. E eu pensei: “Pô, que coisa é essa de orientação a objeto?”
Tinha o manual dos softwares, eles tinham comprado os softwares na empresa onde eu trabalhava, a [name of the company] na época. Eu sempre fui assim, pego o livro, engulo ele, e vou experimentando tudo que tem ali pra ser experimentado sobre aquilo. Aí fui lá e entendi bem os conceitos de orientação a objeto e tal, que se provou um diferencial depois no mundo do sistema de informação que carecia desses conceitos de orientação a objeto.
Eu vinha de um mundo de tecnologia de software básico, de coisas de baixo nível e manipulação de escovação de bit, e, de repente, eu encontrei o pessoal que vinha de sistemas lá da antiga de informação, de Cobol, pessoal de bancos de dados. E a gente meio que se encontrou no afunilamento do mercado, né. Na verdade não foi exatamente um afunilamento, o mercado foi expandido. No meio dos anos 90, no início dos anos 90 acabou o que eles chamavam de “reserva de mercado” do Brasil.
Yuri: O que ano você disse?
Jason: A reserva de mercado acabou em 88, 89, alguma coisa assim. No começo dos anos 90, lentamente, os primeiros frutos do fim da reserva de mercado começaram a nascer e a informática abriu, aflorou, as empresas surgiram e o mercado foi crescendo, né? E em 94 ele já estava com outro formato, já era um mercado com uma cara diferente. E essa época tinha uma demanda de sistemas muito maior, então, não foi exatamente um afunilamento, foi uma explosão.
De repente, o mercado de sistemas de informação era grande e dava pra trabalhar, e dava pra viver disso bem e tinha um profissional disponível pra trabalhar com isso, isso meio que transformou o cenário, né. Eu cheguei lá, migrando, eu encontrei os caras que estavam vindo do COBOL e tal, né. E aí foi assim: “Pô.” Eu tinha uma desvantagem com relação aos caras porque eu não tinha bagagem teórica de modelagem de dados, de análise de requisitos, era uma coisa que nem se falava muito naquela época, né? Então, pô, fiquei a fim de estudar e tal, fui estudar na universidade Estácio de Sá, aqui no Centro. Eu achava que eu não ia ser capaz, porque eu tava fora da escola há muito tempo e eu não ia ser capaz de entrar numa universidade federal e tinha um outro problema, os horários das universidades federais eram…
Yuri: Você foi pra qual faculdade você disse?
Jason: Estácio de Sá. Mas eu tinha a intenção de entrar na UFRJ, uma universidade federal…
Yuri: Não tentou?
Jason: Não tentei. Primeiro porque achava que não ia conseguir, porque estava fora da escola há muito tempo e tal; segundo, porque mesmo que eu conseguisse, eu não ia poder cursar, porque o horário era integral, de manhã à noite, e eu não ia poder trabalhar…
Yuri: Mas você só tava trabalhando dois dias por mês, não?
Jason: É, mas em 94 não mais, na Petrobrás eu trabalhava em horário integral.
Yuri: Você começou a trabalhar na Petrobrás dois dias por mês e depois…
Jason: Não. Eu trabalhava dois dias por mês fazendo jornal… fazendo uma revista.
Yuri: Ah, tá bom.
Jason: E aí eu rompi essa relação de fazer a revista… parei de fazer quando me ofereceram a vaga na Petrobrás. Eu cheguei lá pra fazer um sistema de satisfação do cliente, pro o setor de engenharia…
Yuri: Lá você ficou como empregado?
Jason: Isso. Eu fiquei… Na verdade, como contratado. Naquela época tinham os programas contratuais, né? A Petrobrás é uma empresa estatal. Mas ela é uma empresa estatal sui generis, ela é uma empresa estatal com uma lucratividade absurda e que trabalha com tecnologia de ponta. Então, ela não pode ser dar ao luxo de ser lenta como uma estatal é, como uma empresa pública é. Então, ela [Petrobras] tem todo aquele ciclo de concursos públicos pra pegar funcionários e tal, aí tem os funcionários da Petrobras; mas quando ela precisa de uma coisa feita, ela contrata o externo, uma pessoa externa, que fica lá trabalhando com um contrato temporário. Só que a lei não permite que você faça isso muito tempo, as leis trabalhistas do Brasil são pesadíssimas, né? Então, o que ela faz? Ela contrata uma empresa externa, terceirizada e obriga essa empresa: “Contrata esse cara aqui e vende ele pra mim.” Aí a empresa contrata o cara, ele faz o contrato, depois ele é obrigado a abrir licitação, né? Abre a licitação, aí uma outra empresa ganha e “Demite essa cara aí. Você — contrata esse cara aqui.” Aí o cara é contratado, participa de umas três empresas mas, na verdade, ele trabalha pra Petrobras. Eles queriam a mim e abriam concorrência pras empresas me contratarem. [Laugh.] Eu e assim milhares de pessoas que trabalhavam na Petrobras, pra agilizar os processos, fazer as coisas funcionarem. Porque se dependesse de abrir concurso pra entrar funcionário, aí demora, um ano, dois ano. Aí têm as falcatruas, o que a gente chama de “peixadas,” né? Que são os políticos que indicam quem é que vai entrar ou não, fraudam os concursos, é uma série de corrupções e tal.
Na Petrobrás eu trabalhava todos os dias, direto. Nessa época eu passei a morar com um amigo meu na Tijuca, um desses meus amigos, e fiquei lá uns dois ou três anos. Isso foi até uma coisa muito importante pra mim, porque lá atrás quando eu trabalhava com informática, eu tinha, o meu sonho profissional era ser analista de sistemas na Petrobrás. Era isso que eu queria fazer da vida. Quando eu era garoto e me perguntavam meu objetivo profissional eu dizia “Não, eu vou bem sucedido, eu vou ser um analista de sistemas da Petrobrás.” E aí eu tinha chegado lá, né? Ah, pronto, consegui.
Yuri: Você queria fazer isso antes de você chegou no petrobras, né?
Jason: Antes, bem antes, muitos anos antes. Eu lá em 1990, eu queria fazer isso “Eu quero ser analista de sistemas da Petrobrás.” Porque é uma empresa que é o orgulho nacional, uma empresa super poderosa brasileira, né? Ela é líder tecnológica em um monte de coisas. Faz coisas que em lugar nenhum do mundo se faz, exploração de petróleo com lâmina d’água a não sei quantos mil metros de profundidade. Topografia marítima. Ela faz topografia marítima com computação gráfica de última geração e coisas assim super bacanas. E usa tecnologia de ponta e tal. É uma empresa grande, com o tamanho que só uma estatal pode ter e não é uma empresa lenta e atolante como uma estatal é. É o lugar que emprega as melhores cabeças. Tirando uma universidade, é aquilo lá que vai ter as melhores mentes ali, fazendo as coisas direito, pra dar resultado direito.
E aí pô, cheguei lá e me decepcionei um bocado, né? Porque eu não tava no centro de produção da Petrobrás. A Petrobrás tem os lugares em que você tá produzindo, onde o pessoal que tá controlando a produção mesmo. Ali se você melhorar o trabalho do cara em dez minutos por dia, isso significa 10 milhões de dólares por ano. [Laughs.] Se você mexeu um pouquinho na produtividade do cara, pô, isso e um negocio que melhora assim a vida de um monte de gente. E eu tava numa parte mais periférica, eu tava num setor administrativo, que controlava pesquisas e tal. E ali os equipamentos demoravam mais pra chegar, era uma coisa um pouco mais lenta, mais burocrática. Sofria mais com a burocracia que é inerente as empresas estatais brasileiras. A burocracia é muito grande. Tenho algumas teorias do porquê, mas, enfim… Sempre tem uma coisa a mais pra você fazer e tal.
Aí eu tive um acidente burocrático na Petrobrás em 95, numa dessas coisas de “Demite ele daqui, contrata ali, demite ele daqui, contrata ali” a empresa que ia me demitir, pra que eu fosse contratado na outra, não liberou os meus documentos, ou liberou de forma incompleta, a outra não podia completar a contratação e aí começou um problema de quem é que ficou com o quê, será que se perdeu no meio do caminho, num sei o que lá, eu acabei ficando dois meses sem receber meu salário.
Aí isso me deixou indignado. Como profissional de informática eu já sou naturalmente averso à burocracia. Quando ela atinge a mim eu fico possesso. Eu fiquei zangado e saí de lá, resolvi ir embora. E aí voltei a trabalhar por conta própria, né.
p. 90
Miguel’s quotes are from a recorded interview translated from Portuguese.
Yuri: Como você passou de fazer isso [working as office boy] pra começar a mexer com programação?
Miguel: Como o serviço ele não era constante, não era direto… Hoje tem que fazer isso hoje, mas amanhã poderia não ter nada pra fazer. Então, para não ficar ocioso na empresa eu comecei a conversar com as pessoas, os programadores, mais especificamente pre ver como que eu poderia aprender aquilo que eles faziam. E com isso eles iam me orientando sobre o que era programação, o que era informática. Eu cheguei lá sem saber quase nada de computadores, eles foram me ensinando só as coisas básicas, sistemas operacionais…
Yuri: Nem sabia usar?
Miguel: Sabia bem poucissimo, bem pouco, assim… aquela coisa bem ralé de abrir Windows, abrimos quatro ou cinco programas básicos e tá bom, assim. Não tinha muita afinidade. Lá mesmo puxei o meu interesse, por causa das pessoas, ver como algumas coisas eram legais e divertidas de fazer, entende? E a partir disso as pessoas começaram a me ensinar e dar uns artigos pra ler, pra eu começar a mexer em código, pra eu entender o que é programação, o que é lógica de programação, como se tem que pensar, como você monta uma rotina, uma instrução. Pra depois pegar uma linguagem qualquer, seja Perl, Python, PHP, e começar a programar nela. Porque… Porque eles falavam muito assim: programar não é pegar o ASP e saber ASP, ASP é sintaxe, é linguagem. Então, linguagem, pra qualquer linguagem você lê o livro e aprende a linguagem. Não tem muita dificuldade. Agora, programar que é um conceito. É como você, pensa em montar o código; quais são as instruções que tem que executar. Agora isso é programar. Escrever ASP não é programar, é só pegar o sintaxe e aprender, entendeu?
Yuri: Você aprendeu falando com estas pessoas que te ajudaram e lendo livros?
Miguel: Exatamente, exatamente. Nas horas vagas eu pegava o livro ou artigo que eu estava lendo, sentava em frente ao computador, que era um Mac, nem era Windows, era Mac, e eu ficava… Abria lá o editor de texto no codigo e tava mexendo lá. Come se faz [unclear]. [Unclear] é isso. E pra ficar bonito… ia lá fazia. Então ia lendo e testando, lendo e testando.
Yuri: E tinha um computador que você podia usar lá?
Miguel: Tinha, tinha.
Yuri: E você tinha computador em casa?
Miguel: Não. Em casa não tinha computador. Eu tinha só lá, mas… Ainda não sentia necessidade porque lá eu tinha um tempo bem grande pra praticar e treinar. Então: “Por enquanto não vou comprar pra minha casa.” Porque não tinha necessidade. Porque lá eu tinha toda essa flexibilidade, nas minhas horas vagas, quando não tinha que trabalhar, para estar treinando com programação.
Yuri: E depois eles começaram a passar alguns trabalhos?
Miguel: E depois eles perguntaram: “Cê vai querer continuar nessa área?” Aí eu falei: “Pô, eu vou querer, me interessa muito.” Aí a partir disso me nivelaram pra ver o que eu podia pegar e eles começaram a passar alguns coisas de clientes literalmente.
Chapter 4
p. 106–107
Staa’s quotes are from published memoirs, not an interview, and are translated from Portuguese.
p. 111
Jorge’s quotes are from a recorded interview translated from Portuguese.
Jorge: Então a gente, engenheiros eletrônicos, nos percebemos que a gente tava com nosso horizonte fechando. A eletrônica não tinha muito mais pra onde avançar no Brasil. Então, nós tínhamos vários centros de microeletrônica no Brasil, e hoje em dia só tem um — o único cara que foi persistente, eles continuaram, tá. Eles são um tipo de reserva intelectual nessa área. Os únicos caras no Brasil que ainda entendem um pouco de microeletrônica, ta? Que é o pessoal do Rio Grande do Sul.
Yuri: Eles ficam aonde?
Jorge: Rio Grande do Sul, ta? Eles têm um departamento inteiro, com engenheiros só estudando esse assunto, tá. Então, eles estão sempre, é claro, produzindo chips. Eles por exemplo tem um chip Java, “FemtoJava,” que eles usam, né, e que eles sempre mandam pra gente. Ferramentas pra… E a gente tem um certo vínculo com eles lá. Até um projeto conjunto, tá, nesse sentido. Mas a gente aí migrou pra o software. Mas foi uma coisa fortuita. Como aconteceu isso? Como software pra desenvolver chips é uma coisa muito complexa, é uma coisa muito grande, difícil de você lidar, tá… Essa área de [software area], que eu tive que estudar pra fazer o computador da minha tese, eu passei a aplicar ela no software.
Chapter 5
p. 116
All quotes on this page are from field notes and were translated from Portuguese.
p. 118–119
Felipe’s quotes are from a recorded interview and are translated from Portuguese.
Felipe: Então, de cara a gente já saiu um pouco do foco de investir no InterJ, investir em integração e isso foi só aumentando, e, com o passar do tempo, a gente sempre foi, cada vez mais trabalhando com o desenvolvimento de aplicações web, né, com o desenvolvimento de soluções sob encomenda por os clientes, né? E isso fez InterJ uma coisa deixada cada vez mais de lado.
[Answers a phone call.]
Desculpa. Então, foi cada vez mais deixado de lado porque outros projetos foram aparecendo e a gente tinha que meter a mão na massa nesses outros projetos.
Yuri: Esse contrato com a Petrobrás foi o primeiro contrato? E ele começou quando?
Felipe: Começou bem no começo, porque foi um contato de Eduardo. Um amigo dele que trabalhava na Petrobras tava precisando uma empresa que pudesse dar manutenção nesse contrato, na Intranet no caso, e aí perguntou se a gente estava disponível e tal. E a gente “Ó, lógico, vamo começar a faturar e entrar na Petrobrás, que é uma grande empresa…” E a gente começou. Aí cobramos baratinho pra entrar e começar a gerar alguma receita.
[Four minutes later.]
Yuri: E os outros contratos que vocês tinham, a maioria tambem não tinha nada com InterJ?
Felipe: Olha, a gente… Nada de InterJ. A gente não fez nenhum projeto em InterJ.
Yuri: Ainda não?
Felipe: Ainda não, e acho que nen vai ter, provavelmente não vai ter. [Laughs.] A gente nem coloca mais no site como produto. O InterJ o foi bem no começo pra gente entrar na incubadora e morreu no tempo.
Yuri: E porque morreu?
Felipe: Morreu, porque não ia dar retorno finaceiro. A gente chegou a conclusão que não ia dar retorno, retorno financeiro,
Felipe: E chegou um momento também que a gente consegui uma parceria com uma empresa grande, multinacional, que é “EIT.” A gente consegui uma parceria com eles e eles são uma das principais empresas que vendem software de integração. Então a gente priorizou aprender a plataforma deles, e tentar gerar serviços em cima da plataforma deles. E aí acho que foi que fechou a caixão de InterJ. Nunca trabalhava mais com InterJ. Foi o momento quando a gente priorizou trabalhar com uma tecnologia que é líder de mercado. Que era a tecnologia de EIT.
Yuri: Que é melhor do que InterJ?
Felipe: Lá tem desenvolvedores, no Estados Unidos, Indianos, tudo mundo evoluindo o sistema. E a gente aqui, nos não tinhamos ninguém. [Laughs.] EIT tava anos luz a frente.
p. 121–132
All quotes in those sections are based on fieldnotes and were translated from Portuguese.
Chapter 6
p. 137–142
Craig’s and Rich’s quotes are from recorded interviews conducted in English in 2007. Steve’s quotes are based on fieldnotes. A wider context for Craig’s and Rich’s quotes is provided below.
Yuri: So, if you could tell me how you first heard about Lua, and your experience with it, from the very beginning.
Craig: It’s hard to say how I first heard about it. I was probably looking for a scripting language to embed in our application, and through forums, and googling, and other things came across it as an option. So, I guess that’s the short answer.
Yuri: When was that?
Craig: It would have been… [Unclear.]
Yuri: Roughly…
Craig: Probably about a year ago or so.
Yuri: And this was the same project you are working on now?
Craig: Yeah.
Yuri: And when you say you came across a forum or something like that…
Craig: Again, I think was primarily… I think the people I talked to didn’t have any experience with Lua per se. So it was really forums, googling and searching for ideas.
Yuri: And then what happen?
Craig: Well, we were trying to figure out what kind of scripting language to use. We really needed something, and so decision had to be made what we were gonna use. And the other fairly obvious choice would have been Python. And basically I decided… Based on what I was reading Lua sounded like the best approach, and I can tell you why in a minute, so then we just started attempting to implement it and it continued to snowball from there.
Yuri: So, why was it the best approach?
Craig: Well, one thing I was most concerned about was sandboxing, security, making sure that there were no holes internally inherently in the language. I was led to believe that a more mature language like Python wasn’t that clearly safe from the beginning. That there were reasons to worry about it. I am sure that a real Python expert would be able to refute this. But what little I found, while I was searching, the notions I got, on my web-based research, seemed to imply that. And the other thing of course that made Lua great was the purpoted efficiency, simplicity of integration. And in our case we didn’t we didn’t need a system with a huge amount of libraries. We weren’t trying to build… We were not building an application, like a web-server or something else that would need a whole bunch of specialized libraries. Like IO or anything. We needed a language to primarily reference the objects inside our own system and to be able to script them.
[Two minutes later.]
Yuri: And so when you decided to use it, how did you go about learning how to actually do that? What kind of resources did you use?
Craig: Hmm… Interesting… [Pause.] I am sure I downloaded everything, ran the command line, found out how that works. And in my case I think I didn’t go very far towards trying trying to use any 3rd… I think I sort of looked into trying to see if I could use some 3rd party bindings and that kind of stuff, but in the end I decided to roll it all myself. [Provides a lengthy technical explanation why.]
[Three minutes later.]
Yuri: Do you know any other people in California who use Lua?
Craig: No, I mean, I regularly read the newsgroup, obviously, or the mailing list. And I went to the Lua meet up, when was it, last year or the year before, in San Jose.
Yuri: August ‘05?
Craig: That could have been.
Yuri: So, you already were working on it?
Craig: So yeah, I guess it was a year and a half ago. It was in the Adobe building, in San Jose. But it was fairly early on, so I knew enough to ask annoying questions at the meeting.
Yuri: Tell me more about it, why you decided to go and what were your impressions from that specific event.
Craig: Well, my reason to go was to get some sense of how serious this is. To ask a few questions. To talk with some people about it. Curiosity. More and more now I am very confident about our choice but [unclear]. Who are the other people who use it and why do they use it?
Yuri: So, was about the people who use it or was it about Roberto and company showing up from Brazil?
Craig: Probably both. I don’t think I thought in that context of… It was more to find out about the Lua community.
Yuri: And how was it? How did it turn out?
Craig: It was good. I enjoyed it. I think I only came for half a day. I think it was a multi-day event. It was very nice. The community… Its a young… I should say, seemingly young… Not in age, not in person-age, but a young community. Where people are… They are just making a very good, robust, efficient language. But still at the point where they are willing to not worry too much about legacy stuff. Because that was another… During the meeting a lot of people were worrying about legacy stuff, and Roberto was saying “Here is the new…” — Roberto, right? — “Ok, here are the new things in Lua 5” or whatever, 5.1. And then there were all of those people, “Oh, will this break compatibility? Will this break compatibility?” And in my case, I was just like: “Oh, I don’t care, please break compatibility, make it good for me!”[Laughs.] And I think come the next round, the question is, will I be on the other side, complaining about compatibility.
Yuri: So, you met some of the local users there?
Craig: I don’t know if I met any local users. I met people, I didn’t… My interest was not in establishing long-term relations with people there, so I didn’t find out where they lived or if they were local.
Yuri: Why?
Craig: Because I am busy. I am getting plenty of information and valuable help through the mailing list. So… That’s not as important.
[Nine minutes later, in the context of discussing Craig’s impression of where Lua’s mailing list participants are from.]
Yuri: So, does the language you think make any difference?
Craig: I guess English language is the lingua franca for Lua as well. From what I can tell. I haven’t seen any Brazilian, or Portuguese, emails coming up. So… So, I never had any… Or, I should say I’ve never had any concerns… that it would make it harder for me to participate.
Yuri: Would you be able to read any Romance language?
Craig: I speak German fluently, I could possibly… I would parse French, but not very much.
Yuri: So, if Lua’s documentation or mailing list were in Portuguese…
Craig: No. Well, if it were in German, I could manage. But if it were in Portuguese or Spanish or something… no.
Yuri: When did you realize that it was run from Brazil?
Craig: I am guessing early on.
Yuri: And what was your reaction?
Craig: My reaction was more… I don’t know if it had to do with Brazil or not, my question was “Hmm…” Actually, I think at the same moment I realized that it sounded like it started out as an academic exercise, I think I read this there as well. And of course the question is: What are the primary interests of the caretakers of the language? Is it to satisfy their academic ambitions? And I don’t mean that in… academic ambitions not as in a career but as in academia. Is it a language to highlight their work on the programming language theory? Or is it something for practical use?
Yuri: And which way do you think it is?
Craig: I would say the latter, it’s practical.
Yuri: Practical as in you think they care more about this than academic issues, or do you think they could do both at the same time?
Craig: I don’t know what their motivations are, but the end result seems pretty good to me.
Yuri: And so… This question of whether it’s an academic exercise, how does it relate to it being in Brazil?
Craig: Perhaps it is harder, it might be harder for me to determine than if it were for example at Stanford, then I could… A) It would be easier to meet the people or I would know somebody who knows somebody who knows them or something like that. So, in this context it is certainly more opaque. So, once I discovered that, it was like: hmm, we need to figure this out.
Yuri: And how did you do this?
Craig: By just using it.
Rich’s interview:
Yuri: Did you pay any attention early on to the fact that Lua was based in Brazil?
Rich: Oh, not at all.
Yuri: So, the question of where it is…
Rich: Of course not. No.
Yuri: You say “of course” not. Why of course not?
Rich: [Pause.] Well… I don’t know. I guess I take a global perspective on things like that. [Pause.] Like Perl, the book was written by the architect of the language. Programming in Perl is written by Larry Wall. And the Lua book was written by Roberto. So, by reading the book you get the sense of both the designer’s personality and the language itself. And so just reading the book it was pretty clear that the guy who made this language was a really smart guy, and he valued principles that I valued: simplicity, elegance. And at that point it doesn’t really matter where he lives or what nationality he is. He is just a smart guy who made a good language, that’s all that matters to me. If he wasn’t able to speak English, it probably would have been a problem. But obviously there wasn’t any communication barrier. So the fact that it was made in Brazil wasn’t anything to me.
[Eighteen minutes later, in the context of discussing differences between Lua and Javascript.]
Rich: JavaScript suffered from premature standardization. There is this web browser, the web blew up, so everybody is using JavaScript. And then they thought: “Oh, we have to standardize this, make it interoperable.” And the language hadn’t really stabilized at that point. And so there is a lot of cruft and nasty things. Both in JavaScript, that is the language itself, such as the “with” operator, and especially in the object libraries. The way that arrays and [unclear]. Because it was standardized so early, because it had a huge community. Whereas Lua didn’t really have those forces. It had a small community and less momentum. So the designers could, when they realized they made a mistake, throw it out, unify the concepts under a different way of thinking. The different abstractions that went from Lua 3 to 4 to 5. So, JavaScript could have been as good a language as Lua, I think, if it hadn’t this pressure on, by the huge community, a huge user base.
Yuri: So, this goes back to what you were saying about Lua having small community being a blessing?
Rich: Right. But fundamentally, at [unclear] levels, JavaScript is a lot like Lua without the meta stuff.
p. 143–144
Luiz Henrique’s quotes are based on a recorded interview done in English.
Yuri: So, at the time you were working for Petrobras, for Tecgraf, which had a project with Petrobrás?
Luiz Henrique: Yes.
Yuri: So, it was very practical…
Luiz: It was meant to be very practical.
Yuri: … to solve a specific problem?
Luiz Henrique: Yes. They had this… Do you want to know the details?
Yuri: Yeah.
Luiz Henrique: Ok. Petrobras has this huge body of code that they use for simulating all kind of oil, whatever. Not sure what. These were huge programs that were very old and very refined, and they didn’t want to give them up. But at the same time, because they were very old, the interface was very clunky. You had to prepare a data file with numbers, would have to in specific columns. Because it was in Fortran, probably. And they wanted to do something easier for the people who were using those problems. And typically you would have a diagram of your simulation and what you did before we went in is that they had this program and they had to remember that line 5 column 3 you had to put a [unclear] or whatever. And no one new really, so they used to make mistakes. If you shift one columns, it would not have any error messages. So, what we did is show the engineer a diagram of whatever he was doing and he would just click on a part of the diagram and go “On this diagram, the number in this part is 3” or something. And this was much easier for them, the engineers. And Petrobras wanted to do this for several, at least a dozen different simulators. And we didn’t want to write twelve different programs.
So, we talked to them and came up with an idea: why not design a language so that we can write a single program that would capture this data. This was kind of a typical problem. You would write a simple text file that would say: I want this diagram and in this diagram when I click this entity you should show this kind of a menu and do this kind data validation, things like that. And then when I am done I want this data to be output in this format. So we wrote this language to spec this kind of task.
p. 144–147
Luiz Henrique’s quote comes from an email in English. Antônio’s quotes come from a recorded interview translated from Portuguese.
Yuri: Então, pra voltar pra parte mais antiga. Quando você começou a usar Lua você já sabia inglês?
Antônio: Sabia. Sim, sabia ler bem e falava… razoável. Sim.
Yuri: Como foi escrito…? Eu sei que a versão primeira do Lua até o código do SOL mesmo foi escrito em inglês, com comentários em inglês…
Antônio: Sim, até hoje a gente faz isso. Aqui no nosso grupo, também. Mesmo não sendo Lua, a gente tenta… Não, desculpe, os comentários são em português, claro, né. Mas os nomes das variáveis, tudo a gente tenta fazer em inglês mas os comentários nossos são em português… Lua, não…
Yuri: È claro ou não?.
Antônio: Oi?
Yuri: Você disse que os comentários são em português, “claro.” Mas eu tenho a impressão que isto não é óbvio. Não estou dizendo que não é comum, mas não é óbvio. Eu acho que, às vezes, as pessoas até usam comentários em inglês.
Antônio: Não, não. A gente — é em português. Até porque… No caso de Lua eu acho até perfeitamente compreensível que seja em inglês, ela nasceu pra voar, para outros… tem um uso muito mais globalizado do que as nossas aplicações. A gente, na verdade, nem incentiva e nem quer que as pessoas aqui tentem fazer os comentários em inglês, porque a maioria não é fluente em inglês, então ia ficar um inglês capenga… Nossos produtos não são… O código fonte não é feito para exportação, não é aberto. O que a gente faz não é aberto. O código que a gente faz para a Petrobras é propriedade deles e eles não querem que tenha que tambem… saber inglês pra ler o nosso código… Então, sob vários aspectos, nas aplicações, a gente não comenta em inglês. Os nomes das variáveis até são, pro código; você lê ele mais ou menos em inglês. Mas, os comentários…
Yuri: Mas, então, por que os nomes de variáveis são em inglês?
Antônio: Isso é uma questão que a gente vem debatendo, mas, a gente acha que fica… por exemplo, a sintaxe do código mesmo para você ler fica esquisito, né. A gente estranha um pouco misturar nesse aspecto, mas, os comentários, não. É, agora que você falou… para mim é óbvio mas, se você olhar em retrospecto, talvez não, né? Por que é natural comentar-se em português e o resto não, né?
Yuri: Mas isso é o mesmo agora e em 93, quando você começou?
Antônio: Sim, sim. Nunca…
Yuri: Naquela época, já todo mundo estava escrevendo nomes de variáveis em inglês, comentários em português? E, agora, isso que vocês estão fazendo?
Antônio: Sim, sim. A mesma coisa. Nunca comentei código aqui em inglês. De produtos de Tecgraf, não.
Yuri: E, por exemplo, error messages?
Antônio: Português. Tudo em português.
Yuri: Mas a Lua, mesmo, ela dava error messages em inglês?
Antônio: Sim, sim.
Yuri: Alguém achava isso estranho, não?
Antônio: Não, não. É… Assim… Acho que isso não é questionável, quer dizer, acho que todo mundo meio que entende que Lua… A idéia é que Lua fosse usada, realmente, em outros contextos, em outros lugares. Tivesse uma… abrangência, né… um alcance maior do que Brasil, o Rio e a sede. Eu acho natural Lua ser assim.
Yuri: Mas, na época não era, né? Na época ela era um projeto…
Antônio: Sim, ninguém poderia pensar o estouro, o sucesso, que Lua ia ter. A aceitação para a indústria de games, etc. Mas, talvez eles, o Roberto e o Luis Henrique, tivessem essa idéia, eu não sei. Eu, por exemplo, esse [hobby project] que eu fiz, todo ele é em inglês. Comentário é em inglês. Porque, no meu caso, por exemplo, eu pensava ah, sei lá, um dia, eu vou botar no LuaForge, sei lá, e alguém pode querer baixar. Eu gosto dessa, da idéia do open source, de many eyes, etc… Todo mundo tar olhando… Então, eu acho que quando você se propõe a fazer uma aplicação ao “open source” você deve falar a língua mais abrangente possível; mais, mais comum possível, talvez. Mais facilmente entendida, né? No caso das nossas aplicações não, nós não… no Tecgraf não, na verdade a gente não quer que isso aconteça.
p. 147–148
Roberto’s quotes come from recorded interviews, conducted in English in 2007.
An interview with Luiz Henrique, in March 2007, starting fifteen minutes after the end of the segment quoted earlier, in the context of discussing Lua’s use in the gaming industry.
Luiz Henrique: But we never targeted any industry. Lua was meant to be used for Tecgraf projects and just that.
Yuri: But the mailing list has been in English for a while?
Luiz Henrique: Forever, yes.
Yuri: So, if it was mostly meant to be used inside Tecgraf, why was the mailing list in English?
Luiz Henrique: The mailing list… The mailing list was never meant to be used by at Tecgraf. Around that time, I remember now, we wrote this article in Dr. Dobb’s Journal and from then on we started to get messages from abroad, people asking questions about Lua. So, we thought, well, maybe we are going to get too many questions and won’t have time to answer them all. So we created the mailing list for that, so that other people could answer our questions.
Yuri: So, this was after the Dr. Dobb’s article?
Luiz Henrique: Yes. It was in February 1997. And the Dr. Dobb’s article was in December of 1996.
Yuri: Because you are saying there was an influx of questions?
Luiz Henrique: Yes. Right, yes. And we thought: maybe Lua is going to get some interest, and how about creating a community? And maybe create a mailing list.
Yuri: So, you are saying it wasn’t really with an intention of promoting it.
Luiz Henrique: Yeah, in a way. But most… If we were going to get a community, maybe we should have a mailing list so that they could talk among themselves? To not have to answer everyone individually.
An interview with Roberto, the second in 2007, conducted several days later. About fourty minutes from the beginning:
Yuri: Have your personal goals for Lua changed over time? I mean…?
Roberto: Completely, completely. Completely! This is so huge, I can’t… It changes everything. When we started Lua… This is one of the things that people do not… When we say in our paper, that paper about the history of Lua, that it went beyond our most optimistic expectations, this is not very true. Because we didn’t have any expectations. For instance, when we started, we never created a language for ta-ta-ti-ta-ta-ta. We really created a language to solve this specific problem we had at the time. That’s why we joke, but it’s true: There was no “Lua 1.0.” There was “Lua.” We did code, and that worked and “oh great, it solved our problems here.” We didn’t even have an RCS project. We didn’t have anything.
Yuri: So you’re saying it was purely an engineering project in the sense that it wasn’t even an academic…
Roberto: No, academic was much later, much, much later.
Yuri: Ok, so you were already working in the area of programming languages?
Roberto: Yes, I loved programming languages. My area… that’s why I was doing consulting in programming languages. They needed to solve, they needed a programming language for this specific problem.
Yuri: As part of your research program, you weren’t planning to create a whole… a complete language?
Roberto: Yes, but a completely different one.
Yuri: Oh, I see. You were working on something else?
Roberto: Yes. I had one… [Laughs.] It completely failed… [Laughs.]
[Eight minutes later, while discussing the gradual growth of Lua.]
Roberto: And then… I don’t remember, but someone kind of pushed us to put it on the Internet. We didn’t even think about that. They started: “Put it on the Internet, that’s good, people are going to use it.” “Ok, let’s put it on FTP.” And then I have no idea of how some people heard about it, we didn’t have a website or anything like that. I think… I think Luiz sent mail to [long pause] to some groups. But I don’t know when that was. 94? 95? Just announcing that there was Lua. And then some people started using it. But it was kind of, “Let’s see what happens.”
Something we wanted, that I remember… Again someone gave us this idea to try to sell Lua. In the beginning we put it on the Internet with a free academic license, and “Please contact us for commercial use.” So there was this idea “Let’s try to sell Lua.” And then it stayed this way one year and we got one contact. [Laughs.] Without success. Just a contact for “Maybe we could use…” for commercial use. So, we decided we were not going to sell it. But after that we noticed that there were people using it and people were liking it, and we were liking that idea of other people using Lua. That kind of… touched… satisfying. A kind of gratification for us, gratifying, whatever. And so we started to feel good about that.
Yuri: And now then, so at some point you then transitioned from that group being sort of not very important, but a source of some kind of satisfaction, to…
And then we published the article: “Let see, let’s try to get more users, to promote Lua.” So we put up… And then the reaction was very strong, and then it started to be really important—the outside users.
[Another interview with Roberto, a month later.]
Yuri: But one thing that I thought was interesting was… So you wrote Lua as a specific solution for a specific problem at Tecgraf, right? But then almost immediately, within the same year, you have this paper about it.
Roberto: Yes, but notice that this paper is, for instance, one page and is what they call, it was as a kind of a tool fair…
Yuri: Caderno de ferramentas?
Roberto: Yeah. But I mean, the caderno, the tool book, was just one paper relating what was being exposed in this kind of fair of tools. “Fair” is the name?
Yuri: Could be.
Roberto: Could be a “fair” or “exhibition”… So that was not… I wouldn’t say it was academic, exactly. It was a kind of practical part of this academic conference.
Yuri: And the academic conference in this case, the Symposio Brasileiro…
Roberto: Brazilian engineering…
Yuri: But can you tell me, do you remember how you ended up sending this paper there, even this short paper?
Roberto: Yeah, I think it’s exactly that: we are academics. We wrote that. There was a symposium explicitly asking for a kind of industry… “real stuff,” as they said. I think they still have this in software engineering. At least at that time they were very concerned about this division of academic and “real” applications. I remember sometime later them asking us to review papers for instance, and there was one or two grades related to how does these apply to real situations or how much this is really used, or things like that. So I thought, “Oh we’re going to show Lua that way,” I mean, it’s a real tool, there are people, even… That was very funny, this I remember until today that even that very, very small base of users at that time, of still Lua 1.0, was considered big inside the conference and we said: “Oh we have some eight, ten people really programming in that language.” [Laughs.] And that’s much bigger than a lot of papers where, I don’t know, only the writer [author] ever programmed, used that tool for anything. But that was not, I mean, it was academic because we always have this pressure to publish so if we can generate a publication, we always try to do that. But so this was just kind of: “Oh, they are asking for that, we have Lua ready here, let’s try to stage and let’s prepare Lua” and we gave a presentation there about Lua.
Yuri: And how was it received?
Roberto: It was received very well because of that…
p. 150–152
Steve’s quotes are based on fieldnotes. Roberto’s quotes are from the second interview conducted in 2007.
[Continuing a minute after a segment quoted earlier.]
Roberto: TecGraf was kind of stable and was not demanding that much. […] So I think that also was kind of: “Let’s try to find more exciting users.”
Yuri: I see. So now when you design… so in those later versions of Lua when you said you changed them with an eye toward what would be more useful… In this case they were designed with this [external] audience in mind rather than Tecgraf?
Roberto: Yes.
Yuri: So when you were going about, let’s say, 5.0, you weren’t going and asking, well, what, what else does TecGraf mean?
Roberto: No.
Yuri: Would those actually had been the same thing? I mean, if you actually tried to change Lua in a way always to fit better what Tecgraf needed, would it be different today?
Roberto: Yes, for sure there wouldn’t be some specific demands that grew outside TecGraf.
Yuri: Because you’re saying those were specific things people asked for on the mailing list?
Roberto: Yes. Not exactly specific things, Specific things that emerged, more than people asked. Problems that emerged, in different environments. One instance, one example is embedded devices. Tecgraf never used Lua in embedded devices. Now they use, but I am not sure if they would try to use it, if they would push Lua in this direction by themselves. That was something that from… people outside started to use Lua on those very different devices, on very small computers. That put more pressure to make Lua really portable.
In the beginning our goal of portability was Tecgraf’s set of computers. So, that was our goal, must run on that. It was a very large variety of computers that Tecgraf had, so from the beginning it was very portable. So it must run on DEC, on VAX, on ta ta ta. And then later when people… I remember in ’98 someone wrote and said they ported Lua to Cray, the supercomputer Cray 1. That was very exciting: “Wow, Lua is running on Cray.” And then these things started, for instance, to show us that we must really think about ANSI C and about real standards. And not about “It runs on those machines and that’s good enough.” For instance, this was something that came from outside.
p. 153–155
Roberto’s quotes are from our third interview in 2007 and were originally in English. Silvio’s quotes are from a recorded interview conducted in 2007 in Portuguese.
Roberto: I think that they got… with some reason I think they got a little offended with the change to 4.0. I think that’s why it was kind of a break[ing] point. I think this was the first change that we saw that it could hurt Tecgraf but we are going to do it anyway. We thought that it was not going to hurt that much, we tried and thought… Not something like “Oh, we are going to do it because it’s going to hurt Tecgraf.” We tried to minimize that, as I say, we did a lot of stuff to try to do compatibility layers and things like that. But we knew that it was going to have some problems, was going to be a big incompatibility. And so I think that why I say it was a kind of break[ing] point.
Yuri: Why was the change made?
Roberto: Because it was really much better. [Laughs.]
Yuri: But better for whom, let’s put it this way?
Roberto: For any new user of Lua. Even for those that decided to change. For instance, [a colleague], he had that system, […]. It was a big system. It was already ready in 4.0 and he changed it. He was the one who tried to convince Tecgraf to change because “Oh, now my system is much cleaner, it’s faster, it’s much easier to understand, a lot of things, less bugs, and all that.” So he tried to evangelize the 4.0 there, but…
Silvio’s quotes:
Yuri: Mas agora você tá dizendo que a maioria dos projetos tá usando Java?
Silvio: Isso.
Yuri: E isso aconteceu quando?
Silvio: Isso aconteceu, de uns seis anos pra cá, que a gente começou a aumentar significamente a quantidade de projetos em Java.
Yuri: Em 2001, né?
Silvio: Por volta de 2001, isso. Tem projetos em Java que usam Lua também. O fato de ter um projeto que a maior parte dele é em Java, não significa que a gente tenha eliminado o Lua. [Discusses a particular project of his for about a minute.]
Yuri: E o que aconteceu no ano de 2001? Como você acabou pegando mais projetos em Java? Até 2001, quase tudo foi em C++, né?
Silvio: Isso, foi em C++. Em 2001 a gente teve uma demanda do nosso cliente… De “Ah, a gente queria fazer um sistema com essas, essas, e essas características. E eu achei que era mais interessante usar Java do que… Porque você tem uma parte… É aquele ditadinho: “Pra quem tem martelo, tudo é prego.” A gente tem que ter uma caixa de ferramentas e saber usar cada ferramenta na situação adequada, né? Lua é uma excelente ferramenta, mas não é a ferramenta mais adequada pra tudo. Ninguém espera que seja. E eu acho pro trabalho que a gente tinha em mãos, o ideal era uma mistura. A gente realmente fez isso, a gente usou Java pra construir o cliente, que a gente queria rodar pela intranet, etc, etc, no navegador. Na época não existia JavaWebStart, mas existia já o plugin pra Applet. Então a gente conseguia, por exemplo, rodar na intranet, uma aplicação com uma interface gráfica super-legal, sem se incomodar com a plataforma lá do cliente, do usuário. Então a gente optou por fazer o cliente e o servidor em Java, mas a parte que está distribuída nas máquinas, que precisa mais dessa coisa operacional, a gente implementou em Lua. A gente fez esse corte. Só o que é que acontece é que a parte do servidor e do cliente demanda muito mais implementação do que a outra, por isso que hoje o projeto é prioritariamente Java.
[Discussion of his project, about eight minutes.]
Yuri: E passou pelo 4.0?
Silvio: Eu acho que a gente pulou o 4.0. Não tenho certeza. Se quiser até te mando isso depois, se isso for importante pra você.
Yuri: Tá bom. Eu estou perguntando porque eu já ouvi as pessoas falando que tinham algumas dificuldades no Lua 3.2 e Lua 4 e que algumas pessoas naquele momento desistiram.
Silvio: É verdade. Basicamente porque a API de comunicação entre C e Lua mudou drasticamente, né. Foi em 4, eu acho, que foi introduzida a máquina de pilha na comunicação, no bind de Lua com C. E aí quem tinha muito código C chamando Lua, teve que fazer muitas mudanças. E até teve gente que realmente reclamou, “A, pô, chato, mudar,” não sei o que. Mas eu não tenho essa visão, acho que faz parte, acho que a gente tem que andar pra frente. Lua tem que evoluir, a gente não vai parar, estagnar o Lua ou ficar numa interface que a gente entende que é pior, só porque tem gente que tá usando e tá com preguiça de mudar as aplicações. Não faz sentido. Estagnar por estagnar… Quem não quiser evoluir congela lá na versão 3.2 e fica com ela o resto da vida, que ela vai funcionar bem, obrigado.
Chapter 7
p. 162–167
Silvio’s, Antônio’s and Ricardo’s quotes are from recorded interviews conducted in Portuguese in 2007. The Python mailing list quote was originally in Portuguese also. Rodrigo’s quotes are based on field notes and were likely originally in English.
Silvio’s quotes:
[Continuing seven minutes after the end of the previous segment, while discussing the Lua mailing list.]
Yuri: Mas por que você acompanha essa lista?
Silvio: Assim… Eu continuo usando Lua nos projetos Tecgraf, então tem um aspecto prático aí de que conforme as coisas acontecem em Lua eu tenho interesse. [Discusses his own project, about a minute.] Então eu quero tar a par de tudo o que tá acontecendo porque pode me afetar no projeto. O outro motivo é porque eu adoro isso, eu sou um entusiasta da linguagem, adoro Lua, acho um barato e gosto de ver as discussões, aí é mais por gosto mesmo. Então tem esses dois aspectos.
Yuri: Barato em que sentido?
Silvio: Uma coisa muito legal, “cool.” Em inglês “cool.”
Yuri: Não sabia que barato em português tinha esse sentido.
Silvio: Eu acho que é porque eu tenho [age, thirties], deve ser por causa disso. Acho que as pessoas hoje talvez não falem assim.
Yuri: Tá bom. Você pode me falar um pouco mais sobre essa parte de cê adorar Lua, o que significa?
Silvio: A parde de servidor?
Yuri: Não. Você disse que você adora Lua. Que isso é a segunda parte. A primeira parte é pratica, e a segunda é que você…
Silvio: Sim, porque eu acompanhei Lua desde o início do desenvolvimento, né. O Roberto foi o meu orientador tanto mestrado… Quer diser graduação, mestrado e doutorado. Eu tenho um vínculo de amizade com o Roberto, a gente vira e mexe, vai almoçar juntos, ele me conta o que tá acontecendo, não sei o que. Então eu vivo muito esse mundo da linguagem e eu gosto sim, de tar a par, de ver o que está acontecendo, conversar com o Roberto, trocar idéia. Então assim. É uma coisa que eu gosto, eu gosto mesmo, por causa das pessoas envolvidas. É um trabalho que eu acho fantástico. Eu acho muito legal o Roberto conseguir…
E tem um aspecto aí… É assim. Eu já vi muito preconceito contra a linguagem. É impressionante como isso acontece. Assim. A gente tem um cliente. Eu já vi cliente nosso, uma pessoa dentro de uma empresa dizer o seguinte: “A não, eu tô aqui na dúvida entre usar Lua ou usar essa ferramenta da Microsoft. Mas acho que vou voltar da Microsoft. Porque se usar Lua e der errado, meu chefe vai dizer que eu sou maluco. Se eu usar da Microsoft e der errado, não tem problema porque isso acontece todo dia.” É ridículo alguém pensar assim. Eu acho assim… Eu sinto vergonha de ver alguém falando um negócio desse tando aqui, quer dizer… Ao invés de… podendo usar… Ao invés de incentivar um trabalho que é totalmente desenvolvido no país, o cara não incentivar, deliberadamente por puro preconceito… Eu acho uma coisa totalmente absurda. Então assim… Essas coisas me motivam muito a acompanhar o Lua, tentar usar. Porque eu vejo que a lista, a maior parte das pessoas na lista não são do Brasil, a maior parte são estrangeiros. Eu vi que Lua teve que fazer sucesso lá fora, pra poder ser bem aceito aqui dentro. [Pause.] Ou seja, é um projeto que eu acho fantástico, que eu gosto muito. Vejo a luta que é do Roberto de fazer Lua funcionar, vejo o trabalho que ele tem. Lua reflete, no fundo, essa genialidade dele. Que acho que Roberto é um cara muito bom… [Pause.] Então, por esses aspectos todos, eu gosto muito da linguagem e tenho prazer em acompanhar o que tá acontecendo. Por isso que eu não saio da lista, continuo a ler. Por mais que eu não fale nada, eu continuo na lista vendo o que tá acontecendo.
Antônio’s quotes:
[Seven minutes later after the end of the earlier segment from this interview, in the context of discussing Antônio’s work to promote Lua.]
Yuri: E por que é bom promover Lua?
Antônio: Porque eu acho que merece. Eu acho que é um projeto… É uma linguagem muito bem estruturada, muito enxuta, muito…
Yuri: Merece em que sentido? É bom para quem? É bom para Lua…?
Antônio: É bom para Lua. Mas, eu não faço isso pelo Roberto ou pelo Luis Henrique, é bom para Lua. Eu acho que é uma linguagem, é um produto que tem um status global, assim… É uma coisa que eu reconheço como útil e que vai ser útil para muita gente.
Yuri: Mas por que isso é importante?
Antônio: Divulgar? Porque vai ser útil para mais pessoas. Quanto mais pessoas conhecerem, mais pessoas vão poder usar, vão saber do que se trata, etc.
Yuri: E qual é o benefício para você?
Antônio: Ah, nada.
Yuri: Não tô falando sobre benefício no sentido material, comercial… Tô falando de porque você quer fazer isso?
Antônio: Ah, nô. Eu fico feliz de promover uma ferramenta que eu vi nascer, que acompanhei… Eu conheço as pessoas que trabalham, conheço o trabalho. E acho que, tecnicamente, tem todos os méritos. Então… Não foi, por exemplo… Ninguém me pediu para eu fazer isso. Roberto não me pediu. Luiz Henrique não me pediu. Mas eu coloquei lá. Porque era um site que eu já via, que eu sei que era uma referência de certa forma. O ganho que eu tenho é satisfação, pessoal e de ver a coisa realmente…
Yuri: Eu tô entendendo isso. Só queria entender porque isso faz para ter essa satisfação.
Antônio: É bem por aí, mesmo. É um projeto em que eu acredito, que acho que tem um mérito técnico grande, é uma linguagem muito útil, muito bem feita, muito bem estruturada. E que é muito útil. Eu acho que quanto mais pessoas souberem disso, mais pessoas vão ter a escolha de usar Lua. Talvez estejam usando Perl ou outras coisas que são, talvez, não tão adequadas para as tarefas e que vão poder fazer com Lua.
Yuri: Mas não é questão de que Lua é uma linguagem brasileira ou não sei o que…
Antônio: Tem um pouco disso, também. É porque eu conheço as pessoas que fizeram… Eu queria ajudar a promover de alguma forma. Mas não foi um pedido. Ningem nunca chego ate mim e falou, “Pô, vamo ver onde a gente pode colocar pra divulgar.” Não é isso. Foi eu que participava, sempre li esse site, e epa, vamo fazer. Mas é totalmente por minha conta. [Pause.] Eu que atualizo as vezes. Eles me pedem nunca nada. [Pause.] Mas tem um pouco disso, sim, sem dúvida, de orgulho, né, de saber de onde veio, de conhecer, de promover um software nacional, tem, tem. Sem dúvida.
Ricardo’s quotes:
[While discussing his early years at PUC.]
Ricardo: Eu posso até falar uma coisa de Lua no meio da estória. Porque tive uma matéria na faculdade chamada “Linguagens de Programação 1,” “LP1.” Quem deu a aula foi [Roberto’s spouse], que você precisa conhecer.
Yuri: Linguagem de Programação quê?
Ricardo: 1.
Yuri: Ah, ok. E “Linguagem” ou “Linguagens”?
Ricardo: “Linguagens.”
Yuri: Foi uma amostra de varios…?
Ricardo: É, eles escolhiam alguma coisa e ensinavam. Então… Eu lembro que a gente fez um projeto em C e ela ensinou uma linguagem nova, tinha poucos anos, inventada aqui na PUC e chamada Lua. E eu olhei pra aquilo e foi assim: “Ahhh, uma linguagem inventada aqui? Que bobagem! Não vou aprender esse negócio. Nunca vou usar esse negócio na minha vida profissional. O que vou fazer com isso? E eu lembro que tinha duas partes da matéria que ela mandou. Uma parte era em C, uma parte era em Lua. E a menina que tava fazendo uma parte desse trabalho comigo… “Faz a parte em Lua porque não vou aprender esse negocio não, não quero saber de Lua, eu vou fazer a parte em C, que vai ser mais interessante porque vou usar.” Fecha parênteses. [Laughs.] Depois a gente volta pra isso.
Yuri: Mas…
Ricardo: Eu não aprendi Lua. No primeiro contato eu meio que desprezei.
Yuri: E isso foi a sua opinião só, ou todo mundo que tava pegando essa matéria achou assim?
Ricardo: Algumas pessoas acharam legalzinho, mas ningém levou muito sério.
Yuri: “Legalzinho” quer dizer…
Ricardo: Legal, entendeu? Eh…
Yuri: Mas “legalzinho” é mesmo que “legal” ou…
Ricardo: É um “legal” que, entendeu, “ah, tá bom, bonitinho.” “Não serve pra nada, mas é bonitinho.” [Long pause.] E depois da Iniciação Científica eu fiz talvez um ano de um projeto com um professor aqui na PUC, que tinha um projeto com Petrobrás.
Yuri: Mas… Porque você achava que Lua era uma bobagem?
Ricardo: Olha só… Você entra na faculdade e aqui tem as grandes linguagens. Cê tem… Na época ainda existia o Pascal, tinha o C, tinha o C++. O Java tava começando. E vem alguém aqui com uma linguagemzinha que ninguém usa, acho que na época pouquíssima gente usava, inventada aqui dentro da PUC pela professora que vinha lá ensinar?
[Thirty five minutes later, while discussing Ricardo’s relationship with Kepler.]
Ricardo: Eu sempre olhei pra esse negócio de Kepler e sempre achei muito interessante. O Rodrigo sempre passava, assim, pela PUC, e a gente ficava batendo papo, ele me contando como é que tava.
Yuri: Mas, interessante em que sentido?
Ricardo: [Long pause.] Aí você vê como é que as coisas mudam, né? A ideia de ser uma tecnologia nacional… [pause], bem estruturada [pause]. Uma proposta pra um framework mesmo, de desenvolvimento pra Internet. Pra competir, ou talvez o Rodrigo vai dizer que não é pra competir mas vamos dizer assim, com as tecnologias que existem por aí… Eu me interessei. Eu achei que…
Yuri: Com quais tecnologias?
Ricardo: Ah, bota aí… Que se usa pra Internet… PHP, Python, o proprio Java mesmo… [A discussion of Ricardo’s experience with other options for web development, about a minute.]
Yuri: Mas… A ideia de tecnologia nacional quer dizer que?
Ricardo: Oi?
Yuri: Você disse que uma parte que foi interessante foi essa ideia de tecnologia nacional.
Ricardo: Ah, é… [Pause.] Porque é que eu acho interessante? [Pause.] É difícil dizer. É… [Pause.] Eu não sei muito bem. Talvez um pouco de patriotismo mesmo também. De achar que a gente pode desenvolver tecnologia muito boa, de nível mundial, entendeu? Pra ser usado por pessoas de todos os cantos, e que funciona.
Yuri: “A gente” nesse caso quer dizer quem?
Ricardo: Eu posso dizer “a gente Brasileiros” ou posso dizer “nós,” “PUC,” “Nas Nuvens,” “comunidade open source.” Não sei, não sei direito. É isso.
Yuri: Mas você tinha qual em mente?
Ricardo: Eu acho que [pause]… essa coisa de ser tecnologia nacional, ou, seja, desenvolvida, mesmo que inicialmente, por pessoas daqui, do Brasil. Eu acho que isso me empolgava. Mesmo que, “Ok, tem participação de gente do mundo inteiro.” Melhor ainda! Cê tá entendendo? É gente do mundo inteiro prestigiando uma coisa que começou aqui. [Long pause.]
p. 167–172
Chico’s quotes are based on fieldnotes and were originally in Portuguese. Carlos’s quotes are based on a recorded interview and were translated from Portuguese. Roberto’s quotes are based on a recorded interview and were originally in English.
Carlos’s quotes:
Carlos: Então, eu sabia de Lua, mas… Sabia de alguns sucessos de Lua, mas também… Sabe como… sabe aqui e ali. Como, o professor ganhou um prêmio… Mas quando eu assumi aqui essa função de planejamento, olhando o potencial aqui da universidade, o que ela tem de singular, percebi que existia um movimento bastante grande até utilizando a linguagem Lua. E posteriormente retomando os contatos com Chico… [Spends one minute discussing Chico’s and his own careers at PUC and how they got back in touch recently.] E com retorno de Chico, que e um grande fan de Lua, né, pra essa coisa de software embedded e dentro de instrumentação… A partir de Chico eu conhecia e tinha contato conversando com Rodrigo Miranda, que é uma pessoa que tem um papel importante também, não nesse movimento mais recente que a gente tá chamando de evangelização, mas no pensar estratégico da evolução de Lua. Acho que Rodrigo tem uma contribuição importante aí. Pelo que eu posso perceber, é uma leitura minha. Você pode estar entrevistando varias pessoas, né? E ouvindo de Chico, que também tinha essa posição, eu tinha oportunidade pra levar isso pra administração da universidade, que… A universidade estava percebendo pouco a importância que a Lua tava ter no contexto internacional. E membros de administração da universidade concordaram com isso, né. E eu mencionei que deveria tentar ver quais eram maneiras de a gente reforçar essa associação — entre Lua e a PUC. Mas tudo numa maneira muito informal. Não existe infrastrutura, não existem recursos. E tudo muito… conversa. O que a gente chamou de “evangelização”, você tem que ganhar o coração das pessoas, a mente das pessoas. E não uma parte burocrática, administrativa, nesse sentido.
[A discussion of his efforts to “evangelize” Lua.]
Carlos: E dento isso também começamos a procurar grandes parceiros, né. Porque se Lua tem uma projeção no nível internacional, se ela tem uma serie de qualidades que a comunidade reconhece, por que não atrair parceiros de peso, grandes players internacionais, como Softnet, IBM, para conversarmos sobre esse assunto?
[Twenty five minutes later, in the context of discussing the use of Lua in Ginga.]
Carlos: Por exemplo, o NCL e a Ginga usam muito Lua. Mas os… estes pesquisadores não divulgam. Tanto que Lua esta por baixo. Porque se você pergunta, eles dizem: “Não, não. Nós usamos Lua.” Mas eles não tentam realçar isso. Falta de visão talvez. A percepção de que se nós conseguirmos valorizar esta linguagem, ela vai servir em beneficio de todos, do Rio de Janeiro, e do Brasil.
Porque sempre um país periférico tem… Sempre… “Ih, não, isso é uma coisa só de brasileiro.” Você compra um produto no Brasil, se dar defeito, você diz: “Ah, é brasileiro.” Cê compra um equipamento importado, um automóvel, você diz: “Ah, olha que maravilha.” Quando dá defeito, a pessoa quase não fala nada. Mas se você compra um produto Brasileiro, você diz: “É porque é brasileiro”. E isso vale pro software também, né. Apesar da nossa destacada posição na área de software bancário, né, na área financeira, e tal… Mas o Brasil é pouco agressivo nessa questão de off-shore, não?
Yuri: Então, uma parte d esse trabalho inteiro e com pessoas que estão fazendo varios projetos…
Carlos: E também o que eu tenho colocado, né, de talvez a necessidade de a gente fazer um esforço de buscar recursos, de trazer agências financiadoras aqui, dizer: “Vamos formar programadores de Lua.” [Talks about some small companies and their difficulty finding Lua programmers, about one minute.]
Provavelmente, em meados de maio, deve ter uma reunião, aqui na PUC, com o Secretário de Desenvolvimento Econômico de Estado do Rio de Janeiro, onde uma das propostas que nós vamos colocar pra ele pra agenda de desenvolvimento seria a questão da tecnologia de informação, mas centrado em Lua, como um diferencial brasileiro pra off-shore. Java pode ser na China, na Índia… A Índia tem a facilidade da língua, que aqui no Brasil… não temos talvez isso. Mas, sem dúvida nenhuma, Lua é um diferencial, onde você tem condições de formar uma massa crítica rapidamente, se nós tivermos uma articulação. E é isso que, nessa vinda do Secretário, nós vamos convidar os órgãos financiadores da área de ciência e tecnologia, o Banco Nacional do Desenvolvimento Econômico e Social, pra virem aqui, e vamos trazer empresas que já estão em processo de catequese… [laughs] pra também falarem sobre isso e ter o seu interesse… Ou seja, você de uma certa maneira vai sublinhando e certificando que isto é um produto brasileiro,, open source, e, ainda, dessa criatividade aqui no Rio de Janeiro.
Roberto’s quote:
Yuri: And if this [a poorly written contract about Lua] were to happen, what would be the risk? I mean, what would be the problem from your point of view?
Roberto: The problems is that I think that would be very bad for the development of Lua. For instance, that could be very bad for the image of Lua. Suddenly a lot of people in the world are using Lua and there is a risk that IBM could accuse them: “Oh, you cannot do that because it’s under a contract between me and PUC…” This is a very, very big risk…
Because one of the main problems Lua had… I think now finally it doesn’t have it anymore, was that people were very unsure about using a software from… as you say, from a South American country, they don’t know how we think and things like that. So they are afraid, “Can we use Lua? Is it really free? What they are going to do?” Things like that. You told me, you know that. [Referring to our discussion of my interview with Rich, quoted earlier.]
And then after all these years we kind of conquered some kind of credibility. “Oh, ok, Lua seems to be something stable. A lot of people use it, so I don’t think… there is not going to be any problem.” So more and more people are starting to use Lua. And more important, more and more people are starting to admit that they use Lua. And then suddenly it transpires that there is a hidden contract done in South America between IBM or Softnet or Microsoft or whatever and PUC, which is the legal owner of Lua, that… whatever it is in the contract [laughs], it doesn’t matter very much…
p. 172–176
Roberto’s quotes are based on recording interviews conducted in English.
The first interview in 2007:
[At the beginning of my interview, following my explanation of what I was trying to do and responding to my explanasuggestion that we start with a discussion of the Lua authors’ note in their paper that they had been bothered by the lack of Lua’s use in Brazil.]
Roberto: I think maybe start a little earlier? Because this is something that I was thinking today and something that I am always thinking. The main point is that we have a very, very rough idea of the growth of Lua and how Lua is being used and things like that. We are always kind of… I don’t know if this is because we are in Brazil or if it would be the same if you were living in Silicon Valley, but my impression is that I always kind of try to read smoke signals to try to realize that there is a real growth, [or] there is no real growth. I think that because just today, do you know the… there is a programming language popularity index?
Yuri: No, I did not.
Roberto: There is a site that is very well-known, they measure what they call popularity of programming language. [Explains what TIOBE TPCI index is and how Lua had been gradually moving up until jumping the day before, about two minutes.]
Roberto: So then in December it was like in 50, in January it went to 47, February it went to 44, and this month the index just came out today, yesterday and it went to 25th position.
Yuri: So it suddenly went from 44 to 25?
Roberto: Yes. [Laughs.] I am not sure if the index is wrong, I mean, it’s a very, very big jump. It jumped over twenty other languages in one month. Very strange. We are up Prolog, we are up with SmallTalk, we are up Pascal… We are up… I think Icon we were already up. A lot of languages. It’s very strange, I’m not sure if they are right. But the main point is I have no idea how we are climbing up, what happened in the world that put us that much [up]. I mean… We have a thin idea that there is a new book about Lua that is Beginning Lua Programming. Actually, this is the first, how can I say, the first outside book that is really, really about Lua.
Because before there was only game programming with Lua but it’s kind of, again its for the game niche. And this one is Beginning Lua Programming. So it’s Lua for anything, not only for games.
Yuri: So they thought your book wasn’t good enough? [Laughs.]
Roberto: No, actually, they liked my book. They even cited my book in theirs, but theirs is more a beginning Lua book, so it’s more for. They think mine is more high-level, actually I assume that people know… And their book is more kind of initial. I think it’s a good complement. I really, I don’t, at least for now I’m not afraid of the competition. I think there is a lot of [unclear] to grow the whole thing.
But then, so, we are always trying to understand what is going on. There is another one I think I’m not sure if you comment in this paper I think in another one we comment about that… there is this very famous… In ’98, I don’t know if I talked to you about that, a guy Cameron Laird, he has a column about skipping languages.
Yuri: Is that the Dr Dobb’s…
Roberto: No, he was some time in Sun World, an online magazine, then he went to… I don’t know. He writes in different places. And then in ’98 in one of his columns he wrote about Lua: “It’s a very nice language, still has a very, very small base of some tens of thousands of users.” At that time for us — in ’98 — to learn that we had tens of thousands of users! We were discussing it: if we have one thousand users, maybe… “Let me see, I think we have a few hundred users, maybe one thousand.” And then this guy says: “They have very few users, just tens of thousands.” We were: “How?..” We are always kind of…
Yuri: So when you are trying to — how were you trying to do that?
Roberto: Sometimes… Now I try to replicate the programming index, for instance, hits. Now I’m, how do you say, browsing blogs, I have one fixed link in my browser…
Yuri: You can also speak Portuguese if you want.
Roberto: Pardon?
Yuri: You can also speak Portuguese if you want. If there is something…
Roberto: Oh, ok. I try to acompanhar, to follow blogs, and I have a link in my bookmarks. There is a search in Google blogs for “Lua” and “programming” or “games” and every day I go to see news about Lua in the blogs to try to have a feeling if there is something new happening or things like that. And sometimes I see: “Oh, this is interesting.” But sometimes I see something that I get surprised: “Oh, there is…” It’s difficult to…
The fourth interview of 2007:
[In the context of discussing Lua’s growth.]
Yuri: But you said that you have mixed feelings about whether it’s going to go to top 20 there or not.
Roberto: Yeah, now I’m more calm about that. I think I mentioned that sometimes I was kind of nervous for instance about forks or things like that. About being too… I think… I’m not sure if I mentioned that to you. I think I told that I was afraid sometimes that Lua became much more famous than us, than the group behind Lua and so people… Someone mentioned that—you already mentioned that too, but, for instance how the Lua community behaves this way… That we accept suggestions but we keep control of everything. And there is this culture there… I think it’s quite stable in Lua. Everybody accepts that, everybody thinks it’s good for Lua because exactly that: it avoids bloating, things like that. And sometimes I’m afraid that if it grows too fast, it can affect the stability in the community.
Yuri: Is that different from how other programming languages work?
Roberto: Yeah, because I think most other programming languages — open source — they are much more open than Lua. So they are… For instance, in Python or Perl, you have a lot of people that actually vote for changes and there are those kind of open decision, open-source decision-making strategies and things like that. You can enter as a committer and you are promoted as a developer and then you have the right to vote and there is all this hierarchy. And Lua is just the three of us… [Laughs.]
Yuri: Have you ever thought of doing that?
Roberto: No. I mean, in what sense? We thought about not doing that. [Laughs.]
Yuri: Ok, but you’re saying this is a possibility that was discussed and you decided not to?
Roberto: Yes.
Yuri: I’m just saying that as opposed to sort of… You decided to not do this as opposed to having never really gotten there.
Roberto: Oh yeah, yeah. We decided not to… [Laughs.]
Yuri:
Roberto: And why? Because exactly… for several different reasons. One is exactly that I don’t think that this is necessarily good for a language. I think that always it tends to grow. It’s very difficult for people to agree on what to remove from the language so I think this is one of the main points.
The other main point is that we really like — I mean, someone once said that in kind of a very aggressive way, not that aggressive, but… It’s our language, I mean, we like doing it and it’s…
Yuri: Someone said what? That it was your language?
Roberto: Yes, but it was kind of “Nobody has nothing to do with that, it is his language, he does whatever he wants and he doesn’t care what people think about it” [says imitating aggressive voice] and I mean, I care a lot about what people think about it, but I really want to keep this privilege of… This is the language I developed, I want to have the language the way I want it.
Yuri: But when you say that, what does that mean? I mean, you want… There’s a language you developed, and… I’m saying that if, let’s say someone decided that they wanted to make a modified version, right? What about that scenario do you fear? Because you’re saying that you feel worried about this, right? That someone would go and decide to do a fork or whatever.
Robert: Yes, sometimes, for instance, I fear that they started an open source, completely open source, development of a parallel language and that could destroy our… I don’t think that will happen but sometimes I think about that. Could, for instance, destroy completely Lua in the sense that everybody moves to this fork and nobody uses Lua never more. I don’t think it’s going to happen exactly because I really think that the main selling points of Lua are very difficult to keep if you change to an open source. But I think about that, and I consider that as a kind of…
Yuri: I find interesting how you use the word “open source” in the sense that you seem to say… For you, “open source”… You’re using the word “open source” in the sense that Lua wasn’t an example of something… or Lua not being open source.
Roberto: Yeah, because there is this culture. For instance, I have this… I just… [Rodrigo] Miranda gave me a copy of this book called How to Develop an Open Source Project. For this book I don’t have a copy here. How to Run an Open Source Project. [Producing Open Source Software by Karl Fogel.] It’s assumed that an open source project is something that is open source decisions and… It even considers the possibility of… what they call… [pause] “the benevolent dictator.” Is that the name? But it must be benevolent, that dictator. So it’s kind of a dictator that’s all… And it’s exactly because of that, he said in the book, because there is always this… the possibility of fork if the dictator is not benevolent, or if it’s really a dictator. People will fork to another project and so… I mean, you cannot be a dictator, so I mean. So he puts that as almost a result of an open source project — that it will have an open source development, decision-making organization.
Yuri: It’s a book that Rodrigo gave you? Did he say why he wanted you to read it?
Roberto: Yes. He said I should — I could learn some things there. But I don’t think that it was about the decision-making part.
Yuri: Ok, but you read the book?
Roberto: Yes, I read it.
Yuri: And did you learn something from it that…?
Roberto: Yeah, I learned a lot about exactly… For instance, I didn’t know that there… is so strong this culture, of exactly what the meaning of “open source” is for some people. I thought that Lua of course was open source. Now I say: “Lua is open source but it may not be what you think it means to be open source.” [Laughs.]
Chapter 8
p. 179
Rodrigo’s quote come from fieldnotes and were originally in Portuguese.
p. 181
The quote from the unnamed original author of CGILua comes from a recorded interview, conducted in Portuguese in 2007. Here is a much longer version of the quotation:
Cássio: Na verdade não foi um projeto, foi uma brincadeira entre amigos, digamos assim. Que… A gente usava Lua, na verdade, pra… O interesse na época era pegar dados de forms em HTML, né, porque passa por um CGI, né? Então, na época a intenção não era nem gerar as páginas efetivamente, nesse começo, lá no começo. Era eu submeter um, digamos assim, tem um form escrito em HTML normal e aí botar, este programa que a gente chamou na época de LuaForm pra ser o script CGI que vai responder… que ia receber, digamos assim, o nosso request. A aí o interesse maior era em conseguir pegar os parâmetros, que era uma coisa complexa na época, porque tinha que programar em C para extrair os parâmetros, né, que vinham no request, no formulário. Então, originalmente foi pra isso, pra basicamente você escrever… pegar o resultado do form e aí produzir…
Yuri: Pra depois passarem estes parâmetros pra alguma coisa escrita em C que geria a página mesma…
Cássio: É. E daí uma coisa puxa a outra, né? Dado que você já tenha os dados no ambiente Lua com os parâmetros bonitinho, porque que eu não faço um… eu podia simplesmente fazer um print, né? E era como se fosse a resposta pra aquele form. Então ele vai escrever uma página como se eu escrevesse no print embaixo. Então daí seria mais fácil ainda porque ao invés de eu escrever print abre colchete H1 fecha, era mais fácil ter uma outra coisa que gerasse essas strings pra mim. Aí provavelmente daí deu origem ao CGILua…
Yuri: Isso começou como brincadeira entre amigos em que sentido?
Cássio: Na época a gente estava aqui fazendo o mestrado, ou graduação, não me lembro exatamente agora, e estava começando a surgir, pelo menos aqui no Brasil, no meio acadêmico essa coisa de geração de páginas. As pessoas usavam um editor “careta” pra escrever uma página, não tinha muito essa coisa desse conteúdo dinâmico…
Yuri: Editor de que?
Cássio: De texto pra escrever um HTML simples, né? E justamente por as coisas serem estáticas quando você fazia um form, você precisava escrever um programa. Então: “Como é que a gente faz isso de uma maneira melhorzinha, né, pra pegar esses parâmetros?” Daí você podendo fazer print, já faz a resposta da pagina. Então as coisas acabaram, tipo assim, dando origem aí ao CGILua. Mas aí já foram outras pessoas que pegaram e transformaram num produto e até numa tese.
Yuri: O código começou com você e algumas outras pessoas que estavam fazendo…
Cássio: Aqui na PUC, no laboratório.
Yuri: Não tinha nada com Tecgraf?
Cássio: Era dentro do laboratório, dentro do ambiente do Tecgraf. Digamos assim, todos dentro do laboratório naquela época estavam fazendo mestrado, doutorado ou eram alunos. Então, dentro deste ambiente a gente produziu essa brincadeira. Na época se chamava LuaForm. Justamente porque o interesse era só em dar um tratamento de forms de HTML.
Yuri: A idéia era usar ele pra fazer algum tipo de site, ou só…
Cássio: Só pra aprender mesmo, só pra descobrir como as coisas funcionavam na época.
p. 186
Rodrigo’s quote is based on fieldnotes and was originally in English.
p. 187–190
Rodrigo’s and Márcio’s quotes are based on fieldnotes and were originally in Portuguese.
p. 190–192
My and Rodrigo’s quotes are based on fieldnotes and could have originally been in either language.
p. 192–193
Pedro’s quotes are based on fieldnotes and were translated from Portuguese.
p. 197–198
Rodrigo’s quotes in this section are based on a recorded interview and were translated from Portuguese.
Rodrigo: Os projetos de open source eles começam com um personal itch. Com alguma coisa que você quer resolver pra você, e você faz um protótipo, uma versão inicial, tipo o seu Sputnik. E depois você decide se você quer chamar mais pessoas ou não.
Yuri: Mas o Kepler começou com um personal itch, só que não de uma pessoa mas de empresa?
Rodrigo: De empresa. É um personal itch meu, eu tenho isso há dez anos. Eu queria fazer uma plataforma web pra Lua. Mas eu não tinha capacidade técnica de fazer. Então, eu tive que pensar assim: “Como é que eu vou estruturar as coisas pra conseguir juntar um monte de gente e aí fazer uma plataforma web?” A primeira tentativa foi [Nas Nuvens], quando [Nas Nuvens] apareceu, eu falei assim: “Olha, esse é um lugar onde eu posso fazer uma plataforma web. Porque eles querem usar Lua.” Já é bom, mas não funcionou…
Yuri: Porque não?
Rodrigo: Porque o nível dos desenvolvedores não era o nível de desenvolvedores de plataforma. São níveis diferentes. Desenvolvedores de aplicações numa plataforma tem algumas expectativas. E se você quer fazer a plataforma em si você tem que saber muito mais do sistema operacional, muito mais da parte de C e de integração com outras coisas pra fazer os conectores. Isso dá mais trabalho.
Yuri: Isso foi por falta de dinheiro na [Nas Nuvens]?
Rodrigo: Sim, você pode dizer que foi por falta de dinheiro; se tivesse dinheiro eu teria como chamar as pessoas.
Yuri: Se você conseguisse esse outro milhão de reais você teria conseguido resolver isso ou não?
Rodrigo: Acho que sim.
Yuri: Esses três?
Rodrigo: Ou outros. Programadores C eu conheço alguns, mas programadores C que queiram trabalhar de graça na plataforma Lua eu não conheço nenhum.
[Four minutes later.]
Yuri: Outra coisa… Você tá dizendo que você tá chegando até essa maneira de fazer software livre que é mais comum?
Rodrigo: Eu não falei que estou chegando na maneira de fazer software livre, que eu falei que estou voltando a poder fazer coisas técnicas num projeto.
Yuri: Você disse que você tava fazendo Kepler de uma maneira de trás pra frente…
Rodrigo: Eu tava muito alto nível demais, muito preocupado com…
Yuri: Que significa que agora você tá indo na direção para Kepler funcione de uma maneira um pouco mais parecida com outros projetos?
Rodrigo: Suponho que sim, eu não sei. Eu não participo de outros projetos; a imagem que eu tenho de outros projetos está mais parecida com o que a gente tem agora.
Yuri: O que queria perguntar é se isso é… Você acha que isso tá acontecendo naturalmente porque isso é a única maneira de fazer este tipo de projeto ou porque você tá olhando e achando que esses todos outros projetos estão funcionando nessa maneira e eu devo fazer a mesma coisa?
Rodrigo: Não. Eu percebi que numa lista de um projeto livre existem duas moedas de troca: crédito e respeito. E existe um bem palpável que é source. Então, você tem duas moedas abstratas e uma concreta. Eu posso fornecer source pra uma comunidade e com isso ganhar respeito. Ou alguém pode me fornecer source e eu pagar em crédito ou…
Yuri: Crédito, nesse caso, significa obrigação ou o que?
Rodrigo: Credits.
Yuri: Ah, ok. Que depois é traduzido em respeito?
Rodrigo: Se eu dou crédito pra uma pessoa, ela tem respeito. O que eu estou tentando agora é ganhar respeito.
Yuri: Mas ganhar respeito como uma pessoa técnica? Porque você acha que não dá pra ganhar respeito como administrador?
Rodrigo: Com essa comunidade e com essa comunidade e com esses pessoas não. Não sei se é a regra geral.
Yuri: Mas nessa lista você acha que não tá conseguindo?
Rodrigo: Agora acho que tô.
Yuri: Não, antes…
Rodrigo: Antes eu não tava.
Yuri: E como você sabe que você não tava conseguindo respeito?
Rodrigo: É um feeling.
Yuri: Agora o feeling é diferente? Mas como? Tem alguma coisa acontecendo que não tava acontecendo antes?
Rodrigo: Não. É. Tem uma coisa acontecendo que não estava acontecendo antes, eu estou mais técnico.
Yuri: Sim, mas com que resultado?
Rodrigo: Eu não sei explicar, não tenho um modelo formal pra isso. Eu consigo identificar uma diferença na postura das pessoas; nas perguntas; no tipo de tensão nas palavras; no tipo de formalidade…
Yuri: Você está falando respeito de você ou respeito pelo projeto? Porque quando eles fazem perguntas, eles não fazem perguntas pra você, eles fazem pra lista.
Rodrigo: Sim.
Carregal: Como você pode saber se eles têm respeito por você quando eles fazem este tipo de pergunta?
Rodrigo: Porque isso é uma coisa que eu já reparei na lista de Lua. Se alguem faz uma pergunta, ou se eu faço uma pergunta, a minha pergunta transparece com um grau de ignorância muito grande. Porque eu sou ignorante. Porque eu não sei uma quantidade enorme de coisas. Eu não sei como funciona o Makefile, eu não sei como funciona o sistema de build, não sei como [unclear]… Tem muita coisa de Linux que eu não sei. Então isso aparece na pergunta. E a resposta das pessoas tende a ser educada mas é… meio patronizing. Meio tipo, “Olha, ah… Então faz aí isso aqui. Vai lá descobre como faz isso.” E quando eu dou uma resposta mais técnica, eu sinto que isso gera uma conexão com a pessoa do outro lado. A pessoa fala assim: “Ah, eu não estou falando com um gerente burro. Tô falando com alguém que, pelo menos, vai entender o que eu estou pensando.” Então você sente na resposta uma vibração diferente, que eu imagino que seja o que a pessoa sente quando vê a minha resposta.
Yuri: No final você acha que isso é importante pro projeto?
Rodrigo: Sim, claro. Mas é importante pra mim, eu estou fazendo por mim porque eu quero aprender a mexer em Linux, Windows e OSX.
Yuri: Só pra saber ou pra saber como obter respeito nesse tipo de lista?
Rodrigo: Não, só pra eu saber fazer o Kepler. Eu estava numa situação muito delicada onde eu tinha uma plataforma que eu tinha bolado, a idéia da plataforma era minha, mas eu não sabia usar porque eu não conhecia todos…
Yuri: Não sabia fazer?
Rodrigo: Mesmo usar. Os detalhes internos eu não sabia. “Como funciona o LuaExpat?” Eu não sei. Eu nunca parei pra olhar. Eu falei: “Eu preciso de um LuaExpat.” E aí apareceu. Ah, bom, essa parte já tem. “Agora eu preciso de um LuaZip.” Apareceu. Agora preciso de um MD5. Apareceu. Então, eu já tenho todos os quadradinhos que eu preciso. Tá bom.
Yuri: E agora?
Rodrigo: Agora eu quero saber brincar com esses quadradinhos, é o que estou tentando, estou aprendendo como esse encaixa aqui, o tipo de mobilidade que eu posso fazer com esses quadrados.
p. 201
Jason’s quotes here are based on a recorded interview and were translated from Portuguese. The first quote comes from the later part of our first interview, conducted in 2007. The second set of quotations comes from our second interview, also conducted in Portuguese.
The first interview:
[About twenty minutes after after the end of the previous quoted segment, in the context of discussing Jason’s participation on the mailing list.]
Yuri: Mas o que eu acho interessante e que eu queria perguntar… Eu acharia que um de avantagens de usar uma coisa como Lua é que tem aqui… feito por pessoas de PUC… Mas, você ainda tinha interesse em ir lá e falar com eles pessoalmente?
Jason: Olha eu acho até que eu me interessaria de ver que eles são gente, né? São pessoas que eu passei a admirar pra caramba, de ver o trabalho maravilhoso que os caras fizeram. Mas fico… é aquela história de você encontrar lá um músico maravilhoso, que faz aquelas músicas maravilhosas, você vai lá encontrar ele pessoalmente. Porra… [Laughs.] Ele pode tocar pra você, aí é legal, sabe. Mas pô, vai lá conversar com ele e tal é diferente, né. Trocar uma idéia sobre música e tal, você tem que entender de música tanto quanto ele pra você ir lá e poder aproveitar aquilo.
E com a facilidade que a gente tem hoje de se comunicar digitalmente com as pessoas, né, acho que a interação que a gente pode vir a ter, pessoalmente é… é difícil o cara… uma coisa é o cara tocar, outra coisa é o cara escrever códigos, eu não vou poder escrever códigos com o cara ali na hora, né? Mas pela lista, eu posso, posso trocar um texto de códigos com ele. “Ah, e se for assim, assim, assado?” “Ah não, então assim é diferente, mas seria assim.”
[Discusses advantages of computer-mediated communication, then talks about the fact that he is taking some courses at PUC that has given him some access to the community there.]
Aí faço outro curso, conheço outro grupo de pessoas e fico lá, querendo saber que, que eles estão fazendo e tal. Acho que encontrar esse pessoal vai ser o mesmo movimento, vai ser o mesmo tipo de coisa. Vou chegar lá e vou ficar amarradão querendo ver o que eles estão fazendo e se funciona, algum tipo de ajuda que eu possa dar e tal. Então, quando eu descobri que os caras eram da PUC, que eu comecei a usar o negocio e os caras eram da PUC, eu “Pô… É isso aí. Acho que eu vou lá, ver qual é.” Mas eu não ia saber onde encontrar os caras. Acho que se eu visse algum deles oferecendo um curso, eu ia fazer imediatamente, correndo, mas eu não iria lá bater na porta pra descobrir onde é que está o cara. [Long pause.]
The second interview, in the context of discussing Jason’s invovement with Kepler and the fact could help him become a part of the research community around it:
Jason: Com as pessoas da PUC, quer dizer, como eu conheci o Rodrigo, por exemplo, que é uma pessoa que me mostra que é viável trabalhar assim. Porque era uma dúvida que sempre me acometeu, sabe. Eu pensando: “Pô, beleza, eu sempre quis fazer isso, mas como é que eu vou ganhar a vida?” Se eu ficar fazendo essas coisas altamente experimentais e avançadas que não têm, não são mainstream comercial? Como eu vou viver fora do Java e do .Net?”
Yuri: E como você vai viver? O que ele te mostrou?
Jason: Ele mostrou… Bom, ele está lá e vive, né? [Laughs.]
Chapter 9
p. 215
Jason’s quote here is a repeat of the quote on p. 201.