Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Thiago Dias_132983

Orientado a Objetos x Procedural

Recommended Posts

Reuso não é CTRL+C + CTRL+V :closedeyes:

 

 

Entender é uma coisa, saber aplicar é outra completamente diferente.

 

 

 

C não é baixo nível e é sim para iniciantes. No meu curso a galera aprende C no primeiro semestre. Claro que demora um pouco até você entender o que são ponteiros e referências, mas C é a "linguagem-mãe".

 

Assembly serve apenas para coisas muito específicas e tende a cair em desuso com o avanço da tecnologia dos compiladores.

 

 

 

RNA não é linguagem... São algortimos muito específicos onde realmente não dá pra saber o que acontece em seu interior, são uma caixa preta pois são autônomos, tentam emular o funcionamento do cérebro humano, que também não sabemos ao certo como funciona. Mas isso não faz parte do escopo da discussão.

 

É possível produzir um código legível tanto em C ou Java quando em PHP ou Python, basta ter conhecimento e boa vontade para isso.

 

Reuso não é CTRL+C + CTRL+V
:graduated:

 

 

 

Pessoal, desde já agradeço a todas as respostas, e sei que o tópico é meio antigo, já tinha até me esquecido mas, navegando pela internet me deparei com ele e como tinham novas respostas, resolvi comentar para responder algumas coisas, também obtive novas experiências com OO e gostaria de compartilhar, por que creio que ainda existam pessoas com dúvidas relacionadas.
Primeiro as respostas:

 

Reuso não é CTRL+C + CTRL+V

 

De fato mas, não faço isso, mas se entendi a resposta, creio que com 'CTRL+C + CTRL+V' você quis dizer que ao chamar com um 'include' um arquivo global com funções eu estaria copiando e colando, mas da mesma forma com uma classe eu precisaria incluir ela no script que eu desejar usar para poder obter acesso,
exemplo:
.header -> aqui iria o include/require com o arquivo contendo as funções globais, ou a classe sendo em OO
.center
.footer
Entretanto hoje vejo algumas outras vantagens do OO que vou comentar no final.

 

C não é baixo nível e é sim para iniciantes. No meu curso a galera aprende C no primeiro semestre. Claro que demora um pouco até você entender o que são ponteiros e referências, mas C é a "linguagem-mãe".

 

C não é completamente baixo nível mas C inclui algum grau de acesso a funções de programação de baixo nível

 

Já em relação a linguagem C ser para iniciantes, para que não haja confusão para o pessoal que está começando, o que consigo ver é que ela é ensinada para iniciantes por conter todos os conceitos primários e avançados da programação procedural que diversas linguagens inclusive herdam, por exemplo: não seria interessante ensinar php de início, logo que em php não é obrigatório ter todo o controle e especificações de dados e etc do C, o que é incrível e agiliza muito o desenvolvimento, 'mas é melhor aprender a trocar um pneu furado de um carro antes de começar a dirigir', C é uma linguagem avançada de uso profissional, que pode ser melhor ou pior para cada caso, tudo vai depender da necessidade, mas que para iniciantes, é melhor começar por ela para obter um conhecimento sólido em programação.

 

 

 

RNA não é linguagem... São algortimos muito específicos onde realmente não dá pra saber o que acontece em seu interior, são uma caixa preta pois são autônomos, tentam emular o funcionamento do cérebro humano, que também não sabemos ao certo como funciona. Mas isso não faz parte do escopo da discussão.

 

Faz parte, citei RNA como exemplo para melhor uso do procedural, por que na grande maioria das vezes, as tentativas para simular redes neurais passam longe de linguagens orientadas a objetos, citando exemplo de 'lisp' como uma das melhores linguagens para isso, logo que ela é mais científica/matemática, e sua sintaxe pode ser vista como procedural

 

 

Respostas a parte,
Com minhas novas experiências em OO, consegui provar da grande vantagem(forçada) da organização, e facilidade de posterior manutenção/entendimento do código, em relação a reutilização de código também, extends, os muitos métodos mágicos e etc, embora possa se fazer coisas semelhantes com procedural, OO pode ser melhor nisso para muitas pessoas, e o motivo é simples, em OO você é forçado a se organizar tanto pela sintaxe quanto pela forte metodologia envolvida que pode se ver também nos comentários dos amigos acima, claro que tem gente que faz errado mesmo com OO, mas mesmo assim, melhor do que se essa mesma pessoa fizesse em procedural, logo que o procedural te deixa fazer o que que quiser e não tem uma metodologia padronizada forte como em OO, ou seja, geralmente programadores ruins saem jogando códigos espalhando em vários lugares e como citaram acima, usando CTRL+C e V, claro que há excelentes programadores que fazem projetos incríveis com procedural, mas o cara tem que ser bom e organizado.

 

 

 

Acredito que a sua dificuldade em ver vantagens está mais no modo como é vendido o paradigma, digo isto porque as pessoa falam de OO no PHP como se fosse uma coisa fantástica que separasse programadores jedi de amadores, isto é burrice. O que eu aplico desde sempre no trabalho é: fazer o certo da forma mais simples possível.

 

De fato como o nosso amigo ESerra comentou acima, hoje entendo que o problema que algumas pessoas possuam para conseguir ver as vantagens do OO está na propaganda e que os dois paradigmas podem ser igualmente bem ou mal utilizados,
agradeço a resposta e creio que esclareceu as dúvidas de muitas pessoas, inclusive minhas na época.
Na minha opinião, para um bom programador acostumado com procedural, o que ele ver em OO é apenas uma forma diferente para organizar e gerenciar o código, o que pode fazer muita diferença em vários casos ( como no desenvolvimento em grupo), mas que para ele, consegue o mesmo com procedural, mesmo que inicialmente ele tenha que trabalhar um pouco mais pra isso( ou não, vai depender do que se está fazendo).
O negócio é aprender tudo, fazer o melhor uso possível de cada coisa e se adaptar ao mercado que como forma de prevenir o mal uso da linguagem e com isso resultar em perda de tempo e elevar custos, adotam na maioria das vezes o paradigma de orientação a objetos, levando em conta também que maior parte das "novas" arquiteturas e etc se utilizam de OO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.