Entrevista sobre tópicos atuais com Donald Knuth  XML
Índice dos Fóruns » Notícias
Autor Mensagem
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4152
Localização: São Paulo
Offline

Donald Knuth, o grande nome da computação mundial, cedeu anteontem uma interessante entrevista:
http://www.informit.com/articles/article.aspx?p=1193856

Knuth tem algumas opiniões controversas e polêmicas sobre unit testing, extreme programming, open source e programação concorrente.

O entrevistador sabe atacar as questões de maneira elegante, mas faz algumas ótimas perguntas, tais como: "Se você não usa unit test, como garante que a sua máquina MMIX funciona corretamente?". Algumas respostas de Knuth indicam que a maior parte do tempo ele programa sozinho, isso sem dúvida impacta em muitas de suas opiniões. Algumas dificuldades que nós encontramos no dia a dia certamente não são vividas por um programador solitário.

Vale a pena a leitura!

This message was edited 1 time. Last update was at 28/04/2008 00:35:35


http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
Javabuntu
GUJ Master
[Avatar]

Membro desde: 08/02/2007 17:15:32
Mensagens: 1315
Localização: Brasília
Offline

muito interessante a entrevista...

SCJP 6
SCJD
SCWCD 5
Itil V2
[MSN]
pcalcado
Moderador
[Avatar]

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

http://fragmental.tw/2008/04/27/2dollars56cents/

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]
boaglio
Moderador
[Avatar]

Membro desde: 09/09/2002 21:23:39
Mensagens: 1847
Localização: Sampa City
Offline


Gostei do artigo e com certeza a opinião dele é importantíssima, por mais polêmica que seja.

O que eu acho estranho é o texto comentado no blog do Phillip, que diz que teste unitário é bom vc fazer, afinal você não é Don Knuth.

Se por acaso o Knuth tivesse dito: "adoro testes unitários" , o discurso seria: " tão vendo? o cara que é um gênio usa, pq vc não usa?".

Ou estou enganado?





 

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de Java via MP!
[WWW]
dreamspeaker
GUJ Ranger
[Avatar]

Membro desde: 22/04/2003 10:09:58
Mensagens: 752
Localização: SP - Capitar
Offline

boaglio wrote:... O que eu acho estranho é o texto comentado no blog do Phillip, que diz que teste unitário é bom vc fazer, afinal você não é Don Knuth.

Se por acaso o Knuth tivesse dito: "adoro testes unitários" , o discurso seria: " tão vendo? o cara que é um gênio usa, pq vc não usa?".

Ou estou enganado?


Acredito que vc não esteja enganado não. Quotes são como estatisticas, as pessoas interpretam como quiserem. Só abrir qualquer jornal por aí.

Mas eu levo mais a sério a primeira interpretação do que a segunda. Imagina se gente como Don Knuth e Martin Fowler pulassem juntos do 20o andar...

André Barbosa
Para de encher o saco e vai doar sangue!
twitter
[Email] [WWW]
pcalcado
Moderador
[Avatar]

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

boaglio wrote:
O que eu acho estranho é o texto comentado no blog do Phillip, que diz que teste unitário é bom vc fazer, afinal você não é Don Knuth.

Se por acaso o Knuth tivesse dito: "adoro testes unitários" , o discurso seria: " tão vendo? o cara que é um gênio usa, pq vc não usa?".


Não entendi sua dúvida. Sim, eu citaria, assim como envie pelo twitter a parte que ele fala que só confia no Linux para fazer seu trabalho e quem não concorda deveria postar seus argumentos. Como o caso é contrário quem posto argumentos foi quem defende testes unitários.

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]
boaglio
Moderador
[Avatar]

Membro desde: 09/09/2002 21:23:39
Mensagens: 1847
Localização: Sampa City
Offline

pcalcado wrote:

Não entendi sua dúvida. Sim, eu citaria, assim como envie pelo twitter a parte que ele fala que só confia no Linux para fazer seu trabalho e quem não concorda deveria postar seus argumentos. Como o caso é contrário quem posto argumentos foi quem defende testes unitários.


Eu acho que o dreamspeaker já respondeu, cada um interpreta a coisa a seu favor mesmo.

Eu sou favorável ao uso de testes unitários e o Knuth claramente não é.

Criar uma lógica que leve o fato dele não gostar de testes unitários à conclusão de que você deva usá-los ficou meio estranho pra mim.


 

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de Java via MP!
[WWW]
pcalcado
Moderador
[Avatar]

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

Como voce inferiu essa logica? O meu ponto eh: Don Knuth nao precisa de testes unitario. Voce nao eh Don Knuth .

Alias, cade os Knuth facts?

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]
boaglio
Moderador
[Avatar]

