http://www.linhadecodigo.com.br/artigos.asp?id_ac=645
Outro artigo do autor: http://www.linhadecodigo.com.br/artigos.asp?id_ac=644
daniel, o q vc achou da opinião dele ?
Concordo em muitas coisas com ele.
O java não foi concebido para ser o que é hoje.
O que falta nesta plataforma é uma padronização de especificações e não
este monte de projetos paralelos que se tem hoje em dia.
Eu acho que para sistemas empresariais deveria ser utilizado mais abstração sim.
Um modelo de desenvolvimento mais produtivo e inteligente.
Mas se pensarmos em nível de linguagem o Java é absolutamente
imbatível hoje.
O que nós desenvolvedores temos que fazer é não ficarmos indo atrás
de “modinhas” e sim de soluções e padrões concretos.
Essa epidemia OO as vezes é um saco. O que falta é um bom censo geral
e uma maturidade maior.
Muita gente usa Java igual na época do VB. Tudo mundo está usando.
Sem nenhum critério. Hibernate, Struts, JSF, Tralalá…etc vão no mesmo
caminho…
“Tratar eventos dos objetos assim como Delphi os implementa e não da forma ridícula como são feitos em Java.”
Hahahaha! Nego é louco! Ele não sabe nem onde está.
[editado]Há! E tem um detalhe que ele simplesmente esqueceu: ele vai continuar desenvolvendo em Delphi pelo menos até quando a Borland continuar dando suporte. Por que o Kylix parece que já foi pro saco. O VB6 a MS já mandou pro inferno também. É uma beleza! Eu lembro bem em meados da década de 90, quando perdi quilos de código em Turbo Pascal pq a Sra. Borland sumiu com ele e o port pra um outro compilador pascal era inviável e todo mundo já estava com aquela sensação de que os programas para DOS acabariam logo, o que na prática não se confirmou. Minha bronca com Borland e Microsoft são essas – sem + nem - eles te soltam em queda e vc e seu investimento que se f*.[/editado]
Qual sua sugestão?
Conheço 4 pessoas que programam OO devidamente. Não sou uma delas
Concordo com você que há uma epidemia de pessoas tentando programar utilizando OO (meu caso), e de um outro bom punhado que acha que está desenvolvendo projetos OO. Mas pessoas que fazem o treco direito são raras.
Muita gente usa Java igual na época do VB. Tudo mundo está usando.Concordo completamente. Pessoal quer saber de fazer telinhas arrastando as coisas e conectar no banco.
Nao sei como o Delphi trata eventos, mas sobre a parte de a implementacao do Java ser ridicula, eu concordo. Inner classes anonimas sao pavorosas quando se ve que, na verdade, o que eles queriam eram closures, mas nao teriam performance, e a JVM teria que sofrer adaptacoes em pontos meio dolorosos. A AWT, Swing e SWT pagam o pato por essa decisao ate hoje :?
http://www.linhadecodigo.com.br/artigos.asp?id_ac=645Outro artigo do autor: http://www.linhadecodigo.com.br/artigos.asp?id_ac=644
Sobre o segundo link, eu concordo em partes com autor. No que se refere a custo na minha concepção tudo tem um custo, desde que seje algo mensuravel e não absurdo que as grande empresas cobram por seus produtos.
A questão da garantia e uma coisa que “trava” o cliente de apostar num projeto open source e o fato de suporte/garantia prestado pra quem desenvolve o produto. O cliente se sente “seguro” quando uma empresa dar esse segurança de poder contar com ele (pelo o qual sabemos que isso e raro) no caso de problemas. Eu trabalho com manutenção de um ERP (SAP), onde existe um canal para esse tipo de suporte (que não e tão eficiente assim eu concordo). Embora existe um custo pra esse tipo de serviço. Precisamos quebrar esse esteriotipo que o software tem que ser o custo zero, pois precisamos valorizar o capital intelectual envolvido nas soluções. SL e uma oportunidade de inovar, uma forma de fortalecer empreendorismo quem vem de berço.
Enquanto ao ambiente ao acho que seria a junção de muitas coisas que
temos hoje. O problema é que as aplicações empresarias devem ser tratadas de uma maneira diferenciada de um aplicativo comum.
Por exemplo: um ERP tem uma estrutura própria que é diferente de um
Corel Draw.
O ambiente de desenvolvimento deve ser focado nas regras de negócio
não em APIs de baixo nível.
Não critico a qualidade dos frameworks, mas o uso sem critérios dos
mesmos. O pessoal diz: Vamos usar porque é bonito…
O que eu acho que falta é um maior controle e padronização.
Hoje em dia vejo que essa preocupação é maior, mas está longe do ideal.
Vejo com bons olhos a liberdade de desenvolvimento, mas cria-se muitas
redundancias e esforços que juntos poderiam dar mais resultado.
Concordo quando ele fala que Java é uma salada de um zilhão de soluções pro mesmo problema e que tem tanta coisa que você fica perdido sobre o que usar/aprender.
Na prática mesmo, a tratativa é similar. Vc tem eventos como OnClick e etc. Mas chamar o modelo de manipulação de eventos do Java de “ridículo” é muito forte. O modelo de tratamento de eventos do VB e no Delphi é porco e eu posso falar pq programei muitos anos em VB.
No plano do desktop, as Actions fazem um trabalho muito bom de intermediar o tratamento de eventos entre a lógica e o view (um decouple razoável) sem ter que usar inner classes aos montes.
Resposta em http://br.lixo.org/2005/03/17/aprendendo :mrgreen:
Achei interessante quando criticaram o fato de existirem tantas ferramentas e frameworks para java.
O que acho mais esquisito, é por que surgiram tantas coisas novas agora!!!
Em minha opinião, antes dessa moda OO e quando o pessoal vivia de Delphi e VB, por ele ter tudo prontinho… onde você arrasta botãozinho pra lá e pra cá, clica duas vezes em cima dele e escreve o código de evento e blablá… acaba havendo muito pouco espaço para despertar a criatividade dos desenvolvedores…
Ou seja, o fato de hoje existir tantos frameworks para java, é por que o java da liberdade para que possamos utilizar a nossa criatividade à favor da tecnologia…
Não é a toa que hoje existe Hibernate, WebWork, Lucene, ant, maven e tantas outros frameworks e tecnologias por ai.
Também sou muitíssimo contra o excesso de padronização. Desenvolvimento de software não é a mesma coisa de se desenvolver alicate, carro, moto, móvel, avião ou etc… Desenvolvimento de software se assemelha mais com uma obra de arte como escrever livros, pinturas e etc… Afinal, cada um tem a sua própria solução… ninguém resolve o problema da mesma maneira. Se você escreve um código que não ficou legal, vc vai lá e edita ele. Se voce quiser desenvolver um software pelo final ou pelo meio, ao invés de iniciar pelo começo também é possível! Quando um autor escreve um livro não é assim também???
Bom, acho que OO e JAVA deram um pontapé no surgimento de muitas tecnologias novas… e a sua importãncia na realidade tecnológica de hoje é inquestionável!
Abraços!
Olá Galera
Concordo com o Thiago, e acrescento:
Depois que o Java apareceu e comecou a ficar famoso muita gente começou a repensar no que estava fazendo, se os conhecimentos que haviam adquiridos eram válidos, e etc. Como Thiago falou, o Java da liberdade aos desenvolvedores, permitindo-os pensar por si só, aumentando as críticas e a criatividade da galera.
Pelo menos aqui na minha região, o Java aumentou, ou está aumentando, o nível de conhecimento dos desenvolvedores, e aproximando a Ciência da Computação (totalmente acadêmica) e o mercado de trabalho. Hoje em dia, já não é mais tão remota a possibilidade de empresas estarem financiando pesquisas e desenvolvendo suas próprias tecnologias. Coisa que a um tempo atrás, não ocorria.
Eu gosto do Java porque ele é independente de tudo, pode-se escolher tudo, qualquer coisa é independente de qualquer coisa. Você pode programar procedural, OO, AOP, em outra linguagem, com scripts, compilar nativamente ou não, rodar em n! lugares, e tantas outras coisas que estamos cansados de fazer e decidir.
Livre ou proprietária, você escolhe com o que vc quer integrar, o que você quer fazer e o quão rápido isso deve ser.
Acrescento que o Java é um dos responsáveis pelo acréscimo de desenvolvedores livres no Brasil e no Mundo, é um dos responsáveis pelo uso de software livre pelo governo, e da evolução do linux para desktops de usuário final. O Brasil abriu a sua cabeça e já fez o mundo olhar para cá, várias vezes.
Sobre o artigo, acho que aquele cara não conhece o Intellij IDEA.
Se ele pagou para a Microsoft ou para a Borland, pode pagar uma IDE para Java também.
Resposta em http://br.lixo.org/2005/03/17/aprendendo :mrgreen:
Mudando de assunto, não sei se entendi bem essa colocação. Pensando dessa maneira, qual linguagem não seria um beco sem saída?
Mudando de assunto, não sei se entendi bem essa colocação. Pensando dessa maneira, qual linguagem não seria um beco sem saída?
mandou bem.
o james gosling ja disse que daqui a 10 anos ele nao gostaria de ver java ainda como A linguagem do mercado, gostaria de ver algo novo.
vfpamp… Acho que conheço esse nick 
E NMO aumentando as gambiarras e fazendo o Java às vezes parecer com um T-Rex com artrose arrastando a barriga no chão.
Puxa esse IDEA deve ser bom mesmo. Mas não é só a IDE que facilita as coisas, a plataforma tem que colaborar. E o Java bem que podia melhorar em algumas coisas NMO!!!
Minha opinião sobre o outro artigo, sobre software livre, que postei lá:
É sério que vai rolar guerra santa mais uma vez mesmo?
Delphi é legal para o que se propõe (e era uma lingaugem com conceitos bem avançadinhos, pena que subutilizados pela sua comunidade), Java é lega para umas coisas (ok, bastante coisa), mas vocês não podem perder o lançamento da linguagem mais mais dos últimos cinco dias:
[size=24]ZahlScript[/size]
Gente… o cara no texto já falou besteira, a gente já falou besteira, o Lula vive falando besteira, o Giovanni falava besteira…
E o fogão, heim?
E o Java bem que podia melhorar em algumas coisas NMO!!!
Por exemplo…?
Estou com preguiça de dar um exemplo quem sabe outro dia? hehehe
@adicionado:
DA última vez que você me pediu um exemplo não deu muito certo lembra? Heehehehehe 
vfpamp… Acho que conheço esse nick
Renato3110 acho que não conheço esse nick
heheh
Aih é que está :D. Basta vc escolher não utilizar essas gambiarras :D. Ou desenvolver algo novo.
Na boa… eu sou geek, gosto de fazer as telas e todo o resto na mão… mas o IDEA já está me convertendo
Ainda mais agora que tem uma versão OS.
[Mais Off-topic que nunca]
O fogão eu não sei, mas o Timão está subindo (quem citar o Cianorte mata uma foca). 
Shoes, o que diabos é esse “Zahl” que você tanto cita?
[/Mais Off-topic que nunca]
Renato3110 acho que não conheço esse nickheheh
Eu te compreendo!!! Abandonaste o JavaFree?? Heehehehehe
Então não usaria Java, ou inventaria o .NET ou adicionaria outra gambiarra como generics, anotações e inner classes sem nome hehehe.
É mesmo? Quais são as limitações? A versão OS é tão funcional quanto o NetBeans e Eclipse? Tem um link?
A limitação é que só é free pra ti desenvolver sistemas free!
GPL? Se for, não tem muito problema.
Mudando de assunto, não sei se entendi bem essa colocação. Pensando dessa maneira, qual linguagem não seria um beco sem saída?mandou bem.
o james gosling ja disse que daqui a 10 anos ele nao gostaria de ver java ainda como A linguagem do mercado, gostaria de ver algo novo.
C nao foi um beco sem saida (ja que deu origem a Objective C, C++, Java, C#, e mais um monte de outras). Pode-se dizer que Java tambem nao foi um beco sem saida, pq deu origem a Groovy, JavaScript (apesar de isso ser meio discutivel), mas eu duvido um pouco que daqui X anos essas sejam linguagens populares.
Mudando de assunto, não sei se entendi bem essa colocação. Pensando dessa maneira, qual linguagem não seria um beco sem saída?mandou bem.
o james gosling ja disse que daqui a 10 anos ele nao gostaria de ver java ainda como A linguagem do mercado, gostaria de ver algo novo.
C nao foi um beco sem saida (ja que deu origem a Objective C, C++, Java, C#, e mais um monte de outras). Pode-se dizer que Java tambem nao foi um beco sem saida, pq deu origem a Groovy, JavaScript (apesar de isso ser meio discutivel), mas eu duvido um pouco que daqui X anos essas sejam linguagens populares.
Sei lá, NMHO, daqui a N anos, todas estas linguagens e as derivantes que elas gerarem estarão ultrapassadas. Basta ver os avanços na computação quântica.
Renato,
Fugindo do assunto… Não abandonei o JavaFree não… eu sempre respondi aqui pelo GUJ também, claro, não tanto quanto no JF. Gosto tanto daqui quanto de lá. Aliás, todo mundo devia fazer isso, é sempre bom ver opiniões diferentes dos grupos que estamos acostumados.
Voltando ao assunto…
Bom, ao meu ver, ainda da para adicionar uma série de coisas na linguagem para torna-la mais “escolhível”: Múltipla herança, AOP nativo, evoluções no “for”. Ex:
for (int i =0 : 10) {
pq ele não funfa?
}
Não to dizendo para transformar a linguagem em uma Groovy da vida (eca).
Mas, como dizem as teorias matrixianas, vc já fez a sua escolha. 
É verdade, olha soh: http://www.javafree.com.br/forum/viewtopic.php?t=14750&highlight=intellij
Deixa os dois no chinelo. Da uma pesquisada no Google 
Olá
Acho que eu aqui em Paraty com acesso discado estou ficando burro. Para mim o cara só disse burrice e coisas preconceituosas. Me arrependo de cada segundo que perdi lendo esta besta.
[]s
Luca
:shock: Herança múltipla? Vc não falou sério né?
:shock: Herança múltipla? Vc não falou sério né?
Sério…
Embora muita gente odeie ela, eu gosto da agilidade que ela cria.
http://www.javafree.com.br/forum/viewtopic.php?t=10008&highlight=heran�a+multipla
É uma escolha, se vc souber usar fica tranquilo 
:shock: Herança múltipla? Vc não falou sério né?
Sério…
Embora muita gente odeie ela, eu gosto da agilidade que ela cria.
http://www.javafree.com.br/forum/viewtopic.php?t=10008&highlight=heran�a+multipla
É uma escolha, se vc souber usar fica tranquilo :D
Sei que já estou fugindo do tópico, mas definitivamente querer justificar herança múltipla para reutilização de código não acho uma boa idéia. Prefiro interfaces, que ao contrário do que dizem por aí não é uma gambiarra da linguagem para suportar herança múltipla. Como diz a célebre frase: “Program to an interface, not an implementation”.
Tem esse ótimo post do Luca falando sobre interfaces:
http://www.guj.com.br/posts/list/15056.java
Como eu disse, questão de escolha… Nada melhor do que você gostar do que estiver fazendo, seja com o que for.
Ueh… tem gente que usa Delphi com Paradox para desenvolver ERP distribuído, porque eu não posso usar o Prevayler com Multipla Herança?
Quem sabe acessando alguma coisa de CSP ou RE. Sei lá… tem tantas loucuras por aih a fora que múltipla herança acaba sendo só um detalhe.

Afe, vcs tao mudando mais de assunto do que em vestiario feminino, ta loco (olha quem fala!) :mrgreen:
Heranca multipla (onde voce pode ter mais de um pai, e todo pai eh igual), do jeito que o C++ fazia nao foi uma das ideias mais brilhantes da historia da computacao, mas eu gosto do jeito Python de fazer a coisa: toda classe tem um pai (extends Foo), mas pode “importar” o codigo de diversas outras classes. Sempre tem um super so, mas varios outros metodos dos mixins pra dar uma forcinha. O ActiveRecord (http://ar.rubyonrails.com) nao seria nada sem isso 
marcelo,
Não há nada de errado com itnerfaces nem com herança múltipla. Você pode usar os dois.
Existem abstrações que são muito difíceis de serem implementadas sem herança múltipla, e acabam criando arquiteturas doentes. Não existem uma massa clamando por herança múltipla em Java porque a maioria das pessoas usa programação procedural usando javaBeans em vez de programar com objetos de verdade.
Zahl é o deus escatológico da programação transcedental que atravessa o céu horizontalmente em seu compilador com patas de fogo.
Tá, menos viagem. É uma piada coorporativa que eu ampliei.
[historia chata]
Trabalho numa empresa alemã, com algum código em alemão. Outro dia, analizando o código de um rpocesso, um amigo achou:
int zahl=0;
E começaram as especulações sobre o que seria um zahl (evidentemente o programa nãod ava nenhuma pista).
“Vocês devem derrota o maligno Zahl, na torre negra!”
“Zahl é elefante branco em alemão”
“Eu poderia te dizer o que eh Zahl, mas teria que te matar depois…”
E esse monte de baboseira.
Dai alguém pegou um dicionário e viu que zahl significa “número”, aí piorou, né, uma droga de variável com uma droga de identificador genérico desse… mais chacota
[/historia chata]
Eu falei que a história era chata 
E ai renato, blz??? Eu também me lembro do seu nick!!! Você não é um daqueles usuário Delphi??? hehehe!!! Me lembro perfeitamente de como você ama Delphi quando entrou em uma discussão dizendo que o Delphi era uma super maravilha… e que vc sabia detalhadamente como funcionava um botãozinho… hehehehe!!!
Bom… toda linguagem tem um fim né… mas acho que java deixaram algumas sequelas inesquecíveis!!!
Agora deixe-me mais uma vez dar uma agulhada no Delphi e no VB e recomeçar a guerra evangelista!!!
No princípio era nossos bisavôs chamado C e Cobol. Até hoje C é utilizado em softwares de missão crítica. Cobol ninguem usa mais, mas foi cobol a linguagem usado em grandes sistemas corporativos, não foi??? Tipo, quantos bancos e empresas robustas não usam cobol até hoje??? E o pior é que cobol foi muito usado, e nunca foi uma línguagem fácil de usar. Não tinha botãozinho, drag and drop e nem porra nenhuma.
Depois surgiu uma tecnologia super bonitinha…chamda Delphi e VB. Tem drag and drop, arrasta botãozinho pra lá e pra cá… e blá blá blá!!! Os sistemas corporativos feitos em cobol continuaram em cobol. Os sitemas críticos feitos em C, continuaram em C. Em um caso ou outro VB e Delphi foram usando em sistemas grandes ou foram integrados com grandes aplicações… mas sinceramente não conheços nenhum caso… afinal isso para eles é uma proesa… muito difícil de acontecer, mesmo com toda a facilidade que Delphi e VB proporcionava!!!
Mas também não vamos dizer que VB e DELPHI é um lixo… Eles foram muito importantes para nossa sociedade. Pelo menos hoje quando vou no Dentinsta, padaria, quitanda e etc, eu sempre vejo um programa feito em Delphi ou VB nos caixas ou com a secretária… ai imprime uma notinha fiscal porca de tudo. Não é verdade???
Depois surgiu o JAVA. Uma linguagem para criar Applets. Ela foi crescendo até que explodiu!
Hoje você vê muitos sistemas em JAVA se integrando com grandes sistemas corporativos que foram feitos em COBOL, C e etc… E pior ainda, com o J2EE mais uma vez foi ressucitado o desenvolvimento de grandes softwares corporativos. O pior, é que em java você não fica arrastando botãozinho pra lá e pra cá e blá blá blá!!! É uma línguagem difícil e ainda por cima, cheio de bisarrices… como alguns disseram…
Ué, Delphi e VB não tem bizarrice??? Vc cria um procedimento e coloca toda lógica de negócio lá dentro… ECA!!!
Daí inventaram até um tal de dotNet pra pegar carona com o JAVA… mas como não tem ninguém aqui para falar bém do dotNet, não sou eu quem vai falar mau… hehe!!!
Resumidamente, quando Java não tiver na moda mais, ainda seremos obrigados a conviver com o avanço tecnlógico que o java proporcionou e conviver com os sistemas que foram desenvolvidos com ele. Se a próxima geração for mais um fracasso como VB e Delphi, ai sistemas para Dentistas e quintandas entraram na moda novamente!!!
Abraços!!!
“Zahl” tem mesmo jeitao de nome de deus de mitologia viking. Ou mitologia nerd, ninguem liga muito pras origens dessas coisas a nao ser fa de Cavaleiros do Zodiaco :mrgreen:
Mas, voltando ao topico (uau!), pra quem quiser conhecer melhor o que se passa pela cabeca do Ivan Bosnic, autor do primeiro artigo linkado, eis o blog: http://bosnic.blogspot.com
Alias, esse post eh sensacional: http://bosnic.blogspot.com/2005/01/java-versus-net_14.html (SIM! Java versus .NET!).
Tem uns erros fatuais fantasticos, como por exemplo “E o Java existe desde 1997 e nem por isso diziam que era uma revolução.”, ou afirmacoes quase inacreditaveis de tao boas, como “O que não falta na Internet são classes poderosas, open source, que você poderá usar em seus sistemas e que vão lhe poupar muito tempo e dinheiro. E o melhor de tudo, você vai poder usar APACHE com TOMCAT.”
Aposto $10 que ninguem consegue achar um post do Thiago Senna que nao tenha pelo menos uma exclamacao.
E $20 se tiver menos de 5.000 caracteres. ;o)
Eu atualmente abandonei OOSD por essa metodologia http://www.kuro5hin.org/story/2005/1/28/32622/4244, agora sou muito mais produtivo e feliz no final do dia.
Se alguém abrir um Post criticando IoC, WebWork e Spring e falando bém de EJB, Struts e que um projeto deve ter no mínimo 20 patterns para ser um projeto de qualidade, aposto $30 de que o cv se manifestará e criará um novo Slogan para o GUJ!!!
Shoes, o que diabos é esse “Zahl” que você tanto cita?
Zahl é o deus escatológico da programação transcedental que atravessa o céu horizontalmente em seu compilador com patas de fogo.
![]()
Aconteceu algo parecido aqui quando um colega, que está aprendendo alemão, nomeou um listener como MeinClass…
E é por isso que googlar por Zahl retornou tantas páginas em alemão. O legal foi quando eu googlei por ZahlScript. Se eu entendesse alemão, até ia ver o que era isso.
We’d better think about the things we say
we’d better think about the games we play
the world went round, around and round
Eu não amo Delphi, eu amo The Cranberries!!! Nunca disse que ele é uma super maravilha e nem disse que sabia como funcionava um botãozinho, eu disse que mesmo com as facilidades eu tinha uma idéia do que a IDE estava fazendo por trás o que pareciam estar acreditando não ser possível. Aliás nunca senti necessidade de entender o funcionamento interno de TButton, a não ser para colocar textos coloridos, mas já existem componentes prontos pra isso.
Huhauhauhahauha, o pior são aqueles programadores que fazem umas telas horríveis, desorganizadas e cheio de cores berrantes tipo ciano, amarelo. E eles conseguem clientes! É muito engraçado.
Ora bolas e onde você queria colocar? No registro do Windows? No dummy plug? No Magi? Todo código delphi fica em algum procedimento (exceto program), assim como todo código Java fica em algum método! O que você quis dizer é que as regras de negócio ficam misturadas com a interface gráfica não? Mas isso é o programador que faz!!! Em dois segundos eu posso inserir um botão e gerar um “action listener” para ele, mas o babaca sou eu que saio digitando minha lógica diretamente, não a ferramenta!!
Ae Vitor, eu fui na página de download do IDEA e só tem Trial, Commercial e Upgrade! Cadê a OpenSource!!
Eu vi teu tópico no JavaFree sobre o IDEA, parece que a montagem da tela não é via código, como no Thinlet. Bom eu acho essa coisa de montar o layout via código uma das piores porcarias do Java e parece que tem gente que não liga muito pra isso. Bom o Thinlet excetua-se um pouco disso porque as telas ficam no XML, mas acho que ainda há no quê evoluir. Eu tenho vontade de criar um mecanismo “xmlélico” como esse do Thinlet para outras APIs como Swing, AWT etc. Só que sem “psicodelizar” o código como acho que o Thinlet faz.
Renato, eu nao quero brigar com o assunto Lado A x Lado B por favor.
Mas o que acontece é que em Delphi (eu adoro programar em Delphi, dei curso basico na fauldade desta ferramenta e faço um monte de coisas legais nela. Acho que pra tudo existe sua aplicação.)
Mas o que o Thiago quis dizer é que a maioria das pessoas, e até hoje eu nunca vi ninguém que não faça desta maneira utiliza assim, inserindo as regras de negócio em Button1Click e mandando bala: lendo, gravando fazendo tudo em um lugar só, sem programação em camadas nem nada…
Eu me acostumei a fazer do modo porcão no delphi e no java não, aprendi a fazer de uma maneira um tanto quanto mais higiênica e, na hora que vou tentar aplicar isso no delphi é muito mais difícil, inegável que é…
O próprio fato da linguagem não possuir encapsulamento nos objetos da interface já dificulta… vc trabalha de um jeito e o cara de outro… fica phoda… Direto eu faço ProgressBar1.getPosition querendo fazer ProgressBar1.position.
Entendeu a posição??? É só isso…
[]'s
Ps.: Java ou Delphi? Se eu puder escolher fico com Java.
(aimeuzahlnaoacreditoquevoufazerisso)
Me diz qual a diferença entre:
public int position;
e
public int getPosition(){
return position;
}
Não vale dizer que como é um método você pode usar modificar a rotina, poruqe JavaBeans não foram feitos para isso.
Não estou defendendo atributos públicos, estou atacando a overdose de JavaBeans (a gente atacava o EJB, agora é hora do JB
)
Aeh, Shoes, o lance é que tem muuuuuita gente que fala que Delphi é OO. Que os objetos de interface são OO. E na verdade não são.
Pelo menos já nasceu ferindo o critério encapsulamento, não???
Bom, programadores Delphi geralmente sabem que não programam com objetos.
Programadores Java viciados em beans enchem o sistema de registros/structs e acham que estão fazendo OO.
Não há diferença entre um bean mal usado e uma struct, e o que mais existem são beans mal usados.
E, por isso então, cair de pau nos Beans? 
Particularmente eu não acredito que haja muita diferença, porque de qualquer forma você vai estar modificando o valor do atributo.
Porém reza a lenda que eu não devo acessar diretamente um atributo e sim através dos métodos do objeto, não é?
Olha só a incoerência…
JavaBeans têm sua função, são legais, mas são utilizados de forma errada em quase todos os projetos que já vi, produzindo código não-OO.
Delphi tem sua função, tem recursos legais, mas é utilizado de forma errada em quase todos os projetos que já vi, produzindo código não-OO.
A especificação e ambiente de Delphi induzem ao procedural (se você não souber mais que usar uma janela, vai fazer uma bela porcaria).
JavaBeans induzem ao procedural (se você não souber que não deve sair usando beans para tudo).
Porém reza a lenda que eu não devo acessar diretamente um atributo e sim através dos métodos do objeto, não é?
O que você não deve fazer é expôr os atributos do sue objeto por aí 
Não tinha um tópico sobre isso?
Não entendi Phillip,
Supondo que a maneira correta é acessar o atributo através do método, onde é que está exatamente o erro?Supondo também que os atributos do meu objeto serão todos privados.
Acessar um método para pegar um atributo não faz OO, é só um jeito mais lento de se pegar o valor de um atributo.
Dá uma olhada no tópico que linkei.
Não entendi. Pode explicar melhor?
Bom, sobre OO realmente estou começando a me convencer de que isso é filosofia matrixiana, ou então que terei que procurar o Mu para ele me ensinar a atingir o sétimo sentido, e assim estar conectado ao cosmos para poder alterar o meu estado mental para um transe, passando assim para um nível mais superior de existencialidade do sujeito, e assim poder deixar minha alma se transformar apenas em um fluído no espaço da realidade cósmica. Então nesse dia eu estarei programando OO.
Bom, sobre OO realmente estou começando a me convencer de que isso é filosofia matrixiana, ou então que terei que procurar o Mu para ele me ensinar a atingir o sétimo sentido, e assim estar conectado ao cosmos para poder alterar o meu estado mental para um transe, passando assim para um nível mais superior de existencialidade do sujeito, e assim poder deixar minha alma se transformar apenas em um fluído no espaço da realidade cósmica. Então nesse dia eu estarei programando OO.
Sem querer descreditar os gurus supracitados, ler um bom livro de OO já ajuda bastante 
É… concordo com o Philip no ponto de que assim como em Delphi, um programador mau instruido será induzido a programar com a idéia de beans ao invés de OO.
Bom… mas temos ainda uma ligeira vantagem.
Mas afinal é mais fácil fazer refatorar um monte de bean ou um monte de procedimento!!!
O fato agora não é mais IDE ou tecnologia, e sim a qualidade e compotência do bichinho que manipula a ferramenta.
Bom… vou viajar mais um pouquinho!!! (Mais Três exclamações para ajudar o cv a ganhar a aposta)
Quanto mais burocracia você colocar no código e no processo de desenvolvimento, de certa forma diminui a possibilidade de maus programadores fazerem suas inevitáveis cagadas! Quanto mais burocracia no código, mais fácil fica refatorar o código e arrisco dizer que a manutenção corre menos risco de ser impossível de ser realizada!
Não é assim que fazem nas grandes empresas e no governo?? Enchem tudo que tem de burocracia para manter o controle da situação.
É ai que entra os beans. É mais difícil fazer um código inconcertável usando beans do que usando procedures!!
Abraços!
obs:
(Contem quantos caracteres escrevi… talvez até de para ganhar $20 rsrs…)
Shoes, me fala de um? É um livro sobre filosofia ou Universo em Desencanto não? Hehehehehe
Interessante sua afirmação!
HEhehehe
Quanto mais burocracia você colocar no código e no processo de desenvolvimento, de certa forma diminui a possibilidade de maus programadores fazerem suas inevitáveis cagadas! Quanto mais burocracia no código, mais fácil fica refatorar o código e arrisco dizer que a manutenção corre menos risco de ser impossível de ser realizada!Não é assim que fazem nas grandes empresas e no governo?? Enchem tudo que tem de burocracia para manter o controle da situação.
Humm… interesante!
Bom cara não entendi isso!! Do quê você está falando? Eu posso criar beans no Delphi na hora que eu quiser, e ainda posso fazer melhor, encapsular isso numa propriedade:
Evangelion.Pilot := Asuka
Veja que estou atribuindo um campo, mas por trás dos panos um método como SetPilot é chamado.
Ahhh, só um bom livro de OO não tem graça…
Um - Object-Oriented Software Construction - Bertrand Meyer
Dois - Object-Oriented Design Heuristics - Arthur Riel
Três - Fundamentals of Object-Oriented Design in UML - Meilir Page-Jones
Quatro - Domain-Driven Design: Tackling Complexity in the Heart of Software - Eric Evans
Cinco - Refactoring Improving the Design of Existing Code - Fowler et All
Seis - AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis - William J. Brown et All
Sete - UML Components - John Cheesman & John Daniels
Oito - Design Patterns: Elements of Reusable Object-Oriented Software - GoF
Nove - Expert One-on-One J2EE Design and Development - Rod Johnson
Dez - Effective Java Programming Language Guide - Joshua Bloch
…
Good point.
1 - Você pode encapsular numa propriedade em Delphi, não em java
2 - JavaBeans mal construídos são uma gambiarra para passar por cima da falta de recursos como propriedades
3 - Objetos com propriedades indicam falta de encapsulamento e information hiding
4 - Tanto beans mal feitos quanto objetos com propriedades em Delphi estão fora de ume scopo OO
A coisa mais legal nessa discussao até agora foi saber que alguém gosta de Evangelion… ((;
olha soh… vcs jah estao se repetindo… jah falaram q o cara pode fazer M** em qualquer linguagem, q umas facilitam e tal… e jah eh a nonagésimatrilhonésimaquadragézimaoitava vez que isso é discutido…
Caramba!!! Eu não tenho dinheiro pra comprar tudo!!! Qual o seu preferido?
3 - Objetos com propriedades indicam falta de encapsulamento e information hiding
4 - Tanto beans mal feitos quanto objetos com propriedades em Delphi estão fora de ume scopo OO
3 - isso é ruim?
4 - Objetos com propriedades como no Delphi são ruins? Por que?
é pq hoje é sexta e toda sexta precisa de um papo assim mais polemico… 
O primeiro, ams aviso logo: tem quase mil páginas 
Ou comrpa o Page-Jones que é muito bom tb.
3 - isso é ruim?
4 - Objetos com propriedades como no Delphi são ruins? Por que?
3 - Sim, isso fere completamente todos os benefícios que se tem usando objetos. Google.
4 - Sim proque causam o item 3 
vm tomar uma cerveja?? auhauaha…
a gente pode discutir tudo no buteco… ((;
aki em BH tem pelo menos 2 em cada esquina…
Acho que você precisa olhar o SwiXml e outros que já fazem isso pra Swing, SWT e AWT.
Ih alá!!! Acho que acabo de ganhar um colega!!!
Bom na verdade acho que vou mudar a minha assinatura, porque eu amo Evangelion também, e Genocyber é muuuuuuiiiiiittttttoooo bom!!!
Ontem estava vendo Death and Rebirth…
huahuhauha
Ih alá!!! Acho que acabo de ganhar um colega!!!
mais ou menos renato… eu ODEIO cranberries… hehehehe…
é impressão minha ou estamos desviando do tópico de novo?? heheheeheh… :twisted: :twisted:
Daniel muito bom saber, espero que as IDEs como Eclipse e NetBeans começem a usar coisas como essas, assim em vez de gerar códigos para montar layout, elas gerariam arquivos de configuração.
O legal dele é que ele usa a API javax.swing e não uma própria API tipo SwingGambiarrizadaParaCarregarDeXML, como acho que acontece com o Thinlet.
bandrade, Vi só o filme do Ghost in the Shell e do Akira, gosto muuuuiiito de Akira e o outro achei legal também.
Mas pra mim Eva é o melhor anime dos que eu já ví, é a minha história preferida. Até vai virar filme!!
Bom se você odeia The Cranberries, tudo bem!!!
Tudo duma vez entao:
:arrow: Nao eh o que acontece com o Thinlet. O Thinlet usa AWT e XUL.
:arrow: Sim, voces desviaram do topico de novo. E Evangelion rula. Mas eu nao tenho saco de ler/assistir.
:arrow: Ainda ta valendo os $10 meus e $20 do louds.
:arrow: “Eu nao tenho grana pra comprar tudo isso de livro” - mas tem tempo de ler? Entao passa numa biblioteca boa. Ou pega um salario melhor, pq vc ta ganhando pouco pra sustentar a sua propria profissao. De qualquer forma, os 3 primeiros sao bons. Recomendo qualquer coisa do Booch tambem.
:arrow: Se a linguagem suporta properties ou nao, a diferenca no fim eh pequena. Nao da pra botar a culpa na arma, afinal de contas.
:arrow: Confiar na competencia do desenvolvedor, pra uma empresa que ta dando manutencao nos sistemas que outros desenvolvedores fizeram pra ela, eh mais ou menos como pular de um aviao e torcer pra alguem ter amarrado um para-quedas. Sinto muito, mas esse argumento (e essa analogia que eu bolei, tambem) foi horrivel.
:arrow: Maniazinha esquisita de brasileiro de usar Delphi. Vai entender. Da proxima, tentem bater boca entre Java e Python, ou Ruby, que eu juro que troco de time e meto o pau em Java o quanto for necessario. Mas comparar uma linguagem extremamente ruim a uma linguagem feita pela Borland eh sacanagem.
O primeiro, ams aviso logo: tem quase mil páginas![]()
Ou comrpa o Page-Jones que é muito bom tb.
Eu prefiro um em Português 
Pessoal, resumindo a confusão com os JavaBeans, aqui uma máxima que eu aprendi conversando bastante com o shoes e cv, bem como lendo muito mais artigos/livro do que programando. Ao invés de pedir uma informação pra um objeto para poder fazer uma tarefa, mande o objeto que tem a informação fazê-la.
Aviso: bom senso se faz necessário :hunf:
E Evangellion é muito bom @.@ eu vi todos … direto … 12h … falo japonês … e decorei a letra de entrada @.@
Tem Page-Jones em português, mas (pra variar) a tradução é una mierda
Acessar um método para pegar um atributo não faz OO, é só um jeito mais lento de se pegar o valor de um atributo.Dá uma olhada no tópico que linkei.
Na resposta do Rafael mostra exatamente porque nao faz diferenca usar um metodo ou um atributo publico se o desenvolvedor nao tomar certos cuidados. O encapsulamento vai pro espaco.
]['s
:arrow: Maniazinha esquisita de brasileiro de usar Delphi. Vai entender. Da proxima, tentem bater boca entre Java e Python, ou Ruby, que eu juro que troco de time e meto o pau em Java o quanto for necessario. Mas comparar uma linguagem extremamente ruim a uma linguagem feita pela Borland eh sacanagem.
Falou tudo cv… comparar java com Delphi é sacanagem…
Agora vamos cutucar o cv!!!
Por que a galera do phyton não gasta da turma do JAVA??? O que a gente fez para eles???
Não conheço phyton, mas me tire uma curiosidade. Essa coisa ai é multiplataforma também??? (Perdoem-me a ignorância)rsrs…
O que o phyton e o Ruby tem de tão excepcional que faz vc até mudar de time???
Abraços!!
Vocês acreditam que em um ambiente distribuído funciona essa coisa de ter as operações nas classes que contém as informações.
ex:
class Pessoa
{
private int codigo;
private String nome;
// setters and getters
public void salvar()
{
// o que eu faço agora em um abiente distribuido ?
// passo eu mesmo como parâmetro para um serviço ?
}
}
A “galera de Python” nao tem nada contra a “galera de Java”. A primeira so nao entende pq a segunda ainda acha bonito escrever tanto codigo pra tao pouca funcionalidade. O mesmo vale pro pessoal do Ruby, que no fim das contas eh um Python menos esquisito. Ou mais esquisito, depende de onde vc veio.
Python (e Ruby) sao multiplataforma, usam o mesmo conceito de maquinas virtuais que o Java, a diferenca eh que, enquanto java tenta se manter completamente fora das questoes que envolvem ficar dependente de uma plataforma, e nao eh incomum ver casos onde a API padrao do java faz um trabalhinho bem porco, python/ruby se esforcam pra ser multiplataforma quando eh interessante - ou seja, tem codigo na api padrao do python que so funciona no win32, mas vc vai ficar sabendo disso de cara pq o nome do modulo comeca com win32_alguma_coisa 
Python e Ruby nao tem nada de taaaaaaao excepcional, mas sao linguagens otimas, e comparadas com Java, mais produtivas, e eh soh.
Interessante o Phyton e o Ruby…
Acho que qualquer hora posso dar uma olhadinha e ver se aprendo alguma coisa…
Qualquer dia poderiamos abrir um tópico para comentar sobre o assunto!!
[color=orange]Warning: possible ambiguity in the following proposition:[/color]
Bom vou explicar melhor: eu pensava que no Thinlet eu ia fazer algo tipo new Janela(“file.xml”) e então fazer janela.getTextFieldNome(), janela.getTextAreaDescricao() ou algo assim, mas não é bem assim, para acessar os objetos você tem um jeito maluco usando apenas Object, apesar de que já vi sobre um projeto de criar wrappers. Entendeu?
@adicionado: o SwingGambiarrizadaParaCarregarDeXML seria um exemplo para o SwiXML, eu sei que thinlet usa AWT e XUL.
[color=orange]Error: unknown identifier: “rula”[/color]
Foi uma brincadeira, apesar de não ter grana mesmo!! Obrigado pelas dicas! Acho que estudar filosofia vai me ajudar a entender OO também hehehehe.
Bem um problema das propriedades é que o usuário da classe não sabe se está acessando um campo ou uma propriedade, já nos getters/setters fica claro que há algum código de acesso. Mas não acho isso tão terrível. Eu acho esquisito um código assim:
eva.setFactory(info.getFactory());
eva.setPilot(info.getPilot());
eva.setEngine(info.getEngine());
Acho que assim fica menos estranho, e os getters/setters rodam debaixo do pano:
eva.factory := info.factory;
eva.pilot := info.pilot;
eva.engine := info.engine;
Acho que ninguém disse isso aqui.
Tá dizendo que o Java é extremamente ruim?
Caramba… eu pensava assim LIPE!!
Daí eu li uns livros de Pattern… daí comecei a pensar diferente… comecei a entender que quanto mais separar melhor!!! Daí, ao invés de eu colocar um método salva dentro de uma objeto aluno, comecei a colocar o método salvar em um DAO e só me preocupo em passar o aluno por parâmetro!!!
Agora vocês vém me dizer que o ideal é voltar atrás e juntar tudo de novo??
Eu percebi que o pessoal aqui curte isso. Mas e a separação de responsabilidades? Continuam existindo???
Seria isso o que o Philip e a galera chama de desenvolver Orientado a Objeto???
Sei lá esquisito…
Viu os filmes também? Sabe Japa mesmo? Quando busquei traduções para Zankoku na tenshi no teeze (a música de abertura da série), achei coisas bem diferentes umas das outras. Parece que traduzir Japonês é muito difícil.
Se eu te der R$100 você traduz Fairy Dreaming pra mim hehehe? (apesar do título ser em inglês, ela é japonesa)
Ambiente distribuído? De verdade? DTO até que alguém tenha uma idéia melhor…
Daí eu li uns livros de Pattern… daí comecei a pensar diferente… comecei a entender que quanto mais separar melhor!!! Daí, ao invés de eu colocar um método salva dentro de uma objeto aluno, comecei a colocar o método salvar em um DAO e só me preocupo em passar o aluno por parâmetro!!!
Você entendeu errado, isso não tem nada a ver com camadas tem a ver com não fazer
String senha = usuario.getSenha();
if(senha.equals(parametro)
return true...
E sim
boolean senhaValida = usuario.validarSenha(parametro);
Existe um tal de Object Wrapper Thinlet (OWTHINLET).
boolean senhaValida = usuario.validarSenha(parametro);
Insistindo, pcalcado me explique como você mudaria essa sua implementação se o sistema fosse distribuído, ou pior, se passasse a ser.
boolean senhaValida = usuario.validarSenha(parametro);Insistindo, pcalcado me explique como você mudaria essa sua implementação se o sistema fosse distribuído, ou pior, se passasse a ser.
Ele ja respondeu.
Como ele disse “de verdade” o que nao é muito comum.
]['s
Insistindo, pcalcado me explique como você mudaria essa sua implementação se o sistema fosse distribuído, ou pior, se passasse a ser.
Essa não é minha implementação, isso é o conceito defendido naqueles livrinhos que passei,e scriots por quem realmente entende (e muitas vezes definiu) a Orientação a Objetos.
Entretanto, questionar é sinal de inteligência, então vamos lá.
Você leu meu último post?
Primeiro, você não deveria ficar pensando muito no futuro distante. Se o sistema se tornar distribuido, se o sistema mudar de arqutietura, se o pé grnade invadir o datacenter… pense no seu presente e futuro imediato.
Depois, “sistema distribuído” é o termo mais genérico do mundo, me diz o que você quer dizer com isso.
Caras, aproveitando que o tópico chegou em javaBeans eu aprendi a usá-los e também a fazer uso da OO (até onde eu entendia) com este livro aqui
Ele diz para fazermos o seguinte
pag Jsp --> JavaBean Cliente --> JavaBeanUsaBanco
a pág. jsp usa o objeto cliente, com todos os seus atributos e getters e setters o qual chama o JavaBeanUsaBanco.
Temos algo do tipo:
cliente = new Cliente("Zampa");
cliente.gravaCliente();
onde na classe cliente teriamos
public Cliente(String nome){
this.nome = nome;
}
e o cliente seria o responsável pela gravação dos dados.
Eu ainda nao li o artigo que o Lipe falou no tópico encapsulamento e também nao li nada sobre Design Patterns ainda, mas gostaria de saber:
Isso é OO?
Se não é como seria então???
O que o padrão que o Thiago falou difere disso???
Obrigado.
Ps.: Eu estou meio perdido nessa de padrões, por isso não consegui me concentrar neles ainda.
Felipe,
Isso é em verdade um pouco de más práticas com JSP. Mas isso nós vamos discutir neste tópico (esse aqui já tá super-lotado).
Não entendi esta parte:
boolean senhaValida = usuario.validarSenha(parametro);
Ja fiz de duas formas:
String nome = usuario.getNome();
e
String nome = usuario.nome;
Pelo código ali então, eu deveria ter métodos que validassem meus atributos dentro do meu Bean?
Cara com todo respeito, vc sabe que o autor deste livro é muito conhecido aqui em brasília, mas naum me lembro de ter lido um livro de informática pior que este. :evil: na verdade nem li só olhei…
Temos que pensar sim no que pode acontecer com um sistema, isso garante a extensão da vida útil do mesmo.
Senão para que a gente se preocuparia com esses DAOs, Patterns e monte de coisas. Não existem apenas para garantir a reusabilidade e facilidade de manutenção.
Viche… agora você tocou na ferida!!! AI!!!
O Philip falou que não é necessário ficar pensando no futuro por que foi comprovado que 90% do que criamos pensando que um dia será usado e reaproveitado, na verdade não é reaproveitado e nem utilizado!!!]
Leia um livrinho de XP que você vai entender nosso ponto de vista!!!
Abraços!
Pelo menos me valeu no sentido de mostrar JSP. Eu não conhecia. Foi bem prático tb… Agora, mudar a forma de trabalho é mais fácil… 
Voltando ao assunto Delphi x Java…
Então a gente desenvolve com patterns apenas porque é bonito ?
Parei…
Eu sei que não existe sistemas perfeito, mas se a gente pensar assim é melhor usar o VB.
Então a gente desenvolve com patterns apenas porque é bonito ?
Parei…Eu sei que não existe sistemas perfeito, mas se a gente pensar assim é melhor usar o VB.
Jprogrammer, patterns em si são (soluções) reusáveis, mas o software construído com patterns não é imediatamente reutilizável.
Ninguéme stá falando em não usar patterns aqui 
jprogrammer, sistemas perfeitos são aqueles que é possivel provar matematicamente que ele faz exatamente aquilo que é esperado. O dificil é provar, dado que isso é um problema sem solução computacional.
renato, faltou um “não” ali hehe e não vi os filmes
eu quero … eu preciso 
E Thiago, entendeu a colocação do Shoes? Como ele mesmo diz, a persistência de dados em algum lugar não é responsabilidade dos objetos do domínio. Como eu disse, bom senso se faz necessário.
Observe:
void execute() {
Pessoa p = new Pessoa();
Tranformer t = new XmlToObjetctTranformer();
String xml = t.transform( p );
Connection connection = new ConnectionGiver().getConnection();
connection.graveEsteXmlNoBanco( xml );
Messenger m = new ClientMessenger();
messager.sendMessage( "Pessoa gravada no banco com sucesso." );
}
Percebeu quanta coisa essa Action fez? Quantos objetos ela teve que conhecer para fazer o seu trabalho? Não seria muito melhor que os objetos envolvidos fossem mais inteligentes e, ao invés da action pedir a informação para fazer o trabalho, delegasse partes do mesmo para os objetos inteligentes?
Saquei mais ou menos…
se eu tenho o código abaixo:
MinhaAction {
Aluno a = new Aluno();
// seto valores nos get e sets
a.save()
}
Estou considerando que a modelagem do projeto foi bém feita, a atriibui ao objeto aluno a responsabilidade de persistir seus próprios dados.
Nada me impede de dentro do método save utilizar um AlunoDAO.
Ou seja, é melhor eu fazer isso que eu exemplifiquei aqui do que fazer aquele action cheio de coisas igual o LIPE mostrou???
Abraços!
O aluno é responsável por se persistir? Então você tem vários objetos de negócio que estão acoplados à camada de persistência (e essa acoplada a eles). Remova esta dependência, deixe que apenas uns poucos objetos saibam sobre a existencia de uma persistência.
(Off-Topic: Esse negócio de acho->logo na sua assinatura tá meio que contra a lógica)
Hehehehehhehe
Death and Rebirth é tipo um resumo da série, com algumas bem poucas coisas a mais, tipo no início eles mostram mais ou menos o acidente no pólo sul.
Mas ae, você TEM que ver The End of Evangelion, cara é muuuuuuuuiiiiittttttooooo bom, cara é o máximo pra quem se amarrou na série. Cê tem que ver a última luta da Asuka!!! Até me emociono de lembrar!!!
Pra mim as partes mais demais foram a última luta da Asuka, no filme, e a morte do Kaworu, o último anjo.
Phillip,
Tirar a responsabilidade de se auto-persistir não violaria de alguma forma o encapsulamento?
Afinal, os objetos responsáveis pela persistencia vão ter que conhecer o estado exato daquele objeto para persisti-lo não eh?!
Eu sempre deleguei essa responsabilidade pra outro objeto, mas confesso que tenho esse pequeno grilo de estar violando o encapsulamento até hoje.
Eita assunto ruim q tah rendendo… hehehehe
O maior problema é o acoplamento (além da confusão infernal de responsabilidades).
Faça poucos objetos acoplados à persistência (não falo nem em SGBD, tô fanaod em poucos objetos que conhecem um DAO, por exemplo) em sua camada de negócios.
Então usar OO pura meio que tende para o acoplamento, é o que eu acho.
Neste caso específico vocên não está totalemnte errado. O problema é como persistir dados num modelo OO.
Poxa se eu tenho um Cliente onde coloco um save para torná-lo 100% OO, ora bolas eu não vou ter que acessar um DAO?!
Num munod oo “de verdade” (e aí entra o que o jprog falou sobre limitações) seus objetos são semrpe persistentes. A camada de persistência do jeito que é usada hoje é uma gambiarra 
Oh grande Zahl diga-me se me conectei ao cosmos:
Bom adicionar um save num Cliente não é torná-lo inteligente, porque save não é regra de negócio, é persistência. A não ser que você queira o contrário. Certo?
O problema é por exemplo, quando for adicionar uma pessora, na classe de negócio seria um simples add de lista, mas algo por fora em algum momento deverá persistir de fato no disco. O problema é quando, e em que parte do código. Acho que a persistência deva ficar no controlador, isso tem cheiro de AOP não?
Perdoem-me se falei alguma blasfêmia!!!
Persistencia transparente sofre do mal de “abstraction leaking”.
Olá
Concordo plenamente!
Louds, adorei aquele link sobre política. Muito melhor do que a bobagem do delpheiro que não consegue entender OOP.
[]s
Luca
sinceramente, as coisas tem que ser 100% OO???
eu sei que eu não acompanho esse topico desde o começo e não sou nenhuma autoridade\referencia no assunto:
vendo sobre o assunto de delegar persistencia para uma classe “Cliente” ou “ClienteDAO”… vcs disseram que se eu usar um ClienteDAO para persistir dados de clientes armazenados em uma classe Cliente, eu vou estar violando o enpsulamento??? na prática, que mal há nisso?
acho em minha humilde opinião bem pior deixar que o Cliente se persista.
PS: Que carinha é esse aí no seu avatar, Luca?
PS: Que carinha é esse aí no seu avatar, Luca?
É o Sr. Mestre dos Magos, do desenho Caverna do Dragão
E, por sinal, ele é bem parecido com o Severino, aquele de Brasília.
Ps.: Vc tem 17 né? Se tivesse um pouquinho mais se lembraria… 
Olha o Severino aí:

[OFF-TOPIC LEITURA NÃO OBRIGATORIA]
ah é… poutz… ele não me era estranho e eu tava quebrando a cuca pra me lembrar :roll: valeu Felipe 
[***/OFF-TOPIC*** LEITURA NÃO OBRIGATORIA]
Olá
Huahuahua…putz, é mesmo bem parecido! Será um Façade? Ou um Adapter? Decorator é que não é.
[]s
Luca
Achei interessante alguns pontos de vista do autor, mas algumas coisas descordo. Ele sugeriu que uma nova linguagem e ambiente de desenvolvimento fosse criado dessa seguinte forma:
Acho que não, aí você fica preso a um padrão
Facilidade de acesso ao banco o Java tem, alias, nisso o java manda muito bem, ainda mais com o apoio da Oracle e da IBM, que entendem muito bem de BD. Agora ausênsia de tipagem, acho que java poderia ter também. Assim como a linguagem Python que sempre teve.
O java faz isso, claro, não da forma padrão como conhecemos, mas podemos utilizar de forma independente.
Também não conheco como o Delphi implementa isso, mas no Java, não vejo tantos problemas
O java é independete de plataforma e de hardware, alias, não existe melhor ambiente para isso, pelo menos atualmente.
Isso eu concordo, poderia abstrair ao máximo e não ficar preso por muito tempo em coisas secundárias ou preliminares.
O problema é por exemplo, quando for adicionar uma pessora, na classe de negócio seria um simples add de lista, mas algo por fora em algum momento deverá persistir de fato no disco. O problema é quando, e em que parte do código. Acho que a persistência deva ficar no controlador, isso tem cheiro de AOP não?
Exato, e esse é og rande problema da persistência como é hoje, na minha opiunião. Você tem chamads e objetos totalmente artificiais, como apra fazer persistência, quando na verade você sói deveria fazer um lista.add()…
Com AOP+Metadados você poderia identificar quando o cliente de uma classe chama algo que pode mudar seu estado e a parsistir automanticamente.
louds, no google eu achei este artigo do joel, é isso mesmo? Vou ler agora…
Esse mesmo, shoes. Esse artigo eh muito bom, alias. Recomendado 
Ae pessoal nunca vi um tópico variar tanto de assunto hehehhehe
Bem e este tópico tá meio que no mesmo assunto que este:
Super JavaBeans: Milagre ou Maldição?
http://www.guj.com.br/posts/list/45/21687.java
Minha cabeça está tão embolada, que não sei nem o que perguntar ou dizer direito. Além de ficar indeciso sobre onde postar hehehhe.
Renato, o Java Beans, salvação ou maldição se originou à partir deste tópico mesmo… para tentar controlar a mudança de assunto… mas não deu certo hehehe!!!
Sobre o artigo que o shoes indicou, “The Law Of Leaky Abstractions”, muito legal.
Aquilo é o que de certa forma eu tento passar para alguns que ficam atacando ferramentas de abstração: elas fazem isso para economizar trabalho repetitivo, não para torná-lo alienado (sim, estou falando do Delphi, mas vale para qualquer coisa). Veja o que o artigo diz:
Aprenda como fazer manulalmente primeiro, só depois use a ferramenta para economizar tempo.
Se bem que a ordem que isso acontece pra mim não é muito importante. Eu particulamente prefiro usar e entender como funciona apenas se necessário, ou seja, se der pau. Ex: eu nunca precisei entender como funciona o sistema de eventos no Delphi, até criar um componente que precisava ter os seus próprios.
Bom e o mais interessante é que isso não acontece só na programação. Nós aqui na empresa lidamos diariamente com essas “falhas” da abstração, tipicamente isso significa um erro estúpido e sem lógica do Windows. O pior é que quando essas falhas acontecem nós acabamos às vezes concertando-as mas ainda mantendo-nos abstraídos.
É difícil dar exemplos, mas gira em torno do clássico “a solução é formatar”. A gente sempre tenta resolver mas tem coisas que não dá.
Uma vez tinha uns caras querendo usar OLAP no M$ Excel. Tudo ia bem até que uma maldita mensagem de erro nos acionou. Essa mensagem ocorria em apenas uma máquina. Ela dizia simplesmente a respeito de uma ação que o usuário tentava executar: “não pode, e ponto”. Passamos acho que uns dois dias com o caso, para concluírmos que uma atualização dentre as várias e várias do Windows Update é que faz algum treco que passa a bloquear a coisa, como uma atualização de segurança. Solução? Não temos muito tempo aqui e acabamos permanecendo nas abstrações às vezes: nós deixamos aquelas máquinas desatualizadas!!!
Outra coisa é uma situação muito louca onde diversos programas ao serem abertos ficam chamando a instalação do M$ Office por causa de permissões no registro. Muito louco.
Botando um pouco de lenha na fogueira eu acredito que quem não gosta de Orientação a Objetos (seja qual for a linguagem que implementa) deveria sair da frente de seu computador e ir digitar em uma máquina de escrever… Basta dar manutenção em uma linguagem estruturada e em uma OO pra notar a diferença. E tenho dito.
pessoal,
eu acho que essas bobagens que o cara escreveu sao relativamente utéis para o java.
O cara era ingenuo e não sabia do que estava falando porém, acho que essas visões loucas “de fora” podem ser uteis. Algumas besteiras que o cara falou fazem um certo sentido, principalmente a insatisfação dele com swing. Mostra que swing não é atrativo para alguem acostumado com a facilidade do delphi.
Eu passei bom tempo da vida programando c++ winapi, a primeira aventura fora disso foi java e eu achei bem “surreal” a forma como funciona o windowing dele, depois de aprender fui descobrindo o motivo daquela implementacao e passei a “gostar” mesmo sabendo que poderia ser mais facil para o progrmador.
Ter que escrever quase duas mil linhas de código pra tornar o JTable realmente útil e “rico” é meio chato. Eu só precisei fazer uma vez na vida, mas de qualquer forma, passei uns dias dando soco no teclado. Sim, o JTable é super poderoso e dá pra fazer N coisas com aquilo. Mas garanto a voces que a dor de cabeça de pegar um canvas e fazer tudo from scratch é comparavel e a sensação depois de ter concluído é muito melhor.
Pois é, e quem nunca utilizou uma linguagem funcional deveria saber o quanto closures são uma maravilha e o quanto isso faz falta em “linguagens orientadas a objetos sem closures” (como Java). A orientação a objetos não é o início, nem o meio nem o fim da história da programação, é apenas uma das maneiras de se programar que pode ou não ser boa para um determinado caso.
E sobre a manunenibilidade de código, eu lido diariamente com código “orientado a objetos” que provavelmente foi escrito em uma máquina de escrever, porque ele não é nem um pouco fácil de manter.
cv falou sobre Ruby e Phyton que são ótimas linguagens, melhores que java e pah, mas já ouviram falar em Haskell? Falam que ela destroi… muito mais produtiva que essas outras (Phyton, Ruby e Java).
olá,
"Mas se pensarmos em nível de linguagem o Java é absolutamente
imbatível hoje. "
não sei o que esse cara o “jprogrammer” viu de imbatível na ultra-complicada-complexa-ineficiente linguagem Java, não consigo entender!!!
"Bom, acho que OO e JAVA deram um pontapé no surgimento de muitas tecnologias novas… e a sua
importãncia na realidade tecnológica de hoje é inquestionável! "
bom, estou escrevendo agora em 2011, ano em que o Java começou a afundar já que a Oracle comprou a Sun e já começou a fechar o Java
e processar quem usou a tecnologia (Google), portanto acordem !!! o Java foi apenas uma linguagem muito mal feita, derivada do C,
que os norte-americanos nos empurraram goela abaixo, para depois que a linguagem se estabelecesse no mundo inteiro, aí cobrar licença,
e vocês ficam aí dando atenção e falando dessa linguagem, por favor não se deixem enganar da próxima vez, porque importância na realidade
tecnológica de hoje como nosso amigo falou, ah … isso Java não tem mesmo!
“Depois que o Java apareceu e comecou a ficar famoso …”
Acontece que o Java não “apareceu” como diz o nosso amigo vfpamp, foi “empurrado” para nós aqui do Brasil, como deve ter sido
empurrado mundo afora também, vocês não notaram que a cúpula de todas as empresas foi influenciada por essas empresas dos
Estados Unidos? e passaram a fazer novos projetos em Java ? e como nós aceitamos isso ? porque não desenvolvemos uma linguagem
nacional? porque ficamos programando em uma linguagem extremamente mal projetada, derivada do C, o C foi projetado para criar
software básico (tipo compiladores e outras coisas básicas), por isso é tão difícil fazer alguma coisa na área
financeiro/comercial/administrativa em Java, e ainda tem um zilhão de frameworks, uma pior do que a outra, é despadronizada e
ainda tem gente achando que isso é liberdade, fala sério!! famoso? agora em 2011 não tá mais tão famoso assim, e o mercado parece
estar se afastando de Java agora (indo pra Ruby), e como ficam as aplicações que vocês defensores do Java fizeram? coisas “lindas”
vamos assim dizer, por isso que as empresas brasileiras tem essa colcha de retalhos de linguagens nos seus sistemas, por esses
modismos que aparecem.
"Mas se pensarmos em nível de linguagem o Java é absolutamente
imbatível hoje. "
não sei o que esse cara o “jprogrammer” viu de imbatível na ultra-complicada-complexa-ineficiente linguagem Java, não consigo entender!!!
"Bom, acho que OO e JAVA deram um pontapé no surgimento de muitas tecnologias novas… e a sua
importãncia na realidade tecnológica de hoje é inquestionável! "
bom, estou escrevendo agora em 2011, ano em que o Java começou a afundar já que a Oracle comprou a Sun e já começou a fechar o Java
e processar quem usou a tecnologia (Google), portanto acordem !!! o Java foi apenas uma linguagem muito mal feita, derivada do C,
que os norte-americanos nos empurraram goela abaixo, para depois que a linguagem se estabelecesse no mundo inteiro, aí cobrar licença,
e vocês ficam aí dando atenção e falando dessa linguagem, por favor não se deixem enganar da próxima vez, porque importância na realidade
tecnológica de hoje como nosso amigo falou, ah … isso Java não tem mesmo!
“Depois que o Java apareceu e comecou a ficar famoso …”
Acontece que o Java não “apareceu” como diz o nosso amigo vfpamp, foi “empurrado” para nós aqui do Brasil, como deve ter sido
empurrado mundo afora também, vocês não notaram que a cúpula de todas as empresas foi influenciada por essas empresas dos
Estados Unidos? e passaram a fazer novos projetos em Java ? e como nós aceitamos isso ? porque não desenvolvemos uma linguagem
nacional? porque ficamos programando em uma linguagem extremamente mal projetada, derivada do C, o C foi projetado para criar
software básico (tipo compiladores e outras coisas básicas), por isso é tão difícil fazer alguma coisa na área
financeiro/comercial/administrativa em Java, e ainda tem um zilhão de frameworks, uma pior do que a outra, é despadronizada e
ainda tem gente achando que isso é liberdade, fala sério!! famoso? agora em 2011 não tá mais tão famoso assim, e o mercado parece
estar se afastando de Java agora (indo pra Ruby), e como ficam as aplicações que vocês defensores do Java fizeram? coisas “lindas”
vamos assim dizer, por isso que as empresas brasileiras tem essa colcha de retalhos de linguagens nos seus sistemas, por esses
modismos que aparecem.
"Mas se pensarmos em nível de linguagem o Java é absolutamente
imbatível hoje. "não sei o que esse cara o “jprogrammer” viu de imbatível na ultra-complicada-complexa-ineficiente linguagem Java, não consigo entender!!!
"Bom, acho que OO e JAVA deram um pontapé no surgimento de muitas tecnologias novas… e a sua
importãncia na realidade tecnológica de hoje é inquestionável! "bom, estou escrevendo agora em 2011, ano em que o Java começou a afundar já que a Oracle comprou a Sun e já começou a fechar o Java
e processar quem usou a tecnologia (Google), portanto acordem !!! o Java foi apenas uma linguagem muito mal feita, derivada do C,
que os norte-americanos nos empurraram goela abaixo, para depois que a linguagem se estabelecesse no mundo inteiro, aí cobrar licença,
e vocês ficam aí dando atenção e falando dessa linguagem, por favor não se deixem enganar da próxima vez, porque importância na realidade
tecnológica de hoje como nosso amigo falou, ah … isso Java não tem mesmo!“Depois que o Java apareceu e comecou a ficar famoso …”
Acontece que o Java não “apareceu” como diz o nosso amigo vfpamp, foi “empurrado” para nós aqui do Brasil, como deve ter sido
empurrado mundo afora também, vocês não notaram que a cúpula de todas as empresas foi influenciada por essas empresas dos
Estados Unidos? e passaram a fazer novos projetos em Java ? e como nós aceitamos isso ? porque não desenvolvemos uma linguagem
nacional? porque ficamos programando em uma linguagem extremamente mal projetada, derivada do C, o C foi projetado para criar
software básico (tipo compiladores e outras coisas básicas), por isso é tão difícil fazer alguma coisa na área
financeiro/comercial/administrativa em Java, e ainda tem um zilhão de frameworks, uma pior do que a outra, é despadronizada e
ainda tem gente achando que isso é liberdade, fala sério!! famoso? agora em 2011 não tá mais tão famoso assim, e o mercado parece
estar se afastando de Java agora (indo pra Ruby), e como ficam as aplicações que vocês defensores do Java fizeram? coisas “lindas”
vamos assim dizer, por isso que as empresas brasileiras tem essa colcha de retalhos de linguagens nos seus sistemas, por esses
modismos que aparecem.
PQP… alguém fecha esse Tópico aqui… please…
Discussão antigamente tinha um nível elevado, hein? Além da discussão alto nível do próprio tópico, ainda tem referência a outros ótimos tópicos.
Esse pessoal poderia continuar discutindo mais por aqui ou ao menos deixar suas opiniões em algum lugar público (como um blog) 
Vou bloquear o tópico antes que o gadriano continue com a diarréia mental e outros queiram entrar na brincadeira para fazer uma farrinha.
marcio_gs, realmente, antigamente as discussões eram de um nível elevadíssimo. Hoje em dia a maioria das discussões ou acabam em falatório desnecessário ou nem se iniciam pq o assunto já foi discutido várias vezes.