Desempenho das Linguagens de Programação Imperativa X Orientada a Objetos

Ola Galera,

Estou com um trabalho de faculdade aonde tenho que selecionar 2 Linguagens de programação, sendo uma delas no paradigma imperativo e a outra no Paradigma Orientado a Objetos, para fazer um estudo de caso. Gostaria de ouvir opiniões sobre qual linguagem que seria produtiva de trabalhar, e se tiver algum material, seria muito bom também.

Abraços

Desempenho é uma palavra muito forte, é facil imaginar que vc esta falando de performance, por exemplo.

Sabemos que linguagem não tem performance e sim suas implementações.

[quote=peczenyj]Desempenho é uma palavra muito forte, é facil imaginar que vc esta falando de performance, por exemplo.

Sabemos que linguagem não tem performance e sim suas implementações.[/quote]

Em parte vou discordar de você. Linguagens de alto nível tendem à queda de performance. Mas isso devido ao overhead gerado por método sobre método.(O compilador)

implementação implica seriamente na performance.

Respondendo a pergunta, sobre produtividade. Depende do projeto.
Desenvolver um sistema de informação em assembly está fora de cogitação, em contrapartida, assembly é a melhor maneira de escrever controladores de dispositivios de hardware(device drivers).

Isso serve para as metodologias que você citou. cada um no seu quadrado.

Ele quer algo sobre “produtividade”. Por exemplo, a linguagem X é mais produtiva que a Y no domínio de problemas Z porque tem a biblioteca W enquanto esta tem uma biblioteca V que não tem suporte nas IDEs ou coisa parecida.

ainda, na minha opinião, depende do projeto. Um sistema especialista é muito mais fácil de se desenvolver usando prolog ou lisp, do que qualquer outra metodologia.

È seria mais ou menos isso, mas o objetivo principal do trabalho é focar no Paradigma da Linguagem, Ex: A P.O.O tem uma vantagem sobre o Imperativo por causa disso, disso e disso.

Daí que surge minha dúvida, quais as 2 linguagens que irei usar, a princípio pensei em C(Imperativo) e JAVA(O.O), estou pensando em PHP, mas gostaria de ouvir a opinião de vocês.

Abraços

È seria mais ou menos isso, mas o objetivo principal do trabalho é focar no Paradigma da Linguagem, Ex: A P.O.O tem uma vantagem sobre o Imperativo por causa disso, disso e disso.

Daí que surge minha dúvida, quais as 2 linguagens que irei usar, a princípio pensei em C(Imperativo) e JAVA(O.O), estou pensando em PHP, mas gostaria de ouvir a opinião de vocês.

Abraços[/quote]
Também acho que depende do caso. Pegue uns 2 ou 3 tipos de projetos (sistemas embarcados, jogos e sistemas web, por exemplo) e compare as duas linguagens. Acho que C e Java seria interessante, mas bastante comum.

Entendi. Olha,

linguagens de baixo nível, procedurais, como c e pascal, são mais utilizadas para se criar tecnologia(não necessáriamente, mas é um padrão). O uso dessas linguagens, se deve ao fato de serem muito flexíveis, e seus compiladores gerarem código otimizado a diversos processadores(inclusive microcontroladores). O kernel do linux é escrito em c(não c++) devido a alta otimização e performance, chegando bem próximo ao assembly. É comumente utilizada para construção de software básico(Sistemas Operacionais, Compiladores, Drivers, etc…)
(c, assembly, pascal(nem tanto), c++)

