<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Desenvolvimento &#193;gil - Blog da Improve It: XP: melhor em Java ou em Ruby?</title>
    <link>http://blog.improveit.com.br/articles/2007/08/23/xp-melhor-em-java-ou-em-ruby</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>XP: melhor em Java ou em Ruby?</title>
      <description>&lt;p&gt;Alan Kloh e Rodolfo Burla foram meus alunos na &lt;a href="http://www.ufrj.br"&gt;UFRJ&lt;/a&gt; em 2006. Esse ano, para encerrar a gradua&#231;&#227;o, eles fizeram um Projeto de Fim de Curso que comparou &lt;a href="http://pt.wikipedia.org/wiki/Java_%28linguagem_de_programa&#231;&#227;o%29"&gt;Java&lt;/a&gt; e &lt;a href="http://pt.wikipedia.org/wiki/Ruby_%28linguagem_de_programa&#231;&#227;o%29"&gt;Ruby&lt;/a&gt; sob o ponto de vista das pr&#225;ticas do &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Eles desenvolveram duas vers&#245;es de um mesmo sistema, uma em &lt;a href="http://pt.wikipedia.org/wiki/Java_%28linguagem_de_programa&#231;&#227;o%29"&gt;Java&lt;/a&gt; e outra em &lt;a href="http://pt.wikipedia.org/wiki/Ruby_%28linguagem_de_programa&#231;&#227;o%29"&gt;Ruby&lt;/a&gt;. A partir da&#237;, fizeram um comparativo entre a facilidade de ado&#231;&#227;o das pr&#225;ticas do &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt; no desenvolvimento de cada vers&#227;o. Al&#233;m do comparativo, o trabalho tamb&#233;m apresenta aspectos interessantes de cada linguagem, bem como seus pontos fortes e fracos.&lt;/p&gt;

&lt;p&gt;Alguns resultados interessantes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linhas de c&#243;digo em &lt;a href="http://pt.wikipedia.org/wiki/Java_%28linguagem_de_programa&#231;&#227;o%29"&gt;Java&lt;/a&gt;: 665. Linhas de c&#243;digo em &lt;a href="http://pt.wikipedia.org/wiki/Ruby_%28linguagem_de_programa&#231;&#227;o%29"&gt;Ruby&lt;/a&gt;: 78. Portanto, foram necess&#225;rias 8,5 vezes mais linhas de c&#243;digo em &lt;a href="http://pt.wikipedia.org/wiki/Java_%28linguagem_de_programa&#231;&#227;o%29"&gt;Java&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Linhas nos arquivos de configura&#231;&#227;o em &lt;a href="http://pt.wikipedia.org/wiki/Java_%28linguagem_de_programa&#231;&#227;o%29"&gt;Java&lt;/a&gt;: 449. Linhas nos arquivos de configura&#231;&#227;o em &lt;a href="http://pt.wikipedia.org/wiki/Ruby_%28linguagem_de_programa&#231;&#227;o%29"&gt;Ruby&lt;/a&gt;: 23. Foram necess&#225;rias 19,5 vezes mais linhas de configura&#231;&#227;o em &lt;a href="http://pt.wikipedia.org/wiki/Java_%28linguagem_de_programa&#231;&#227;o%29"&gt;Java&lt;/a&gt;! Detalhe importante: A quantidade de linhas de configura&#231;&#227;o em &lt;a href="http://pt.wikipedia.org/wiki/Java_%28linguagem_de_programa&#231;&#227;o%29"&gt;Java&lt;/a&gt; foi 5,7 vezes maior que a quantidade de linhas de &lt;strong&gt;c&#243;digo&lt;/strong&gt; em &lt;a href="http://pt.wikipedia.org/wiki/Ruby_%28linguagem_de_programa&#231;&#227;o%29"&gt;Ruby&lt;/a&gt;!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para conhecer o trabalho, baixe o &lt;a href="http://blog.improveit.com.br/files/comparativo-java-ruby-para-xp.pdf"&gt;arquivo&lt;/a&gt; com o projeto de fim-de-curso: &lt;a href="http://blog.improveit.com.br/files/comparativo-java-ruby-para-xp.pdf"&gt;Comparativo entre as linguagens de programa&#231;&#227;o Java e Ruby para projetos que utilizem Extreme Programming&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 23 Aug 2007 04:22:00 -0300</pubDate>
      <guid isPermaLink="false">urn:uuid:2d2df63f-4366-4636-9002-7d80532bc2ce</guid>
      <author>Vinicius Manh&#227;es Teles</author>
      <link>http://blog.improveit.com.br/articles/2007/08/23/xp-melhor-em-java-ou-em-ruby</link>
      <category>ruby</category>
      <category>xp</category>
      <category>agile</category>
    </item>
    <item>
      <title>"XP: melhor em Java ou em Ruby?" by Vin&#237;cius Manh&#227;es Teles</title>
      <description>&lt;p&gt;Pessoal,&lt;/p&gt;

