Original em: http://leobalter.net/cases/escrever-ruby-de-uma-forma-melhor-com-tipagem-ou-codigo-mais-bonito/
Depois das ideias super bacanas que a comunidade Ruby trouxe, de fomentar o CoffeScript para escrever um “JavaScript” mais bonito, ou da Google de fazer o Dart para escrever um JavaScript “tipado”, resolvi também trabalhar em algo que deixaria o Ruby perfeito.
Puby e Juby! São dois projetos distintos mas com propósitos excelentes:
No Puby podemos escrever para a plataforma “Pails”, ou também “Puby on Pails”. A ideia é simples: o desenvolvedor precisa escrever em uma linguagem bonitona, como o Python, e aproveita a plataforma e bacanisse do framework Ruby on Rails.
Nada de indentação feiona, é importante seguir regras básicas para o código ter uma leitura mais humana.
Assim, um código onde está escrito:
print "Hello, World!"
é compilado para:
puts 'Hello, World!'
Não tem muito mistério, é só saber Ruby e Python que dá certo.
Já no Juby é pra dar maior robustez aos projetos feitos em Rails, assim temos o framework “Juby on Jails”.
A ideia é trazermos todo o conceito de classes e tipagens obrigatórias do Java para o Ruby, além de métodos e própriedades privadas, estáticas, e outras coisas a mais que tornam o Java tão performático.
Assim um código com:
public class HelloWorldConsole
{
public static void main(String args[])
{
System.out.println("Hello, World!");
}
}
é compilado para:
puts 'Hello, World!'
Traz sempre uma maior liberdade para o desenvolvedor e inclusive da pra trazer boas bibliotecas e elementos de frameworks do Java para o Rails, como o Struts, Hybernante, JSF, etc.
Todo o código é convertido para Ruby, isso pode ocorrer em um momento de deploy, assim, não compromete a performance e boa escrita do seu código, até porque código sempre é bem escrito em python e robusto em Java.
A comunidade Ruby tem muito mais a ganhar de colaboração pois pode ter ajuda massiva da galera de Java e Python e assim criar mais apps interessantes.
Assim que tiver mais resultados efetivos, vou publicar o código que já está no github.com
Po, você esqueceu do PhPuby:
print 'Hello, World!';
é compilado para:
puts 'Hello, World!'
Huahuahuahuahua