linguagens de alto nivel, orientadas a objeto, têm uso específico, onde a produtividade é prioridade. O código se torna muito mais legível e fácil de se manter. Seu uso se resume a sistemas computacionais comerciais, ferramentas, e aplicativos. (Ex: Vb, java, c#, ruby)

linguagens de alto nivel, declarativas são utilizadas para resolver problemas de Inteligência artificial, específicos de base de conhecimento, como sistemas especialistas. Lisp, Prolog,

Cada coisa tem maior utilidade em determinadas áreas.

A microsoft está pesquisando o singularity, que é um sistema operacional, cujo kernel é escrito em c#. Para isso sair da prancheta, é necessário bootar uma máquina virtual junto com o kernel. Sendo o kernel um sistema de tempo crítico de resposta, imagino que esse projeto não saia da prancheta mesmo.

O Android, é um kernel linux, com uma jvm embutida, e funciona perfeitamente. Mas tudo escrito em c.

Em contrapartida, escrever um sistema para um comércio em assembly não tem cabimento. Vai levar anos de desenvolvimento.

Sobre metodologia, é perfeitamente possível usar encapsulamento, e idéias de O.O em uma linguagem como c. O.O é uma metodologia e não uma tecnologia.

Entendi. Olha,

linguagens de baixo nível, procedurais, como c e pascal, são mais utilizadas para se criar tecnologia(não necessáriamente, mas é um padrão). O uso dessas linguagens, se deve ao fato de serem muito flexíveis, e seus compiladores gerarem código otimizado a diversos processadores(inclusive microcontroladores). O kernel do linux é escrito em c(não c++) devido a alta otimização e performance, chegando bem próximo ao assembly. É comumente utilizada para construção de software básico(Sistemas Operacionais, Compiladores, Drivers, etc…)
(c, assembly, pascal(nem tanto), c++)

linguagens de alto nivel, orientadas a objeto, têm uso específico, onde a produtividade é prioridade. O código se torna muito mais legível e fácil de se manter. Seu uso se resume a sistemas computacionais comerciais, ferramentas, e aplicativos. (Ex: Vb, java, c#, ruby)

linguagens de alto nivel, declarativas são utilizadas para resolver problemas de Inteligência artificial, específicos de base de conhecimento, como sistemas especialistas. Lisp, Prolog,

Cada coisa tem maior utilidade em determinadas áreas.

A microsoft está pesquisando o singularity, que é um sistema operacional, cujo kernel é escrito em c#. Para isso sair da prancheta, é necessário bootar uma máquina virtual junto com o kernel. Sendo o kernel um sistema de tempo crítico de resposta, imagino que esse projeto não saia da prancheta mesmo.

O Android, é um kernel linux, com uma jvm embutida, e funciona perfeitamente. Mas tudo escrito em c.

Em contrapartida, escrever um sistema para um comércio em assembly não tem cabimento. Vai levar anos de desenvolvimento.

Sobre metodologia, é perfeitamente possível usar encapsulamento, e idéias de O.O em uma linguagem como c. O.O é uma metodologia e não uma tecnologia.[/quote]

Hum, muito boa a explicação, porém ainda preciso de dados mais precisos, ex: qual a melhor Linguagem O.O, e a melhor Imperativa…
Tu pode me indicar algum material para que eu possa me familiarizar com o assunto?

Abraços

não existe melhor. Existe a mais adequada a determinadas situações.
Me passe o que vc quer projetar que eu lhe indico uma.

Você poderia comparar COBOL e Java (porque ambas são muito usadas para aplicações comerciais).
C e Java são usados para coisas diferentes (embora haja alguns caras que gostam de queimar dinheiro e tentam usar C para coisas que não são de infra-estrutura).

sim, um software em c exige bastante tempo e dinheiro, para o desenvolvimento.

[quote=augustocolom]
Hum, muito boa a explicação, porém ainda preciso de dados mais precisos, ex: qual a melhor Linguagem O.O, e a melhor Imperativa…
Tu pode me indicar algum material para que eu possa me familiarizar com o assunto?
Abraços[/quote]

Cara você ainda não pegou o espírito da coisa…

Eu compro uma “espingarda” e você compra uma “vara de pescar” Qual é a melhor… ambas são ferramentas para diferentes propósitos…

Nesse final de semana vamos pescar… legal, ponto pra você… se semana que vem formos caçar eu levei a melhor…

Espero ter sido claro…

"

Orientado a objetos, aconselho Java…

[quote=juliocbq]
Entendi. Olha,

linguagens de baixo nível, procedurais, como c e pascal, são mais utilizadas para se criar tecnologia(não necessáriamente, mas é um padrão). O uso dessas linguagens, se deve ao fato de serem muito flexíveis, e seus compiladores gerarem código otimizado a diversos processadores(inclusive microcontroladores). O kernel do linux é escrito em c(não c++) devido a alta otimização e performance, chegando bem próximo ao assembly. É comumente utilizada para construção de software básico(Sistemas Operacionais, Compiladores, Drivers, etc…)
(c, assembly, pascal(nem tanto), c++)

linguagens de alto nivel, orientadas a objeto, têm uso específico, onde a produtividade é prioridade. O código se torna muito mais legível e fácil de se manter. Seu uso se resume a sistemas computacionais comerciais, ferramentas, e aplicativos. (Ex: Vb, java, c#, ruby)

linguagens de alto nivel, declarativas são utilizadas para resolver problemas de Inteligência artificial, específicos de base de conhecimento, como sistemas especialistas. Lisp, Prolog,

Cada coisa tem maior utilidade em determinadas áreas.

A microsoft está pesquisando o singularity, que é um sistema operacional, cujo kernel é escrito em c#. Para isso sair da prancheta, é necessário bootar uma máquina virtual junto com o kernel. Sendo o kernel um sistema de tempo crítico de resposta, imagino que esse projeto não saia da prancheta mesmo.

O Android, é um kernel linux, com uma jvm embutida, e funciona perfeitamente. Mas tudo escrito em c.

Em contrapartida, escrever um sistema para um comércio em assembly não tem cabimento. Vai levar anos de desenvolvimento.

Sobre metodologia, é perfeitamente possível usar encapsulamento, e idéias de O.O em uma linguagem como c. O.O é uma metodologia e não uma tecnologia.[/quote]
Sua resposta esta certa, e ainda diria cada tecnologia atingi mercados e interesses diferentes, é isso vai desde plataforma(entre especificações) até maquinas e outras atividades industriais distintas também.

abrasss