| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/03/2008 22:17:57
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3654
Localização: João Pessoa, Paraíba - Brasil
Offline
|
louds wrote:Acho que usando 2 instancias, uma para a aplicação e outra para a DSL, com call by value, iow serializa todos argumentos, provavelmente funciona.
Sou fã desse bixo
De qualquer forma, não daria conflito de classloaders ter e usar a mesma classe duas vezes no mesmo lugar não?
Normalmente quando você carrega a mesma classe por dois classloaders e tenta fazer uma atribuição já pega uma CCE.
Não sei porque mas eu ainda acho a gambiarra do call stack menos bizonha (provavelmente porque eu ainda acho que o AspectJ era uma boa idéia)
|
Blog pt-br | Blog en | My Last.fm | Blog de RPG
----------------------------------------
PBJUG - Grupo de Usuários Java da Paraíba | Paraíba.rb - Paraíba Ruby Brigade
How do we tell truths that might hurt? |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/03/2008 22:29:45
|
tnaires
Forum Spammer
![[Avatar]](/images/avatar/5f6371c9126149517d9ba475def53139.png)
Membro desde: 22/12/2003 08:05:58
Mensagens: 1378
Localização: Natal - RN
Offline
|
Maurício Linhares wrote:Não sei porque mas eu ainda acho a gambiarra do call stack menos bizonha (provavelmente porque eu ainda acho que o AspectJ era uma boa idéia) 
Desculpe a ignorância, mas por que AspectJ não seria considerada uma boa idéia nesses dias?
Pergunto porque este mês comecei a estudar POA com AspectJ...
|
Tarso Nunes Aires
Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/03/2008 22:45:06
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3654
Localização: João Pessoa, Paraíba - Brasil
Offline
|
tnaires wrote:Desculpe a ignorância, mas por que AspectJ não seria considerada uma boa idéia nesses dias?
Pergunto porque este mês comecei a estudar POA com AspectJ...
Porque a necessidade de uma ferramenta de AOP pra fazer alguma coisa é um sinal de que a linguagem não oferece facilidades pra alteração das definições de objetos e classes em tempo de execução boas ou simples o suficiente.
|
Blog pt-br | Blog en | My Last.fm | Blog de RPG
----------------------------------------
PBJUG - Grupo de Usuários Java da Paraíba | Paraíba.rb - Paraíba Ruby Brigade
How do we tell truths that might hurt? |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2008 00:41:45
|
Proteu Alcebidiano
JavaEvangelist
![[Avatar]](/images/avatar/ceccbaaff99be20a857e00767f70b481.jpg)
Membro desde: 23/06/2006 14:38:34
Mensagens: 389
Localização: Cidadão do Mundo
Offline
|
Hum...acho que se voce transformar o seu bloco numa proc atraves de lambda e em seguida dar um call na proc, resolve o problema:
A sugestão para a bazooka procedeu sem problemas
e para as risadas malevolentes:
Só tem uma coisa que não entendi, para a segunda sugestão que passei, ele retorna
porque diabos a saida está assim, acusando erro de escopo mesmo imprimindo o valor do referido método? e porque a ordem de impressão dos atributos ficou invertida?
pior nem é isso. Quando eu inverto os valores em
ele imprime:
Alguém consegue explicar isso?
T+
|
Glaucio G. de M. Melo
Don't run Alone.
[gm]² on forecasting
The world is parallel, and yet most often we program real-world applications in sequential programming languages. This is unnecessarily difficult. (Joe Armstrong). |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2008 01:11:00
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5170
Localização: Sydney - Australia
Offline
|
Glaucio, você está executando o mesmo bloco várias vezes, não? A idéia é executar uma vez só e ter acesso aos métodos necessários nesta execução. Executar o mesmo bloco diversas vezes é inviável na maioria dos cenários para uma linguagem não funcional (que tem estado mútavel).
Btw, alguém implementa uma gambi com currying?
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2008 08:26:47
|
nbluis
Forum Spammer
![[Avatar]](/images/avatar/f0682320ccbbb1f1fb1e795de5e5639a.jpg)
Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline
|
pcalcado wrote:Será que JRuby não consegue resolver o seundo problema com classloaders diferentes? Não tenho idéia, não sei como o JRuby funciona... LOOOOOOOOOOOOOOUUUUUDS!!!
louds wrote:Acho que usando 2 instancias, uma para a aplicação e outra para a DSL, com call by value, iow serializa todos argumentos, provavelmente funciona.
Com Rubinius + MultiVM (que não sei a quantas isso anda) deve funcionar parecido não ?
|
Luis Eduardo Bohrer
Any fool can write code that a computer can understand. Good programmers write code that humans can understand. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2008 09:54:48
|
Fabio Kung
JavaEvangelist
Membro desde: 08/03/2004 08:24:47
Mensagens: 445
Localização: São Paulo
Offline
|
pcalcado wrote:São dois problemas. Um é a falta de opções de binding, fazendo com que eu tenha quea alterar classes (adicionar métodos em inteiros) quando o que eu queria era simplesmente que um método estivesse disponivel em um contexto qualquer. Outro é o fato de que se eu alterar uma classe (como consequência do primeiro ou não) eu altero ela em todo o sistemas.
Será que JRuby não consegue resolver o seundo problema com classloaders diferentes? Não tenho idéia, não sei como o JRuby funciona... LOOOOOOOOOOOOOOUUUUUDS!!!
Se não me engano, cada classe Ruby vira um objeto de verdade na JVM. Instância de RubyClass, ou algo do tipo.
Não precisa de vários ClassLoaders pq não é estático. Bastaria fazer com que os escopos pudessem estar associados a versões modificadas do RubyClass original. Isso não deve ser muito difícil de fazer, mas eu acho que a chance de fazerem deve ser perto de nula, já que isso faria com que o JRuby não fosse compatível com o MRI.
De qq forma, acho que vale um papo com o Nutter e cia no #jruby @ freenode, ou na lista do jruby-dev.
|
Procurando por oportunidades de emprego?
OndeTrabalhar.com
OndeTrabalhar.com Java?
http://blog.caelum.com.br
Fabio Kung
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2008 13:16:53
|
Proteu Alcebidiano
JavaEvangelist
![[Avatar]](/images/avatar/ceccbaaff99be20a857e00767f70b481.jpg)
Membro desde: 23/06/2006 14:38:34
Mensagens: 389
Localização: Cidadão do Mundo
Offline
|
pcalcado wrote:Glaucio, você está executando o mesmo bloco várias vezes, não? A idéia é executar uma vez só e ter acesso aos métodos necessários nesta execução. Executar o mesmo bloco diversas vezes é inviável na maioria dos cenários para uma linguagem não funcional (que tem estado mútavel).
Btw, alguém implementa uma gambi com currying?
Opa,
você tem razão, o que propus parecia trapaça para solucionar o problema, e o que é pior, nem currying para isso funciona direito porque lambda tenta processar o bloco com tudo o que tiver dentro dele o_O
O ponto é: lambda.call enxerga o escopo de A e tenta evocar o de B (dando a tal unresolved variable), instance_eval enxerga o escopo de B e não enxerga o de A.
De todo modo, o problema da bazooka pode se resumir a:
No caso do exemplo das risadas, não sei como proceder...nao sei como, mas se lambda pudesse aceitar algo tipo:
Seria interessante, pois poderiamos fazer o bloco enxergar o escopo externo ao bloco
T+
|
Glaucio G. de M. Melo
Don't run Alone.
[gm]² on forecasting
The world is parallel, and yet most often we program real-world applications in sequential programming languages. This is unnecessarily difficult. (Joe Armstrong). |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2008 13:58:43
|
nbluis
Forum Spammer
![[Avatar]](/images/avatar/f0682320ccbbb1f1fb1e795de5e5639a.jpg)
Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline
|
Proteu Alcebidiano wrote:
Seria interessante, pois poderiamos fazer o bloco enxergar o escopo externo ao bloco
T+
Nesse caso, eu ainda gosto da idéia do binding hierárquico.
|
Luis Eduardo Bohrer
Any fool can write code that a computer can understand. Good programmers write code that humans can understand. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2008 15:57:40
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
Fiquei pesando no seguinte, da mesma forma que se usa o Ycomb para implementar recursão em um lambda, será que não existe como derivar o fix point dos bindings e, ao ir adiante, ir chamando tudo via algo semelhante ao Ycomb?
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/03/2008 02:06:06
|
Proteu Alcebidiano
JavaEvangelist
![[Avatar]](/images/avatar/ceccbaaff99be20a857e00767f70b481.jpg)
Membro desde: 23/06/2006 14:38:34
Mensagens: 389
Localização: Cidadão do Mundo
Offline
|
louds wrote:Fiquei pesando no seguinte, da mesma forma que se usa o Ycomb para implementar recursão em um lambda, será que não existe como derivar o fix point dos bindings e, ao ir adiante, ir chamando tudo via algo semelhante ao Ycomb?
Rapaz, usando a idéia de combinators em bindings seria interessante porque voce poderia mudar a regra de binding sem precisar modificar o runtime da linguagem, e considerando que bindings realizam ações (funçoes) de referência, poderia-se criar uma high-order function para bindings...algo tipo, numa implementaçao de Y-comb (pegar uma implementação em erlang, pra facilitar a leitura)
voce ter uma funcao de counting ou binding regstry, que seria acionada pelo analisador a cada vez que um comando dentro de um bloco não estivesse definido no escopo mais "raso" do código:
ou então, se não quiser fazer algo hierárquico, colocar numa hash ou lista ao invés de um contador.
Algo assim procede ou tou viajando? =D
T+
|
Glaucio G. de M. Melo
Don't run Alone.
[gm]² on forecasting
The world is parallel, and yet most often we program real-world applications in sequential programming languages. This is unnecessarily difficult. (Joe Armstrong). |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/03/2008 22:18:18
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5410
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
pcalcado wrote:Eu acho que monkey patching é algo abusado em Ruby.
http://gbracha.blogspot.com/2008/03/monkey-patching.html
Gilad Bracha wrote:Regardless, given my flattering portrayals of primate practices, you may deduce that my main comment on monkey patching is ?just say no?. The problems it induces far outweigh its benefits. If you feel tempted, think hard about design alternatives. One can do better.
Também acho arriscado permitir que isto aconteça.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/03/2008 22:20:38
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5170
Localização: Sydney - Australia
Offline
|
Esse artigo me deixou bem interessado em COP. Pena que a leitura vai ter que esperar um bom tempo na fila...
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
|
|