Entrevista com Yukihiro “Matz” Matsumoto – Parte 2

Parte 2 da entrevista realizada na RubyConf China 2012 com o criador de Ruby, Yukihiro “Matz” Matsumoto. Para ler a parte 1, clique aqui. A tradução para o Português é de minha autoria e a entrevista em Inglês pode ser lida no blog de Fred Wu. Inicialmente, eu iria dividir a entrevista em duas partes, mas resolvi criar também uma terceira parte (devido ao fato da entrevista ser mais longa do que eu avaliei a princípio) que será publicada aqui no blog na próxima segunda-feira. Espero que gostem!

<- Ir para a Parte I

Zhou: Muitos acreditam que a popularidade de Ruby se deu por causa de Ruby on Rails e você concorda com isso em seu livro. O que você acha que fez Rails tão bem sucedido?

Matz: Primeiro e mais importante, [Ruby on Rails] se beneficiou do rápido crescimento da Web – quase toda plataforma de desenvolvimento de software está mirando no campo da Web. O que era antes desenvolvido usando a tradicional arquitetura Cliente-Servidor pode ser agora implementado na Web. O número de aplicações que podem ser desenvolvidas para a Web cresceu, e isso é importante. Em segundo lugar, Ruby é otimizado para um desenvolvimento mais fácil e uma maior produtividade de desenvolvimento. Eu acho que esses dois motivos combinados fizeram Rails ter sucesso. Além disso, Ruby também tem poderosas qualidades tais como meta-programação e extensibilidade por meio de monkey patching. Por meio dessas funcionalidades, classes básicas podem ser aprimoradas, e DHH [David Heinemeier Hansson, criador do framework Ruby on Rails] criou Rails usando essas poderosas características de Ruby. Para pessoas que nunca tocaram em Ruby, por exemplo aqueles programadores Java que gostam de linguagens “inflexíveis”, eles ficarão tipo “Huh? Você pode fazer isso?” – e eu acho que essa é também uma das razões pela qual Rails é tão popular.

Zhou: É dito que DHH iria criar um framework Web usando PHP, mas acabou mudando para Ruby.

Matz: Sim, e eu acho que a razão para isso pode ser a limitação de PHP em meta-programação. Depois que Rails foi lançado, uma série de frameworks PHP saíram baseados em Rails, tais como Symfony e CakePHP. PHP, no entanto, não tem muitas das poderosas funcionalidades encontradas em Ruby, e puramente da perspectiva de desenvolvimento eu ainda acho que Rails é o mais poderoso. Aliás, eu na verdade encontrei DHH antes, na Dinamarca. Naquela época ele ainda não tinha começado a aprender Ruby ainda, talvez esse encontro tenha tido um pequeno impacto nele.

Zhou: Ruby está sendo amplamente usado para a Web, mas um tópico quente entre os leitores chineses é a direção em que Ruby está se desenvolvendo fora da Web. Algum comentário sobre essa questão?

Matz: Verdade, muitos projetos Web usam Ruby, por exemplo frameworks Web como Rails e Sinatra etc O mundo da programação, no entanto, é muito mais do que simplesmente a Internet, e eu sempre quis que Ruby saísse da Web para outras áreas. No futuro próximo, eu gostaria de ver Ruby ser usado em três campos:

1. Computação científica. Nesse campo, linguagens como Python, R e Matlab são as escolhas populares. Eu espero que Ruby em breve se torne um deles. Na verdade, nos estamos desenvolvendo um projeto chamado SciRuby, e nos esperamos que ele nos ajude com a adoção [de Ruby] na computação científica.

2. Computação de alta performance. Essa área é de certa forma relacionada com a computação científica – usar supercomputadores para realizar operações computacionais. Comparado com C++, Ruby é mesmo muito lento, e esse é o motivo pelo qual as pessoas acham que Ruby não é adequado para computação de alta performance. Na Universidade de Tóquio, um estudante pesquisador está trabalhando em um projeto para compilar código Ruby para código em C antes da compilação para código binário. O processo envolve técnicas como a inferência de tipos, e em cenários ótimos a velocidade atinge 90% daquela de um código C escrito à mão. Até agora só há um paper publicado, nenhum código aberto ainda, mas eu estou esperando que no próximo ano tudo seja revelado.