Membro desde: 09/09/2002 21:23:39
Mensagens: 1847
Localização: Sampa City
Offline


Eu acredito que ocorreu uma das duas possíveis opções:

1 Knuth não gosta de testes unitários
2 Knuth gosta de testes unitários

Respostas dos defensores de testes:

1 Knuth não precisa de testes unitários. Você não é o Knuth .
2 se o Knuth que é um gênio usa, por que vc não usaria?


 

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de Java via MP!
[WWW]
pcalcado
Moderador
[Avatar]

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

Exato, e elas sao complementares.

Ele nao usa porque nao precisa. Se ainda nao precisando ele usasse seria mais um ponto positivo.

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]
saoj
JWizard
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2556
Localização: Chicago, EUA
Offline

Eu poderia argumentar pela 1000 vez que teste unitário não é essa coisa maravilhosa, fundamental, o ar que vc respira, etc e tal, mas isso só criaria mais um flame cansativo e desnecessário. Quem quiser usar testes unitários em tudo, até em getters and setters, use e seja feliz. Se isso te deixa produtivo e feliz então isso é MUITO importante para *você*.

Um recém-contratado no seu primeiro dia de emprego fez as seguintes perguntas para o chefe:

1) Qual o sistema operacional que devo usar?
R: Use o que te deixa mais feliz e produtivo.

2) Qual é a IDE que time usa?
R: Use a que vc quiser e a que te deixa mais produtivo.

3) Qual é a política de testes unitários?
R: Faça o que vc quiser, só não entregue código com bugs.

4) Devo usar Office ou OpenOffice?
R: Vc já terminou o seu projeto? Que tal parar de fazer perguntas inúteis e começar a trabalhar?

Minha opinião é que essa discussão é improdutiva.

No mundo Java acho que tirando uma ou outra classe de infra-estrutura (BufferUtils, ByteUtils, etc.), o restante não faz muito sentido de ser testado via testes unitários. Há diversas outras maneiras mais prazerosas e não automatizadas de fazer a coisa. Sem contar que o melhor é sempre previnir do que remediar. Se vc programa de qualquer jeito e se vc não revisa o seu código pelo menos 5 vezes a cada etapa, então testes unitários podem te ajudar bastante. Programe para não cometer nenhum erro, ou o mínimo de erros possíveis. E quando cometer um erro (sim eles acontecem), descubra e corrija-o rapidamente.

No mundo Ruby me parece que teste unitário cai bem, pois como já dizia o homem aranha "with great power comes great responsability".

Java não é uma linguagem poderosa. Com java é difícil vc dar um tiro no próprio pé. Tem que fazer um grande esforço.

Já com Ruby isso é plenamente possível, seja por um conhecimento mediano da linguagem, desatenção ou estupidez mesmo.

Knuth wrote:
As to your real question, the idea of immediate compilation and "unit tests" appeals to me only rarely, when I?m feeling my way in a totally unknown environment and need feedback about what works and what doesn?t. Otherwise, lots of time is wasted on activities that I simply never need to perform or even think about. Nothing needs to be "mocked up."


Teste unitário vai depender do time, do projeto, da linguagem, do estilo e do preço do chá de camomila. Quem quiser usar use-o e seja feliz.

PS: Eu estou para começar a desenvolver alguns testes unitários para o meu último projeto em Ruby. Só não sei ainda se farei testes unitários ou funcionais, mas eu realmente gostaria de ter alguma coisa automatizada.

Agora se quiserem criar um flame, dizendo que quem não respira testes unitários não é profissional, blah, blah, blah, tudo bem. Só que dessa vez eu não vou participar, pois tenho andado realmente muito ocupado. Espero que apareça outra figura querendo argumentar a favor desse meu ponto de vista. Último caso chamem o Knuth.



This message was edited 4 times. Last update was at 28/04/2008 20:36:18


Sergio A Oliveira Jr. - saoj

ExperiMENTA:

Mentawai = http://www.mentaframwork.org - Full-stack Java Web Framework com Configuracão Programática
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com

[Email] [WWW]
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4152
Localização: São Paulo
Offline

saoj wrote:
Teste unitário vai depender do time, do projeto, da linguagem, do estilo e do preço do chá de camomila. Quem quiser usar use-o e seja feliz.



Knuth nao trabalha em time. Escreveu o Tex e o SGB praticamente sozinho. O cara é um pistoleiro .

Mas sobre a sua opiniao de que unit test nao é essencial, todos ja sabemos. A minha continua sendo de que é. Nada de flame, cada um com sua opiniao.

