Ruby on Rails ??  XML
Índice dos Fóruns » Ruby & Ruby on Rails
Autor Mensagem
J2Alex
JavaEvangelist
[Avatar]

Membro desde: 18/01/2003 08:14:41
Mensagens: 341
Localização: São José dos Campos
Offline

daniellibanori wrote:Sim, os atributos foram carregados, porém nada garente que eles não tenham mudado, por isso ao requisitar um atributo ele recarrega apartir do banco de dados. Estou falando isso sem confirmar, viu? Vou fazer um teste depois na minha máquina e te informo o que descobri.



Alexandre ( J2Alex )

Desenvolvedor Java EE
ITA (Instituto Tecnológico de Aeronáutica)

Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0

Não temeis pelos dias que virão - tens a espada e tens as honras e um coração gentil.
aim icon
Mauricio Linhares
Moderador
[Avatar]

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

bzanchet wrote:Mas, vejam bem: o ActiveRecord faz mapeamento objeto-relacional, certo? E dentro de uma mesma requisição um mesmo objeto esta sendo acessado várias vezes (no exemplo, a mídia de id 2 e o filme de id 3). Se os objetos 'filme' e 'midia' foram instanciados e preenchidos com dados lidos do BD uma vez (no momento do acesso - 'lazy loading'), não deveriam 'existir' pelo menos até o final da requisição, tornando desnecessários novas consultas ao banco de dados?


Bem, isso é o que o Hibernate faria, e o Active Record não é o Hibernate

Nem parece haver interesse na galera que desenvolve ele em deixá-lo parecido com o Hibernate. As vezes agente se acostuma tanto com a mágica, que ela fica praticamente natural

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]
Thiagosc
Forum Spammer

Membro desde: 27/04/2006 21:01:27
Mensagens: 1134
Offline

daniellibanori wrote:Thiagosc

Amigo, por favor, não confunda Java com Eclipse. Caso você não sabia, um dia, houve programadores Java quando o Eclipse ainda não existia.
E caso você ache que um @ para definir uma variável de instância é algo muito complexo, o que você vai me dizer de: private static int número? Ou dos outros milhares de qualificadores que Java possui? Inclusive isso é motivo de chacota da linguagem.


O tempo passa e as nossas expectativas quanto ao que o software deve desempenhar também aumentam. Portanto não é viável confiar em notepad para nenhum desenvolvimento profissional. O fato de em 1997 existirem desenvolvedores sem Eclipse não significa absolutamente nada.

Dá só uma olhada no que um SO para usuários comuns fazia em meados dos anos 90 e olha agora! Os requisitos não param de aumentar!

O uso de @ ou $ pode ser fácil ou não, vai depender se você prefere ler salada sem sequer highlighting no 'vi' ou notepad, mas o fato é que isso apenas demonstra que a linguagem visa resolver a falta de ferramentas decentes.

Como eu disse noutra thread, o IDE é para o programador o que uma calculadora científica ou um CAD é para um engenheiro. É uma ferramenta que auxilia o nosso trabalho, mas não é desculpa para não saber o que acontece por debaixo dela.

O "static" e coisas do gênero são uma questão de gosto, eu prefiro ver "static" do que "@" ou qualquer outro símbolo, afinal de contas eu não preciso me preocupar com "keystrokes". Os tipos "int" e o que mais é questão de segurança, mas se acha que segurança não é importante ninguém tem nada a ver com isso também.

daniellibanori wrote:Quanto a fazer código em NotePad ou Ultra-IDEs, acho que talvez você não conheça o poder de uma boa linguagem. Uma boa IDE é indispensável quando se tem uma péssima linguagem.


Errado, uma boa IDE é indispensável sempre. Nós como programadores e usuários de tecnologias devemos sempre exigir mais, sempre elevar o nível mínimo. Quanto mais for o "mínimo" melhor será o nosso trabalho.

Além do mais você ignora o fato de que uma IDE serve para mais coisas do que simples auto-completion de código ou templates de código. Elas integram diversas ferramentas como debugger, profiler, servidores, interfaces para DBs, interfaces para software de controle de versão, testadores, etc.

daniellibanori wrote:
Por isso, programadores Ruby estão livres para programar em diversos ambientes que não sejam o pesadíssimo, e super competente, Eclipse: a linguagem é boa e não apenas a IDE.


Acho que esse é o mesmo caso dos usuários Python criticando o Java pelo modificador "private", ou seja, "se a minha linguagem favorita não tem então todos que tem são maus".