&lt;p&gt;Agrade&#231;o a todos pelos coment&#225;rios. Resumi minha resposta &lt;a href="http://blog.improveit.com.br/articles/2007/09/12/projeto-fim-de-curso-xp-java-ruby-de-novo" rel="nofollow"&gt;nesse artigo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Abra&#231;os, Vin&#237;cius.&lt;/p&gt;</description>
      <pubDate>Wed, 12 Sep 2007 23:18:34 -0300</pubDate>
      <guid isPermaLink="false">urn:uuid:4868b978-9b25-40f4-9b9d-64748c045019</guid>
      <link>http://blog.improveit.com.br/articles/2007/08/23/xp-melhor-em-java-ou-em-ruby#comment-784</link>
    </item>
    <item>
      <title>"XP: melhor em Java ou em Ruby?" by Daniel F. Martins</title>
      <description>&lt;p&gt;Fui ler, mas parei logo no sum&#225;rio quando vi que o projeto Java utiliza Struts 1. &#201; como disseram, se querem comparar ferramentas aptas ao uso de t&#233;cnicas modernas (como o XP), que usem ferramentas modernas!&lt;/p&gt;

&lt;p&gt;Uma compara&#231;&#227;o justa seria fazer um paralelo entre o Rails e o Grails, por exemplo - uma vez que o Grails n&#227;o deixa de ser Java. E suspeito de que a vers&#227;o Grails se sairia melhor... :D&lt;/p&gt;</description>
      <pubDate>Sun, 26 Aug 2007 14:06:34 -0300</pubDate>
      <guid isPermaLink="false">urn:uuid:a411c642-06ae-49c7-8f3d-ffeae5ecce18</guid>
      <link>http://blog.improveit.com.br/articles/2007/08/23/xp-melhor-em-java-ou-em-ruby#comment-775</link>
    </item>
    <item>
      <title>"XP: melhor em Java ou em Ruby?" by Eduardo Bai&#227;o</title>
      <description>&lt;p&gt;Gostei bastante do trabalho deles. &lt;/p&gt;

&lt;p&gt;S&#243; teve um detalhe que n&#227;o achei legal:&lt;/p&gt;

&lt;p&gt;Quando vi a diferen&#231;a no n&#250;mero de linhas fiquei impressionado, mas depois quando eles foram comparar um trecho de c&#243;digo que usava banco de dados... A&#237; a compara&#231;&#227;o n&#227;o foi justa.&lt;/p&gt;

&lt;p&gt;No Ruby eles usaram o ActiveRecord e no Java foi de JDBC puro. A&#237; n&#227;o vale. Eles deveriam ter usado alguma camada ORB (tipo Hibernate) ou ter escrito o c&#243;digo Ruby assim:&lt;/p&gt;

&lt;p&gt;require 'mysql'&lt;/p&gt;

my = Mysql.new(hostname, username, password, databasename)

&lt;p&gt;con = Mysql.new('localhost', '', '', 'ruby')
rs = con.query('select * from student')
rs.each_hash {|h| puts h['name']}
con.close&lt;/p&gt;

&lt;p&gt;Que e t&#227;o feio qto aquele do Java.&lt;/p&gt;</description>
      <pubDate>Sat, 25 Aug 2007 09:29:28 -0300</pubDate>
      <guid isPermaLink="false">urn:uuid:a8530a29-be15-4de8-9ee5-31e4876d0cf9</guid>
      <link>http://blog.improveit.com.br/articles/2007/08/23/xp-melhor-em-java-ou-em-ruby#comment-774</link>
    </item>
    <item>
      <title>"XP: melhor em Java ou em Ruby?" by carlos alexandre</title>
      <description>&lt;p&gt;Uau! N&#250;meros interessantes, valeu! mas...&lt;/p&gt;

&lt;p&gt;Eu ainda n&#227;o tinha parado para brincar com Ruby por&#233;m recentemente li um livro que deixou claro essa caracter&#237;stica que faz dela alguma coisa importante em algumas situa&#231;&#245;es. No caso o autor fez uma compara&#231;&#227;o com Java em um DOM&#205;NIO ESPEC&#205;FICO.&lt;/p&gt;

