Novo Blog

Novo endereço

https://blog.nilo.pro.br

sexta-feira, 15 de junho de 2007

Linguagens, teclados e Ruby

Hoje, pela segunda vez esta semana, eu li um texto que me chamou a atenção sobre a hipótese de Sapir-Whorf, isto é, a maneira que a linguagem pode influenciar o comportamento e a forma de pensar das pessoas. Eu fiz um paralelo entre linguagens de programação e teclados.

Lendo sobre Ruby, fiquei observando os inúmeros símbolos e a freqüência que estes são utilizados na linguagem. Para um pobre coitado como eu, que usa um teclado Belga no trabalho e um teclado Francês em casa... os símbolos importam muito. O criador da linguagem Ruby, Yukihiro Matsumoto , utilizava provavelmente um teclado Japonês. Ok, é parecido com o teclado QWERTY ocidental... mas fica aqui meu registro quanto aos símbolos e linguagens. Lembro que li anteriormente um texto sobre como a @ foi escolhida como símbolo do e-mail e como alguns símbolos foram escolhidos no FORTRAN devido ao reduzido teclado da época (1956~1957) e depois usados por outras linguagens. Uma página que encontrei e que ilustra a dureza daqueles tempos pode ser vista aqui.

O "Mat" não teria utilizado tantos pipes("|") se estivesse usando um teclado francês ou belga :-). Eu estou estudando Ruby novamente devido ao RubyOnRails. Ando tendo novas idéias para sites e francamente, escrever em PHP está fora de questão. Eu continuo programando em Python. Eu acho Python uma linguagem muito mais clara que o Ruby, fora meu vício com a identação e meu ódio a chaves (antes mesmo de utilizar teclados estranhos) e end qualquer coisa. Talvez uma busca mais demorada no Google pudesse indicar outro framework para aplicativos web em Python. Mas meu problema de usar o Python para esta tarefa é que eu não quero utilizar vários frameworks, criando um monstro ainda maior, eu quero instalar um pacote único. Resolver o problema. Com Python, eu teria que utilizar vários pacotes com nomes de bichos e frutas que eu não sou doido suficiente para usar. Existem alternativas em Python amadurecendo, mas ainda longe do que eu posso obter hoje com o Rails.

Com certeza existe arte na programação, mas eu preciso testar algumas idéias rapidamente. Quando estas idéias são novos sites, fica claro que o belo cede lugar para o rápido, funcional e seguro. Eu poderia fazer alguma coisa em Java, mas eu estou realmente tentando diminuir a complexidade desta tarefa, reduzindo o número de frameworks no meu futuro site.

O César ainda não escreveu sobre Ruby e eu acho que não vou conseguir convencê-lo a escrever nada mesmo. Então vou aproveitar a necessidade e postar aqui um pouco do que vi diferente em Ruby.

Voltando a hipótese de Sapir-Whorf, fico analisando a forma como as pessoas pensam pela linguagem de programação que elas mais se identificam. É fácil, basta lembrar de um programador C++ e de um programador Java. Programadores em Visual Basic, Python, Perl ou PHP também invocam lembranças diferentes a minha mente. Embora todos sejam profissionais, sempre tem algo no comportamento destes que marca nossa lembrança, como uma característica e até mesmo como um novo estereótipo. Alguns programadores gostam de trabalhar com coisas difíceis ou coisas que os outros consideram difíceis.

Esses padrões de comportamento são também visíveis quando você aprende uma nova língua estrangeira. Quem nunca teve vontadade de dizer que o programa está correndo ?

sexta-feira, 1 de junho de 2007

The Internet Divide

Leia no novo blog

Impressionante como as coisas voam...

Eu lembro quando consegui fazer meu modem de 2400 bps funcionar com a Connect or Die BBS... fim dos 80, início dos anos 90. Eu quase chorei quando vi os pequenos caracteres coloridos aparecendo no meu micro. Dureza, pois 2400 bps é algo realmente lento, mas na época era normal ter 1200 bps. Mesmo uma página em modo texto demorava para chegar, mas compensava. Pior era acordar meia noite, pois a BBS do Mingo só podia funcionar nesse horário. Estamos no Brasil dos monopólios, linhas telefônicas eram patrimônio e o Mingo havia negociado o telefone da família de meia noite às 06:00.
E só tinha uma linha. A conexão máxima era limitada a uma hora por dia e regras de upload/download ratio eram aplicadas (você tinha que enviar coisas para poder baixar...).
Imagens em 320x200... com incríveis 256 cores. Infelizmente eu ainda não tinha VGA... e sim uma placa EGA com monitor CGA colorido. Uma combinação que eu fiz questão de esquecer como consegui fazer. Mas o monitor fazia 640x200 e a placa fazia algo como 16 cores. Na verdade, a placa fazia até 640x350... mas meu pobre monitor não aguentava tudo isso.