daniellibanori wrote:
Sobrecarga de operador em Ruby

def >
#código
end

Difícil? Deve ser uma porcaria mesmo caso os caras da Sun resolvessem adicionar sobrecarga em Java, provavelmente algo parecido com C++, não?


Acho que da sobrecarga de operadores não é a sintaxe para tal, mas a bagunça que pode ser feita no código e possíveis problemas de manutenção.

Se todas pessoas pensassem igual e fizessem igual não seria um problema, mas sabemos que pessoas diferentes tem idéias diferentes, e elas pode inadvertidamente criar um monstro com sobrecarga de operador e pensar "ser super fácil".

Para mim operadores deveriam servir para números apenas. Se a Sun fizesse o mesmo que fizeram com Strings, eu não veria problema algum, mas se fizesse essa porcaria de feature eu começaria a pensar em mudar de plataforma, pois é sinal que eles não fazem a mínima idéia do que estão fazendo com o Java.


daniellibanori wrote:
Sem fanatismos, mas Java, pelo menos sintaticamente, é arcaica. Você não precisa pesquisar muito para descobrir porque foi construida assim: facilitar a adoção por parte do programadores oriundos de C e C++. E C++ não é famosa pela sua ótima sintaxe.

Java, sintaticamente, não possui nenhuma feature que possa ser considerada interassante. Não estou querendo desqualificar a linguagem, mas isso é uma verdade contundente. A Sun não ousou e a comunidade não vai ousar sair do padrão já estabelecido. Isso não é bom, nem mal, é apenas um dos camimhos que se pode tomar.


Linguagens vão muito além de sintaxe. Analisar uma linguagem apenas pela quantidade de keystrokes, sem querer ser agressivo, mas é uma grande ignorância.

Eu acho Java uma boa linguagem, com as features que interessam no momento, afinal de contas um ambiente de desenvolvimento profissional não é apenas a linguagem, mas também as APIs, as IDEs, as tecnologias bem desenvolvidas etc. Portanto vendo a big picture eu diria que Java está a frente de Ruby.

Se for entrar numa discussão puramente acadêmica sobre qual linguagem é "a melhor" Java que não será, mas tampouco será Ruby.

Estou sendo pragmático aqui, se você prefere pensar em termos de ideais, aí já é outra história e outra discussão.

Thiagosc
Forum Spammer

Membro desde: 27/04/2006 21:01:27
Mensagens: 1134
Offline

Proteu Alcebidiano wrote:O que mais me chamou a atenção foi que mesmo tendo anos que experiencia com C / Java e alguns dias em ruby, tive a sensação que se eu tivesse feito em C / Java eu iria demorar mais.


Acho que isso comum a qualquer linguagem script. O ambiente perdoa muito mais do que uma linguagem como Java. O fato de não ser obrigado especificar tipos e se procupar com diagrama de classes e arquiteturas ou com trabalho braçal como no caso do C dá a impressão de que é mais rápido, é muito fácil escrever qualquer coisinha que cuspa algum resultado na tela.

Mas é só impressão mesmo. Isso não significa que o resultado será melhor.
peczenyj
Moderador
[Avatar]

Membro desde: 26/03/2006 23:25:37
Mensagens: 2762
Localização: Rio de Janeiro
Offline

Não precisa declarar tipos, mas tem Duck Typing

http://pacman.blog.br

'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
[WWW]
pcalcado
Moderador
[Avatar]

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

Thiagosc wrote:se procupar com diagrama de classes e arquiteturas


Uh? Eu tambem gosto de bolo de banana.











(i.e. Que raios tem a ver uma coisa com a outra?!?)










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]
Proteu Alcebidiano
JavaEvangelist
[Avatar]

Membro desde: 23/06/2006 14:38:34
Mensagens: 389
Localização: Cidadão do Mundo
Offline

Thiagosc wrote:
Mas é só impressão mesmo. Isso não significa que o resultado será melhor.


er...o resultado foi melhor

Como falei, uso ferramentas conforme a necessidade. Dói menos escrever:



ao invés de



Pra mim, quanto menos eu ficar negociando com a API, melhor. Enfim, cada caso é um caso. =)

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).
[MSN]
daniellibanori
Thread.start()
[Avatar]

Membro desde: 21/07/2004 18:36:54
Mensagens: 34
Localização: São Paulo
Offline

