<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Desenvolvimento &#193;gil - Blog da Improve It: Tag desktop</title>
    <link>http://blog.improveit.com.br/articles/tag/desktop</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>MacRuby</title>
      <description>&lt;p&gt;&lt;a href="http://en.blog.improveit.com.br/articles/2009/12/10/macruby"&gt;English version&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Voc&#234; gosta da &lt;a href="http://pt.wikipedia.org/wiki/Interface_gr&#225;fica_do_utilizador"&gt;interface gr&#225;fica&lt;/a&gt; dos &lt;a href="http://www.apple.com/mac/"&gt;Macs&lt;/a&gt;? Quem n&#227;o gosta, n&#233;? Ela &#233; um dos pontos altos da plataforma &lt;a href="http://www.apple.com/mac/"&gt;Macintosh&lt;/a&gt;, bem como do &lt;a href="http://www.apple.com/iphone/"&gt;iPhone&lt;/a&gt;. Tudo viabilizado, em grande parte, por uma tecnologia chamada &lt;a href="http://developer.apple.com/cocoa/"&gt;Cocoa&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;No &lt;a href="http://www.apple.com/mac/"&gt;Mac&lt;/a&gt;, &#233; poss&#237;vel criar &lt;a href="http://pt.wikipedia.org/wiki/Interface_gr&#225;fica_do_utilizador"&gt;interfaces gr&#225;ficas&lt;/a&gt; em &lt;a href="http://developer.apple.com/cocoa/"&gt;Cocoa&lt;/a&gt;, facilmente, utilizando o &lt;a href="http://en.wikipedia.org/wiki/Interface_Builder"&gt;Interface Builder&lt;/a&gt;. Basta arrastar componentes de um lado para o outro, indicar a&#231;&#245;es e estabelecer conex&#245;es com o c&#243;digo. Ah sim, o c&#243;digo &#233; implementado em &lt;a href="http://en.wikipedia.org/wiki/Objective-C"&gt;Objective-C&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Objective-C"&gt;Objective-C&lt;/a&gt; &#233; uma linguagem orientada a objetos que se aproxima bastante das caracter&#237;sticas de &lt;a href="http://en.wikipedia.org/wiki/Smalltalk"&gt;Smalltalk&lt;/a&gt;. &#201; uma linguagem com conceitos muito interessantes, por&#233;m bem verbosa. E pode representar uma barreira razo&#225;vel para aqueles que gostariam de implementar aplicativos desktop no &lt;a href="http://www.apple.com/mac/"&gt;Mac&lt;/a&gt;, ou mesmo aplicativos no &lt;a href="http://www.apple.com/iphone/"&gt;iPhone&lt;/a&gt;, especialmente se compararmos a outras linguagens como &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Pois &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; &#233; uma linguagem que foi feita com o objetivo de facilitar a vida do programador. &#201; f&#225;cil, muito simples, extremamente expressiva e, de um modo geral, adorada por aqueles que a utilizam, incluindo eu mesmo. :-) &lt;/p&gt;

&lt;p&gt;Ent&#227;o, de um lado temos uma tecnologia excepcional para &lt;a href="http://pt.wikipedia.org/wiki/Interface_gr&#225;fica_do_utilizador"&gt;interfaces gr&#225;ficas&lt;/a&gt;, chamada &lt;a href="http://developer.apple.com/cocoa/"&gt;Cocoa&lt;/a&gt; e de outro uma linguagem excelente chamada &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt;. N&#227;o seria &#243;timo se pud&#233;ssemos juntar as duas e ter o melhor dos dois mundos? Bem, isso j&#225; &#233; poss&#237;vel h&#225; algum tempo usando, por exemplo, o &lt;a href="http://rubycocoa.sourceforge.net"&gt;RubyCocoa&lt;/a&gt;, que faz uma ponte entre &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; e &lt;a href="http://en.wikipedia.org/wiki/Objective-C"&gt;Objective-C&lt;/a&gt;. Entretanto, atualmente h&#225; uma op&#231;&#227;o ainda melhor chamada &lt;a href="http://www.macruby.org"&gt;MacRuby&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.macruby.org"&gt;MacRuby&lt;/a&gt; &#233; uma vers&#227;o do &lt;a href="http://www.ruby-lang.org/"&gt;Ruby 1.9&lt;/a&gt;, portada para rodar diretamente sobre tecnologias que formam o core do &lt;a href="http://www.apple.com/macosx/"&gt;Mac OS X&lt;/a&gt; tais como o runtime do &lt;a href="http://en.wikipedia.org/wiki/Objective-C"&gt;Objective-C&lt;/a&gt; e o garbage collector, entre outros. A ideia &#233; poder criar aplica&#231;&#245;es desktop no &lt;a href="http://www.apple.com/macosx/"&gt;Mac OS X&lt;/a&gt;, sem sacrificar o desempenho, usando todos os benef&#237;cios do &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt;. Ainda est&#225; em desenvolvimento, mas o que est&#225; pronto j&#225; faz muito e o projeto como um todo &#233; extremamente promissor.&lt;/p&gt;

