<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Blog do Luca Bastos</title>
	<atom:link href="http://lucabastos.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://lucabastos.wordpress.com</link>
	<description>Anotados esparsos</description>
	<lastBuildDate>Sun, 10 Apr 2011 20:37:41 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='lucabastos.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Blog do Luca Bastos</title>
		<link>http://lucabastos.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://lucabastos.wordpress.com/osd.xml" title="Blog do Luca Bastos" />
	<atom:link rel='hub' href='http://lucabastos.wordpress.com/?pushpress=hub'/>
		<item>
		<title>25 links recolhidos dentre meus favoritos</title>
		<link>http://lucabastos.wordpress.com/2007/09/13/25-links-recolhidos-dentre-meus-favoritos/</link>
		<comments>http://lucabastos.wordpress.com/2007/09/13/25-links-recolhidos-dentre-meus-favoritos/#comments</comments>
		<pubDate>Thu, 13 Sep 2007 01:15:00 +0000</pubDate>
		<dc:creator>Luca Bastos</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://lucabastos.wordpress.com/2007/09/13/25-links-recolhidos-dentre-meus-favoritos</guid>
		<description><![CDATA[Para não pensarem que abandonei o blog só porque ando ocupado tratando de um antigo legado em Fortran e envolvido com sistemas não lineares, engenharia, matemática, computação gráfica e outras xaropadas, resolvi colocar aqui uma lista rápida de 25 links. Não inclui todos os melhores que conheço porque evitei colocar blogs que são as minhas [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=38&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://bp0.blogger.com/_6-xLHhv2Rak/RuiR24obLHI/AAAAAAAAACk/i4vz43OwmgA/s1600-h/cabo.GIF"><img src="http://bp0.blogger.com/_6-xLHhv2Rak/RuiR24obLHI/AAAAAAAAACk/i4vz43OwmgA/s200/cabo.GIF" alt="" border="0" /></a><br /><span class="postbody" style="font-family:arial;">Para não pensarem que abandonei o blog só porque ando ocupado tratando de um antigo legado em Fortran e envolvido com sistemas não lineares, engenharia, matemática, computação gráfica e outras xaropadas, resolvi colocar aqui uma lista rápida de 25 links. Não inclui todos os melhores que conheço porque evitei colocar blogs que são as minhas melhores fontes. O poucos blogs que aparecem são o do Almaer, que costuma publicar bons links, e o da Caelum, que tem vários ótimos autores.</p>
<p><a class="snap_shots" href="http://www.almaer.com/blog/" target="_blank" rel="nofollow">http://www.almaer.com/blog/</a></p>
<p><a class="snap_shots" href="http://www.apl.jhu.edu/%7Ehall/java/" target="_blank" rel="nofollow">http://www.apl.jhu.edu/~hall/java/</a></p>
<p><a class="snap_shots" href="http://www.artima.com/index.jsp" target="_blank" rel="nofollow">http://www.artima.com/index.jsp</a></p>
<p><a class="snap_shots" href="http://blog.caelum.com.br/" target="_blank" rel="nofollow">http://blog.caelum.com.br/</a></p>
<p><a class="snap_shots" href="http://www.cafeaulait.org/" target="_blank" rel="nofollow">http://www.cafeaulait.org/</a></p>
<p><a class="snap_shots" href="http://www.ddj.com/" target="_blank" rel="nofollow">http://www.ddj.com/</a></p>
<p><a class="snap_shots" href="http://dev2dev.bea.com/" target="_blank" rel="nofollow">http://dev2dev.bea.com/</a></p>
<p><a class="snap_shots" href="http://www.developer.com/" target="_blank" rel="nofollow">http://www.developer.com/</a></p>
<p><a class="snap_shots" href="http://www.ibm.com/developerworks/" target="_blank" rel="nofollow">http://www.ibm.com/developerworks/</a></p>
<p><a class="snap_shots" href="http://www.infoq.com/" target="_blank" rel="nofollow">http://www.infoq.com/</a></p>
<p><a class="snap_shots" href="http://www.java-channel.org/" target="_blank" rel="nofollow">http://www.java-channel.org/</a></p>
<p><a class="snap_shots" href="http://www.javalobby.org/" target="_blank" rel="nofollow">http://www.javalobby.org/</a></p>
<p><a class="snap_shots" href="http://java.net/" target="_blank" rel="nofollow">http://java.net/</a></p>
<p><a class="snap_shots" href="http://www.java.net/pub/ct/javaonecommunitycorner" target="_blank" rel="nofollow">http://www.java.net/pub/ct/javaonecommunitycorner</a></p>
<p><a class="snap_shots" href="http://www.javaperformancetuning.com/" target="_blank" rel="nofollow">http://www.javaperformancetuning.com/</a></p>
<p><a class="snap_shots" href="http://javaposse.com/" target="_blank" rel="nofollow">http://javaposse.com/</a></p>
<p><a class="snap_shots" href="http://www.javaranch.com/" target="_blank" rel="nofollow">http://www.javaranch.com/</a></p>
<p><a class="snap_shots" href="http://java.sys-con.com/" target="_blank" rel="nofollow">http://java.sys-con.com/</a></p>
<p><a class="snap_shots" href="http://www.javaworld.com/" target="_blank" rel="nofollow">http://www.javaworld.com/</a></p>
<p><a class="snap_shots" href="http://www.jot.fm/issues/issue_2007_09/" target="_blank" rel="nofollow">http://www.jot.fm/issues/issue_2007_09/</a></p>
<p><a class="snap_shots" href="http://www.nist.gov/dads/" target="_blank" rel="nofollow">http://www.nist.gov/dads/</a></p>
<p><a class="snap_shots" href="http://www.onjava.com/" target="_blank" rel="nofollow">http://www.onjava.com/</a></p>
<p><a class="snap_shots" href="http://www.parleys.com/display/PARLEYS/Home" target="_blank" rel="nofollow">http://www.parleys.com/display/PARLEYS/Home</a></p>
<p><a class="snap_shots" href="http://www.softbear.com/people/larry/javalm.htm" target="_blank" rel="nofollow">http://www.softbear.com/people/larry/javalm.htm</a></p>
<p><a class="snap_shots" href="http://www.theserverside.com/" target="_blank" rel="nofollow">http://www.theserverside.com/</a></p>
<p>Quase tudo em inglês porque quem não consegue ler inglês técnico com fluência é melhor abandonar a área de TI. </span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lucabastos.wordpress.com/38/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lucabastos.wordpress.com/38/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucabastos.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucabastos.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucabastos.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucabastos.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lucabastos.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lucabastos.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lucabastos.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lucabastos.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucabastos.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucabastos.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucabastos.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucabastos.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucabastos.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucabastos.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=38&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lucabastos.wordpress.com/2007/09/13/25-links-recolhidos-dentre-meus-favoritos/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bec8c46f4ea4f86d114e5fee954224f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Luca Bastos</media:title>
		</media:content>

		<media:content url="http://bp0.blogger.com/_6-xLHhv2Rak/RuiR24obLHI/AAAAAAAAACk/i4vz43OwmgA/s200/cabo.GIF" medium="image" />
	</item>
		<item>
		<title>O Eclipse do jeito que a gente precisa</title>
		<link>http://lucabastos.wordpress.com/2007/06/30/o-eclipse-do-jeito-que-a-gente-precisa/</link>
		<comments>http://lucabastos.wordpress.com/2007/06/30/o-eclipse-do-jeito-que-a-gente-precisa/#comments</comments>
		<pubDate>Sat, 30 Jun 2007 02:20:00 +0000</pubDate>
		<dc:creator>Luca Bastos</dc:creator>
				<category><![CDATA[Eclipse]]></category>

		<guid isPermaLink="false">http://lucabastos.wordpress.com/2007/06/30/o-eclipse-do-jeito-que-a-gente-precisa</guid>
		<description><![CDATA[Antigamente eu achava que o bom do Eclipse era ser do jeito que a gente precisava. Com uma arquitetura de plug-ins muito bem bolada, a gente baixava o núcleo central e ia adicionando os plug-ins. Mas infelizmente a vida mansa durou pouco. Por ser relativamente fácil escrever um plug-in, surgiram um monte deles que a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=37&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-size:100%;"><a style="font-family:arial;" href="http://bp3.blogger.com/_6-xLHhv2Rak/RoW-qN7gYXI/AAAAAAAAACc/3GFo7le_12k/s1600-h/Eclipse.JPG"><img src="http://bp3.blogger.com/_6-xLHhv2Rak/RoW-qN7gYXI/AAAAAAAAACc/3GFo7le_12k/s200/Eclipse.JPG" alt="" border="0" /></a></p>
<p></span><span style="font-family:arial;font-size:100%;">Antigamente eu achava que o bom do Eclipse era ser do jeito que a gente precisava. Com uma arquitetura de plug-ins muito bem bolada, a gente baixava o núcleo central e ia adicionando os plug-ins. Mas infelizmente a vida mansa durou pouco.</p>
<p>Por ser relativamente fácil escrever um plug-in, surgiram um monte deles que a gente baixava e ia instalando por cima dos outros. Só que, às vezes, isto dava conflito. E acontecia mesmo depois que o Eclipse passou a se basear em OSGI, que parece ser uma das melhores promessas de coisas deste gênero disponíveis por aí.</p>
<p>Então surgiu algum &#8220;gênio&#8221; e pensou: vamos empacotar tudo de uma vez só. Foi então criado o monstro Calisto, enorme engolidor de recursos do meu pobre PC. Diga-se de passagem, que o tal gênio deve ter mudado de emprego porque a mesma idéia &#8220;genial&#8221; de IDE gulosa, foi copiada pela turma do Netbeans, que na minha máquina exige paciência de Jó durante a carga.</p>
<p>Hoje foi lançado o <a href="http://www.eclipse.org/europa/">Europa</a>. Percebi que retrocederam alguns passos e agora criaram 3 sabores diferentes de pacotes. A opção customizada é semelhante a primeira com a recomendação de usar o update. No fim escreverei sobre ela.</p>
<p></span>
<div style="font-family:arial;" align="center"><span style="font-size:100%;"><img src="http://www.eclipse.org/europa/images/developerBar4.jpg" usemap="#developerBarMap" /><br /></span>
<div style="text-align:left;"><span style="font-size:100%;"></p>
<p></span></div>
</div>
<p><span style="font-family:arial;font-size:100%;">Para verificar se ficou bom mesmo, parti para instalar as versões de desenvolvedor que na verdade se divide em duas outras:<br /></span><span style="font-size:100%;"><a style="font-family:arial;" href="http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/20070628/eclipse-java-europa-win32.zip">Eclipse IDE for Java Developers</a></span><span style="font-family:arial;font-size:100%;"> e </span><span style="font-size:100%;"><a style="font-family:arial;" href="http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/20070628/eclipse-jee-europa-win32.zip">Eclipse IDE for Java EE Developers</a></p>
<p></span><span style="font-family:arial;font-size:100%;">A primeira delas é mais enxuta e o download é de somente (?) 80 Mb. Vem tudo que eu preciso quando quero examinar um código de um  projeto Open Source que é coisa que faço de vez em quando.</p>
<p>Para verificar a possibilidade de adições, resolvi instalar o Test and Performance Tools (</span><span style="font-size:100%;"><a style="font-family:arial;" href="http://www.eclipse.org/tptp">TPTP</a></span><span style="font-family:arial;font-size:100%;">). Podia seguir o caminh<span style="font-family:arial;">o mais fácil que é baixa<span style="font-family:arial;">r </span></span></span><span style="font-family:arial;font-size:100%;"><a style="font-family:arial;" href="http://www.eclipse.org/downloads/download.php?file=/tptp/4.4.0/TPTP-4.4.0/tptp.runtime.allInOne.win32.win32.x86-TPTP-4.4.0.zip">TPTP all-in-one package</a><span style="font-family:arial;">.  Só que este bicho tem quase 200 Mb e vem com um monte de coisas com mais sentido para o Eclipse para JEE.</span></p>
<p><span style="font-family:arial;">Assim baixei o tal</span> </span><span style="font-family:arial;font-size:100%;"><span style="font-family:arial;">Eclipse Modeling Framewor</span>k (EMF and XSD) </span><span style="font-size:100%;"><a style="font-family:arial;" href="http://www.eclipse.org/downloads/download.php?file=/modeling/emf/emf/downloads/drops/2.3.0/R200706262000/emf-sdo-xsd-SDK-2.3.0.zip">2.3.0,</a></span><span style="font-family:arial;font-size:100%;"> que é pré-requisito para o TPTP, e depois baixei o All TPTP plugins </span><span style="font-size:100%;"><a style="font-family:arial;" href="http://www.eclipse.org/downloads/download.php?file=/tptp/4.4.0/TPTP-4.4.0/tptp.runtime-TPTP-4.4.0.zip">Runtime</a></span><span style="font-family:arial;font-size:100%;">.</p>
<p>Aí foi só instalar primeiro o EMF, depois o TPTP e tudo ficou como eu queria. Melhor dizendo, quase do jeito que eu queria porque o tal zip que eu baixei, veio com GEF e integração do TPTP com o BIRT e com o WTP. Depois de instalado este Eclipse 3.3 ocupa 217 Mb no meu HD.</p>
<p>Não gostei da granulometria dos pacotes do Eclipse. Ainda é como se a gente fosse comprar um carro para trabalhar e nos empurrassem um tração 4&#215;4, mais dispendioso e com &#8220;vantagens&#8221; que não vamos usar no asfalto.</p>
<p>Partindo do pressuposto que nós somos desenvolvedores, isto é, gente que entende um mínimo de informática, então deveria ser possível montar nosso Eclipse de forma fácil.</p>
<p>Então fui ver como funciona a tal versão customizada. </span><span style="font-family:arial;font-size:100%;">Ela acaba sendo customizada mesmo. Fiz assim: download do eclipse básico que nem vou entrar em detalhes. Aí entrei no update manager para instalar o TPTP e apareceu toda a plataforma do Europa para que escolher o que quero. Selecionei o TPTP e PUFT!<br /></span><span style="font-size:100%;"><br /></span><span style="font-family:arial;font-size:100%;">Pipocaram várias dependências. Como me acho do ramo, fui catando os nomes compridões e buscando um a um onde se localizavam na árvore de update. Ufa, deu trabalho mas selecionei todas as dependências e alguns muitos minutos depois, fiquei com um eclipse só com o que eu queria. </span><span style="font-size:100%;"><br /></span><span style="font-family:arial;font-size:100%;"><br />Não consegui ainda entender porque a versão que a gente baixa para depois customizar é tão maior do que qualquer uma das versões para desenvolvedores. Depois da instalação via update este eclipse ocupa 276 Mb do meu HD (contra 217 Mb do modo anterior).</span><span style="font-size:100%;"></p>
<p></span><span style="font-family:arial;font-size:100%;">Depois disto tudo, fiquei pensando e ainda me pergunto. Não fosse eu tão novidadeiro, seria melhor ao invés de gastar tanto tempo com as idiossincrasias do update do eclipse, usar o </span><span style="font-size:100%;"><br /></span><br />
<h2 style="font-family:arial;"><span style="font-size:100%;"><a href="http://www.easyeclipse.org/site/distributions/index.html"><img src="http://www.easyeclipse.org/site/images/home/easyeclipse-1.2.png" alt="EasyEclipse 1.2" height="44" width="266" /></a></span></h2>
<p><span style="font-size:100%;"><br /><img src="/DOCUME%7E1/Luca/LOCALS%7E1/Temp/moz-screenshot.jpg" alt="" /><img src="/DOCUME%7E1/Luca/LOCALS%7E1/Temp/moz-screenshot-1.jpg" alt="" /><img src="/DOCUME%7E1/Luca/LOCALS%7E1/Temp/moz-screenshot-2.jpg" alt="" /></span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lucabastos.wordpress.com/37/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lucabastos.wordpress.com/37/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucabastos.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucabastos.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucabastos.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucabastos.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lucabastos.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lucabastos.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lucabastos.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lucabastos.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucabastos.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucabastos.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucabastos.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucabastos.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucabastos.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucabastos.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=37&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lucabastos.wordpress.com/2007/06/30/o-eclipse-do-jeito-que-a-gente-precisa/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bec8c46f4ea4f86d114e5fee954224f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Luca Bastos</media:title>
		</media:content>

		<media:content url="http://bp3.blogger.com/_6-xLHhv2Rak/RoW-qN7gYXI/AAAAAAAAACc/3GFo7le_12k/s200/Eclipse.JPG" medium="image" />

		<media:content url="http://www.eclipse.org/europa/images/developerBar4.jpg" medium="image" />

		<media:content url="http://www.easyeclipse.org/site/images/home/easyeclipse-1.2.png" medium="image">
			<media:title type="html">EasyEclipse 1.2</media:title>
		</media:content>
	</item>
		<item>
		<title>Você sabia que o tiger era o gato da filha do Bruce Scott?</title>
		<link>http://lucabastos.wordpress.com/2007/06/19/voce-sabia-que-o-tiger-era-o-gato-da-filha-do-bruce-scott/</link>
		<comments>http://lucabastos.wordpress.com/2007/06/19/voce-sabia-que-o-tiger-era-o-gato-da-filha-do-bruce-scott/#comments</comments>
		<pubDate>Tue, 19 Jun 2007 21:29:00 +0000</pubDate>
		<dc:creator>Luca Bastos</dc:creator>
				<category><![CDATA[História]]></category>

		<guid isPermaLink="false">http://lucabastos.wordpress.com/2007/06/19/voce-sabia-que-o-tiger-era-o-gato-da-filha-do-bruce-scott</guid>
		<description><![CDATA[Pois, é. Precisou a Oracle completar 30 anos no último 16 de junho para eu aprender isto. O Bruce Scott escreveu os códigos das primeiras versões do Oracle junto com o Bob Miner, que morreu de câncer em 1994. Meu primeiro contato com o banco de dados Oracle foi com a versão 5.3 preparando uma [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=36&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://bp2.blogger.com/_6-xLHhv2Rak/RnhZky29zfI/AAAAAAAAACM/8dHTLlIFiVg/s1600-h/oracle30_1.jpg"><img src="http://bp2.blogger.com/_6-xLHhv2Rak/RnhZky29zfI/AAAAAAAAACM/8dHTLlIFiVg/s320/oracle30_1.jpg" alt="" border="0" /></a>
<p class="MsoNormal"><span style="font-family:Arial;">Pois, é. Precisou a Oracle completar 30 anos no último 16 de junho para eu aprender <a href="http://searchoracle.techtarget.com/originalContent/0,289142,sid41_gci1261162,00.html">isto</a>. O Bruce Scott escreveu os códigos das primeiras versões do Oracle junto com o Bob Miner, que morreu de câncer em 1994.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Meu primeiro contato com o banco de dados Oracle foi com a versão 5.3 preparando uma cotação para um projeto que infelizmente não ganhei. Mas como muitos de nós que trabalhamos com TI, já ganhei um bom dinheiro com projetos usando o Oracle. Por isto fui procurar saber um pouco da história dele e do Larry Ellison.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Disse o Larry Ellison em uma entrevista a Nicole Ricci em 1998:</span></p>
<p class="MsoNormal" style="margin-left:35.4pt;"><span lang="EN-US" style="font-family:Arial;">“Realmente, quando fundei a Oracle, o objetivo nunca foi chegar a ser uma grande empresa. No máximo esperava ter umas 50 pessoas na empresa e viver bem. Depois de 5 anos, ficou claro que os horizontes eram ilimitados. Os únicos limites erámos nós.”<br /><!--[if !supportLineBreakNewLine]--><br /><!--[endif]--></span></p>
<p class="MsoNormal"><span style="font-family:Arial;">O próprio Bruce Scott contou em entrevista ao<strong><span style="font-weight:normal;font-family:Arial;"> Rich Niemiec em 2001:</span></strong></span></p>
<p class="MsoNormal" style="margin-left:35.4pt;"><span style="font-family:Arial;">“Precisávamos ligar nossos terminais ao computador na sala ao lado e ainda não tínhamos idéia de como passar os fios. Larry pegou uma marreta, abriu um buraco na parede e disse: agora já podem passar os fios. Era o modo de pensar dele: fazer a coisa acontecer de qualquer jeito”.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> <br />Vamos ver um pouco da história dos bancos de dados relacionais antes da Oracle</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">1970 –Dr. Edgar Codd publica <a href="http://www.acm.org/classics/nov95/toc.html">A Relational Model of Data for Large Shared Data Banks</a>, sua teoria de modelagem relacional de dados.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">1972 –</span> <span style="font-family:Arial;">Michael Stonebraker começa a desenvolver o que viria a ser o INGRES. Junto com Eugene “Gene” Wong e outros, incluindo estudantes, usam QUEL ao invés de SQL no Ingres. (Em 1985 o Stonebraker ainda em Berkeley, criou o Post-Ingres, isto é, o Postgres que virou PostgreSQL a partir de 1996).</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Arial;">1976 – Stonebraker, Wong, Kreps e Held publicam na ACM: <a href="http://portal.acm.org/citation.cfm?doid=320473.320476">The Design and Implemenation of INGRES</a>. </span><span style="font-family:Arial;">Percebe-se alguma hostilidade entre Berkeley e o grupo IBM.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">1974 – Os estudantes de Berkeley, Jerry Held e Karel Youseffi criam o NonStopSQL (Tandem) baseado no Ingres. Robert Epstein, programador chefe em Berkeley, junto com os estudantes Paula Hawthorne, Mike Ubelland e Eric Allman, formam a Sybase.</span></p>
<p><span style="font-family:Arial;">Alguns fatos dos primeiros 10 anos da Oracle</span>
<p class="MsoNormal"><span style="font-family:Arial;">1977 – Com 2000 dólares, Larry Ellison, Bob Miner, Ed Oates e Bruce Scott criam a Software Development Laboratories (SDL). O Bob era o chefe do Larry na Ampex onde trabalharam para a CIA em um <span> </span>projeto chamado <span> </span>&#8220;Oracle&#8221;. Bob e Bruce começam a desenvolver o database.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">1978 – A CIA é o primeiro cliente, mesmo antes do produto ser lançado comercialmente. Depois a SDL muda o nome para Relational Software Inc. (RSI).</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">1979 – RSI faz o primeiro lançamento comercial da versão 2. A V1 nunca saiu por medo de que as pessoas não comprassem software na primeira versão. A base de dados foi escrita em Assembler. A primeira venda foi para Wright-Patterson Air Force Base. Foi o primeiro RDBMS do mercado.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">1981 – Lançada a primeira ferramenta, Interactive Application Facility (IAF), predecessora do futuro Oracle SQL*Forms. </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">1982 – RSI muda de nome para Oracle Systems Corporation (OSC) e depois simplificado para Oracle Corporation.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">1983 – Lançada a Versão 3, escrita em C para ser portável. O genial Bob Miner, enquanto ainda suportava a versão V2 escrita em Assembler, escreve metade do código e o Bruce Scott a outra metade. Trata-se do primeiro RDBMS 32-bit.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">1984 – Lançada a Versão 4 já com várias ferramentas e primeiro database com consistência de leitura. O Oracle foi portado também para o PC.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">1985 – Lançadas as Versões 5 e 5.1 e o primeiro database Parallel Server para o VMS/VAX.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">1986 – Oracle faz uma oferta pública de ações em 12 de março, um dia antes da Microsoft e 8 dias depois da <span> </span>Sun. As ações abriram a US $15 e fecharam a US $20.75. É lançado o primeiro database client/server.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">1987 – Oracle é a maior empresa de DBMS. Aparece o primeiro database SMP (symmetrical multi-processing).</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">1987 – Rich Niemiec junto com Brad Brown e Joe Trezzo, trabalhando para a Oracle (TUSC), implementam a primeira aplicação client/server rodando Oracle em um 286 com 16 usuários concorrentes client/server para a NEC Corporation.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"><br />O resto da história vocês podem conferir em:</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"><a href="http://www.nyoug.org/Presentations/2007/200703_Niemiec_Keynote.pdf">http://www.nyoug.org/Presentations/2007/200703_Niemiec_Keynote.pdf</a></span></p>
<p class="MsoNormal"><span style="font-family:Arial;"><a href="http://www.oracle.com/oramag/profit/07-may/p27anniv_timeline.pdf">http://www.oracle.com/oramag/profit/07-may/p27anniv_timeline.pdf</a></span></p>
<p class="MsoNormal"><span style="font-family:Arial;"><br /></span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Parabéns Oracle.</p>
<p>Como velejador só posso dizer: Bons Ventos <a href="http://bmworacleracing.com/en/index.html">Larry Ellison</a>.</span></p>
<p><span style="font-family:arial;"></span><span style="font-family:arial;"></span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lucabastos.wordpress.com/36/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lucabastos.wordpress.com/36/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucabastos.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucabastos.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucabastos.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucabastos.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lucabastos.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lucabastos.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lucabastos.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lucabastos.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucabastos.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucabastos.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucabastos.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucabastos.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucabastos.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucabastos.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=36&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lucabastos.wordpress.com/2007/06/19/voce-sabia-que-o-tiger-era-o-gato-da-filha-do-bruce-scott/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bec8c46f4ea4f86d114e5fee954224f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Luca Bastos</media:title>
		</media:content>

		<media:content url="http://bp2.blogger.com/_6-xLHhv2Rak/RnhZky29zfI/AAAAAAAAACM/8dHTLlIFiVg/s320/oracle30_1.jpg" medium="image" />
	</item>
		<item>
		<title>Todo programador Java ruim que eu conheço&#8230;</title>
		<link>http://lucabastos.wordpress.com/2007/06/15/todo-programador-java-ruim-que-eu-conheco/</link>
		<comments>http://lucabastos.wordpress.com/2007/06/15/todo-programador-java-ruim-que-eu-conheco/#comments</comments>
		<pubDate>Fri, 15 Jun 2007 19:35:00 +0000</pubDate>
		<dc:creator>Luca Bastos</dc:creator>
				<category><![CDATA[Linguagens funcionais]]></category>
		<category><![CDATA[Programação concorrente]]></category>

		<guid isPermaLink="false">http://lucabastos.wordpress.com/2007/06/15/todo-programador-java-ruim-que-eu-conheco</guid>
		<description><![CDATA[Meu amigo Carlos Villela, o famoso fera CV que já ajudou muita gente no GUJ incluindo a mim, criou um tópico no GUJ com o título acima que incendiou a galera. É um dos tópicos mais lidos nos últimos tempos e muita gente respondeu, sendo que alguns mais de uma vez. Fora o esperado flame [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=34&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://bp3.blogger.com/_6-xLHhv2Rak/RnLqbi29zdI/AAAAAAAAAB8/T4AxF_n6rdc/s1600-h/Figura.GIF"><img src="http://bp3.blogger.com/_6-xLHhv2Rak/RnLqbi29zdI/AAAAAAAAAB8/T4AxF_n6rdc/s400/Figura.GIF" alt="" border="0" /></a>
<p class="MsoNormal"><span style="font-family:Arial;">Meu amigo <a href="http://lixo.org/">Carlos Villela</a>, o famoso fera <a href="http://www.guj.com.br/user/profile/883.java">CV</a> que já ajudou muita gente no <a href="http://www.guj.com.br">GUJ</a> incluindo a mim, criou um <a href="http://www.guj.com.br/posts/list/61615.java">tópico no GUJ</a> com o título acima que incendiou a galera. É um dos tópicos mais lidos nos últimos tempos e muita gente respondeu, sendo que alguns mais de uma vez. Fora o esperado <a href="http://en.wikipedia.org/wiki/Flame_war">flame war</a>, que acho que era o que o CV esperava que fosse mais divertido, muitas respostas boas apareceram. Até acredito que algumas poderiam ser coletadas em um manual de bons conselhos e outras em pit stop para o riso. Eu também respondi lá mais de uma vez. E vou responder de novo, só que desta vez por aqui.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><b><span style="font-family:Arial;">Todo programador Java ruim que eu conheço&#8230;</span></b></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal" style="margin-left:35.4pt;"><span style="font-family:Arial;">Deve estar preocupado sabendo que os fabricantes de chips quase não fabricam mais CPUs mono cores e que no futuro precisarão aprender outras linguagens muito mais complexas com facilidades de computação paralela para aproveitar os multi cores.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Como muitos já perceberam, a industria de processadores se deparou com o chamado &#8220;muro de potência&#8221; e não consegue mais crescer a velocidade de processamento seguindo o mesmo ritmo de antes. Antes a <a href="http://en.wikipedia.org/wiki/Moore%27s_law">lei de Moore</a> previa a duplicação de desempenho a cada 18 ou 24 meses de um processador mono core. As projeções atuais, baseadas no que vem acontecendo nos últimos anos, indicam que o ciclo de duplicação deste tipo de processador é de no mínimo 5 anos. </span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Assim não é estranho que aumentar a freqüência do clock não seja mais o principal meio de melhorar a capacidade do processador. Já que não se pode crescer para cima o jeito é ir para os lados. O investimento atual é no paralelismo com o crescimento da capacidade de processamento utilizando vários núcleos. Um processador de 2 núcleos consome muito menos energia do que um de 1 só núcleo com o dobro de velocidade.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">O hardware está mudando e o mundo do software, que se baseou durante anos no processamento seqüencial, terá que mudar. Já tem gente mudando porque a turma acadêmica de processamento científico e de Data Minning, já está relativamente adiantada na pesquisa de uso de métodos paralelos. O primeiro grandão que percebeu a necessidade de mudanças foi o Google. Eles foram buscar no <a href="http://renil.wordpress.com/2007/05/03/mapreduce-functional-programming-lisp/">Lisp</a> o algoritmo <a href="http://en.wikipedia.org/wiki/MapReduce">MapReduce</a> que se transformou em uma das chaves do sucesso do seu sistema. </span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Fiquem atentos, já vi o mundo mudar antes e acredito que ainda vou assistir isto acontecer outras vezes nos próximos anos. As mudanças sempre chegam oferecendo oportunidades de sucesso para gente inovadora. Tenho a certeza que não será diferente desta vez. Não duvidem que em futuro não muito longínquo, os Tomcats, JBoss, WebLogics e mais todos os ESBs da vida, não sejam mais escritos em Java e sim em <a href="http://www.scala-lang.org/">Scala</a>, <a href="http://www.erlang.org/">Erlang</a> ou outra linguagem qualquer com suporte mais fácil ao aproveitamento de mais processadores. Quem sabe o programador seqüencial Java que estamos malhando hoje não seja um novo “<a href="http://en.wikipedia.org/wiki/Marc_Fleury">Marc Fleury</a>” ou “<a href="http://en.wikipedia.org/wiki/Ray_Ozzie">Ray Ozzie</a>” no mundo da computação paralela?</span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lucabastos.wordpress.com/34/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lucabastos.wordpress.com/34/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucabastos.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucabastos.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucabastos.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucabastos.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lucabastos.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lucabastos.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lucabastos.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lucabastos.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucabastos.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucabastos.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucabastos.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucabastos.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucabastos.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucabastos.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=34&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lucabastos.wordpress.com/2007/06/15/todo-programador-java-ruim-que-eu-conheco/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bec8c46f4ea4f86d114e5fee954224f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Luca Bastos</media:title>
		</media:content>

		<media:content url="http://bp3.blogger.com/_6-xLHhv2Rak/RnLqbi29zdI/AAAAAAAAAB8/T4AxF_n6rdc/s400/Figura.GIF" medium="image" />
	</item>
		<item>
		<title>Consumer JRE</title>
		<link>http://lucabastos.wordpress.com/2007/06/06/consumer-jre/</link>
		<comments>http://lucabastos.wordpress.com/2007/06/06/consumer-jre/#comments</comments>
		<pubDate>Wed, 06 Jun 2007 02:49:00 +0000</pubDate>
		<dc:creator>Luca Bastos</dc:creator>
				<category><![CDATA[JavaFX]]></category>

		<guid isPermaLink="false">http://lucabastos.wordpress.com/2007/06/06/consumer-jre/</guid>
		<description><![CDATA[Na reunião do SouJava desta terça feira foi abordado o último JavaOne. Falaram Bruno Souza, Fábio Veloso, Fabiane Nardon e o Maurício Leal. Eles mostraram filmes, contaram histórias, inclusive do quanto os brasileiros são festivamente recebidos por lá e é claro, falaram do JavaFX e do Consumer JRE. Na verdade a reunião foi um grande [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=16&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://bp0.blogger.com/_6-xLHhv2Rak/RmZDcy29zcI/AAAAAAAAAB0/Mim9k7y5xnY/s1600-h/kernelcomparisonsm.png"><img style="cursor:pointer;" src="http://bp0.blogger.com/_6-xLHhv2Rak/RmZDcy29zcI/AAAAAAAAAB0/Mim9k7y5xnY/s320/kernelcomparisonsm.png" alt="" border="0" /></a><br /><a href="http://bp3.blogger.com/_6-xLHhv2Rak/RmZCXi29zbI/AAAAAAAAABs/DAhPBJbyeL8/s1600-h/kernelcomparisonsm.png"><br /></a>
<p class="MsoNormal"><span style="font-family:Arial;">Na reunião do SouJava desta terça feira foi abordado o último <a href="http://developers.sun.com/learning/javaoneonline/">JavaOne</a>. Falaram <a href="http://wiki.java.net/bin/view/People/BrunoSouza">Bruno Souza</a>, <a href="http://wiki.java.net/bin/view/People/FabioVelloso">Fábio Veloso</a>, <a href="http://www.tridedalo.com.br/fabiane/">Fabiane Nardon</a> e o <a href="http://weblogs.java.net/blog/maltron/">Maurício Leal</a>. Eles mostraram filmes, contaram histórias, inclusive do quanto os brasileiros são festivamente recebidos por lá e é claro, falaram do <a href="http://www.google.com/search?q=JavaFX">JavaFX</a> e do <a href="http://www.google.com/search?q=Consumer+JRE">Consumer JRE</a>.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Na verdade a reunião foi um grande bate papo e foi bastante discutida a questão do tamanho do tal Consumer JRE. O Bruno disse que ele ficará em torno de 40% do tamanho atual e que será modularizado. Isto é, se o cara precisa de pouca coisa, só isto será baixado.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Quando cheguei em casa fui conferir algumas coisas.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">1. A partir de uma interessante informação do Fábio, descobri que há um JRE somente para o Windows, de mais ou menos 7.1MB para instalação on line, que talvez já use um pouco deste conceito de não baixar tudo. Quem souber mais se é assim que funciona, por favor me confirme.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal" style="margin-left:35.4pt;"><span style="font-family:Arial;">Download do JRE a partir de <a href="http://java.sun.com/javase/downloads/index.jsp" target="_blank">http://java.sun.com/javase/downloads/index.jsp</a> </span></p>
<p class="MsoNormal" style="margin-left:35.4pt;"><span style="font-family:Arial;">jre-6u1-windows-i586-p.exe<span>           </span>=    13.16 MB<br />jre-6u1-linux-i586-rpm.bin<span>               </span>    =    17.67 MB  <!--[if !supportLineBreakNewLine]-->  <!--[endif]--></span></p>
<p class="MsoNormal" style="margin-left:35.4pt;"><span style="font-family:Arial;"><a href="http://java.com/en/download/help/5000010100.xml#automatic">Download automático</a> a partir de <a href="http://java.com/">http://java.com/</a> para instalação on line</span></p>
<p class="MsoNormal" style="margin-left:35.4pt;"><span style="font-family:Arial;">JRE para o Windows<a name="verify"><span>                      </span></a></span><a name="verify">            =     7.1MB</a><span style="font-family:Arial;"><span class="bodytext"></span></span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p>
<p class="MsoNormal"><span style="font-family:Arial;">2. Microsoft Silverlight</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Muito se fala no <a href="http://silverlight.net/GetStarted/">Silverlight</a> e no tamanho do seu download que é de apenas 1.38MB na versão 1.0 beta mas chega a 4.24 MB na versão 1.1 alpha.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">O pessoal que compara com o tamanho do JRE esquece que o Silverlight necessita também do <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&amp;displaylang=en">Microsoft.NET Framework Version 2.0 Redistributable Package (x86)</a> cuja versão 2.0 tem 22.4 MB de tamanho para download. </span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p>
<p class="MsoNormal"><span style="font-family:Arial;">3. Consumer JRE</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">O <a href="http://java.sun.com/developer/technicalArticles/javase/consumerjre/">Consumer JRE</a> ainda está em desenvolvimento mas o objetivo é diminuir</span><span style="font-family:Arial;"> em 60%</span><span style="font-family:Arial;"> o tamanho do download do JRE para aplicações Swing de porte médio.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">A idéia é modularizar o download do JRE de modo que se possa colocar para funcionar uma aplicação com o mínimo possível do que ela precisa. </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Download em passos:</span></p>
<ol>
<li class="MsoNormal"><span style="font-family:Arial;">Funcionalidades básicas que todas as aplicações      precisam: VM, gc, security, classloader e o mínimo de facilidades de rede      para possibilitar o download do resto;</span></li>
<li class="MsoNormal"><span style="font-family:Arial;">Dependências adicionais exigidas pela aplicação;</span></li>
<li class="MsoNormal"><span style="font-family:Arial;">Classes responsáveis por qualquer exceção Class      not found lançada;</span></li>
<li class="MsoNormal"><span style="font-family:Arial;">Resto do JRE em paralelo até que complete o      release completo no sistema do usuário.</span></li>
</ol>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">A figura lá em cima deste blog, mostra números preliminares em MB, de pacotes da JRE necessários a algumas aplicações para mostrar como se comparam com o JRE completo.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Mas não é só isto. Haverão melhorias também no processo de instalação, os canais gráficos do Swing diretos com o Windows estão sendo reescritos para se prevalecerem das vantagens de rapidez e confiabilidade do <a href="http://msdn2.microsoft.com/en-us/xna/aa937781.aspx">DirectX</a> usando a Direct3D library on Windows e um novo look and feel </span><span style="font-family:Arial;">chamado </span><span style="font-family:Arial;">Nimbus </span><span style="font-family:Arial;">de aparência mais moderna</span><span style="font-family:Arial;"></span><span style="font-family:Arial;">. </span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">A previsão de lançamento do Consumer JRE é para o início de 2008. Mas o próximo update 2 do Java 6, previsto para o fim deste mês de junho, já incluirá a melhoria no processo de instalação.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">A partir do conhecimento do projeto do Consumer JRE, a idéia do <a href="https://openjfx.dev.java.net/">JavaFX</a> fica bem mais viável. Já há plug-ins para o Netbeans 6.0M9 e para o Eclipse 3.2 facilitando a escrita do JavaFX script. Resta agora a comunidade desenvolver ferramentas com capacidades gráficas para construir e renderizar os componentes de modo mais fácil do que o <a href="http://download.java.net/general/openjfx/demos/javafxpad.jnlp">JavaFX Script JavaFXPad Demo</a></span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Galera, vamos botar a mão na massa!</span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lucabastos.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lucabastos.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucabastos.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucabastos.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucabastos.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucabastos.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lucabastos.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lucabastos.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lucabastos.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lucabastos.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucabastos.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucabastos.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucabastos.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucabastos.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucabastos.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucabastos.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=16&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lucabastos.wordpress.com/2007/06/06/consumer-jre/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bec8c46f4ea4f86d114e5fee954224f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Luca Bastos</media:title>
		</media:content>

		<media:content url="http://bp0.blogger.com/_6-xLHhv2Rak/RmZDcy29zcI/AAAAAAAAAB0/Mim9k7y5xnY/s320/kernelcomparisonsm.png" medium="image" />
	</item>
		<item>
		<title>Tratamento de exceções parte 3 &#8211; Discussão sobre a remoção das checked exceptions da linguagem Java</title>
		<link>http://lucabastos.wordpress.com/2007/06/05/tratamento-de-excecoes-parte-3-discussao-sobre-a-remocao-das-checked-exceptions-da-linguagem-java/</link>
		<comments>http://lucabastos.wordpress.com/2007/06/05/tratamento-de-excecoes-parte-3-discussao-sobre-a-remocao-das-checked-exceptions-da-linguagem-java/#comments</comments>
		<pubDate>Tue, 05 Jun 2007 14:12:00 +0000</pubDate>
		<dc:creator>Luca Bastos</dc:creator>
				<category><![CDATA[Exceptions]]></category>

		<guid isPermaLink="false">http://lucabastos.wordpress.com/2007/06/05/tratamento-de-excecoes-parte-3-discussao-sobre-a-remocao-das-checked-exceptions-da-linguagem-java/</guid>
		<description><![CDATA[Continuação de tratamento de exceções:Parte 1 – Um pouco de históriaParte 2 – Mudanças no conceito de uso das exceções Há muita gente que sonha com um fork do Java redundando em um Java mais enxuto, com as APIs limpas de deprecateds e também mais poderoso com a inclusão de algumas facilidades que são difíceis [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=15&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://bp1.blogger.com/_6-xLHhv2Rak/RmVwWS29zaI/AAAAAAAAABk/kF6ElAGj0kE/s1600-h/java_giant.jpg"><img style="float:right;cursor:pointer;margin:0 0 10px 10px;" src="http://bp1.blogger.com/_6-xLHhv2Rak/RmVwWS29zaI/AAAAAAAAABk/kF6ElAGj0kE/s200/java_giant.jpg" alt="" border="0" /></a><br /><span style="font-family:arial;">Continuação de tratamento de exceções:</span><br /><a href="http://lucabastos.blogspot.com/2007/06/tratamento-de-excees-parte-1-um-pouco.html">Parte 1 – Um pouco de história</a><br /><a href="http://lucabastos.blogspot.com/2007/06/tratamento-de-excees-parte-2-mudanas-no.html">Parte 2 – Mudanças no conceito de uso das exceções</a></p>
<p><span style="font-family:Arial;font-size:12px;">Há muita gente que sonha com um fork do Java redundando em um Java mais enxuto, com as APIs limpas de deprecateds e também mais poderoso com a inclusão de algumas facilidades que são difíceis de adicionar ao Java com a atual arquitetura da JVM. Entre as inclusões sonhadas, algumas estão na <a href="http://blogs.sun.com/ahe/entry/java_se_7_wish_list">Java 7 Wish List do Peter Ahé</a>. </span><span style="font-family:Arial;font-size:12px;">Juntando os desejos dele com mais alguns outros, sem pretensão de esgotar o assunto, podemos fazer uma lista de facilidades tais como real closures, improved type inference, continuations, tail recursion optimization e até mesmo o assunto desta trilogia que são modificações no tratamento das exceções.</span><br /><span style="font-family:Arial;font-size:12px;"></span>
<p class="MsoNormal"><span style="font-family:Arial;">Antes que alguém reclame de me ver escrevendo sobre fork do Java, lembro que a quebra de compatibilidade já aconteceu antes. O Swing no Java 2 quebrou as pernas do Java 1.1.6 baseado em AWT e o novo tratamento do foco no Java 1.4 impediu a migração de alguns sistemas feitos com Java 1.3, inclusive um em que eu trabalhava. Então o tal famoso argumento de que o Java sempre é compatível com si mesmo não é muito verdadeiro. Mas vou deixar este assunto para outra rodada de choppe e vou me ater às questões que me propus levantar sobre o tratamento de exceções.</span></p>
<p>    <span style="font-family:Arial;font-size:12px;">No ultimo dia 26 de maio, o <a href="http://gafter.blogspot.com/">Neal Gafter</a> em seu blog, em resposta ao </span><span style="font-family:Arial;font-size:12px;">colega seu no Google</span><span style="font-family:Arial;font-size:12px;"> <a href="http://mattshulman.blogspot.com/">Matt Shulman</a>, </span><span style="font-family:Arial;font-size:12px;">abordou a questão de <a href="http://gafter.blogspot.com/2007/05/removing-language-features.html">remover as checked exceptions da linguagem Java</a>.<br /></span><span style="font-family:Arial;"><br />Ele</span><span style="font-family:Arial;"> termina com uma pergunta:</span>
<p class="MsoNormal" style="margin-left:35.4pt;"><span style="font-family:Arial;">“This isn&#8217;t a question I had thought much about. </span><span style="font-family:Arial;">I believe the language could be simplified by treating all exception types as unchecked without breaking existing programs. This could also result in a simplification of future language extensions and APIs. </span><span style="font-family:Arial;">But would the language and platform be better off without checked exceptions?”</span></p>
<p>  <span style="font-family:Arial;">Isto é claro que ele suscitou muita polêmica. Li os 55 comentários e sem revelar ainda minha posição, vou resumir aqui</span><span style="font-family:Arial;"> alguns</span><span style="font-family:Arial;"> favoráveis às mudanças:</span>
<p class="MsoNormal"><a href="http://jroller.com/page/jadda" name="comment-6454559293419811884"></a><a href="http://jroller.com/page/jadda"><span style="font-family:Arial;"><span>Stefan Schulz</span></span></a><span style="font-family:Arial;"> said&#8230;</span></p>
<p class="MsoNormal" style="margin-left:35.4pt;"><span style="font-family:Arial;">I think that removing checked exceptions would be a feature and a benefit.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"><a href="http://mernst.org/blog/">Matthias Ernst</a> said&#8230;</span></p>
<p class="MsoNormal" style="margin-left:35.4pt;"><span style="font-family:Arial;">Number one on </span><a href="http://mernst.org/blog/rss.xml#How-Far-is-Fidji"><span style="font-family:Arial;"><span>my list</span></span></a><span style="font-family:Arial;">!</span></p>
<p class="MsoNormal"><a href="http://crazybob.org/index.php"><span style="font-family:Arial;"><span>Bob</span></span></a><span style="font-family:Arial;"> said&#8230; <a href="http://crazybob.org/index.php"></a></span></p>
<p class="MsoNormal" style="margin-left:35.4pt;"><span style="font-family:Arial;">Count me in.</span></p>
<p class="MsoNormal"><a href="http://plesner.quenta.org/"><span style="font-family:Arial;"><span>Christian Plesner Hansen</span></span></a><span style="font-family:Arial;"> said&#8230; </span></p>
<p style="margin-left:36pt;"><span style="font-family:Arial;">I ran my own little crusade against checked exceptions a while back. I opened an <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6376696">RFE (#6376696)</a> </span></p>
<p><span style="font-family:Arial;"></span><span style="font-family:Arial;"></span>
<p class="MsoNormal"><a href="http://digital-sushi.org/"><span style="font-family:Arial;">Peter von der Ahé </span></a><span style="font-family:Arial;"><a href="http://blogs.sun.com/ahe/"><span></span></a></span><span style="font-family:Arial;"></span></p>
<p class="MsoNormal" style="margin-left:35.4pt;"><span style="font-family:Arial;">I don&#8217;t think it would work to make it a compiler option (which is why I was in favor of closing </span><a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6376696"><span style="font-family:Arial;"><span>RFE 6376696</span></span></a><span style="font-family:Arial;">). However, turning checked exception compile-time errors into compile-time warnings makes a lot of sense to me.</span></p>
<p><a href="http://www.oreillynet.com/pub/au/1738"><span style="font-family:Arial;"><span>Tim O&#8217;Brien</span></span></a><span style="font-family:Arial;"> said&#8230; </span><span style="font-family:Arial;">(autor de Jakarta</span><span style="font-family:Arial;"> commons Cookbook e Maven, a Developer Notebook)</span>
<p style="margin-left:36pt;"><span style="font-family:Arial;">I think we need an annotation that would allow us to automate the wrapping of checked exceptions with Runtime.</span></p>
<p class="MsoNormal">
<p class="MsoNormal"><span style="font-family:Arial;">Não vou listar muitos comentários a favor da manutenção das checked exceptions. Somente listo 2, sendo que o segundo me chamou muita atenção:</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"><a href="http://beust.com/weblog/">Cedric</a> said&#8230; </span></p>
<p class="MsoNormal" style="margin-left:35.4pt;"><span style="font-family:Arial;">Count me firmly on the side of people who find checked exceptions very important to build API&#8217;s on big code bases. Sure, they can be misused, but unchecked exceptions are being overused in a lot of places as well.</p>
<p>When I use a method from a library, I want to rely on the compiler to tell me what can go wrong, not on the documentation.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"><a href="http://www.blogger.com/profile/10552530993349739781"><span>Edson</span></a></span><span style="font-family:Arial;"> said&#8230; </span></p>
<p style="margin-left:36pt;"><span style="font-family:Arial;">We develop systems using Java and .NET.<br />We deal with checked exceptions encapsulating them in a framework exception (ugly but documented); but exceptions in .NET are totally undocumented (the Microsoft API does not document all possible exceptions, neither our programmers) and we have very big headaches with unexpected exceptions found in production phase.<br />We desperately need checked exceptions in .NET; don&#8217;t remove checked exceptions from Java.</span></p>
<p>  <span style="font-family:Arial;font-size:12px;">Vale a pena acompanhar a discussão toda, inclusive baixar o PDF da apresentação do Marko Van Dooren <a href="http://www.cs.kuleuven.be/%7Emarko/?q=publications">Combining the robustness of checked exceptions with the flexibility of unchecked exceptions using anchored exception declarations</a>, onde ele aborda o uso de facilidade da linguagem Eiffel para corrigir problemas das checked exceptions. </span><br /><span style="font-family:Arial;font-size:12px;"><br /></span><span style="font-family:Arial;font-size:12px;">Não posso deixar de citar a resposta do </span><span style="font-family:Arial;font-size:12px;">do <a href="http://cafe.elharo.com/">Elliotte Rusty Harold</a> </span><span style="font-family:Arial;font-size:12px;">em seu próprio blog com <a href="http://cafe.elharo.com/java/voting-for-checked-exceptions/">veemente defesa das checked exceptions</a> (80 comentários até agora e o Luca que respondeu lá não sou eu).<br /></span><span style="font-family:Arial;"><br />O que posso concluir depois de ler tanto sobre o tratamento de exceções no Java?</span><span style="font-family:Arial;"></p>
<p>Confesso que são tantas opiniões bem fundamentadas que fiquei confuso. Certamente sou favorável a um fork do Java, mas não para tirar as checked exceptions. Antes disto, acho que precisariam limpar os &#8220;deprecateds&#8221; para tornar mais enxuto o tal de JRE consumer. E incluir algumas facilidades que andam falando por aí.</p>
<p>Sobre o que fazer com as checked exceptions, gostaria de ver aplicada, em alguns casos, a sugestão do Ahé de fazer com que elas redundem em warnings ao invés de erros de compilação, principalmente nas APIs do tipo JDBC e java.io em que há uso abusivo. Com a ressalva de que se for adotada em todas APIs, dá medo pensar o que um programador relaxado será capaz de fazer em termos de Exception Hidding.</p>
<p>Pelo medo que descrevi na última frase, acho boa a sugestão do Tim O’Brien de criar uma anotação para facilitar o empacotamento automático das exceções checkeds em uncheckeds. Uma anotação do tipo da @ApplicationException do EJB 3.0 para todo o Java SE também parece interessante.</span></p>
<p><span style="font-family:arial;">Espero pelo menos ter chamado a atenção para a importância de discutir o assunto dentro do seu projeto para não ser vítima futura da ira do help desk.</span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lucabastos.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lucabastos.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucabastos.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucabastos.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucabastos.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucabastos.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lucabastos.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lucabastos.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lucabastos.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lucabastos.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucabastos.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucabastos.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucabastos.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucabastos.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucabastos.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucabastos.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=15&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lucabastos.wordpress.com/2007/06/05/tratamento-de-excecoes-parte-3-discussao-sobre-a-remocao-das-checked-exceptions-da-linguagem-java/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bec8c46f4ea4f86d114e5fee954224f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Luca Bastos</media:title>
		</media:content>

		<media:content url="http://bp1.blogger.com/_6-xLHhv2Rak/RmVwWS29zaI/AAAAAAAAABk/kF6ElAGj0kE/s200/java_giant.jpg" medium="image" />
	</item>
		<item>
		<title>Tratamento de exceções &#8211; Parte 2 – Mudanças no conceito de uso das exceções</title>
		<link>http://lucabastos.wordpress.com/2007/06/05/tratamento-de-excecoes-parte-2-%e2%80%93-mudancas-no-conceito-de-uso-das-excecoes-2/</link>
		<comments>http://lucabastos.wordpress.com/2007/06/05/tratamento-de-excecoes-parte-2-%e2%80%93-mudancas-no-conceito-de-uso-das-excecoes-2/#comments</comments>
		<pubDate>Tue, 05 Jun 2007 00:17:00 +0000</pubDate>
		<dc:creator>Luca Bastos</dc:creator>
				<category><![CDATA[Exceptions]]></category>

		<guid isPermaLink="false">http://lucabastos.wordpress.com/2007/06/05/tratamento-de-excecoes-parte-2-%e2%80%93-mudancas-no-conceito-de-uso-das-excecoes-2</guid>
		<description><![CDATA[Continuação de Tratamento de exceções &#8211; Parte 1 – Um pouco de história Tendência mais moderna de tratar as exceções no Java. Vamos começar dando a palavra a um dos criadores do Java, James Gosling em uma entrevista publicada em setembro de 2003 ao Bill Venners da artima: “Lots of newbie&#8217;s coming in from the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=31&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://bp0.blogger.com/_6-xLHhv2Rak/RmSuCS29zZI/AAAAAAAAABc/IJF9iNPU3ug/s1600-h/105_10b.gif"><img src="http://bp0.blogger.com/_6-xLHhv2Rak/RmSuCS29zZI/AAAAAAAAABc/IJF9iNPU3ug/s400/105_10b.gif" alt="" border="0" /></a>Continuação de <a href="http://lucabastos.blogspot.com/2007/06/tratamento-de-excees-parte-1-um-pouco.html">Tratamento de exceções &#8211; Parte 1 – Um pouco de história</a>
<p class="MsoNormal"><span style="font-family:Arial;font-size:100%;">Tendência mais moderna de tratar as exceções no Java.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Vamos começar dando a palavra a um dos criadores do Java, James Gosling em uma <a href="http://www.artima.com/intv/solidP.html">entrevista publicada em setembro de 2003 ao Bill Venners da artima</a>:</span> <span style="font-family:Arial;"></span></p>
<p class="MsoNormal" style="margin-left:35.4pt;"><span lang="EN-US" style="font-family:Arial;">“Lots of newbie&#8217;s coming in from the C world complain about exceptions and the fact that they have to put exception handling all over the place—they want to just write their code. But that&#8217;s stupid: most C code never checks return codes and so it tends to be very fragile. If you want to build something really robust, you need to pay attention to things that can go wrong, and most folks don&#8217;t in the C world because it&#8217;s just too damn hard. </span></p>
<p class="MsoNormal" style="margin-left:35.4pt;"><span lang="EN-US" style="font-family:Arial;"> </span></p>
<p class="MsoNormal" style="margin-left:35.4pt;"><span lang="EN-US" style="font-family:Arial;">One of the design principles behind Java is that I don&#8217;t care much about how long it takes to slap together something that kind of works. The real measure is how long it takes to write something solid. ”</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Como disse no blog anterior, quando aprendi Java, não questionei muito o modelo de tratamento de exceções e era um newbie vindo do mundo C. Mas, como quase todo mundo, achei um pouco complicado a obrigação tratar de exceções das classes da API do Java. Como exemplo de exceções difíceis de entender porque eram checked, lembro de algumas das exceções das versões antigas do JDBC, que ao meu ver deveriam ser consideradas como erros irrecuperáveis.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Naquela época não havia uma boa fonte para entender de forma clara como fazer tratamento de exceções como é o capítulo 8 do livro <a href="http://java.sun.com/docs/books/effective/">Effective Java do Joshua Bloch</a> ou o artigo <a href="http://blog.caelum.com.br/2006/10/07/lidando-com-exceptions/">Lidando com Exceptions do nosso amigo Fábio Kung</a>.<span style="text-decoration:underline;"></span> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;">O Fábio abordou com muita propriedade o uso das unchecked exceptions e das checked exceptions de acordo com as recomendações do Java pois afinal a Caelum onde dá aulas, entre outras coisas, prepara alunos para certificação Java.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Vamos ver a <a href="http://java.sun.com/docs/books/tutorial/essential/exceptions/runtime.html">recomendação oficial da Sun para usar as unchecked exceptions</a>:</span></p>
<p class="MsoNormal"><span style="font-family:Arial;" lang="EN-US">No fim está escrito: </span></p>
<p class="MsoNormal" style="margin-left:35.4pt;"><span style="font-family:Arial;" lang="EN-US">“Here&#8217;s the bottom line guideline: If a client can reasonably be expected to recover from an exception, make it a checked exception. If a client cannot do anything to recover from the exception, make it an unchecked exception.”</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Na visão dos tutoriais oficiais do Java, unchecked exceptions devem ser usadas só para os erros.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Este assunto das exceções do Java já causou muita briga e com certeza é um dos mais controversos da linguagem. Como já disse antes, nenhuma outra linguagem adota as checked exceptions.</span></p>
<p>    <span style="font-size:12pt;font-family:Arial;">São muitas as críticas em cima das checked exceptions do Java. Alguns autores as abominam e recomendam procedimentos alternativos para transformar ou embalar algumas delas em unchecked exceptions. Uma <a href="http://www.google.com/search?q=java+checked+exceptions">busca no google</a> mostra que a discussão do assunto é interminável.<br /></span><span style="font-family:Arial;"><br />No meu caso, ao contrário de ter a visão newbie e estúpida citada pelo Gosling, talvez apenas não tenha enxergado com muita profundidade que as coisas poderiam ser de outro jeito e as aceitei sem discutir. Assim, minha primeira reação foi de surpresa quando li as primeiras críticas sobre as recomendações de uso das checked e unchecked exceptions. <span> </span>Algumas das reclamações partiram de gente muito influente na comunidade Java e causaram bastante polêmica. </span></p>
<p><span style="font-size:12pt;font-family:Arial;">O primeiro autor que vi se insurgindo contra as checked exceptions foi o Bruce Eckel, autor do livro <a href="http://www.mindview.net/Books/TIJ/">Thinking in Java disponível para download</a>. </span><span style="font-family:Arial;">Na 3ª edição lançada em dezembro de 2002, no capítulo 9 Error Handling with Exceptions, vejam o título Perspectives. Nele o Bruce escreve bastante contra as checked exceptions, apesar de que na minha opinião, não resume claramente porque elas não foram uma boa idéia. </span><span style="font-family:Arial;" lang="EN-US">Ele cita que o Martin Fowler pensava o mesmo e atribui ao Fowler a seguinte frase: “&#8230;on the whole I think that exceptions are good, but Java checked exceptions are more trouble than they are worth”. </span><span style="font-family:Arial;">No mesmo capítulo sob o título Converting checked to unchecked exceptions há um exemplo de um wrapper para “desligar” as checked exceptions. </span><span style="font-family:Arial;">Ver também:<br /></span><span style="font-family:Arial;"><a href="http://mindview.net/WebLog/log-0025">http://mindview.net/WebLog/log-0025</a><br /></span><span style="font-family:Arial;"><a href="http://www.mindview.net/Etc/Discussions/CheckedExceptions">http://www.mindview.net/Etc/Discussions/CheckedExceptions</a></span><span style="font-family:Arial;"></span></p>
<p><span style="font-size:12pt;font-family:Arial;">O segundo a me alertar foi para ter cuidado com o uso delas foi Rod Johnson no livro de 2003, <a href="http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764543857.html">J2EE Design and Development</a>. É um ótimo livro e para mim, o capítulo 4 é leitura recomendada para qualquer desenvolvedor. O capítulo 4 pode ser baixado em <a href="http://www.theserverside.com/tt/articles/article.tss?l=RodJohnsonInterview">http://www.theserverside.com/tt/articles/article.tss?l=RodJohnsonInterview</a></span><span style="font-size:12pt;font-family:Arial;"><br /></span><span style="font-family:Arial;"><br />Neste capítulo 4, sob o título Exception handling – Checked or Unchecked Exceptions, ele tece importantes considerações e diz que o uso de checked exceptions acarreta alguns problemas tais como:</span>
<ul style="margin-top:0;" type="disc">
<li class="MsoNormal"><span style="font-family:Arial;">Aumentar o tamanho do código,</span></li>
<li class="MsoNormal"><span style="font-family:Arial;">Torna o código mais difícil de ler</span></li>
<li class="MsoNormal"><span style="font-family:Arial;">Incentivar o empacotamento e relançamento de      exceções que deveriam interromper o processamento</span></li>
<li class="MsoNormal"><span style="font-family:Arial;">Fragilizar a assinatura dos métodos</span></li>
<li class="MsoNormal"><span style="font-family:Arial;">Não funcionar bem com interfaces</span></li>
</ul>
<p>  <span style="font-size:12pt;font-family:Arial;">O Rod é menos radical que o Bruce e acredita que há lugar para as checked exceptions. Porém não recomenda seu uso, a menos que se possa lidar com o problema dentro da lógica do sistema, como por exemplo um limite de gastos excedido em uma dada compra. Na dúvida sobre o que usar, sugere optar por unchecked exceptions. O seu framework Spring provê uma infra-estrutura baseada em unchecked exceptions para encapsular as inadequadas checked exceptions do JDBC e de versões antigas do Hibernate. Mas em uma das famosas brigas sobre este assunto <a href="http://www.theserverside.com/news/thread.tss?thread_id=21538#96817">nas discussões do TheServerSide</a>, comentando a entrevista do James Gosling,</span><span style="font-family:Arial;"> ele escreveu:</span><span style="font-family:Arial;"><br /></span>
<p class="MsoNormal" style="margin-left:35.4pt;"><span style="font-family:Arial;">“I actually like the fact that Java has checked exceptions. I use them to enforce callers to react to recoverable conditions. I think I would miss that in C#. It&#8217;s just that I see an important role for unchecked exceptions as well.”</span></p>
<p> <span style="font-size:12pt;font-family:Arial;">Acho que devo citar também a entrevista do Anders Hejlsberg na artima com o título <a href="http://www.artima.com/intv/handcuffsP.html">The Trouble with Checked Exceptions</a> onde ele defende porque o C# não adotou as checked exceptions.<br /></span>
<p class="MsoNormal"><span style="font-family:Arial;">Repito que durante muitos anos usei as checked exceptions sem maiores questionamentos. Talvez alguns de vocês ainda tenham a mesma posição. Mas é sintomático o que vem acontecendo:</span></p>
<ul style="margin-top:0;" type="disc">
<li class="MsoNormal"><span style="font-family:Arial;">No EJB até a versão 2.1, era necessário capturar      ou lançar um monte de exceções sendo algumas delas de pouco significado. Definir      o local para fazer o tratamento correto das exceções era uma das      dificuldades de usar os já complicadíssimos EJBs. Havia também uma      diferença de conceito entre as exceções unchecked e checked em que nestas      últimas, o container não fazia roll back e era feito o commit da transação      com erro. </span></li>
<li class="MsoNormal"><span style="font-family:Arial;">Com o modelo de POJOs do EJB 3.0 estas questões      ficaram mais simples. E das 16 exceções do EJB 3.0, 11 são do tipo      unchecked </span></li>
<li class="MsoNormal"><span style="font-family:Arial;">No EJB 3.0 apareceu a anotação @ApplicationException      para indicar a política de roll back para exceção a ser lançada por erro      de lógica do negócio em contraposição aos erros do sistema. Antigamente isto      era papel das checked exceptions.</span></li>
<li class="MsoNormal"><span style="font-family:Arial;">No Hibernate anterior a versão 3.0, todas as      exceções lançadas eram checked. Isto foi feito influenciado pelo JDBC que      somente lança este tipo. Mas exceções em operações de bases de dados em      geral são erros fatais e assim muita gente fazia como o Spring e as empacotava      como subtipo de RuntimeException que é unchecked. O Hibernate <span> </span>da versão 3.0 em diante só lança      unchecked exceptions.</span></li>
<li class="MsoNormal"><span style="font-family:Arial;">No JPA as exceções são todas unchecked      possivelmente por influência da turma do Hibernate, do Toplink e do JDO que      também são unchecked</span></li>
<li class="MsoNormal"><span style="font-family:Arial;">A API do JSF se baseia em unchecked exceptions      enquanto outras mais antigas como Servlets e JMS, só tem checked exceptions</span></li>
<li class="MsoNormal"><span style="font-family:Arial;">A API java.io, seguindo o mau modelo do JDBC,      usa checked exceptions enquanto o java.nio usa unchecked</span></li>
<li class="MsoNormal"><span style="font-family:Arial;">O JDBC 4.0 que saiu com o Java 6 não mudou o      conceito de checked para unchecked como muitos gostariam. Mas deu uma bela      repaginada nas suas exceções permitindo mostrar erros um pouco mais      significativos.</span><span style="font-family:Arial;"><br /></span></li>
</ul>
<p class="MsoNormal"><span style="font-family:Arial;">Acho que poderia encontrar mais exemplos. A lista acima mostra que o entendimento das exceções mudou, mesmo dentro da Sun. No mínimo se pode dizer que antigamente se abusava do uso das checked exceptions e que agora as novas APIs as usam menos ou usam melhor como no JDBC 4.0 e no EJB 3.0.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Se até a Sun está rediscutindo o uso das exceptions, então é claro que </span><span style="font-size:12pt;font-family:Arial;">definir uma política coerente para tratamento das exceções deve ser motivo de discussão dentro das equipes de projeto para que esta importante facilidade do Java seja bem usada.<br /></span></p>
<p class="MsoNormal"><span style="font-size:12pt;font-family:Arial;">Sem regras claras, programadores simples mortais como nós, às vezes perdem a paciência com tanta exceção para tratar e acabam esquecendo de gravar em log. Isto é tão ruim que o <a href="http://www.kumpera.net/blog/">Rodrigo Kumpera</a>, cansado de tanto encontrar esta falha por aí, a denominou de Exception hidding e a incluiu no excelente texto <a href="http://www.kumpera.net/blog/index.php/2007/03/07/metrica-definitiva-da-qualidade-de-um-projeto-j2ee/#comments">Métrica definitiva da qualidade de um projeto J2EE</a>. </span></p>
<p class="MsoNormal">
<p class="MsoNormal"><span style="font-family:Arial;">As <a href="http://blog.caelum.com.br/2006/10/07/lidando-com-exceptions/">recomendações do Fabio Kung</a> são um ótimo ponto de partida para as equipes que ainda não criaram suas próprias regras. E quem usa regras antigas, deve fazer como a Sun e o Gavin King do Hibernate e reavaliar como elas são aplicadas atualmente na prática.<br /></span></p>
<p>  <span style="font-size:12pt;font-family:Arial;">No próximo blog vamos ver o que escrevem por aí sobre a remoção das checked exceptions do Java.</span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lucabastos.wordpress.com/31/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lucabastos.wordpress.com/31/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucabastos.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucabastos.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucabastos.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucabastos.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lucabastos.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lucabastos.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lucabastos.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lucabastos.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucabastos.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucabastos.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucabastos.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucabastos.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucabastos.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucabastos.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=31&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lucabastos.wordpress.com/2007/06/05/tratamento-de-excecoes-parte-2-%e2%80%93-mudancas-no-conceito-de-uso-das-excecoes-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bec8c46f4ea4f86d114e5fee954224f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Luca Bastos</media:title>
		</media:content>

		<media:content url="http://bp0.blogger.com/_6-xLHhv2Rak/RmSuCS29zZI/AAAAAAAAABc/IJF9iNPU3ug/s400/105_10b.gif" medium="image" />
	</item>
		<item>
		<title>Tratamento de exceções &#8211; Parte 1 – Um pouco de história</title>
		<link>http://lucabastos.wordpress.com/2007/06/04/tratamento-de-excecoes-parte-1-%e2%80%93-um-pouco-de-historia-2/</link>
		<comments>http://lucabastos.wordpress.com/2007/06/04/tratamento-de-excecoes-parte-1-%e2%80%93-um-pouco-de-historia-2/#comments</comments>
		<pubDate>Mon, 04 Jun 2007 20:53:00 +0000</pubDate>
		<dc:creator>Luca Bastos</dc:creator>
				<category><![CDATA[Exceptions]]></category>

		<guid isPermaLink="false">http://lucabastos.wordpress.com/2007/06/04/tratamento-de-excecoes-parte-1-%e2%80%93-um-pouco-de-historia-2</guid>
		<description><![CDATA[Um pouco da história do porque das exceções do Java serem como são. Conta o Bjarne Stroutrup, que lá pelos idos de 1984 a 1986, durante o projeto do C++, foi considerada a possibilidade de incluir o tratamento de exceções logo na primeira versão. Isto foi adiado por medo da complexidade adicional que acarretaria à [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=30&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://bp2.blogger.com/_6-xLHhv2Rak/RmR8i28pIKI/AAAAAAAAAA8/xvL26ALEpDw/s1600-h/debugging.jpg"><img src="http://bp2.blogger.com/_6-xLHhv2Rak/RmR8i28pIKI/AAAAAAAAAA8/xvL26ALEpDw/s200/debugging.jpg" alt="" border="0" /></a><br /><span style="font-size:12pt;font-family:Arial;">Um pouco da história do porque das exceções do Java serem como são.</p>
<p></span><span style="font-family:Arial;font-size:12px;">Conta o <a href="http://www.research.att.com/%7Ebs/dne.html">Bjarne Stroutrup</a>, </span><span style="font-family:Arial;font-size:12px;">que lá pelos idos de 1984 a 1986, durante o projeto do C++, foi considerada a possibilidade de incluir o tratamento de exceções logo na primeira versão. Isto foi adiado por medo da complexidade adicional que acarretaria à linguagem e também para dar mais tempo ao estudo das suas conseqüências no projeto e na implementação. A avaliação do mecanismo de exceções se estendeu de 1984 até 1989. Foi a primeira facilidade do C++ aberta para discussão pública. </span><span style="font-family:Arial;">O <a href="http://www.awprofessional.com/authors/bio.asp?a=50d7e43c-64d1-4200-916c-c8b29e712877&amp;rl=1">Andrew Koenig</a>, o tal do famoso livro “C Traps and Pitfalls”, e o próprio Bjarne Stroutrup, se dedicaram muito a esta causa. Mas muitos outros tiveram papel importante nas complexas discussões. </span>
<p class="MsoNormal"><span style="font-family:Arial;"></span><span style="font-family:Arial;font-size:12px;">Para sentirem o tom das argumentações, o professor </span><span style="font-family:Arial;font-size:12px;"><a href="http://www.cs.dartmouth.edu/%7Edoug/">Doug McIlroy</a></span><span style="font-family:Arial;font-size:12px;">, um dos gênios do <a href="http://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a>, </span><span style="font-family:Arial;">se colocou contra a inclusão dizendo que os programadores escreveriam código menos confiável lançando exceções ao invés de entender a causa do problema [1]. O Bjarne contra argumentava, que nenhuma facilidade de linguagem consegueria impedir a escrita de código ruim. A primeira implementação de C++ com exceções em um compilador de uso geral só apareceu em 1992. Uma das premissas básicas era a de que elas deveriam ser usadas somente para tratamento de erros [2]. Outra premissa era que não deveria haver a intenção de fazer com que cada função fosse tolerante a falha.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">O desenvolvimento do Java começou no início de 1991 a partir de idéias do Bill Joy para uma nova linguagem. Em uma reunião em Aspen, no Colorado, Bill Joy, James Gosling, Mike Sheradin, Patrick Naughton e outros, deram início ao projeto Stealth, que mais tarde se chamou projeto Green. A insatisfação com o uso de C++ no projeto, levou a criação da linguagem que mais tarde se chamou de Java [3].<br /></span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Como disse, o C++ já tinha tratamento de exceções desde 1992. Só </span><span style="font-family:Arial;">que ainda não era muito usado por ser opcional. </span><span style="font-family:Arial;">E</span><span style="font-family:Arial;">ra importante para o Java ser lançado com tratamento de exceções pois precisava mostrar vantagens sobre as linguagens existentes, ao menos em termos de marketing.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Em março de 1995 apareceu o Java 1.02a, que foi a primeira versão alfa tornada pública. Durante os muitos anos dos projetos que redundaram no Java, muitas facilidades de outras linguagens foram estudadas. Fora o C++ e poucas outras linguagens, o tratamento de erros </span><span style="font-family:Arial;">na época, </span><span style="font-family:Arial;">era feito com as funções retornando -1 ou pelo famigerado <i>on error goto</i> do Basic.<br /></span></p>
<p class="MsoNormal"><span style="font-family:Arial;">O Java foi lançado contemplando o tratamento de exceções tal como é hoje, o que na ocasião foi divulgado como uma das suas grandes vantagens.<br /></span></p>
<p class="MsoNormal"><span style="font-family:Arial;">No Java o tratamento das exceções de jeito semelhante às outras linguagens é feito por classes que estendem <i>RuntimeException</i> ou <i>Error</i>. São as chamadas <i>unchecked exceptions</i>.<br /></span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Mas o Java apareceu também com um conceito novo chamado de <i>checked exceptions</i>. É um conjunto especial de exceções estendendo a classe <i>Exception</i>. São checadas em tempo de compilação para conferir se o programador tratou a condição excepcional dentro de uma seqüência <span style="font-style:italic;">try-catch-finally</span> ou a lançou para cima para ser tratada por quem chamou o método.<br /></span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Como disse o James Gosling no livro <a href="http://java.sun.com/docs/books/javaprog/">The Java Programming Language de 1996</a>: &#8220;As <i>checked exceptions</i> forçam o programador considerar o que fazer com os erros onde eles ocorrem no código&#8221;. Segundo ele, isto seria muito bom porque as exceções seriam notificadas em tempo de compilação ao invés de ocorrerem em tempo de execução como ocorre com as <i>unchecked exceptions</i>.<br /></span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Forçar o programador a tratar as <i>checked exceptions</i> foi resposta do Java ao fato de que o conceito de exceções existia opcionalmente no C++ e era pouco usado, talvez porque, na maior parte dos casos só eram capturadas em tempo de execução. </p>
<p>Na verdade, o modo de tratar exceções do Java não fez tanto sucesso como o James Gosling esperava porque poucas linguagens adotaram coisas semelhantes e as que o fizeram, usaram condições mais relaxadas. Exatamente como no Java, eu particularmente não tenho notícia de nenhuma outra linguagem. Só para lembrar, o C# não tem as checked exceptions.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;">Finalizo a história do tratamento de exceções dizendo que quando aprendi Java em 1996, achei muito boa esta novidade do tratamento de exceções e apesar de ter achado um pouco complicado, gostei muito das checked exceptions.</span></p>
<p class="MsoNormal"><span style="font-family:Arial;"></span></p>
<p class="MsoNormal"><span style="font-family:Arial;">[1] O Doug foi um dos 6 pioneiros do Multics, um projeto extremamente ousado da Bell Labs e anterior ao Unix. Aliás, o nome Unix veio justamente de uma piada do Brian Kernighan em relação ao Multics:<br /></span><span style="font-family:Arial;">Unix = &#8220;One of whatever Multics was many of&#8221; ou &#8220;Multics without balls&#8221;. Ver: <a href="http://www.multicians.org/unix.html">http://www.multicians.org/unix.html</a></p>
<p>[2] O livro do Bjarne Stroutrup, <a href="http://www.research.att.com/%7Ebs/2nd.html">C++ Programming Language 2nd Ed de 1991</a>, descreve as exceções mais diz que não há nenhuma implementação disponível. Lá ele enfatiza que sempre que possível se deve manter fidelidade ao princípio: “exception handling is error handling”.</span></p>
<p class="MsoNormal">
<p class="MsoNormal"><span style="font-family:Arial;">[3] <a href="http://ei.cs.vt.edu/book/chap1/java_hist.html">History of the World Wide Web &#8211; 1.4. History of Java</a></span><span lang="EN-US" style="font-family:Arial;"></span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lucabastos.wordpress.com/30/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lucabastos.wordpress.com/30/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucabastos.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucabastos.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucabastos.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucabastos.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lucabastos.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lucabastos.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lucabastos.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lucabastos.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucabastos.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucabastos.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucabastos.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucabastos.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucabastos.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucabastos.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=30&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lucabastos.wordpress.com/2007/06/04/tratamento-de-excecoes-parte-1-%e2%80%93-um-pouco-de-historia-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bec8c46f4ea4f86d114e5fee954224f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Luca Bastos</media:title>
		</media:content>

		<media:content url="http://bp2.blogger.com/_6-xLHhv2Rak/RmR8i28pIKI/AAAAAAAAAA8/xvL26ALEpDw/s200/debugging.jpg" medium="image" />
	</item>
		<item>
		<title>Tratamento das exceções no Java</title>
		<link>http://lucabastos.wordpress.com/2007/06/04/tratamento-das-excecoes-no-java-2/</link>
		<comments>http://lucabastos.wordpress.com/2007/06/04/tratamento-das-excecoes-no-java-2/#comments</comments>
		<pubDate>Mon, 04 Jun 2007 20:06:00 +0000</pubDate>
		<dc:creator>Luca Bastos</dc:creator>
				<category><![CDATA[Exceptions]]></category>

		<guid isPermaLink="false">http://lucabastos.wordpress.com/2007/06/04/tratamento-das-excecoes-no-java-2</guid>
		<description><![CDATA[Trilogia sobre o tratamento das exceções no Java Trilogia, s.m. = Poema dramático composto de 3 tragédias apresentadas nos jogos solenes da Grécia antiga. Também conjunto de três obras ligadas entre si por um tema comum. Parte 1 – Um pouco de história Um pouco da história do porque das exceções do Java serem como [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=29&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://bp2.blogger.com/_6-xLHhv2Rak/RmR4G28pIII/AAAAAAAAAAs/Kt6Ejs5GkvI/s1600-h/Java_train_crash.jpg"><img src="http://bp2.blogger.com/_6-xLHhv2Rak/RmR4G28pIII/AAAAAAAAAAs/Kt6Ejs5GkvI/s200/Java_train_crash.jpg" alt="" border="0" /></a><br /> 
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal"><span style="font-family:Arial;"><br /></span></p>
<p class="MsoNormal"><span style="font-family:Arial;"><span style="font-weight:bold;">Trilogia sobre o tratamento das exceções no Java</span><br /></span></p>
<p class="MsoNormal">
<p class="MsoNormal"><span style="font-family:Arial;">Trilogia, s.m. = Poema dramático composto de 3 tragédias apresentadas nos jogos solenes da Grécia antiga. Também conjunto de três obras ligadas entre si por um tema comum.</span></p>
<ul style="margin-top:0;" type="disc">
<li class="MsoNormal"><span style="font-family:Arial;">Parte 1 – Um pouco de história<br />   Um pouco da história do porque das exceções do Java serem como são.<br />    <!--[if !supportLineBreakNewLine]--><br />    <!--[endif]--></span></li>
<li class="MsoNormal"><span style="font-family:Arial;">Parte 2</span><span style="font-family:Arial;"> – </span><span style="font-family:Arial;">Mudanças no conceito de uso das exceções<br />   Tendência mais moderna de tratar as exceções no Java.<br />    <!--[if !supportLineBreakNewLine]--><br />    <!--[endif]--></span></li>
<li class="MsoNormal"><span style="font-family:Arial;">Parte 3</span><span style="font-family:Arial;"> – </span><span style="font-family:Arial;">Discussão sobre a remoção das checked      exceptions do Java<br />   Comentários sobre o blog do Gafter</span></li>
</ul>
<p><span style="font-family:Arial;"><span style="font-family:arial;"></span></span><span style="font-family:verdana;font-size:85%;"></span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lucabastos.wordpress.com/29/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lucabastos.wordpress.com/29/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucabastos.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucabastos.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucabastos.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucabastos.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lucabastos.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lucabastos.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lucabastos.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lucabastos.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucabastos.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucabastos.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucabastos.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucabastos.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucabastos.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucabastos.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=29&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lucabastos.wordpress.com/2007/06/04/tratamento-das-excecoes-no-java-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bec8c46f4ea4f86d114e5fee954224f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Luca Bastos</media:title>
		</media:content>

		<media:content url="http://bp2.blogger.com/_6-xLHhv2Rak/RmR4G28pIII/AAAAAAAAAAs/Kt6Ejs5GkvI/s200/Java_train_crash.jpg" medium="image" />
	</item>
		<item>
		<title>Ecosistema do Google se expandindo</title>
		<link>http://lucabastos.wordpress.com/2007/05/31/ecosistema-do-google-se-expandindo-2/</link>
		<comments>http://lucabastos.wordpress.com/2007/05/31/ecosistema-do-google-se-expandindo-2/#comments</comments>
		<pubDate>Thu, 31 May 2007 04:45:00 +0000</pubDate>
		<dc:creator>Luca Bastos</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://lucabastos.wordpress.com/2007/05/31/ecosistema-do-google-se-expandindo-2</guid>
		<description><![CDATA[Só dá o Google. Comecei a usar o Google praticamente quando ele começou e virou logo sinônimo de busca. Agora já uso um monte de coisas &#8220;Google&#8221; como Search, Blogger, Orkut, Groups, Maps, Reader, Analytics, Images, Video, Labs, Code, Calendar, alguns que baixei, mas não uso, como o GWT, Picasa e o Desktop e os [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=28&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://bp2.blogger.com/_6-xLHhv2Rak/Rl5TTW8pIHI/AAAAAAAAAAk/-bjfV3gVzYo/s1600-h/gears_sm.png"><img src="http://bp2.blogger.com/_6-xLHhv2Rak/Rl5TTW8pIHI/AAAAAAAAAAk/-bjfV3gVzYo/s200/gears_sm.png" alt="" border="0" /></a><br /><span style="font-family:arial;">Só dá o Google. Comecei a usar o Google praticamente quando ele começou e virou logo sinônimo de busca. Agora já uso um monte de coisas &#8220;Google&#8221; como Search, Blogger, Orkut, Groups, Maps, Reader, Analytics, Images, Video, Labs, Code, Calendar, alguns que baixei, mas não uso, como o GWT, Picasa e o Desktop e os que ainda não experimentei, entre eles o Docs &amp; Spreadsheets. Isto sem falar no monte de APIs para Search, Maps, AdWords, AdSense, GData, etc..</span><span id="articleBody"></span><br /><span style="font-family:arial;"><br />Hoje acontece o Google Developer Day e eles estão lançando mais uma novidade: <a href="http://gears.google.com/">Gears</a></p>
<p>O que vem a ser isto? Tirado do <a href="http://code.google.com/support/bin/answer.py?answer=69197&amp;topic=11629">Developer Knowledge Base</a> e de <a href="http://geekbeers.blogspot.com/2007/05/google-gears-offline-ajax.html">Google Gears &#8211; Offline Ajax</a>:</span><br /><span style="font-family:arial;"><br />O Google Gears é uma extensão open source com licença BSD para o browser<span style="font-family:arial;"></span><span style="font-family:arial;">,</span> que permite aos desenvolvedores criar aplicações web que podem ser executadas offline. O Gears provê 3 facilidades principais:<br /></span>
<ul>
<li style="font-family:arial;">Um servidor local que adiciona um cache especial ao browser e que serve recursos tais como HTML, JavaScript, imagens, etc.. O framework sincroniza com o servidor de tempos em tempos permitindo alternar o trabalho nos modos online/offline;</li>
<li style="font-family:arial;">Um banco de dados (SQLite) para acessar e guardar dados a partir do Browser;</li>
<li><span style="font-family:arial;">Um pool de work threads que provê uma API thread-like não bloqueante para o JavaScript possibilitando as aplicações web responder melhor por efetuar operações mais custosas em background.</span></li>
</ul>
<p><span style="font-family:arial;">Ainda tem a ferramenta de banco de dados<span style="font-family:arial;"> </span>dbquery.html</p>
<p></span><span style="font-family:arial;">Brinde: capacidade full text search usando SQLite e o projeto open source &#8220;FTS2&#8243; do </span><span style="font-family:arial;">Google</span><span style="font-family:arial;">. Isto suporta milhões de documentos.</span><br /><span style="font-family:arial;"><br />Segundo eles, ainda é um lançamento do tipo early-access para desenvolvedores e não deve ser usado em produção.</p>
<p>O que pensar? O mesmo que eu pensei para o <a href="http://www.microsoft.com/surface/">Microsoft Surface</a></span><span style="font-family:arial;"> também lançado hoje e que é impublicável.<br /></span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lucabastos.wordpress.com/28/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lucabastos.wordpress.com/28/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lucabastos.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lucabastos.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lucabastos.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lucabastos.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lucabastos.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lucabastos.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lucabastos.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lucabastos.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lucabastos.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lucabastos.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lucabastos.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lucabastos.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lucabastos.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lucabastos.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lucabastos.wordpress.com&amp;blog=1116027&amp;post=28&amp;subd=lucabastos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lucabastos.wordpress.com/2007/05/31/ecosistema-do-google-se-expandindo-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bec8c46f4ea4f86d114e5fee954224f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Luca Bastos</media:title>
		</media:content>

		<media:content url="http://bp2.blogger.com/_6-xLHhv2Rak/Rl5TTW8pIHI/AAAAAAAAAAk/-bjfV3gVzYo/s200/gears_sm.png" medium="image" />
	</item>
	</channel>
</rss>
