Blog da Improve It

MacRuby

Publicado por Vinicius Manhães Teles há 3 meses.

English version

Você gosta da interface gráfica dos Macs? Quem não gosta, né? Ela é um dos pontos altos da plataforma Macintosh, bem como do iPhone. Tudo viabilizado, em grande parte, por uma tecnologia chamada Cocoa.

No Mac, é possível criar interfaces gráficas em Cocoa, facilmente, utilizando o Interface Builder. Basta arrastar componentes de um lado para o outro, indicar ações e estabelecer conexões com o código. Ah sim, o código é implementado em Objective-C.

Objective-C é uma linguagem orientada a objetos que se aproxima bastante das características de Smalltalk. É uma linguagem com conceitos muito interessantes, porém bem verbosa. E pode representar uma barreira razoável para aqueles que gostariam de implementar aplicativos desktop no Mac, ou mesmo aplicativos no iPhone, especialmente se compararmos a outras linguagens como Ruby.

Pois Ruby é uma linguagem que foi feita com o objetivo de facilitar a vida do programador. É fácil, muito simples, extremamente expressiva e, de um modo geral, adorada por aqueles que a utilizam, incluindo eu mesmo. :-)

Então, de um lado temos uma tecnologia excepcional para interfaces gráficas, chamada Cocoa e de outro uma linguagem excelente chamada Ruby. Não seria ótimo se pudéssemos juntar as duas e ter o melhor dos dois mundos? Bem, isso já é possível há algum tempo usando, por exemplo, o RubyCocoa, que faz uma ponte entre Ruby e Objective-C. Entretanto, atualmente há uma opção ainda melhor chamada MacRuby.

MacRuby é uma versão do Ruby 1.9, portada para rodar diretamente sobre tecnologias que formam o core do Mac OS X tais como o runtime do Objective-C e o garbage collector, entre outros. A ideia é poder criar aplicações desktop no Mac OS X, sem sacrificar o desempenho, usando todos os benefícios do Ruby. Ainda está em desenvolvimento, mas o que está pronto já faz muito e o projeto como um todo é extremamente promissor.

Nestes últimos dias implementei uma pequena funcionalidade usando MacRuby e Cocoa. É algo útil para nosso dia a dia, embora bem básico, com o objetivo de configurar novos domínios DNS do Slicehost, que é onde hospedamos nossos sites. Irei disponibilizar o código no GitHub em breve.

Achei muito fácil fazer a implementação usando Cocoa e MacRuby, de modo que pude comprovar que o propósito do projeto MacRuby está sendo cumprido, ao menos naquilo que usei até o momento. Estou muito empolgado com tudo o que é possível fazer usando MacRuby, sobretudo com a agilidade e a facilidade de desenvolver dessa forma. Sendo assim, gostaria de recomendar aos interessados que deem uma olhada nele com carinho.

Vale dizer que eu já tinha algum conhecimento de Cocoa e Objective-C antes de fazer esse aplicativo. Minha principal referência tem sido o livro Cocoa Programming for Mac OS X.

Gostaria de agradecer ao Matt Aimonetti, que gentilmente me falou sobre o MacRuby, no Hora Extra, quando esteve aqui no Rio recentemente. O que, além de tudo, demonstra a importância de participar sempre do Hora Extra. :-)

E se você ainda não tiver se empolgado pelo MacRuby, aí vão algumas informações adicionais. O projeto é patrocinado pela própria Apple que tem grande interesse nele. De fato, o criador do projeto MacRuby, o belga Laurent Sansonetti trabalha na Apple e atualmente é pago pela empresa para trabalhar basicamente no MacRuby. Por que?

Porque em um futuro próximo, poderemos desenvolver aplicativos para o iPhone usando MacRuby! E isso abre espaço para que uma enorme leva de programadores Ruby comecem a produzir aplicativos para o iPhone. Portanto, se você ainda não programa em Ruby, talvez esteja aí o empurrãozinho que faltava. ;-)

Tags , , , ,  | 2 comentários

O que você achou? Coloque seus comentários e sugestões abaixo!

Acompanhe o RSS dessa página.

Comentários (2 até o momento)

  1. Daniel Lopes disse aproximadamente 9 horas depois:

    MacRuby é uma idéia fantástica, principalmente se os boatos que em um futuro próximo a própria apple o adotará como plataforma principal para desenvolvimento Mac.

    Mas eu não considero tão fácil assim criar apps com ele principalmente pq você não vai desenvolver algo decente em MacRuby sem saber Cocoa e conhecer mais a fundo a API dos frameworks (além de se acostumar com a sintaxe do Objective-c)

    Para nós que já estamos acostumados como um tecnologia web muito madura como o Rails é excelente pode integrar aplicativos desktop com ela através de uma outra tecnologia mais madura ainda como cocoa e objective-c.

    Quanto ao iPhone acho que o que imperra a capacidade de criar apps em Ruby é o garbage collector do iPhone que não existe... seria ótimo que isso mudasse :)

    Outra coisa legal é que todos os exemplo do livro que vc citou foram convertidos para macruby em: http://idisk.mac.com/johnmshea-Public?view=web

  2. Vinícius Manhães Teles disse aproximadamente 10 horas depois:

    Olá, Daniel.

    Concordo com você sobre a necessidade de saber sobre Cocoa e Objective-C. No meu caso, como já tinha algum conhecimento prévio, as coisas fluíram bem. Mas, para quem não conhece nada, é necessário aprender, sem dúvida.

    Mas, acho que o MacRuby também é bacana nesse ponto. Porque como é menos verboso, ajuda a tirar um pouco do "ruído" que tem no código, de modo que acho que facilita o próprio aprendizado dos conceitos básicos de Cocoa.

    No mais, também torço para que o iPhone venha a ter um garbage collector em um futuro próximo. E deixo aqui o meu muito obrigado pelo link. Excelente material!

    Grande abraço,

    Vinícius.