Cio.com: Pra que serve Ruby?

Zed Shaw acaba de escrever um artigo para a cio.com.

[quote]
Deciding when to use any language–including Ruby–depends on the appropriateness to task and the amount of yak shaving necessary. Zed Shaw explains when Ruby’s MRI or JRuby is the best language for the job, and when it really isn’t.[/quote]

Segundo o artigo:

Ruby serve para:
Systems scripting and automation
Web programming, sometimes
Simplified APIs for nonexperts
Gluing C APIs together.
Prototyping network protocols
Web application testing.
Telephony applications.

JRuby serve para
Breathing new life into tired old Java APIs
Gluing together Java libraries.
Rapid prototyping and experimentation
Enterprise application integration
Web programming but with the Java platform
Swing or SWT GUI development.

Ruby NÃO PRESTA para:
Large data crunching
Image manipulation
Heavy math or computation
New language development
E-mail processing
Server protocols
Enterprise deployments

Sobre a parte de linguagens em específico:

Eu concordo que Ruby Não é uma boa linguagem para definir linguagem as discordo do motivo. O problema de erros pode ser resolvido com tratamento decente de exceções. O prblema é que Ruby não foi eito pensando niso e muitas regras da linguagem atraalham demais a construção de outras linguagens (ver thread sobre Monkey patching).

Mas, no final do dia, Ruby é provavelmente a melhor plataforma mainstream para criar DSLs hoje em dia. Eu diria que é até melhor que Lisp em termos de liberdade de sintaxe (apesar de perder miseravelmente em todos os outros aspectos).

Alé disso, a crítica do inicio do artigo é meio estranha. Com TreeTop você cria uma DSL externa mais facilmente qe com ANTLR.

Tudo verdade, mas como ele mesmo disse, é pro caso do MRI, JRuby só não mata “image manipulation” porque as bibliotecas de manipulação de imagens em Java são horríveis.

[quote=pcalcado]
Alé disso, a crítica do inicio do artigo é meio estranha. Com TreeTop você cria uma DSL externa mais facilmente qe com ANTLR.[/quote]

Desde quando escrever BNF e usar ANTLR foi facil? heehhehe

Aí vareia. Você está comparando com flex/bison? :stuck_out_tongue:

Olá

Realmente, estudar o ANTLR foi uma das coisas mais difíceis que fiz nos últimos anos. Gostaria de converter para Java uma linguagem orientada a um programa (naquele tempo a gente chamavade POL) que escrevi o parser há muitos anos e desisti depois de ler as partes I e II (2/3) do livro do Terence Parr.

[]s
Luca

Mas o ponto dele é que com Ruby é muito mais difícil de se fazer o mesmo por causa da falta de ferramentas/documentação pro trabalho.

Treetop.

Sei la, da ultima vez que eu vi, nao era tao facil fazer mensagens de erro uteis sairem de uma definicao do Antlr…

ANTLR é difícil pacas pois é o tipo de ferramenta que exige todo um conhecimento diferente do habitual para se escrever um programa. Por isso que coisas como parser combinators e PEQs são coisas muito mais práticas de serem usadas. O Bracha da uns exemplos muito legais de PC com newspeak. Outra coisa legal é ver o que fizeram no Irony, uma lib p/ C# que implementa o conceito - vale a pena ver a palestra que o autor deu no lang.net 2008

link, louds?

Links dos slides das palestras:
Newspeak - Bracha e Irony

O mfb postou as palestras, sugiro também assistir os vídeos, Quanto ao suporte a PC em newspeak a melhor referencia além do lang.net é o blog do Gilad. Esse artigo em particular: http://gbracha.blogspot.com/2007/09/executable-grammars.html