3. Sistemas embarcados. Para micro dispositivos como celulares, equipamentos médicos e robôs, Ruby não é realmente apropriado devido ao seu [alto] uso de memória e APIs. Portanto, precisamos de algo mais apropriado para esses sistemas embarcados nos quais o consumo de memória tem de ser baixo e as APIs tem de ser otimizadas. MRuby é desenvolvido para isso.

Zhou: O Twitter foi principalmente construído usando Rails, mas eu li uma notícia recentemente sobre o surto de tráfego durante o período da eleição presidencial nos EUA e o Twitter está agora migrando para outras plataformas para ajudar com a escalabilidade. Qual é a sua visão sobre isso?

Matz: Há muitas razões eu acredito. Primeiro de todas, ninguém poderia ter previsto o grande sucesso do Twitter – quem teria pensado que um serviço que essencialmente fornece 140 caracteres de texto para blogar se tornaria uma das maiores redes sociais. Durante seu rápido crescimento eles adicionaram uma série de novas funcionalidades, e eu acho que Ruby contribuiu para isso – permitiu que muitas novas funcionalidades fossem pensadas e implementadas em uma curta quantidade de tempo. O Twitter não poderia ter previsto a quantidade de tráfego com a qual eles lidam agora, então é justo dizer que eles agora atingiram o limite de sua arquitetura desenvolvida tempos atrás.
Para resolver esse problema, o Twitter precisa desenvolver uma nova arquitetura do início para lidar com o sempre crescente tráfego. Entretanto, Ruby ainda pode ser usado para reescrever a arquitetura (risadas). Mais seriamente, no entanto, quando uma plataforma atinge seu limite, há algumas maneiras de resolver os problemas tal como reescrever a arquitetura e mudar para outra linguagem / plataforma etc. Eu acredito que a maneira mais eficiente de se fazer isso é reescrevendo a arquitetura, e isso é exatamente o que o Twitter tem feito. Durante o processo de reescrita, os engenheiros do Twitter quiseram encarar mais desafios, então eles escolheram Scala. Pelo motivo de Scala ser uma linguagem compilada, seu desempenho é ótimo, então é uma boa escolha para a nova arquitetura.
Minha opinião é a de que quando o seu sistema está ainda na fase de crescimento, é muito mais importante ter a habilidade de reagir rapidamente a mudanças, e isso é o que uma linguagem altamente flexível como Ruby oferece. A partir do momento em que o seu sistema atinge um ponto de maturidade, estabilidade e sucesso, aí ter uma nova arquitetura que economiza recursos faz sentido. O Twitter apenas escolheu usar Scala por seus componentes principais, a interface Web e muitas de suas ferramentas internas ainda estão usando Ruby. Por sinal, eu fiz uma visita ao Twitter no último mês e lá conversei com muitos de seus engenheiros – Ruby ainda está sendo bastante utilizado (risadas).

Zhou: Plataformas móveis se tornaram quentes e mais quentes nos últimos anos devido ao aumento no uso de smartphones, tablets e outros dispositivos móveis. Em termos de linguagem de programação, Android usa Java e o iOS usa Objective-C. Sobre linguagens de script como Ruby, como você as vê nesse contexto?

Matz: Sem sombra de dúvida, até agora para desenvolver em Android você usa Java e para o iOS você utiliza Objective-C. Mas isso cria uma enorme barreira, já que você teria que reescrever seu aplicativo se você quisesse o trazer de uma plataforma para outra. Projetos como PhoneGap e Titanium tentam resolver esse problema, com linguagens como JavaScript e Lua para oferecer compatibilidade entre diferentes plataformas. Para Ruby, há um projeto chamado Rhodes – você pode usar Ruby para escrever aplicativos que irão rodar em iOS, Android e Blackberry.
Nos velhos dias, dispositivos móveis eram muito menos poderosos do que PCs, e se aplicativos não pudessem rodar a toda velocidade eles eram então inúteis. Hoje, no entanto, dispositivos móveis se tornaram significativamente mais velozes, e o uso de frameworks que suportam múltiplas plataformas se tornou muito mais prático. Eu acho que essa forma de se desenvolver para plataformas móveis irá se tornar mais e mais popular. Por sinal, nós falamos de MRuby antes, e usar MRuby para o iOS e para o Android já está em curso, provavelmente mais aplicativos serão desenvolvidos usando MRuby em um futuro próximo.

-> Ir para a Parte 3

Anúncios

Um pensamento sobre “Entrevista com Yukihiro “Matz” Matsumoto – Parte 2

  1. […] Entrevista com Yukihiro “Matz” Matsumoto – Parte 2 → […]

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: