Tradução: O que Rails (2.2) Thread-safe significa?

by AkitaOnRails on Aug.17.2008 at 07:45pm

Desde meu relato sobre a RailsConf eu já havia dito que Josh Peek tinha um branch do Rails no Github, num trabalho para o Google Summer of Code, tendo Michael Koziarski como mentor.

Finalmente, David Hansson anunciou que Josh Peek passa a fazer parte do Core Team, e uma das coisas que isso implica é finalmente fazer o merge do branch de thread-safe do Josh para dentro do trunk oficial!

Agora, Charles Nutter – sempre à frente dessas polêmicas iniciais – resolveu escrever uma lista de perguntas e respostas (Q/A) sobre que efeitos thread-safety causa no Rails, e especialmente sobre o mundo JRuby. Naturalmente existem muitas opiniões do próprio Charles aqui, mas a maior parte deve ser factualmente correta.

Segue a tradução do artigo dele:

A derrota dos Reclamões

by AkitaOnRails on May.14.2008 at 02:32pm

O Charles postou um ‘call to action’ hoje no seu blog avisando que os famosos RubySpecs do Rubinius finalmente se tornou um projeto independente. A idéia desse call to action é integrar os diversos suites de testes que existem para Ruby em um único maior e mais completo. O JRuby hoje executa meia dúzia de pacotes separados e com muitos testes redundantes entre eles.

Um RubySpecs completo primeiro auxiliaria todas as outras implementações como IronRuby, Rubinius e o próprio MRI e cala a boca de todos que ficaram dizendo “Ruby não tem especificação”. E por falar em Rubinius, outro cala boca a quem não acreditava nele: no estágio atual ele já começa a rodar Merb. Claro, ainda é insipiente, mas é um sinal que as coisas estão evoluindo bem.

Outro ‘cala boca’ veio na forma do suporte a mod_rails pela Dreamhost. Vocês vão se lembrar que alguns meses atrás eles pisaram na bola ao simplesmente falar mal de Rails e cruzar os braços (sendo que são eles que lucram com hosting de Rails). Pois bem, como eu venho dizendo, o pessoal da Phusion mandou ver numa solução decente a agora a Dreamhost não tem do que reclamar. Os reclamões deveriam se sentir envergonhados de ver um grupo de garotos (o pessoal da Phusion está na média dos 23 anos) resolver esse tipo de problema que muitos achavam que era o “calcanhar de aquiles” do Rails. O Zed Shaw deu uma resposta à altura com Mongrel e agora a Phusion dá uma segunda resposta à altura com Passenger.

“Ruby é lento, JRuby é lento” bla bla bla. Quantas vezes já não ouvimos isso? Hoje na lista rails-br o Antonio Carlos, da Object Training, postou sua experiência sobre seus sistemas rodando no MRI e agora em JRuby. Inclusive, serve de cala-boca para mim mesmo: eles tem um ERP com boa parte feita em Rails :-) Aliás, é um bom texto para mostrar as diferenças de se fazer aplicações em PHP e Rails vindo da parte de quem tem real experiência com ambos.

Um ano atrás as coisas eram bem diferentes, dois anos atrás eram mais insipientes ainda. Em menos de 3 anos a comunidade Ruby deu um enorme salto à frente e é por isso que eu sempre digo: a melhor parte do Ruby é a comunidade que a cerca, um exército de pessoas pró-ativas e efetivamente geniais em programação. Todo ano eu penso: “será que tem tanta novidade para ter 2 RailsConf todos os anos?” E a resposta é sim! Mesmo quando eu e o Carlos Brando começamos a gravar nosso podcast semanal ficávamos pensando “será que vai ter assunto suficiente pra falar toda semana?” e, pelo tamanho de cada podcast, dá para ver que a densidade de novidades toda semana é enorme!

E, também como eu sempre digo, os que apenas reclamam e cruzam os braços nunca vão sair do lugar. Por isso mesmo o que temos hoje representa uma derrota dos Reclamões. Não dêem ouvidos a quem só sabe dizer “Não”. É como no mundo de consultoria nós definimos como “crocodilos”: boca grande e braços curtos.

Steve Jobs já usou essa famosa frase de Alan Kay: “A melhor forma de prever o futuro, é criar o futuro.”

JRuby 1.1 Lançado!

by AkitaOnRails on Apr.06.2008 at 01:06pm

O Thomas anunciou ontem o lançamento do JRuby 1.1. Um grande passo para Ruby na JVM e esta versão focou muito mais em performance, sendo que em alguns micro-benchmarks ele está até mesmo ultrapassando o YARV!

Dentre as principais novidades, algumas delas são:

  • Compilação de Ruby para Java Bytecote (em modo Ahead of Time – AOT – ou Just in Time – JIT)
  • Port do Oniguruma para Java (a nova engine de Regular Expressions, muito mais veloz)
  • Refatoração da implementação de IO
  • Melhorias no consumo de memória
  • Milhares de bugs de compatibilidade corrigidos

Excelente notícia!

JRuby 1.1RC2 - Ainda mais rápido!

by AkitaOnRails on Feb.18.2008 at 07:45am

Thomas Enebo e Charles Nutter anunciaram o JRuby 1.1 Release Candidate 2

Além de mais de 250 correções de bugs ainda conseguiram arrancar mais performance. Veja algumas análises prematuras aqui e aqui

Em alguns testes o JRuby 1.1 ultrapassa não somente o Ruby 1.8 como também o YARV 1.9.

Outro projeto que está em ritmo muito acelerado é o Rubinius. Eu venho acompanhando os últimos commits e este fim de semana eles acrescentaram mais testes em relação ao YARV 1.9 também. Parece que tanto JRuby quanto Rubinius estão mirando para ultrapassar o YARV. Coisas muito interessantes virão desses dois projetos.

Tidbits: Big Rails

by AkitaOnRails on Dec.22.2007 at 02:50pm

Resolvi criar essa nova categoria tidbits para que eu possa simplesmente escrever sobre diversos assuntos sem que eles tenham necessariamente uma relação entre si. Hoje quero falar sobre 37signals, iPhones e Erlang.

Para começar, ontem a 37signals divulgou alguns números internos sobre suas aplicações online que devem ajudar a demonstrar que tipo de exercício Rails suporta dentro da empresa dos seus criadores.

Basecamp (Gerenciador de Projetos)

  • 2 milhões de contas
  • 1,3 milhões de projetos
  • 13 milhões de to-dos
  • 9,2 milhões de mensagens
  • 12 milhões de comentários

Cuidado com suas Closures

by AkitaOnRails on Dec.21.2007 at 02:52pm

Recentemente eu escrevi um artigo explicando como funcionam os blocos/fechamentos em Ruby. É um recurso muito poderoso de algumas linguagens dinâmicas como Ruby.

Porém todo recurso poderoso deve ser usado com algum cuidado. E nesse caso é a utilização excessiva em casos que podem levar a alguns problemas. Mas não se preocupem, não é algo que deve afetar a grande maioria das aplicações. De qualquer forma vale a pena entender a mecânica de blocos conforme explicado por Ola Bini que, aliás, recomendo muito a leitura de seu blog que trás muitos behind-the-scenes das mecânicas de Ruby.

Vamos à tradução:

Oracle + Mix = JRuby on Public!

by AkitaOnRails on Nov.21.2007 at 08:47am

Acabei de ver no blog do Charles Nutter sobre o Oracle Mix. Provavelmente o primeiro website público de um grande nome colocado em produção usando JRuby. É uma ótima oportunidade para todos poderem ver que nível de performance o JRuby pode alcançar num site público.

Este site foi desenvolvido em parceria entre a OracleApps e a ThoughtWorks. Está rodando sobre Oracle Application Server, Oracle Database, Oracle Internet Directory, Oracle SSO e JRuby on Rails.

Um testemunho à produtividade do Rails: este website social foi desenvolvido em 5 semanas, em conjunto com a ThoughtWorks. Eles bem que podiam liberar quantas pessoas estava envolvidas no desenvolvimento e quais obstáculos foram enfrentados até chegar à produção. Em todo caso, mais um excelente case para a já enorme lista do Rails.

JRuby passando MRI, se aproximando do YARV!

by AkitaOnRails on Oct.12.2007 at 07:01am

Pelo visto não fui só eu quem não dormiu, Charles Nutter publicou agora há pouco alguns resultados – bem preliminares – de performance comparando JRuby, MRI (o Ruby oficial do Matz) e o YARV (o próximo Ruby, versão 1.9).

Charles fez várias modificações na engine do JRuby usando annotations de Java (um dos motivos deles terem abandonado a compatibilidade com Java 1.4). E pelo visto a mudança gerou bons resultados. Pelo menos nos testes não-científicos com o basicão algoritmo de Fibonacci, o JRuby já ultrapassou o MRI e está colando no YARV.

Em outro teste, ele rodou a comparação contra testes que foram otimizados para YARV. Novamente, JRuby tomou a dianteira do MRI e vai se aproximando de YARV. As coisas definitivamente estão ficando muito interessantes, muito rápido! Ainda há outras áreas em que o JRuby perde do MRI, é para onde as atenções do Charles devem se voltar nas próximas semanas.

De qualquer forma não são tudo flores exatamente agora. Há poucos minutos, Ola Bini também postou mais detalhes de performance, com um conjunto muito mais extenso de testes e, na maioria JRuby ganha do MRI e onde ele perde não perde tão feio. Mas há um porém: a performance de Rails sobre JRuby está uma droga :-) É o que ele chama de mistério pois nas dezenas de testes individuais JRuby é melhor que MRI, mas em Rails especificamente ele é muito pior e ainda não se achou o motivo do que está causando uma degradação generalizada tão grande.

