Faculdades e compiladores

Caramba, voltei das férias e o papo de c++ e lisp ainda está em alta!

Respondendo ao tópico. Essas matérias são de profunda importância para engenheiros e cientistas da computação, ou seja, para quem desenvolve e cria tecnologia.

Analistas de sistemas não precisam delas, realmente.

[quote=mochuara][quote=ViniGodoy]
Ele considera os recursos da linguagem, explica os diferentes patterns levando em consideração recursos como multi-métodos e macros, e explica que patterns sofrem modificações ou ficam invisíveis e fala de patterns exclusivos dessas linguagens.

Se você não conhece, o Norvig é um dos maiores especialistas na área. A IA também é uma das disciplinas que mais usa linguagens funcionais.[/quote]

Ué, não é isso que esta sendo dito sobre Lisp desde o inicio deste topico? Que os patterns são eliminados pela linguagem?[/quote]

Não, está sendo dito que os patterns são completamente eliminados pela linguagem, e não existirão mais patterns, em momento algum.

Patterns simplificados não são patterns eliminados. O Norvig ainda ressalta mudanças ocorrem em apenas 16 dos patterns. E também fala de patterns que são exclusivos de linguagens funcionais.

Ou seja, o que estou repetindo sem parar é que patterns sempre vão existir. Talvez não os patterns do GoF, pq muitos deles são para linguagens OO, mas outros patterns. Por que problemas comuns sempre existem e, uma vez que temos escolhas, uma delas será geralmente mais adequada e, portanto, constituirá um padrão adota-la.

Ou seja, bastava você ler o que você não negritou.

Os patterns são eliminados completamente em linguagens como Lisp. O programador identifica aquilo que precisa e implementa na própria linguagem. Não ha necessidade da linguagem implementar todos os patterns existentes e que virão a existir no futuro. Lisp é uma linguagem de programação programável. É um idéia bem diferente de Java e c++. e A hora que vc for além de powerpoints para estular lisp de verdade ira entender.

E o que isso tem haver com o tema do tópico: Faculdades e Compiladores?

Com certeza melhor que o meu de arquitetura de computadores que deveria trabalhar numa financiadora, porque toda aula ele falava dos benefícios de financiar um carro ao invés de comprar.

Na minha faculdade não tem matéria de compiladores e o nível da maioria dos alunos é muito fraco.
Entender compiladores é essencial, e o básico nem é tão difícil. Pode ter sido dificil há anos atrás, hoje não é não.

Mas será que estudar compiladores da forma como é ensinada hoje vai mesmo resolver o problema? O problema é abordado do mesmo jeito que era há anos atrás. Focam na compilacao de linguagens estáticas, geralmente um subset de pascal ou c, usando lex e yacc. Ninguém vai aprender lisp ou conceitos de linguagens estudando compiladores desse jeito não. Peguem os livros de compiladores escritos por autores brasileiros, se tiver um que não se encaixa nessa descri’cão que eu dei, me fala que eu vou correndo comprar.

Com certeza melhor que o meu de arquitetura de computadores que deveria trabalhar numa financiadora, porque toda aula ele falava dos benefícios de financiar um carro ao invés de comprar.[/quote]

E eu, uma vez tive um que tava tentando fazer um esquema assim: Uma página era montada por um servlet e era tipo um placar de um jogo e esse placar tinha que ser atualizado automaticamente.

Qual foi a idéia genial? Criar uma thread no servlet que ficasse dando println e aí a página (supostamente) iria ficar se atualizando

E o que isso tem haver com o tema do tópico: Faculdades e Compiladores?[/quote]

Que vc precisa saber sobre compiladores e macros Lisp para entender como a linguagem torna inutil aqueles patterns que programadores OO adoram vomitar nas entrevistas de emprego.

Bom, a faculdade é onde supostamente vc deveria sair sabendo sobre o que estou falando.

Implementa o pattern na propria linguagem seria isso?? E isso seriam as macros lisp??

