<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Escalare - A louca jornada de um programador &#187; boo</title>
	<atom:link href="http://gbenatti.net/blog/tag/boo/feed/" rel="self" type="application/rss+xml" />
	<link>http://gbenatti.net/blog</link>
	<description>Um blog com a jornada deste que lhes fala no mundo da programação de dispositivos móveis, jogos e linguagens de programação.</description>
	<lastBuildDate>Mon, 19 Apr 2010 15:00:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Agora que o ano começou&#8230;</title>
		<link>http://gbenatti.net/blog/2010/02/agora-o-ano-comecou/</link>
		<comments>http://gbenatti.net/blog/2010/02/agora-o-ano-comecou/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 16:27:59 +0000</pubDate>
		<dc:creator>gbenatti</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[boo]]></category>
		<category><![CDATA[Boojay]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Monolipse]]></category>

		<guid isPermaLink="false">http://gbenatti.net/blog/?p=85</guid>
		<description><![CDATA[Passado o carnaval, vamos as novidades.
Comecei a trabalhar nas horas vagas em um projeto open source.
O Boojay, um emissor de bytecode java para a linguagem Boo. 
Minha ideia primaria é poder usar Boo para o desenvolvimento de software para Android, e no embalo retribuir a comunidde Boo trabalhando no boojay e no monolipse.
]]></description>
			<content:encoded><![CDATA[<p>Passado o carnaval, vamos as novidades.</p>
<p>Comecei a trabalhar nas horas vagas em um projeto open source.</p>
<p>O <a href="http://code.google.com/p/boojay/">Boojay</a>, um emissor de bytecode java para a linguagem <a href="http://boo.codehaus.com">Boo</a>. </p>
<p>Minha ideia primaria é poder usar Boo para o desenvolvimento de software para Android, e no embalo retribuir a comunidde Boo trabalhando no boojay e no monolipse.</p>
]]></content:encoded>
			<wfw:commentRss>http://gbenatti.net/blog/2010/02/agora-o-ano-comecou/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boo Friday &#8211; Parte II</title>
		<link>http://gbenatti.net/blog/2009/11/boo-friday-parte-ii/</link>
		<comments>http://gbenatti.net/blog/2009/11/boo-friday-parte-ii/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 19:18:48 +0000</pubDate>
		<dc:creator>gbenatti</dc:creator>
				<category><![CDATA[Sem categoria]]></category>
		<category><![CDATA[boo]]></category>
		<category><![CDATA[BooFriday]]></category>

		<guid isPermaLink="false">http://gbenatti.net/blog/?p=62</guid>
		<description><![CDATA[De volta a nossa série sobre Boo. Hoje eu vou falar sobre o primeiro item do Boo Manifesto. Que diz que Boo é uma linguagem que foi concebida para ter uma sintaxe limpa e de fácil digitação. 
Quais caracteristicas Boo tem que estão ali pra atender esse objetivo ?
Parecido com Python.
Python é uma linguagem que [...]]]></description>
			<content:encoded><![CDATA[<p>De volta a nossa série sobre Boo. Hoje eu vou falar sobre o primeiro item do Boo Manifesto. Que diz que Boo é uma linguagem que foi concebida para ter uma sintaxe limpa e de fácil digitação. </p>
<p>Quais caracteristicas Boo tem que estão ali pra atender esse objetivo ?</p>
<p><strong>Parecido com Python.</strong></p>
<p>Python é uma linguagem que é conhecida pela sua elegância e sua capacidade de expressar uma grande quantidade de informação de uma forma sucinta, copiando o básico da sintaxe de Python, Boo já começa com o pé direito nesse quesito.</p>
<p><strong>Açúcar sintático para patterns comuns de programação.</strong></p>
<p>Boo suporta uma gama de construções de forma simplificada, listas, hashtables, arrays. Alem dessas estruturas, formas simples de criação de objetos, uso de expressões regulares, formatação de strings e vários outros detalhes fazem de Boo uma linguagem que necessita de pouca digitação.</p>
<p>Alguns exemplos:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1"># literais simples</span></div>
</li>
<li class="li1">
<div class="de1">myArray = <span class="br0">&#40;</span><span class="nu0">1</span>,<span class="nu0">2</span>,<span class="nu0">3</span>,<span class="nu0">4</span>,<span class="nu0">5</span>,<span class="nu0">6</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">myList = <span class="br0">&#91;</span><span class="nu0">1</span>,<span class="nu0">2</span>,<span class="nu0">3</span>,<span class="nu0">4</span>,<span class="nu0">5</span>,<span class="nu0">6</span><span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">myHash = <span class="br0">&#123;</span><span class="nu0">1</span>: <span class="st0">&quot;um&quot;</span>, <span class="nu0">2</span>: <span class="st0">&quot;dois&quot;</span>, <span class="nu0">3</span>: <span class="st0">&quot;tres&quot;</span><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="co1"># formatação de strings</span></div>
</li>
<li class="li1">
<div class="de1">language = <span class="st0">&quot;Boo&quot;</span></div>
</li>
<li class="li1">
<div class="de1">grade = <span class="st0">&quot;Awesome&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">print</span> <span class="st0">&quot;${language} is ${grade}&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># uso de regex</span></div>
</li>
<li class="li2">
<div class="de2"><span class="kw1">print</span><span class="br0">&#40;</span><span class="st0">&quot;Cool&quot;</span><span class="br0">&#41;</span> <span class="kw1">if</span> language =~ /^Boo/</div>
</li>
</ol>
</div>
<p><strong>Declaração automática de variáveis.</strong></p>
<p>Em Boo, um assignement cria uma nova variável local naquele escopo.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">newVar = <span class="nu0">1</span> <span class="co1"># cria uma nova variável newVar</span></div>
</li>
</ol>
</div>
<p><strong>Inferencia automatica de tipos.</strong></p>
<p>Uma coisa verdadeira no mundo da computação, é que muitas vezes nós programadores somos preguiçosos, só as vezes é claro. Exemplo, da do um método como o a seguir:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">def</span> two<span class="br0">&#40;</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">return</span> <span class="nu0">2</span></div>
</li>
<li class="li1">
<div class="de1">dois = two<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>Não está na cara que o método two, retorna um tipo inteiro ? e que dois contem um inteiro também ? Então porque devemos escrever códigos assim:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">def</span> two<span class="br0">&#40;</span><span class="br0">&#41;</span> as <span class="kw2">int</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">return</span> <span class="nu0">2</span></div>
</li>
<li class="li1">
<div class="de1">dois as <span class="kw2">int</span> = two<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>Na verdade em Boo não é necessário, a primeira versão funciona perfeitamente, gerando código equivalente a segunda versão, tendo assim todas as vantagens de código estaticamente tipado.</p>
<p>Fica a cargo do programador decidir qual código escrever. Eu como bom programador sei qual versão prefiro <img src='http://gbenatti.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p><strong>Classes não são necessárias.</strong></p>
<p>Para algumas utilizações como em scripts, muitas vezes a declaração de uma classe só pra deixar o compilador feliz não faz muito sentido.<br />
Vocês já viram maior cambiarra do que o famoso <strong>&#8220;public static void main&#8221;</strong> ? Poxa, eu só queria escrever um hello na tela e tenho que declarar uma classe ? com um método public static ?? que recebe uma lista de parâmetros que eu não estou interessado ???</p>
<p>Ainda bem que em Boo, meu HelloWorld pode ser simplesmente</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">print</span> <span class="st0">&quot;Hello World&quot;</span></div>
</li>
</ol>
</div>
<p>Esse post já esta meio grande, no proximo falaremos de expressividade. Até lá espero aprender o que isso quer dizer.</p>
<p>Cheers.</p>
]]></content:encoded>
			<wfw:commentRss>http://gbenatti.net/blog/2009/11/boo-friday-parte-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