Falta pouco :-)

Compilador JRuby Pronto!! DHH Keynote em Vídeo!

by AkitaOnRails on Sep.28.2007 at 12:09pm

Primeiro a notícia curta: quem quiser assistir à palestra do DHH na RailsConf Europe 2007, eis o link para uma versão em flash video (eu sei, argh).

Agora a notícia quente: Charles Nutter relata que o primeiro compilador completo de Ruby 1.8 está pronto! Eles trabalharam duro, durante viagens, fazendo palestras em conferências e codificando no meio do caminho, mas nada disso impediu que o trabalho fosse feito.

RailsConf EU 2007: Sucesso!

by AkitaOnRails on Sep.19.2007 at 08:32pm

David Hansson acabou de blogar aqui e aqui. As RailsConf (America e Europe) são de longe os eventos mais importantes de Rails no mundo. Juntos com a RubyConf isso fecha a RubyCentral como a maior referência mundial de eventos de Ruby e Rails, deixando qualquer outro bem distante. Claro, não podemos esquecer dos eventos regionais americanos como a Ruby HoeDown, que contam com muitas das mesmas pessoas como Charles Nutter, Thomas Fuchs, Ezra Zygmuntowicz, etc.

Heresia e Tartarugas com Avi Bryant

by AkitaOnRails on Sep.04.2007 at 12:08pm

O Ronaldo recentemente fez uma palestra sobre Seaside no TreinaTom. Aconselho todos que não assistiram que baixem a palestra gravada.

Para quem não assistiu:

  • Smalltalk : o pai de todas as plataformas/linguagens orientadas a objeto de hoje. Garbage Collector? Virtual Machine? Byte-code? Introspection? Orientação-a-Objetos? Quem acha que foi Java que inventou isso, deveria mudar de faculdade.
  • Squeak : é uma implementação moderna do Smalltalk. Pense no Rubinius no mundo Ruby, mas vai mais longe que isso.
  • GOODS : Generic Object Oriented Database System. É a camada de banco de dados.
  • Seaside : novo framework web feito em Smalltalk, que utiliza fortemente o conceito de componentes e continuações. Inspirado em outros frameworks como o excelente Apple WebObjects (um dos poucos frameworks Java realmente interessantes).
  • Avi Bryant : criador do framework e de excelentes produtos como DabbleDB, evangelizador feroz de Smalltalk. Ainda não é o equivalente a um Paul Graham (do Lisp) mas está por lá.

Tradução: Warbler, Um Pequeno Pássaro para Apresentar Sua App. Rails para Java

by AkitaOnRails on Sep.04.2007 at 10:04am

publicado por Nick Sieger

Esta semana eu estava trabalhando na integração dos recém-lançados JRuby 1.0.1 e Goldspike 1.3 em nosso ambiente, quando minha frustração alcançou um novo nível.

Tradução: Criador do Rails, sobre JRuby, Rails e Sun

by AkitaOnRails on Sep.02.2007 at 02:33am

Eu sempre leio os posts de Arun Gupta, do blog Miles to go … (uma das dezenas de blog no meu Google Reader). Ele sempre posta a respeito de JRuby. Hoje ele trouxe alguns pontos importantes de uma entrevista do DHH. Aqui vai a tradução:

Lançado JRuby 1.0.1 e ActiveRecord-JDBC 0.5

by AkitaOnRails on Aug.27.2007 at 01:05pm

JRuby continua evoluindo, desta vez são apenas pequenas correções no processamento de multiparts, alguns problemas de sockets que afetavam as bibliotecas net/*, timeout de rede de grandes pacotes e outros 28 bugs. Vejam o anúncio com os detalhes, aqui, ou já baixem a nova versão aqui.

Ao mesmo tempo, o ActiveRecord-JDBC também foi atualizado. Arun Gupta, do blog Miles to Go …, vem blogando mais detalhes sobre JRuby, Glassfish e tem um ótimo screencast. Uma das coisas que esta nova versão faz é simplificar o database.yml. Antes, para utilizar jdbc, precisava configurar deste jeito:

Novidade: JRuby Inside

by AkitaOnRails on Jul.16.2007 at 11:29am

Peter Cooper lançou hoje o novo site JRuby Inside que deve seguir os passos da já famosa Ruby Inside.

Para quem quiser se manter informado nos rápidos avanços do JRuby, este é um bom começo. Além dele eu sugiro os blogs do Ola Bini, do próprio Charles Nutter e da Atlantic Dominion Solutions.

Já baixaram o vídeo da palestra? Não deixem de se cadastrar no nosso Google Groups para discutirmos sobre esse assunto.

Rails Summit Latin America
Recommend me at Working with Rails
Vote no Rails Podcast Brasil!
Leia a tradução do livro Getting Real
Peepcode Supports AkitaOnRails.com
Compre Repensando a Web com Rails