Ok, então no Lisp tu programa e abstrai os patterns, implementando eles na linguagem.

E quando tu vai pra casa e vai fazer aquele projeto pessoal as macros criadas nos trabalho que “eliminam” os patters vem junto com voce?? Tipo um cachorrinho correndo??

Humm, legal então supondo que tu nao tem cachorro, onde quer que voce va, tu tem que levar teus macros ou sei la o que no bolso.

Humm isso ta me cheirando uma especie de “framework” de patterns, então se eu fizer um .jar que abstrai os patterns vai dar na mesma, com a diferença que tu abstraiu programando na linguagem e eu usando a linguagem!!!

E por incrivel que pareça nos dois casos, os patterns, ainda assim, estão lá, abstraidos mas estão, pois voce teve que implementa-los, sendo uma unica vez ou não.

Continuando na idéia, então se não vem de fábrica na linguagem, então sim, eu tenho que implementar patterns em Lisp tanto quanto em java, e se eu fizer isso em forma de macro ou de um .jar, terei que fazer apenas uma vez mas terei que carrega-los comigo onde for.

E finalizando então, Lisp é uma maravilha, nele tu tem que implementar patterns apenas uma vez, mas caso voce seja um bom arquiteto java, bom em OO e consigar fazer um .jar para abstrair os teus patterns, no final DA NA MESMA, basta carregar um pen drive no bolso, onde quer que voce vá com duas pastas de nomes “Patterns Lisp(Macros)”, “Patterns para Java(.jar)”

[quote=fredferrao]
Humm isso ta me cheirando uma especie de “framework” de patterns, então se eu fizer um .jar que abstrai os patterns vai dar na mesma, com a diferença que tu abstraiu programando na linguagem e eu usando a linguagem!!![/quote]

Isso é um framework de patterns pra vc, eu suponho, porque seu cerébro esta condicionado a pensar que patterns são a unica maneira de construir abstrações em software.

[quote=fredferrao]
E por incrivel que pareça nos dois casos, os patterns, ainda assim, estão lá, abstraidos mas estão, pois voce teve que implementa-los, sendo uma unica vez ou não.[/quote]

Considerando que o projeto Java não tenha sido cancelado porque a equipe ficou a maior parte do tempo discutindo qual padrão usar e o projeto tenha estourado o prazo, sim. Estão lá como uma gilette e uma motoserra, mas vc só teve que arrumar um de cada.

[quote]
E finalizando então, Lisp é uma maravilha, nele tu tem que implementar patterns apenas uma vez, mas caso voce seja um bom arquiteto java, bom em OO e consigar fazer um .jar para abstrair os teus patterns, no final DA NA MESMA, basta carregar um pen drive no bolso, onde quer que voce vá com duas pastas de nomes “Patterns Lisp(Macros)”, “Patterns para Java(.jar)”[/quote]

Seu argumento de que tudo é a mesma coisa porque numa visão puramente estatica “o código é simplesmente uma sequencia de caracteres de texto representados num arquivo localizado em algum sistema de armazenamento” chega a ser patético.

Mas não, o final não da na mesma porque estamos falando de criar abstrações por meio de DSLs e Java não é bom pra isso. Mas uma coisa vc esta certo, para usuários a tecnologia que roda por detrás não importa. Se vc é apenas usuário então vai brincar com seu cachorrinho e deixa o tópico pra quem tem algo a acrescentar.

Tem cada cara mau aqui.

E o que isso tem haver com o tema do tópico: Faculdades e Compiladores?[/quote]

Que vc precisa saber sobre compiladores e macros Lisp para entender como a linguagem torna inutil aqueles patterns que programadores OO adoram vomitar nas entrevistas de emprego.

Bom, a faculdade é onde supostamente vc deveria sair sabendo sobre o que estou falando.[/quote]