&lt;p&gt;Considerando que o estudo feito foi na verdade uma compara&#231;&#227;o entre Struts e RoR com desenvolvimento primeiro em Java (ou melhor, Struts), acho 1) Java foi prejudicado e 2) E o XP com isso??? :O&lt;/p&gt;</description>
      <pubDate>Fri, 24 Aug 2007 17:23:41 -0300</pubDate>
      <guid isPermaLink="false">urn:uuid:7ad29b2d-1939-46f1-aed1-f99de4c7bcba</guid>
      <link>http://blog.improveit.com.br/articles/2007/08/23/xp-melhor-em-java-ou-em-ruby#comment-773</link>
    </item>
    <item>
      <title>"XP: melhor em Java ou em Ruby?" by Claudio Torcato</title>
      <description>&lt;p&gt;Ol&#225;.&lt;/p&gt;

&lt;p&gt;Creio ser injusta a compara&#231;&#227;o de um framework moderno como o Rails a outro mais antigo e um dos pioneiros como framework web MVC. H&#225; tamb&#233;m o fato de que na &#233;poca do surgimento do Struts, o desenvolvimento &#225;gil nem era popular. Se fosso popular naquela &#233;poca, talvez nunca tivesse existido o Struts e sua verbosidade assombrosa.&lt;/p&gt;

&lt;p&gt;Como uma linguagem din&#226;mica e &#225;gil (com menos idiossincracias), Ruby certamente se adequa melhor aos processos ag&#233;is.&lt;/p&gt;

&lt;p&gt;A minha opini&#227;o final &#233; que realmente Java &#233; chata e cansativa. Vai melhorar quando a sua comunidade olhar mais para os lados (talvez eles possam dizer para baixo).&lt;/p&gt;</description>
      <pubDate>Fri, 24 Aug 2007 07:04:08 -0300</pubDate>
      <guid isPermaLink="false">urn:uuid:394efeb7-c95f-4991-a52e-a7366c047b2f</guid>
      <link>http://blog.improveit.com.br/articles/2007/08/23/xp-melhor-em-java-ou-em-ruby#comment-772</link>
    </item>
    <item>
      <title>"XP: melhor em Java ou em Ruby?" by Eduardo Fiorezi</title>
      <description>&lt;p&gt;Acho que todo tipo de projeto de pesquisa &#233; v&#225;lido. Toda id&#233;ia que &#233; desenvolvida colabora para o aumento de material. 
Acho muito v&#225;lido a compara&#231;&#227;o deles no ambiente do contexto do trabalho. N&#227;o quer dizer que Rails vai ganhar em todas situa&#231;&#245;es. Mas na situa&#231;&#227;o deles, nas ferramentas que eles usaram eles atingiram aqueles resultados "."(ponto).&lt;/p&gt;

&lt;p&gt;Outras compara&#231;&#245;es vir&#227;o em outros projetos de pesquisa.&lt;/p&gt;

&lt;p&gt;Parab&#233;ns pelo trabalho. Abra&#231;os...&lt;/p&gt;</description>
      <pubDate>Thu, 23 Aug 2007 20:31:56 -0300</pubDate>
      <guid isPermaLink="false">urn:uuid:6ead2052-6fbb-430d-b5ca-d726532aa581</guid>
      <link>http://blog.improveit.com.br/articles/2007/08/23/xp-melhor-em-java-ou-em-ruby#comment-771</link>
    </item>
    <item>
      <title>"XP: melhor em Java ou em Ruby?" by Luca Bastos</title>
      <description>&lt;p&gt;Sei pouco de Ruby. J&#225; percebi que para coisas simples &#233; bastante poderoso. Mas olhando superficialmente este teste acad&#234;mico ficaram algumas d&#250;vidas:&lt;/p&gt;

&lt;p&gt;1) As 2 aplica&#231;&#245;es s&#227;o exatamente iguais? Isto &#233;, fazem a mesma coisa, possuem as mesmas valida&#231;&#245;es internas e usam ferramentas da mesma &#233;poca? Parece que no Java fizeram um monte de valida&#231;&#245;es a mais do que no Ruby.&lt;/p&gt;

&lt;p&gt;2) N&#250;mero de linhas de c&#243;digo serve para medir agilidade no desenvolvimento?&lt;/p&gt;</description>
      <pubDate>Thu, 23 Aug 2007 08:02:39 -0300</pubDate>
      <guid isPermaLink="false">urn:uuid:de534b1c-e3a5-4807-8a36-e087a6bf2e6c</guid>
      <link>http://blog.improveit.com.br/articles/2007/08/23/xp-melhor-em-java-ou-em-ruby#comment-770</link>
    </item>
    <item>
      <title>"XP: melhor em Java ou em Ruby?" by Guilherme Chapiewski</title>
      <description>&lt;p&gt;Uma cr&#237;tica (construtiva): sobre essa compara&#231;&#227;o (linhas de c&#243;digo em A e B) continuo achando meio... ahmm... n&#227;o sei ao certo a palavra. Talvez in&#250;til.&lt;/p&gt;

&lt;p&gt;Vamos l&#225;:&lt;/p&gt;

&lt;p&gt;1) Ser&#225; que num projeto de um site de com&#233;rcio eletr&#244;nico a propor&#231;&#227;o de linhas de c&#243;digo continuaria sendo 8 para 1? E num sistema de integra&#231;&#227;o de um PABX VoIP em C com um webservice .Net?&lt;/p&gt;

&lt;p&gt;O ponto &#233; que eu acho que esses n&#250;meros podem variar completamente de um projeto para outro e acho at&#233; que possa existir um caso de alguma coisa que possa ser feita em menos linhas em Java do que em Ruby (apesar de menos prov&#225;vel, admito).&lt;/p&gt;

&lt;p&gt;Acho que a explica&#231;&#227;o desse n&#250;meros pode ser melhorada para "considerando um projeto simples em plataforma web, a propor&#231;&#227;o de quantidade de linhas de Java para Ruby &#233; [tal]".&lt;/p&gt;

&lt;p&gt;2) Quando vejo esse tipo de compara&#231;&#227;o tenho a impress&#227;o de que quem fez est&#225; querendo dizer que por ter menos linhas um projeto em Ruby &#233; bem menos complexo que em Java.&lt;/p&gt;

&lt;p&gt;S&#243; esses n&#250;meros n&#227;o dizem absolutamente nada sobre a complexidade do software. Eu conhe&#231;o, por exemplo, um sistema de processamento de billing de uma grande operadora telefonica em Perl que tem menos de 1000 linhas mas s&#243; um &#250;nico programador Budista, manco, do Himalaia conseguia entender.&lt;/p&gt;

&lt;p&gt;Provavelmente a mesma coisa em Java teria 100 vezes mais c&#243;digo, por&#233;m seria muito mais f&#225;cil de ser mantida, entendida e melhorada por qualquer bom programador (e n&#227;o somente por um raro tipo de programador monge).&lt;/p&gt;

&lt;p&gt;N&#227;o necessariamente um c&#243;digo menor &#233; melhor pois "melhor" pode significar muitas coisas.&lt;/p&gt;

&lt;p&gt;3) Usar o Struts (completamente "deprecated") nesse comparativo contribuiu consideravelmente para o aumento desse n&#250;mero de linhas. Existem frameworks MVC para Java muito menos "verbosos" que ele.&lt;/p&gt;

&lt;p&gt;Mesmo com essas considera&#231;&#245;es, parab&#233;ns pelo trabalho.&lt;/p&gt;

&lt;p&gt;Aproveito para deixar claro que n&#227;o sou defensor de nenhuma linguagem espec&#237;fica e n&#227;o estou aqui querendo defender Java contra Ruby. Quem me conhece e/ou l&#234; meu blog sabe que sou bem ecl&#233;tico com linguagens de programa&#231;&#227;o e tecnologias em geral.&lt;/p&gt;

&lt;p&gt;Resumindo: isso n&#227;o &#233; um convite para um flame war :)&lt;/p&gt;</description>
      <pubDate>Thu, 23 Aug 2007 07:41:12 -0300</pubDate>
      <guid isPermaLink="false">urn:uuid:ba01ea8e-febf-40ab-916f-4cdddb789622</guid>
      <link>http://blog.improveit.com.br/articles/2007/08/23/xp-melhor-em-java-ou-em-ruby#comment-769</link>
    </item>
    <item>
      <title>"XP: melhor em Java ou em Ruby?" by Celestino</title>
      <description>&lt;p&gt;N&#227;o precisa nem de coment&#225;rios...&lt;/p&gt;</description>
      <pubDate>Thu, 23 Aug 2007 07:06:56 -0300</pubDate>
      <guid isPermaLink="false">urn:uuid:98fb9a3f-cc8d-458f-921f-7a3d33b7fc4a</guid>
      <link>http://blog.improveit.com.br/articles/2007/08/23/xp-melhor-em-java-ou-em-ruby#comment-768</link>
    </item>
  </channel>
</rss>
