Discussão - Design Patterns

13 respostas
leandronsp

Pessoal, oq vcs acham da idéia de que o que resolve os problemas de verdade não são a grande quantidade de patterns, mas sim o desenvolvimento de novas linguagens, que ‘escondem’ esses patterns, fazendo com que o programador desenvolva pensando no negócio em questão.

Tem dois links interessantes pra discutir:
Design Patterns - defeitos na linguagem
Design Patterns - sobrevivendo ao tempo?

13 Respostas

SanjuanRJ

Eu não programo em ruby. Mas um colega meu que fez um curso da caelum de ruby on rails falou que o professor falou muito sobre isso.

Java resolve seus “defeitos” com padrões de projetos. Depois que eu ouvi isso me deu vontade de aprender ruby.

É claro que quanto mais pensarmos nas regras de negócio e esquecer do resto, mais fácil e talvez dizer “prazerosa”, será a nossa tarefa.

ViniGodoy

Acho que o que resolve os problemas são os programadores, não as linguagens.

Os patterns são formas comuns de resolver problemas.
Vão existir em qualquer linguagem, mesmo Ruby, embora daí a cartilha será outra.

Acho que vale a pena ler o link que está no primeiro artigo também:

leandronsp

SanjuanRJ:
Eu não programo em ruby. Mas um colega meu que fez um curso da caelum de ruby on rails falou que o professor falou muito sobre isso.

Java resolve seus “defeitos” com padrões de projetos. Depois que eu ouvi isso me deu vontade de aprender ruby.

É claro que quanto mais pensarmos nas regras de negócio e esquecer do resto, mais fácil e talvez dizer “prazerosa”, será a nossa tarefa.

Bacana…to aprendendo Ruby tbm

ViniGodoy

By the way, você pode aprender estudando alguns Design patterns em Ruby.

SanjuanRJ

ViniGodoy:
Acho que o que resolve os problemas são os programadores, não as linguagens.

Os patterns são formas comuns de resolver problemas.
Vão existir em qualquer linguagem, mesmo Ruby, embora daí a cartilha será outra.

Acho que vale a pena ler o link que está no primeiro artigo também:
http://blog.rafaelferreira.net/2007/02/design-patterns-are-not-recipes.html

Concordo, mas quanto menos problemas tivermos, melhor para a gente certo?

Não quero falar mal de java, mas ruby por ser uma linguagem mais nova, acredito que já tenha pensando em problemas recorrentes das outras linguagens.

No artigo ele cita a transição de C para C++. É bem bem melhor de se programar em uma linguagem orientada a objetos certo?

SanjuanRJ

O engraçado é que no blog do Akita ele disse:
“Patterns são sinais de fraquezas nas linguagens de programação.” Hehehe, ele se contradisse aqui.

Mas acredito que o real intuito do artigo é o incentivo para a evolução na base das linguagens.

wagnerfrancisco

SanjuanRJ:
ViniGodoy:
Acho que o que resolve os problemas são os programadores, não as linguagens.

Os patterns são formas comuns de resolver problemas.
Vão existir em qualquer linguagem, mesmo Ruby, embora daí a cartilha será outra.

Acho que vale a pena ler o link que está no primeiro artigo também:
http://blog.rafaelferreira.net/2007/02/design-patterns-are-not-recipes.html

Concordo, mas quanto menos problemas tivermos, melhor para a gente certo?

Não quero falar mal de java, mas ruby por ser uma linguagem mais nova, acredito que já tenha pensando em problemas recorrentes das outras linguagens.

No artigo ele cita a transição de C para C++. É bem bem melhor de se programar em uma linguagem orientada a objetos certo?

Ruby não é uma linguagem nova. Aliás, acho que saiu antes do Java 1.

M

"

SanjuanRJ

wagnerfrancisco:
SanjuanRJ:
ViniGodoy:
Acho que o que resolve os problemas são os programadores, não as linguagens.

Os patterns são formas comuns de resolver problemas.
Vão existir em qualquer linguagem, mesmo Ruby, embora daí a cartilha será outra.

Acho que vale a pena ler o link que está no primeiro artigo também:
http://blog.rafaelferreira.net/2007/02/design-patterns-are-not-recipes.html

Concordo, mas quanto menos problemas tivermos, melhor para a gente certo?

Não quero falar mal de java, mas ruby por ser uma linguagem mais nova, acredito que já tenha pensando em problemas recorrentes das outras linguagens.

No artigo ele cita a transição de C para C++. É bem bem melhor de se programar em uma linguagem orientada a objetos certo?

Ruby não é uma linguagem nova. Aliás, acho que saiu antes do Java 1.

Ok, desculpa a minha ignorância, mas pelo que eu vi até agora ela é uma linguagem que não se importa em alterar o seu core em detrimento dos projetos que usam a versão antiga certo? Em java isso não acontece, ele somente acrescenta mais coisas e dá “deprecated” nas antigas.

Eu me expressei mal.

leandronsp

Pelo que entendi, oq diferencia as linguagens são os recursos que elas oferecem.

É correto dizer: “em algumas ocasiões, Java é melhor…em outras, Ruby é melhor.” ?
Certo que Ruby tem muitos recursos que resolvem problemas da OO, mas será que existem situações onde “com Ruby não dá pra fazer isso, só Java, C#, etc…”.

Pergunto isso pq to aprendendo Ruby e não tenho mta experiência.

M

"

B

O ruim de ficar numa só linguagem é que você acha que uma coisa é impossível de fazer, quando o problema é que a linguagem não provê mecanismos fáceis para fazer o que quer.

Se você não consegue se expressar, você não pensa naquilo. (esqueci o nome dessa hipotese)

Link_pg

Como o amigo disse ali em cima, é muito dificil fazer algo em alguma linguagem e não conseguir fazer em outra. Eu comecei com VB.NET, Java e agora estou estudando linguagens dinâmicas. A minha impressão é que nessas linguagens dinâmicas existem muitas maneiras de fazer a mesma coisa o que não ocorre em Java em alguns cenários. Quanto a facilitar o uso dos padrões, um exemplo básico é o tratamento nativo de listas, que facilita o uso do padrão Iterator. Em java tinha o tal Iterator e hoje tem o for each, ou seja, sempre houve suporte só não era tão transparente. Nem por isso Java era defeituoso nesse sentido, apesar de ser muito mais cômodo usar o tratamento nativo. Outro exemplo: passagem de blocos de código como parâmetro de listeners. Em Java costumamos usar classes anônimas, algo meio tosco, mas que realiza a mesma coisa.

Outra coisa que eu particularmente acho bobeira é dizer que Java é menos orientado a objetos porque tem tipos primitivos e contexto estático (por exemplo). Na verdade são opções a mais que a linguagem oferece, que inclusive sua utilização não é obrigatória. Antigamente talvez podíamos reclamar um pouco da questão dos tipos primitivos, mas os Javas 5+ tem autoboxing :lol:

Abraços

Criado 2 de abril de 2009
Ultima resposta 3 de abr. de 2009
Respostas 13
Participantes 7