Monkeypatching is Destroying Ruby  XML
Índice dos Fóruns » Ruby & Ruby on Rails
Autor Mensagem
Daniel Quirino Oliveira
Moderador
[Avatar]

Membro desde: 23/03/2003 23:57:34
Mensagens: 3280
Localização: Awawawawa (Araraquara) - SP
Offline

Márcio, por favor, não desvie o assunto do tópico. Se você tiver alguma coisa a acrescentar de útil a este tópico, por favor, faça-o. Caso contrário, evite postar mensagens fora do assunto central do tópico. Como você mesmo disse, existem mensagens privadas para isso. Assunto encerrado.

Daniel Quirino Oliveira
[Email] [WWW]
Marcio Duran
Forum Spammer
[Avatar]

Membro desde: 23/01/2008 11:14:35
Mensagens: 1905
Offline

Daniel Quirino Oliveira wrote:Márcio, por favor, não desvie o assunto do tópico. Se você tiver alguma coisa a acrescentar de útil a este tópico, por favor, faça-o. Caso contrário, evite postar mensagens fora do assunto central do tópico. Como você mesmo disse, existem mensagens privadas para isso. Assunto encerrado.


Peço a genteliza de passar essa mensagem aos demais que estão fazendo-o tamanha bossalidade e simplesmente vem de faixada aqui, e que não estão explorando o assunto.

Como disse questionei, o Louds por suas afirmações todavia as mesmas estão sendo questionadas aqui, não tomo partido por ninguem e eu espero que você faça o mesmo.

Att.
Marcio Duran

This message was edited 1 time. Last update was at 04/03/2008 10:10:41


Consultor Open Source
Comunidade JavaLivros
Twitter Comunidade JavaLivros
Novo Blog do MiddleHeaven
[WWW]
nbluis
Forum Spammer
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

Voltando ao tópico.

Marcio Duran, o que você não entendeu mesmo ?
Tem tantas referencias ali que já não sei mais.

Sobre metaprogramação , resolução de nomes ?

Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
Marcio Duran
Forum Spammer
[Avatar]

Membro desde: 23/01/2008 11:14:35
Mensagens: 1905
Offline

nbluis wrote:Voltando ao tópico.

Marcio Duran, o que você não entendeu mesmo ?
Tem tantas referencias ali que já não sei mais.

Sobre metaprogramação , resolução de nomes ?


Veja a afirmação do Louds sobre Escopo..., não entendi...

Consultor Open Source
Comunidade JavaLivros
Twitter Comunidade JavaLivros
Novo Blog do MiddleHeaven
[WWW]
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

pcalcado wrote:

Eu quero que meu bloco tenha acesso ao escopo de B para poder usar o metodo bwawawawawa() mas ao mesmo tempo tenha acesso ao escopo original, para poder acessar @abc (ou um étodo que retorne abc, tanto faz).

Se não fosse por A ter estado eu poderia incluir B em A, o que seria gambiarra mas funcionaria e é o que fizemos com selenium. Este tipo de situação surge o tempo todo com DSLs.


Uma dúvida, se você casar um par de instance eval/ module_eval para instancias de definem apenas os *_missing não é possivel capturar todos bindings?

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
[ICQ]
nbluis
Forum Spammer
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

Marcio Duran wrote:
Veja a afirmação do Louds sobre Escopo..., não entendi...


Isso é exatamente o que está sendo discutido no tópico.
Este tópico tem um assunto mais complexo do que se está acostumado por ai.

Falam sobre o escopo de blocos dentro de ruby. Veja os exemplos do shoes que estão bem esplicados.

E inclusive a impossibilidade de limitar escopo de alterações feitas no core da linguagem possibilitada pelas classes abertas.

O post do louds sobre monkeypatching ficou bem legal.
Dá uma lida alí.

This message was edited 1 time. Last update was at 04/03/2008 10:40:35


Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
Fabio Kung
JavaEvangelist

Membro desde: 08/03/2004 08:24:47
Mensagens: 445
Localização: São Paulo
Offline

pcalcado wrote:Soluciona o problema porque você etá usando funções apenas, não objetos. Que tal:





Eu quero que meu bloco tenha acesso ao escopo de B para poder usar o metodo bwawawawawa() mas ao mesmo tempo tenha acesso ao escopo original, para poder acessar @abc (ou um étodo que retorne abc, tanto faz).

Se não fosse por A ter estado eu poderia incluir B em A, o que seria gambiarra mas funcionaria e é o que fizemos com selenium. Este tipo de situação surge o tempo todo com DSLs.


Emulemos então o binding hierárquico!

Agoro Ruby, e adoro metaprogramação!


Procurando por oportunidades de emprego?
OndeTrabalhar.com
OndeTrabalhar.com Java?


