Não há um consenso geral sobre POO: Pedido de desculpas e links para o tema
Bom, como de costume, todo domingo eu tento realizar um post aqui no TabNews. Seja sobre termo tecnico ou sobre alguma experiência
Neste domingo, eu escrevi um artigo sobre Orientação a Objetos, eu estou estudando neste momento junto com Csharp. Eu realmente acreditava que havia um consenso geral sobre o tema, mas descobri que não há.
Esse tema é mais complicado do que parece, então eu resolvi apagar o post sobre o tema pois estava fazendo algo que eu odeio: espalhando desinformação e resolvi fazer esse para corrigir. Após escrever esse post irei estuda-los mais profundamente.
Essa é uma forma de que mais pessoas não cometam o mesmo erro que eu quando estiverem estudando sobre Orientação a Objetos e um sincero pedidos de desculpas por espalhar desinformação. Mas isso não é de todo mal, fico feliz pelo pessoal ter aberto meus olhos sobre o tema.
Abaixo esta todos os links que enviaram no post. Eu sugiro que todos que estejam estudando OO leiam!
Parabéns pela atitude. Sei como é difícil reconhecer o erro, ainda mais em coisas que são propagadas por muita gente. Eu mesmo acreditei durante muito tempo na definição "clássica" de orientação a objeto, até perceber que o buraco era mais embaixo e que na verdade aquela era apenas uma das muitas definições existentes (e que há muita controvérsia ainda). Sugiro a todos seguirem os links indicados (e também os links que estão em cada texto), dará uma visão mais ampla sobre o assunto.
A área de Ciência da Computação é relativamente nova (se comparada à outras ciências), e pelo que percebo, muita coisa carece de uma formalização mais rígida. Apesar de computação ser "filha" da matemática, ironicamente ela não herdou o rigor por definições claras e sem ambiguidade.
Daí temos um cenário em que há muitas definições ambíguas, com várias pessoas usando termos diferentes para se referir às mesmas coisas, ou o mesmo termo com significados completamente distintos. E surgem confusões como essa da Orientação a Objeto, mais um termo sobre o qual não há consenso, mas todo mundo diz que sabe o que é, e que "a minha definição" é que está certa, e todos os outros estão errados.
Isso acontece com outros termos também, como por exemplo a diferença entre mapa, um dicionário, um array associativo e uma tabela hash. Ou API, que muita gente acha que é só "uma URL que retorna um JSON". Ou achar que complexidade de algoritmo (Big-O) mede o tempo. Incrível como uma área que exige formalismo e precisão se tornou tão bagunçada.
E muita dessa confusão acontece porque as pessoas espalham a informação errada e acontece aquela situação da mentira que é contada várias vezes e se torna "verdade". Pelo menos aqui conseguimos conter um pouco o problema, então novamente parabéns pela atitude :-)
Parabéns pelo posicionamento. E concordo com você, não há um consenso definitivo em nada no desenvolvimento. Pois cada um, em um determinado momento, cria sua própria abstração de como enxerga um sistema e seu desenvolvimento. Mas o legal é isso aí, há várias maneiras e nenhuma delas está errada no fim.
Tudo é relativo, inclusive no mundo de tecnologia. Você vai achar divergências até em temas que parecem mais óbvios. O importante é expor sua opinião com respeito e estar aberto a ouvir outras com atenção, fica tranquilo!