saoj wrote:
PS: Eu estou para começar a desenvolver alguns testes unitários para o meu último projeto em Ruby. Só não sei ainda se farei testes unitários ou funcionais, mas eu realmente gostaria de ter alguma coisa automatizada.


Se voce ja nao comecou com teste unitarios, vai ver que eh SUPER dificil colocar os testes unitarios depois... porque a chance eh grande do codigo ja estar altamente acoplado, o que dificuldade testar a "unidade", ja que a unidade passou a ser varias classes, em vez de uma unica, o que forca voce a ir para testes funcionais, em vez de testes unitarios. Esse caminho é natural. Testes unitarios sem TDD fica bem dificil de aplicar mesmo.

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
louds
Moderador
[Avatar]

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

Paulo Silveira wrote:
saoj wrote:
Teste unitário vai depender do time, do projeto, da linguagem, do estilo e do preço do chá de camomila. Quem quiser usar use-o e seja feliz.



Knuth nao trabalha em time. Escreveu o Tex e o SGB praticamente sozinho. O cara é um pistoleiro .

Mas sobre a sua opiniao de que unit test nao é essencial, todos ja sabemos. A minha continua sendo de que é. Nada de flame, cada um com sua opiniao.

saoj wrote:
PS: Eu estou para começar a desenvolver alguns testes unitários para o meu último projeto em Ruby. Só não sei ainda se farei testes unitários ou funcionais, mas eu realmente gostaria de ter alguma coisa automatizada.


Se voce ja nao comecou com teste unitarios, vai ver que eh SUPER dificil colocar os testes unitarios depois... porque a chance eh grande do codigo ja estar altamente acoplado, o que dificuldade testar a "unidade", ja que a unidade passou a ser varias classes, em vez de uma unica, o que forca voce a ir para testes funcionais, em vez de testes unitarios. Esse caminho é natural. Testes unitarios sem TDD fica bem dificil de aplicar mesmo.


Paulo, o problema do Knuth é que algumas práticas simplesmente se solidificam na cabeça das pessoas depois de décadas e simplesmente não tem como mudá-las. Testes unitários e/ou automatizados é uma coisa que foi criada em meados da década de 80. Não existia um PunchCardUnit quando o Don Knuth era jovem.

Porém hoje ninguém mais programa da forma dele, principalmente pq as ferramentas são completamente diferentes, como linguagens, runtime, poder computacional e tudo mais.

Porém acho errado pensar que só pq o cara é pistoleiro e programa sózinho ele não precisa usar testes automatizados. Uso bastante nos meus pet projects pq eles são uma forma fácil de medir meu progresso. Não sou fã de fica no papel de QA guy daquilo que faço.

Hoje a única justificativa que eu tenho para aceitar programadores profissionais que não escrevem testes é síndrome de estocolmo, pq existe evidencia não estatística de que é uma mais estritamente superior de se trabalhar. Código sem teste é feito documentação impressa, só vale na hora, depois é ladeira abaixo.

Uma pessoa tem que ser muito ingênua, ou nunca ter trabalhado em times grandes (onde grande são uns 5 programando), para achar que é possivel manter a qualidade original do software ao longo do tempo fazendo revisão localizada de código e sendo cowboy-coder.

Na minha experiência, com times grandes ou projetos longos, a qualidade ao longo do tempo é estritamente um fator da quantidade de testes automatizados. Código sem testes irá quebrar pois nenhuma empresa consegue ir aumentando o time de QA para o mesmo projeto ao longo do tempo indefinidamente.

Não defendo escrever testes para um one-shot shell script, mas para qualquer coisa significativa é indispensável.


http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4152
Localização: São Paulo
Offline

louds wrote:
Porém acho errado pensar que só pq o cara é pistoleiro e programa sózinho ele não precisa usar testes automatizados. Uso bastante nos meus pet projects pq eles são uma forma fácil de medir meu progresso. Não sou fã de fica no papel de QA guy daquilo que faço.



Oi louds, voce me concluiu mal... nao sou a favor tambem. To dando so uma possivel desculpa pela qual o Knuth ainda nao percebeu a real necessidade de unit tests. Nao estou de maneira alguma aprovando a opiniao dele!!! Desaprovo essa e a ideia de que multi core em casa nao tem utilidade.

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
Daniel Quirino Oliveira
Moderador
[Avatar]

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

O dia em que as pessoas começarem a entender que TDD e unit tests menos a ver com testes em si e mais a ver com design, boa parte das threads do GUJ vão perder sentido

This message was edited 1 time. Last update was at 29/04/2008 00:49:42


Daniel Quirino Oliveira
[Email] [WWW]
 
Índice dos Fóruns » Notícias
Ir para:   
Powered by JForum 2.1.8 © JForum Team