Em primeiro lugar, desculpem-me pela mensagem imensa.

Thiagosc wrote:
O tempo passa e as nossas expectativas quanto ao que o software deve desempenhar também aumentam. Portanto não é viável confiar em notepad para nenhum desenvolvimento profissional. O fato de em 1997 existirem desenvolvedores sem Eclipse não significa absolutamente nada.


Isso demonstra bem que você tem muito pouco conhecimento do que está criticando. A linguagem Ruby foi desenvolvida no início da década de 90, muito próximo ao Java inclusive. E naquela época não existiam IDEs com metade do poder que existem hoje.

Thiagosc wrote:
O uso de @ ou $ pode ser fácil ou não, vai depender se você prefere ler salada sem sequer highlighting no 'vi' ou notepad, mas o fato é que isso apenas demonstra que a linguagem visa resolver a falta de ferramentas decentes.


VIm possui highlighting e auto-completion. Sinto muito que você não saiba utiliza-lo. Java ao ser criada nem ao menos tentou resolver a falta de ferramentas, correto?
Outro ponto, mais importante, é que é fato empírico que existe um nível saudável de simbolismos que aumentam a legibilidade do programa.

Thiagosc wrote:
Os tipos "int" e o que mais é questão de segurança, mas se acha que segurança não é importante ninguém tem nada a ver com isso também.


Esse tipo de argumentação mostra que você desconhece bem as implicações de tipagem dinâmica. Sei que ela tem seus prós e contras, mas dizer que o programa se torna menos seguro é atestar o desconhecimentoa respeito do assunto.
Só por curiosidade, quantas vezes na vida você ja chamou funções que não pertecem a um determinado objeto? Esse tipo de erro praticamente nunca ocorre. E você ainda possui mecanismos para verificação de tipo caso seja necessário.

Minha IDE chama-se VIm e um conjunto extenso de programas UNIX que atuam bem, e rápido, em um escopo reduzido.

Thiagosc wrote:
Além do mais você ignora o fato de que uma IDE serve para mais coisas do que simples auto-completion de código ou templates de código. Elas integram diversas ferramentas como debugger, profiler, servidores, interfaces para DBs, interfaces para software de controle de versão, testadores, etc.


E o que isso significa? Que não existe outra forma de debugger, profiler, testadores em Ruby?! Que a única forma de ter acesso a essas ferramentas são IDEs?!
Antes de criticar, por favor, se informe. Ruby possui um framework de testes integrado a biblioteca básica da linguagem. Ruby possui um utilitário de instalação e remoção de pacotes, gems em ruby, que já instala a documentação necessária. Ruby possui console interativo para você experimentar construções ou que você desejar fazer. Ruby possui um utilitário de consulta a documentação on-line.
Existem outras formas de se obter os resultados que para você só podem ser obtidos através de poderosas IDEs.

Thiagosc wrote:
Acho que esse é o mesmo caso dos usuários Python criticando o Java pelo modificador "private", ou seja, "se a minha linguagem favorita não tem então todos que tem são maus".


Para mim esse parece ser o SEU comportamento. Quem veio fazer críticas e falar que Ruby não possui boas IDEs foi você. Eu apenas argumentei que a linguagem não é tão dependente de um IDE específica e disse que a importância de uma boa IDE é outra. E que em Ruby a realidade do ambiente de desenvolvimento é outra. E existem boas IDEs ou ferramentas que não deixam o programador Ruby na mão, você apenas as desconhece.

Thiagosc wrote:
Acho que da sobrecarga de operadores não é a sintaxe para tal, mas a bagunça que pode ser feita no código e possíveis problemas de manutenção.


Concordo. Eu me limitei ao aspecto sintático porque era esse o meu foco na discussão.

Thiagosc wrote:
Se todas pessoas pensassem igual e fizessem igual não seria um problema, mas sabemos que pessoas diferentes tem idéias diferentes, e elas pode inadvertidamente criar um monstro com sobrecarga de operador e pensar "ser super fácil".


Em Ruby, um operador nada mais é que uma chamada a uma função. Você pode criar funções em Java?! Isso torna seu código mais complicado?
Concordaria com você caso me dissese que eles, os operadores, podem levar o programador a conclusões errôneas. Porém, em última instância, quem programa é o programador, e se o programador não sabe o que está fazendo então ele não deveria estar programando. Sobrecarga de operador não é uma tarefa proponsa a erros que necessita ser evitada.
Ruby, diferente de Java, não é uma linguagem que tenta proteger o programador de si mesmo. Ruby oferece soluções elegantes a bons programadores. Isso é uma faca de dois gumes, pois dá a liberdade de mals programadores fazerem coisas bizarras...