http://blog.caelum.com.br


Fabio Kung
[WWW] [MSN] [ICQ]
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

Fabio Kung wrote:
Emulemos então o binding hierárquico!

Agoro Ruby, e adoro metaprogramação!



Você tá simulando herança aqui, não binding hierárquico.

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
[ICQ]
nbluis
Forum Spammer
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

louds wrote:

Você tá simulando herança aqui, não binding hierárquico.


Isso é bastante usado em javascript para fornecer herança.

Prototype é um exemplo disso.

Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17442
Localização: SP
Offline

Bom, vou voltar aqui que a poeira abaixou, e vou fazer minhas declarações:

- Eu não sei Ruby;
- Entretanto, eu sei o que é metaprogramação e problemas de scoping e outros quetais;
- E vou fazer minha digressão aqui.

Há dois tipos de programadores: os "blue-collars" e os "white-collars". *
O sr. Gosling tinha afirmado uma vez que Java era para os programadores "blue-collar", ou seja, aqueles caras que antigamente se matavam para fazer os programas em C++ funcionarem, e agora se matam para fazer os programadores Java funcionarem no mundo real - deploys, web services e outras chateações. Eles não têm muitas idéias de conceitos abstratos, e é uma vitória que eles finalmente consigam entender corretamente o conceito de orientação a objeto, que levou muitas décadas para ser aceito.
Os "white-collars" são aqueles que entendem todos esses conceitos e criam novos, ou pelo menos têm a coragem de irem além desses conceitos. Programação funcional ou genérica para eles é o seu café da manhã, e é coisa muito antiga para eles - afinal de contas, quantos 50 anos tem a linguagem Lisp? Normalmente são os que falam de assuntos "esotéricos".

O sr. Marcio Duran (um clássico "blue-collar" - eles é que fazem o mundo girar) entrou no meio de uma discussão de "white-collars" e esperou tentar entender alguma coisa rapidamente**, só que não percebeu que "entrou na sala errada" e exigiu ser tratado como um igual. Aí é que ocorreu o problema.

---------

* Não estou usando aqui "white-collar" no sentido em que se dá nas editorias de política, que tratam de muitos "crimes de colarinho branco". Nada disso - uso em contraposição a "blue-collar", que é o colarinho de um macacão azul de um operário de fábrica.
** Como bom "blue-collar", ele não tem tempo de tentar entender essas coisas "esotéricas" e acha tudo uma grande besteira.
[WWW]
Fabio Kung
JavaEvangelist

Membro desde: 08/03/2004 08:24:47
Mensagens: 445
Localização: São Paulo
Offline

louds wrote:Você tá simulando herança aqui, não binding hierárquico.

Tem razão, mas nesse caso o efeito é o mesmo, certo?

E de qualquer forma, prefiro mesmo "simular herança" com delegação do que usar herança de verdade.

This message was edited 1 time. Last update was at 04/03/2008 15:32:39


Procurando por oportunidades de emprego?
OndeTrabalhar.com
OndeTrabalhar.com Java?


http://blog.caelum.com.br


Fabio Kung
[WWW] [MSN] [ICQ]
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5170
Localização: Sydney - Australia
Offline

louds wrote:Uma dúvida, se você casar um par de instance eval/ module_eval para instancias de definem apenas os *_missing não é possivel capturar todos bindings?


É basicamente o que venho utilizando hoje para contornar. O problema é que preciso avaliar em elo menos 3 bindings: do closure, da classe que recebe o closure e top-level. Conseguir o primeiro é complicado, a menos qu você faça a gambi que o Kung posto de passar self no método

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
[Email] [WWW] [Yahoo!] [MSN]
Fabio Kung
JavaEvangelist

Membro desde: 08/03/2004 08:24:47
Mensagens: 445
Localização: São Paulo
Offline

gambi essa minha que é melhor que a gambi de incluir o modulo!

Procurando por oportunidades de emprego?
OndeTrabalhar.com
OndeTrabalhar.com Java?


http://blog.caelum.com.br


Fabio Kung
[WWW] [MSN] [ICQ]
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3654
Localização: João Pessoa, Paraíba - Brasil
Offline

Tem algum jeito de pegar o call stack atual em Ruby como tem em Java?

This message was edited 1 time. Last update was at 04/03/2008 18:22:21


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?
[WWW] [MSN]
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5170
Localização: Sydney - Australia
Offline

Fabio Kung wrote:gambi essa minha que é melhor que a gambi de incluir o modulo!


Estamos discutindo qual gamiarra é melhor

CQD

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
[Email] [WWW] [Yahoo!] [MSN]
 
Índice dos Fóruns » Ruby & Ruby on Rails
Ir para:   
Powered by JForum 2.1.8 © JForum Team