Se vc acha que a melhor forma de fazer-se algo é algo inútil, então quem começa a vomitar é vc.
Andei vendo os exemplos de Lisp, uma linguagem antiga, histórica e acadêmica da década de 50 onde if nao tem else (o que torna um código grande de difícil compreensão:

(defun fatorial (n)
  (if (= n 0)
      1
      (* n (fatorial (- n 1)))))

é assim que se dividem dois números:

(/ (fatorial 10000) (fatorial 9998))

Agora, Lisp é inútil? Não, li tmb que ainda é usada para projetos matemáticos ou algo desse tipo.
Inútil é ficar vomitando besteira em um tópico só pra causar revolta geral.

[quote=mochuara][quote=fredferrao]
Humm isso ta me cheirando uma especie de “framework” de patterns, então se eu fizer um .jar que abstrai os patterns vai dar na mesma, com a diferença que tu abstraiu programando na linguagem e eu usando a linguagem!!![/quote]

Isso é um framework de patterns pra vc, eu suponho, porque seu cerébro esta condicionado a pensar que patterns são a unica maneira de construir abstrações em software.

[/quote]
Não se esta discutindo a maneira de se abstrair software, esta se discutindo a existencia e implementação dos patterns em Lisp/Java ou não, caso sejam necessarios.

[quote=mochuara]

O mesmo vale para o Lisp, e considerando o que eu disse isto será feito apenas uma vez, essa discussão deve ter ocorrido no primeiro sistema feito pela empresa, se futuramente precisarem de um pattern apenas adicionam o jar/macro, não precisam recodificar.

[quote=mochuara]

Eu nunca disse que seria a mesma implementação, eu disse que o resultado deu no mesmo, eu disse que voce teve que implementar alguns patterns no Lisp, seja uma unica vez ou não.

Em suma os patterns apenas se mudaram de local, sairam da repetição diaria dentro do código da app e foram parar numa macro lisp, ou em um framework java, e não é exatamente isto o que se propoe frameworks java consagrados? Mas mesmo assim ainda estão la camuflados em macros/jars ou não, e como não vieram nativos na linguagem, eu torno a repetir, voce TEVE QUE IMPLEMENTA-LOS quando precisou deles.

Mas sua resposta foi exatamente o esperado, quase nenhum argumento tecnico e muita tatica troll em tentar desacreditar o adversario(sim adversario porque no mundo troll isso aqui é um campo de batalha).

Que tal voce parar de atacar os outros e postar argumento do porque voce pensa o contrario, mas argumentos concretos, tecnicos com exemplos e fatos.

Sério, de novo essa discussão sobre a falta(no bom sentido) de design patterns em Lisp?
Sorte a de vcs que o thiagosc não apareceu por aqui…

[quote=clone_zealot]Sério, de novo essa discussão sobre a falta(no bom sentido) de design patterns em Lisp?
Sorte a de vcs que o thiagosc não apareceu por aqui…[/quote]
Apareceu, você não viu?
Mas enquanto ninguém se matar é apenas uma discussão interessante.

[quote=fredferrao]
Mas sua resposta foi exatamente o esperado, quase nenhum argumento tecnico e muita tatica troll em tentar desacreditar o adversario(sim adversario porque no mundo troll isso aqui é um campo de batalha).

Que tal voce parar de atacar os outros e postar argumento do porque voce pensa o contrario, mas argumentos concretos, tecnicos com exemplos e fatos.[/quote]

Vou ver se acho alguma referencia “Lisp para dummies” pra te passar. Mas vc pode comprovar a superioridade de Lisp sem precisar ir muito longe, faça um teste alternando entre Java e C# que são praticamente cópia uma da outra e veja se os patterns que vc criou para uma lhe servira, no minimo como inspiração, ou vai precisar rescrever tudo.

[quote=fredferrao]
Em suma os patterns apenas se mudaram de local, sairam da repetição diaria dentro do código da app e foram parar numa macro lisp, ou em um framework java, e não é exatamente isto o que se propoe frameworks java consagrados? Mas mesmo assim ainda estão la camuflados em macros/jars ou não, e como não vieram nativos na linguagem, eu torno a repetir, voce TEVE QUE IMPLEMENTA-LOS quando precisou deles.[/quote]

O que vc esta dizendo é, ignore como o sistema foi feito, como ele é implementado, se ele faz bem o serviço ou não, só o que importa é o resultado produzido por ele. Que tipo de profissional de software é vc?

Voce achou que Lisp ia fazer geração espontanea da aplicação pra vc?

[quote=mochuara][quote=fredferrao]
Mas sua resposta foi exatamente o esperado, quase nenhum argumento tecnico e muita tatica troll em tentar desacreditar o adversario(sim adversario porque no mundo troll isso aqui é um campo de batalha).

Que tal voce parar de atacar os outros e postar argumento do porque voce pensa o contrario, mas argumentos concretos, tecnicos com exemplos e fatos.[/quote]

Vou ver se acho alguma referencia “Lisp para dummies” pra te passar. Mas vc pode comprovar a superioridade de Lisp sem precisar ir muito longe, faça um teste alternando entre Java e C# que são praticamente cópia uma da outra e veja se os patterns que vc criou para uma lhe servira, no minimo como inspiração, ou vai precisar rescrever tudo.[/quote]

Mesma atitude e nada de novo a acrescentar.

Nunca disse em momento algum que seriam os mesmos patterns.

[quote=fredferrao][quote=mochuara][quote=fredferrao]
Mas sua resposta foi exatamente o esperado, quase nenhum argumento tecnico e muita tatica troll em tentar desacreditar o adversario(sim adversario porque no mundo troll isso aqui é um campo de batalha).

Que tal voce parar de atacar os outros e postar argumento do porque voce pensa o contrario, mas argumentos concretos, tecnicos com exemplos e fatos.[/quote]

Vou ver se acho alguma referencia “Lisp para dummies” pra te passar. Mas vc pode comprovar a superioridade de Lisp sem precisar ir muito longe, faça um teste alternando entre Java e C# que são praticamente cópia uma da outra e veja se os patterns que vc criou para uma lhe servira, no minimo como inspiração, ou vai precisar rescrever tudo.[/quote]

Mesma atitude e nada de novo a acrescentar.

Nunca disse em momento algum que seriam os mesmos patterns.[/quote]

Claro que não haveriam de ser. O ponto não é se Lisp pode ter patterns ou não, mas sim que é possivel elimina-los. Algumas linguagens como Java isto não é possivel, e vc precisa aprender a aceitar que patterns são uma feature. Mas é justamente o contrário, sinal de limitação da linguagem.

[quote=mochuara][quote=fredferrao][quote=mochuara][quote=fredferrao]
Mas sua resposta foi exatamente o esperado, quase nenhum argumento tecnico e muita tatica troll em tentar desacreditar o adversario(sim adversario porque no mundo troll isso aqui é um campo de batalha).

Que tal voce parar de atacar os outros e postar argumento do porque voce pensa o contrario, mas argumentos concretos, tecnicos com exemplos e fatos.[/quote]

Vou ver se acho alguma referencia “Lisp para dummies” pra te passar. Mas vc pode comprovar a superioridade de Lisp sem precisar ir muito longe, faça um teste alternando entre Java e C# que são praticamente cópia uma da outra e veja se os patterns que vc criou para uma lhe servira, no minimo como inspiração, ou vai precisar rescrever tudo.[/quote]

Mesma atitude e nada de novo a acrescentar.

Nunca disse em momento algum que seriam os mesmos patterns.[/quote]

Claro que não haveriam de ser. O ponto não é se Lisp pode ter patterns ou não, mas sim que é possivel elimina-los. Algumas linguagens como Java isto não é possivel, e vc precisa aprender a aceitar que patterns são uma feature. Mas é justamente o contrário, sinal de limitação da linguagem.[/quote]

Ta então vamos mudar.

Como afinal voce faz esta eliminação??? Com macros??