Thiagosc wrote:
daniellibanori wrote:
Sem fanatismos, mas Java, pelo menos sintaticamente, é arcaica.


Linguagens vão muito além de sintaxe. Analisar uma linguagem apenas pela quantidade de keystrokes, sem querer ser agressivo, mas é uma grande ignorância.


Sem querer ser agressivo. Mas comporte-se como se eu estivesse falando de uma linguagem, ferramenta, e não como de um parente seu.
Caso você não tenha lido, eu vou colocar em negrito para não passar em branco dessa vez:

Java, pelo menos sintaticamente, é arcaica.

Eu fui claro o suficiente quando estou me referindo apenas ao aspecto sintático da linguagem? Falei que Java é uma porcaria como um todo ou apenas disse que sintaticamente é arcaica? Por favor, não coloque palavras na minha boca, pois em nenhum momento eu disse que Java é uma porcaria.

Thiagosc wrote:
Portanto vendo a big picture eu diria que Java está a frente de Ruby.


Em nenhum momento eu disse o contrário. Mas acho que para alguns casos específicos, Java já está perdendo espaço para outras alternativas. Isso é bom, até para vocês, que vão se ver obrigados a se modernizar e correr atrás do tempo perdido em alguns aspectos.

Thiagosc wrote:
Estou sendo pragmático aqui, se você prefere pensar em termos de ideais, aí já é outra história e outra discussão.


Falta muito para você ser pragmático.

Daniel

"Embora quem quase morre esteja vivo, quem quase viveu já morreu."
Erico Veríssimo
[MSN]
daniellibanori
Thread.start()
[Avatar]

Membro desde: 21/07/2004 18:36:54
Mensagens: 34
Localização: São Paulo
Offline

Thiagosc wrote:
O fato de não ser obrigado especificar tipos e se procupar com diagrama de classes e arquiteturas ou com trabalho braçal como no caso do C dá a impressão de que é mais rápido, é muito fácil escrever qualquer coisinha que cuspa algum resultado na tela.

Mas é só impressão mesmo. Isso não significa que o resultado será melhor.


Nossa... esse tipo de mensagem acaba com o meu dia. Só esse post representa uns 5 anos de desatualização em novas abordagens de desenvolvimento.

Daniel

"Embora quem quase morre esteja vivo, quem quase viveu já morreu."
Erico Veríssimo
[MSN]
juzepeleteiro
Virtual Machine Man

Membro desde: 19/07/2005 16:01:40
Mensagens: 583
Localização: Rio de Janeiro
Offline

daniellibanori wrote:
Thiagosc wrote:
O fato de não ser obrigado especificar tipos e se procupar com diagrama de classes e arquiteturas ou com trabalho braçal como no caso do C dá a impressão de que é mais rápido, é muito fácil escrever qualquer coisinha que cuspa algum resultado na tela.

Mas é só impressão mesmo. Isso não significa que o resultado será melhor.


Nossa... esse tipo de mensagem acaba com o meu dia. Só esse post representa uns 5 anos de desatualização em novas abordagens de desenvolvimento.


Não esqueça que para o Thiago IDE boa é o RAD da IBM...

http://ofert.as - Cupons de desconto
[Email] [WWW] [MSN]
ZehOliveira
Virtual Machine Man

Membro desde: 12/12/2003 22:13:49
Mensagens: 964
Localização: Maceio-AL
Offline

Já já chegarão ao ponto de dizer: "Java é uma linguagem melhor por que seus programadores usam Eclipse, que é bonitinho e cheio de recursos, e Ruby é uma linguagem pior por que seus programadores usam Vi, que não não tem menus e janelinhas pipocando a todo momento".

Eu programo Ruby no Eclipse. E aí? A linguagem ficou melhor por que eu tou usando o Eclipse? Pra mim, fica a mesma coisa, só que vou ter um custo bem menor pra executar determinadas tarefas.

Discussão mais sem sentido.
Daniel Quirino Oliveira
Moderador
[Avatar]

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

daniellibanori wrote:
Thiagosc wrote:
O tempo passa e as nossas expectativas quanto ao que o software deve desempenhar também aumentam. Portanto não é viável confiar em notepad para nenhum desenvolvimento profissional. O fato de em 1997 existirem desenvolvedores sem Eclipse não significa absolutamente nada.