Depois veio a BitNet e outro amigo que programava batches FTP de uma tal de Internet na Universidade Federal (a conexão lá era de alucinantes 9600 bps) para baixar alguns arquivos mais interessantes. Em 1994, já usávamos modems de 14400 bps, mas sofríamos com os inúmeros raios. Até hoje eu desligo o micro se escutar um trovão e evito usar em dia de chuva. Meu tio conseguiu comprar uma hora de Internet na Mandic BBS em São Paulo... tinha que pagar o interurbano, mais US$30,00 por hora se não me engano. Nosso objetivo era baixar um programa de engenharia naval, que ele vira num revista inglesa. O problema é que o arquivo era enorme... coisa de 250 Kb. Demoramos várias horas para baixar o programa, mas incrivelmente ele veio da Inglaterra para nossos disquetes.

Hoje, fui informado que estão vendendo Internet a 50 Mb/s na França. Fico imaginando as possíveis aplicações de tanta banda e rio lembrando do que passamos para baixar os pequenos arquivos. No Japão, parece que a coisa está ainda melhor. Mas 50 Mb/s já é muita coisa.

Lembrando do Pirataria pra quê, eu valorizo mais meu tempo. Tudo que me passa inicialmente pela cabeça seria baixar grandes quantidades de arquivos MP3, DVD, coleções com 1200 livros e coisas do gênero. Ai lembro de experiências anteriores, com bandas e volumes menores e no que resultou... e desisto da idéia.

O que realmente me preocupa é o Internet Divide. Em alguns lugares do Brasil já temos Internet realmente rápida, mas a grande maioria não consegue chegar em 1 Mb/s. Lembro dos dias na selva, ano passado. Eu brigava para ter um pobre ADSL de 600 Kb/s funcionando. Quando o canal funcionava, até que era bom para navegar. Ruim para baixar arquivos. Quando tinha um problema, pode ter certeza que era algo como 1 semana tendo raiva.

Esses tipos de restrições limitam nosso uso de Internet. O Internet Divide fica cada vez mais claro e a distância de países ricos também.

Eu acompanho meus filhos usando a Internet hoje. Nada de páginas estáticas! Eles querem vídeos e músicas on-line. Eu lembro que isso era realmente difícil na Selva. Para ver vídeo, tinha que baixar tudo primeiro. Até os banners hoje passam vídeos. Não esqueço da minha filha, de cabeça baixa esperando a página em Flash do site da Barbie carregar. O botão de reload/refresh era algo que ela já sabia usar.

Mas o grande problema com o Internet Divide é que não seremos incluídos nas próximas ondas de tele-trabalho e de outsourcing. Quando eu trabalhava no Brasil, lembro de reuniões onde tínhamos que explicar nossas latências de 400 ms... coisa inimaginável nos EUA ou na Alemanha. Já na época, isso impedia o uso de VoIP. O Skype melhorou isso, mas sempre estamos atrás. Quando a Internet deixará de ser encarada como artigo de luxo e sim com a mesma importância da energia elétrica?

Eu vim de uma cidade de 1.5 milhões de habitantes, mas estrangulada de todas as formas em relação a Internet. Além do isolamento geográfico natural, fomos excluídos do mundo digital de primeira linha.

Olhando para o presente, entendo como ficamos para trás em outras ondas de desenvolvimento. Demoramos para ter escolas para todos. Demoramos para entender que um país precisa ter políticas sérias para poder crescer. Ainda não exploramos nosso imenso potencial humano. Gente excluída pela pobreza e pela ignorância.

Internet não é luxo. Internet não é tudo. Mas Internet é muito importante. A velocidade de um canal e seu preço podem decidir entre instalar um novo negócio em uma cidade ou país. Negócios geram emprego e riqueza. O acesso a informação deveria ser encarado mais seriamente.