&lt;p&gt;Nestes &#250;ltimos dias implementei uma pequena funcionalidade usando &lt;a href="http://www.macruby.org"&gt;MacRuby&lt;/a&gt; e &lt;a href="http://developer.apple.com/cocoa/"&gt;Cocoa&lt;/a&gt;. &#201; algo &#250;til para nosso dia a dia, embora bem b&#225;sico, com o objetivo de configurar novos dom&#237;nios DNS do &lt;a href="http://slicehost.com"&gt;Slicehost&lt;/a&gt;, que &#233; onde hospedamos nossos sites. Irei disponibilizar o c&#243;digo no &lt;a href="http://github.com/viniciusteles"&gt;GitHub&lt;/a&gt; em breve.&lt;/p&gt;

&lt;p&gt;Achei muito f&#225;cil fazer a implementa&#231;&#227;o usando &lt;a href="http://developer.apple.com/cocoa/"&gt;Cocoa&lt;/a&gt; e &lt;a href="http://www.macruby.org"&gt;MacRuby&lt;/a&gt;, de modo que pude comprovar que o prop&#243;sito do projeto &lt;a href="http://www.macruby.org"&gt;MacRuby&lt;/a&gt; est&#225; sendo cumprido, ao menos naquilo que usei at&#233; o momento. Estou muito empolgado com tudo o que &#233; poss&#237;vel fazer usando &lt;a href="http://www.macruby.org"&gt;MacRuby&lt;/a&gt;, 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.&lt;/p&gt;

&lt;p&gt;Vale dizer que eu j&#225; tinha algum conhecimento de &lt;a href="http://developer.apple.com/cocoa/"&gt;Cocoa&lt;/a&gt; e &lt;a href="http://en.wikipedia.org/wiki/Objective-C"&gt;Objective-C&lt;/a&gt; antes de fazer esse aplicativo. Minha principal refer&#234;ncia tem sido o livro &lt;a href="http://www.amazon.com/Cocoa-Programming-Mac-OS-3rd/dp/0321503619/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1260448305&amp;amp;sr=8-1"&gt;Cocoa Programming for Mac OS X&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Gostaria de agradecer ao &lt;a href="http://merbist.com/about/"&gt;Matt Aimonetti&lt;/a&gt;, que gentilmente me falou sobre o &lt;a href="http://www.macruby.org"&gt;MacRuby&lt;/a&gt;, no &lt;a href="http://horaextra.org"&gt;Hora Extra&lt;/a&gt;, quando esteve aqui no Rio recentemente. O que, al&#233;m de tudo, demonstra a import&#226;ncia de participar sempre do &lt;a href="http://horaextra.org"&gt;Hora Extra&lt;/a&gt;. :-)&lt;/p&gt;

&lt;p&gt;E se voc&#234; ainda n&#227;o tiver se empolgado pelo &lt;a href="http://www.macruby.org"&gt;MacRuby&lt;/a&gt;, a&#237; v&#227;o algumas informa&#231;&#245;es adicionais. O projeto &#233; patrocinado pela pr&#243;pria &lt;a href="http://apple.com"&gt;Apple&lt;/a&gt; que tem grande interesse nele. De fato, o criador do projeto &lt;a href="http://www.macruby.org"&gt;MacRuby&lt;/a&gt;, o belga &lt;a href="http://chopine.be"&gt;Laurent Sansonetti&lt;/a&gt; trabalha na &lt;a href="http://apple.com"&gt;Apple&lt;/a&gt; e atualmente &#233; pago pela empresa para trabalhar basicamente no &lt;a href="http://www.macruby.org"&gt;MacRuby&lt;/a&gt;. Por que? &lt;/p&gt;

&lt;p&gt;Porque em um futuro pr&#243;ximo, poderemos desenvolver aplicativos para o &lt;a href="http://www.apple.com/iphone/"&gt;iPhone&lt;/a&gt; usando &lt;a href="http://www.macruby.org"&gt;MacRuby&lt;/a&gt;! E isso abre espa&#231;o para que uma enorme leva de programadores &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; comecem a produzir aplicativos para o &lt;a href="http://www.apple.com/iphone/"&gt;iPhone&lt;/a&gt;. Portanto, se voc&#234; ainda n&#227;o programa em &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt;, talvez esteja a&#237; o empurr&#227;ozinho que faltava. ;-)&lt;/p&gt;</description>
      <pubDate>Thu, 10 Dec 2009 02:44:32 -0200</pubDate>
      <guid isPermaLink="false">urn:uuid:d711dda7-d7d4-466d-bef1-268255679353</guid>
      <author>Vinicius Manh&#227;es Teles</author>
      <link>http://blog.improveit.com.br/articles/2009/12/10/macruby</link>
      <category>macruby</category>
      <category>ruby</category>
      <category>cocoa</category>
      <category>objectivec</category>
      <category>desktop</category>
    </item>
  </channel>
</rss>