Isso demonstra bem que você tem muito pouco conhecimento do que está criticando. A linguagem Ruby foi desenvolvida no início da década de 90, muito próximo ao Java inclusive. E naquela época não existiam IDEs com metade do poder que existem hoje.


E até 2001 não existiam IDEs Java dignas de boas lembranças também. Será que não está demorando um pouquinho para criarem alguma coisa na linha para Ruby também (além do Eclipse RDT, é claro)?

daniellibanori wrote:
Thiagosc wrote:
O uso de @ ou $ pode ser fácil ou não, vai depender se você prefere ler salada sem sequer highlighting no 'vi' ou notepad, mas o fato é que isso apenas demonstra que a linguagem visa resolver a falta de ferramentas decentes.


VIm possui highlighting e auto-completion. Sinto muito que você não saiba utiliza-lo. Java ao ser criada nem ao menos tentou resolver a falta de ferramentas, correto?
Outro ponto, mais importante, é que é fato empírico que existe um nível saudável de simbolismos que aumentam a legibilidade do programa.


Pessoalmente, acho $ e @ bem ruins, e acho coisas como blocos try/catch bem malas também. Os primeiros aumentam muito a minha "developer memory load", pois eu preciso sempre ficar lembrando e associando que $=public. Ambos tornam meus códigos bem chatos de serem lidos.

Contudo, dificilmente alguém vai alterar a linguagem Java para oferecer um suporte a tratamento de exceções semelhante ao do IO nem alterar a linguagem Ruby para introduzir palavras-reservadas private/static/public/whatever pois isso leva a um risco de projeto que certamente não vale a pena correr. Então, acostumem-se com estas características, tentem achar um jeito de driblá-las e parem de achar que só por estes motivos fúteis uma linguagem é melhor/pior do que a outra.

Sabem uma coisa bem interessante que existe no Ruby e que ninguém aponta como um defeito do Java? Um sistema de tipos numéricos tão flexível quanto o Fixnum/Bignum. Isso é muito útil em Ruby e faz uma real diferença no dia-a-dia, principalmente se seu dia-a-dia for recheado por sistemas financeiros/científicos em que é preciso lidar o tempo todo com números que muitas vezes podem escapar da faixa de valores de um determinado tipo e dar um overflow sem você notar.

Contudo, Ruby poderia ter um sistema de threads decente, sem aquela implementação amadora de green threads que permite que implementemos sistemas multi-thread sobre o DOS (yupi! \0/ ).

Daniel Quirino Oliveira
[Email] [WWW]
flaleite
JavaEvangelist

Membro desde: 31/03/2006 15:28:55
Mensagens: 471
Localização: Ribeirão Preto - SP
Offline

Uma coisa que estressa no RoR é que algumas coisas realmente são bem mais simples porém tem outras que para funcionar tem que se fazer umas gambis violentas (não que Java não tenha disso)...

Exemplo, vai brincar de Class Table Inheritance no Rails,vai ...

Flávio Suguimoto
flaleite.blogspot.com
[MSN]
ZehOliveira
Virtual Machine Man

Membro desde: 12/12/2003 22:13:49
Mensagens: 964
Localização: Maceio-AL
Offline

flaleite wrote:Uma coisa que estressa no RoR é que algumas coisas realmente são bem mais simples porém tem outras que para funcionar tem que se fazer umas gambis violentas (não que Java não tenha disso)...

Isso é verdade.

Uma vez, em um pet project, eu precisei fazer um relacionamento duplo - algo do tipo um jogo tem o time da casa e o visitante - e não teve documentação, comunidade ou fórum que me respondesse como fazer isso. Tentei de tudo que tinha na documentação do Rails. Resultado: deixei a brincadeira pra lá.

Às vezes, o excesso de convenção no rails me deixa um pouco irritado.
peczenyj
Moderador
[Avatar]

Membro desde: 26/03/2006 23:25:37
Mensagens: 2762
Localização: Rio de Janeiro
Offline

Eu acho que vcs deviam voltar ao ANSI C.

Querem orientação à objetos?? Criem estruturas com ponteiros para funções

http://pacman.blog.br

'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
[WWW]
 
Índice dos Fóruns » Ruby & Ruby on Rails
Ir para:   
Powered by JForum 2.1.8 © JForum Team