• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Marfig

Suporte para OO

22 mensagens neste tópico

Hehe... O VB foi OO desde a versão 1. O problema é que muitos achavam que não se era OO se não se incluísse multiple inheritance, e coisas do género. Ridiculo. Sempre trabalhei em OO no VB :) Certamente que não com a mesma funcionalidade oferecida poor C++, por exemplo. Mas OO sempre foi.

Em relação ao desta é que é... bom, é que já foi. O IE8 passou o Acid2. E todo o diálogo à volta da adopção de standards indica que o browser é um dos melhores na área.


NOTA: Este post era originalmente uma resposta a este.

Alguns do posts que se seguem faziam oiginalmente parte desta thread.

A thread foi dividida em 11/8/2008.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hehe... O VB foi OO desde a versão 1. O problema é que muitos achavam que não se era OO se não se incluísse multiple inheritance, e coisas do género. Ridiculo. Sempre trabalhei em OO no VB :P Certamente que não com a mesma funcionalidade oferecida poor C++, por exemplo. Mas OO sempre foi.

Em relação ao desta é que é... bom, é que já foi. O IE8 passou o Acid2. E todo o diálogo à volta da adopção de standards indica que o browser é um dos melhores na área.

Para ser OO uma linguagem tem de cumprir com um conjunto mínimo de requisitos, herança, polimorfismo, agregação, encapsulação, overload, delegação e "coisas assim do género"...

Deixei o VB na versão 6 e nessa altura ainda não as "coisas assim do género" que definem os requisitos mínimos do paradigma OO. Dizer que uma linguagem é OO sem cumprir com os requisitos mínimos é que é ridículo, ainda mais ridículo é pensar que afirmando uma mentira até à exaustão esta se torna verdade...

Mas isso são águas passadas, não me afecta minimamente o facto do VB não ter sido OO e agora já ser, na altura do VB6 necessitava de uma linguagem OO como deve ser e apostei no Delphi, quando o .Net apareceu, já eu andava no Java há uns anos.

Fico contente por o IE8 ser como deve ser, a Mozila fez um bom trabalho! :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dizer que uma linguagem é OO sem cumprir com os requisitos mínimos é que é ridículo, ainda mais ridículo é pensar que afirmando uma mentira até à exaustão esta se torna verdade...

Pronto. Está bom. Então diz-me lá onde é que viste esses requisitos mínimos. É porque é ponto assente que o único requisito mínimo para se ser OO é usar objectos e suportar interacções entre esses objectos. Podemos começar a discussão noutra thread. Para evitar o OT. Gostaria de discutir o assunto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pronto. Está bom. Então diz-me lá onde é que viste esses requisitos mínimos. É porque é ponto assente que o único requisito mínimo para se ser OO é usar objectos e suportar interacções entre esses objectos. Podemos começar a discussão noutra thread. Para evitar o OT. Gostaria de discutir o assunto.

Não quero (nem vou) começar uma flame, por isso vou a coisa vai ficar por aqui. :P

Pela tua definição, até o C com as suas estruturas é OO, o que é obviamente errado...

Deixo aqui o que é considerado mínimo para OO: http://en.wikipedia.org/wiki/Object_oriented#Fundamental_concepts

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nah. Não iria ser uma flamewar. Pelo menos pelo nosso lado, tenho a certeza. Apenas um debate interessante, nada mais.

De qualquer modo:

- dá uma vista de olhos no topo desse artigo da wikipedia, e nota a parte  "may include features". Aquele may diz-te tudo. Lê também a parte final desse capitulo. Muito importante :P

- Vai ao do VB e nota o penúltimo parágrafo em que faz referência a "has basic object oriented support" (sic)

- Como explicas o facto de o VB ter garbage collection e reference counting sem ser OOP?

- Qual o paradigma de desenvovimento que estás a utilizar no VB então quando estás a criar uma classe, a descrever heranças a efectuar composition e a instanciar objectos com dados e operações para trabalhar esses dados (propriedades e métodos, seguindo a terminologia VB)? Não é funcional, não é imperativo, não é declarativo. É o quê?

Object Oriented Programming é um paradigma de desenvolvimento. Como tal é liberal na sua descrição. Necessariamente concordo que nos dias de hoje tendo em conta o problem domain de muitos dos projectos em que nos envolvemos será quase impossível não imaginar uma linguagem de programação OOP que não implemente conceitos tão importantes como Abstraction ou Polymorphism. Mas é importante na minha opinião deixar claro que a definição de OOP está acima das metodologias que o implementam. Esse tipo de descrição podes ler exactamente no link que fizeste referência sob o cabeçalho Introduction.

O VB foi sempre OOP (ou penso que sempre, referi a versão 1, mas a verdade é que vou lá lembrar-me como era a versão 1. Era uma míudo e estava mais interessado em DBase e Clipper) mas aceito que não aceites este argumento tendo em conta o problem domains típicos dos dias de hoje. Mas lembra-te que OOP evoluiu ele também desde linguagens como o Simula que não implementavam nem metade da lista de "requisitos mínimos" que mostraste. Não significa que já não existissem na altura do VB. Mas significa que não são conceitos obrigatórios para classificar uma linguagem como OOP. Volto a insistir na quarta questão que te coloco acima.

O que me podes dizer, e também aceitarei de bom grado, é que o VB implementou OOP de uma forma fraca e fragmentada. Que poderia ter ido muito mais longe já não sei. Como linguagem interpretada que era estes problemas não se resolvem facilmente sem um grande esforço a nível do runtime. O PHP é OOP à já algum tempo, por exemplo, mas só recentemente implementou polymorphism de uma forma correcta. E mesmo quando o fez ainda sofreu de bugs a nível do late binding. E como sabes, não podes ter polymorphism sem late binding. Bom... não podes ter OOP sem late binding!

Pela tua definição, até o C com as suas estruturas é OO, o que é obviamente errado...

Ah, sim. Sem dúvida. O C não é OOP. Mas eu mencionei objectos.

O C não implementa objectos. As struct não são objectos uma vez que apesar de conterem informação, não contêm as instruções para operar essa informação, nem tão pouco aceitam mensagens. Structs são uma forma inteligente do C implementar object composition, mas não são objectos no verdadeiro sentido da palavra.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nah. Não iria ser uma flamewar. Pelo menos pelo nosso lado, tenho a certeza. Apenas um debate interessante, nada mais.

De qualquer modo:

- dá uma vista de olhos no topo desse artigo da wikipedia, e nota a parte  "may include features". Aquele may diz-te tudo. Lê também a parte final desse capitulo. Muito importante :P

Passo a transcrever: "Programming techniques may include features [...]" são as técnicas de programação e não a linguagem. A linguagem em si tem de suportar um conjunto mínimo de características.

- Vai ao do VB e nota o penúltimo parágrafo em que faz referência a "has basic object oriented support" (sic)

Mas é óbvio que o marketing da MS e os utilizadores do VB repetem isso até à exaustão, na tentativa de que a mentira se torne verdade... :)

O marketing e vendas da MS não podia dizer que o VB não era OO, caso contrário  vendia muito menos, enganado os CEOs das empresas com as "palavras mágicas" empurraram isso à grande. :)

- Como explicas o facto de o VB ter garbage collection e reference counting sem ser OOP?

<nasty mode>Simples: quem programa em VB são pessoas que acham que aquilo é OO, ora, não fazem a mínima ideia do que é uma linguagem de programação à séria e muito menos sabem sobre gestão de memória e então têm de ter um GC por trás para fazer esse trabalho por elas.</nasty mode> :)

Agora a sério: o GC é apenas uma técnica/ferramenta de gestão de memória que está muito ligado ao OO, mas não é exclusivo do OO. Um GC liberta memória de forma automática mas não se limita a referências a objectos, basta ver que o GC foi inventando para o LISP, linguagem de programação funcional, em 1959 décadas antes do VB .

- Qual o paradigma de desenvovimento que estás a utilizar no VB então quando estás a criar uma classe, a descrever heranças a efectuar composition e a instanciar objectos com dados e operações para trabalhar esses dados (propriedades e métodos, seguindo a terminologia VB)? Não é funcional, não é imperativo, não é declarativo. É o quê?

Disseste as palavras mágicas: "segundo a terminologia VB"... E ai é que está o gato escondido com o rabo de fora, é nesse ponto que o marketing e as vendas da MS se refugiavam para dizer que o VB era OO: redefiniram o OO para lhes dar jeito.

O VB era +/- como o C com as suas estruturas mais avançadas, mas isso não fazia do C uma linguagem OO.

Object Oriented Programming é um paradigma de desenvolvimento. Como tal é liberal na sua descrição.

Estou a ver que o marketing e as vendas da MS se conseguiram enganar com o paleio deles uma vez que estás exactamente a usar os argumentos deles para dizer que o OO "é uma zona cinzenta" e como tal o VB encaixa lá sem problemas! :D

Necessariamente concordo que nos dias de hoje tendo em conta o problem domain de muitos dos projectos em que nos envolvemos será quase impossível não imaginar uma linguagem de programação OOP que não implemente conceitos tão importantes como Abstraction ou Polymorphism. Mas é importante na minha opinião deixar claro que a definição de OOP está acima das metodologias que o implementam. Esse tipo de descrição podes ler exactamente no link que fizeste referência sob o cabeçalho Introduction.

"A definição de OOP está acima das metodologias que o implementam", creio que o que queres dizer é que"a definição de OOP está acima das linguagens que o implementam", o que está totalmente errado!

Se uma linguagem não implementa o paradigma OO, ou seja se não cumpre com as características base definidas no OO, então essa linguagem não pode ser considerada OO, é tão simples como isso. Não há "zona cinzenta", ou cumpre ou não cumpre, não se pode se ficar pela metade!

Imagina que queres entrar na F1 e tens um carro que só cumpre metade dos regulamentos da FIA, esse carro, por muito que digas o contrário, não é considerado um carro de F1.

O VB foi sempre OOP (ou penso que sempre, referi a versão 1, mas a verdade é que vou lá lembrar-me como era a versão 1. Era uma míudo e estava mais interessado em DBase e Clipper) mas aceito que não aceites este argumento tendo em conta o problem domains típicos dos dias de hoje. Mas lembra-te que OOP evoluiu ele também desde linguagens como o Simula que não implementavam nem metade da lista de "requisitos mínimos" que mostraste. Não significa que já não existissem na altura do VB. Mas significa que não são conceitos obrigatórios para classificar uma linguagem como OOP. Volto a insistir na quarta questão que te coloco acima.

Conheço o VB desde a 1ª versão até à 6, nenhuma delas era OO. O OO não evoluiu nos seus conceitos básicos ao ponto de fazer com que o VB em 1998 fosse OO e em 2008 deixasse de ser.

Volto a repetir a resposta da 4ª questão acima: ou cumpre com os requisitos mínimos ou então não é OO.

O que me podes dizer, e também aceitarei de bom grado, é que o VB implementou OOP de uma forma fraca e fragmentada. Que poderia ter ido muito mais longe já não sei. Como linguagem interpretada que era estes problemas não se resolvem facilmente sem um grande esforço a nível do runtime. O PHP é OOP à já algum tempo, por exemplo, mas só recentemente implementou polymorphism de uma forma correcta. E mesmo quando o fez ainda sofreu de bugs a nível do late binding. E como sabes, não podes ter polymorphism sem late binding. Bom... não podes ter OOP sem late binding!

A "confusão" está precisamente no facto de que lá por se ter a possibilidade de definir e instanciar uma classe toda a gente acha que a linguagem é OO, o que está totalmente errado!

Uma linguagem OO tem de suportar os requisitos mínimos do paradigma OO, caso contrário não passa de uma linguagem que tem suporte de objectos mas não é OO. O VB suportava, à sua maneira tosca, objectos, mas não era OO.

De novo, o marketing e vendas da MS usou o fraco conhecimento das pessoas para as enganar porque o VB permitia construir um objecto extrapolou-se logo que era uma linguagem OO.

Ah, sim. Sem dúvida. O C não é OOP. Mas eu mencionei objectos.

O C não implementa objectos. As struct não são objectos uma vez que apesar de conterem informação, não contêm as instruções para operar essa informação, nem tão pouco aceitam mensagens. Structs são uma forma inteligente do C implementar object composition, mas não são objectos no verdadeiro sentido da palavra.

O C nunca foi OO nem teve pretenções de ser, daí o nascimento do C++...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Passo a transcrever: "Programming techniques may include features [...]" são as técnicas de programação e não a linguagem. A linguagem em si tem de suportar um conjunto mínimo de características.

Hmm... Um paradigma de programação é um conceito que descreve um estilo de programação, não uma linguagem de programação. As linguagens suportam ou não um paradigma. E podem suportâ-lo total ou parcialmente. A razão porque vês programming techniques logo na primeira linha da descrição do que é OOP é exactamente porque um paradigma diz respeito única e exclusivamente ao estilo de programação É o que diz logo na primeira frase.

Não conseguirás encontrar em lado nenhum (e dasafio-te a fazêlo :P ) uma lista de requisitos mínimos para uma linguagem suportar OOP que seja consensual para além da sua capacidade de implementar objectos, herança, composição, messaging e late binding.

Mas é óbvio que o marketing da MS e os utilizadores do VB repetem isso até à exaustão, na tentativa de que a mentira se torne verdade...

Nah. Deixa-te disso. Eu quero lá saber do VB para alguma coisa. Nunca me convidaram para uma almoçarada nem nunca fui lá a casa.

Eu nunca defendi isto ou aquilo por questões ideológicas. Não posso (é que não posso mesmo!) com a Adobe, mercê das suas práticas comerciais demasiado agressivas (e outros problemas). Mas isso não me impede de usar os seus produtos quando me são úteis. Meu caro, o que conta para mim é o cheque ao fim do mês. O resto é conversa.

Vamos voltar ao que interessa...

Agora a sério: o GC é apenas uma técnica/ferramenta de gestão de memória que está muito ligado ao OO, mas não é exclusivo do OO. Um GC liberta memória de forma automática mas não se limita a referências a objectos, basta ver que o GC foi inventando para o LISP, linguagem de programação funcional, em 1959 décadas antes do VB .

Eu não fui claro. Erro meu...

a pergunta é "Como explicas o facto de o VB ter garbage collection com reference counting sem ser OOP?"

"A definição de OOP está acima das metodologias que o implementam", creio que o que queres dizer é que"a definição de OOP está acima das linguagens que o implementam", o que está totalmente errado!

Não o que eu disse está bem... mas o que tu dizes também. Ah, a ironia destas coisas!

M6, um paradigma de programação descreve um estilo de programação. Vai lá à definição de "Programming Paradigm". Como tal centra-se em metodologias de programação que só podem ser implementadas pelas linguagens. Eu pura e simplesmente não consigo programar num certo estilo se a linguagem não implementar esse paradigma. O que tu dizes e o que eu digo é exactamente a mesma coisa.

O que no entanto penso que não estás a ver no meu argumento é o facto de um paradigma de programação ser uma definição genérica que não obriga a metodologias. Isto é, um paradigma não é uma metodologia. Isto digo-te com mais de 20 anos (que penso ser também o teu caso a julgar pelo teu avatar) de programação e pela minha formação académica.

Agora por favor não repitas o marketing da MS :) Não me vendo. Não defendo o VB. O VB era uma porcaria de linguagem de programação, na minha opinião. Tinha algumas coisas boas, mas do ponto de vista puramente académico o VB era tudo o que uma linguagem interpretada não deveria ser.

Mas... M6, o VB implementava OOP. Era uma implementação básica de OOP, mas era OOP. Porque nunca me conseguirás explicar que paradigma de programação estás a usar quando descreves uma classe em VB, a instancias num objecto e chamas um dos dos métodos desse objecto, sem admitires que estás a programar em OOP.

EDIT: E é esta incapacidade que vais ter que te dá a dica sobre o que é exactamente um paradigma de programação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Um paradigma é um modelo, ou uma norma, que tem obviamente regras e uma linguagem que suporte esse paradigma tem, obviamente, de cumprir com esse modelo, ou norma. Creio que aqui estamos de acordo.

Chamem-me purista, mas o VB não implementava o paradigma (i.e. o modelo ou a norma) OO nos seus requisitos mínimos, é isso que tenho vindo a defender.

Eu também nunca fui convidado por nenhuma empresa para umas almoçaradas, o que é pena pois com o que sofri à conta das idiotices do VB bem merecia uns quantos jantares. :P

Porque nunca me conseguirás explicar que paradigma de programação estás a usar quando descreves uma classe em VB, a instancias num objecto e chamas um dos dos métodos desse objecto, sem admitires que estás a programar em OOP.

Pela mesma forma nunca me conseguirás explicar porque é que o Pascal não é funcional mas sim procedimental, afinal tem funções e suporta recursividade...

Vi umas quantas aplicações feitas em C++ que não eram OO... Espantado? Se tens tantos anos disto como eu não estás espantado: simplesmente as pessoas escreviam código C e depois faziam uso de uns objectos, nada mais...

Quanto às contagens por referência, bem já se faziam antes do OO. Basta ver que se tiveres uma área de memória partilhada tens necessidade de contar as referências que existem para ela de forma a saber se a podes ou não eliminar. Essa área de memória não tem de ser um objecto.

Uma linguagem que não suporta herança, como o VB até à versão 6, não pode ser considerada OO, é tão simples como isso. Podes dar as marretadas que quiseres, simular ou dissimular a coisa, mas a verdade é que não é uma linguagem OO.

Dizer que o VB fazia uma implementação básica de OO é uma maneira simpática de dizer que não suportava realmente o paradigma. De novo, chamem-me purista, mas é assim que vejo as coisas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ah. Nada a fazer. Vamos ter que discordar nisto  :P

No entanto:

Pela mesma forma nunca me conseguirás explicar porque é que o Pascal não é funcional mas sim procedimental, afinal tem funções e suporta recursividade...

Err... deves estar a fazer confusão. O Pascal é realmente procedimental. É isso que são linguagens que implementem funções. Procedures->Procedimental.

Funcional é diferente e não tem a ver com funções em programação, mas sim com funções em matemática. Uma linguagem funcional é uma linguagem que aplica funções matemáticas na sua base de computação.

Vi umas quantas aplicações feitas em C++ que não eram OO... Espantado?

Porque é que havia de ficar espantado? O C++ não é exclusivamente OOP. É, felizmente para nós, uma linguagem multi-paradigma que implementa, programação procedimental (ou procedural se quiseres), generic programming, OOP, e também programação imperativa. Um programa inteiro em C++ sem uma linha que se possa chamar OOP não só não me choca como acho até muito bem, se o OOP não for a forma mais indicada de resolver o problema que o programa está a tratar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ah. Nada a fazer. Vamos ter que discordar nisto  :P

É um facto e nisso estamos de acordo. :)

No entanto:

Err... deves estar a fazer confusão. O Pascal é realmente procedimental. É isso que são linguagens que implementem funções. Procedures->Procedimental.

Funcional é diferente e não tem a ver com funções em programação, mas sim com funções em matemática. Uma linguagem funcional é uma linguagem que aplica funções matemáticas na sua base de computação.

É verdade, estava a fazer uma comparação pelo método de redução ao absurdo.

Porque é que havia de ficar espantado? O C++ não é exclusivamente OOP. É, felizmente para nós, uma linguagem multi-paradigma que implementa, programação procedimental (ou procedural se quiseres), generic programming, OOP, e também programação imperativa. Um programa inteiro em C++ sem uma linha que se possa chamar OOP não só não me choca como acho até muito bem, se o OOP não for a forma mais indicada de resolver o problema que o programa está a tratar.

Sabia que não ias ficar espantado. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pela mesma forma nunca me conseguirás explicar porque é que o Pascal não é funcional mas sim procedimental, afinal tem funções e suporta recursividade...

Numa linguagem funcional, os programas são feitos através de composição de funções apenas.

No Pascal, também pode haver composição de funções, mas a base são sequências de instruções.

Além disso, há ainda o pormenor do estado, que em programação funcional não existe (a menos da utilização de monads).

Mas lá está, como o Pascal suporta funções e composição das mesmas, também é capaz de ser possível programar em Pascal como se fosse uma linguagem funcional.

Para mim o Pascal não é uma linguagem funcional, e deste ponto de vista, também me custa a aceitar que linguagens como o C++ sejam OO. Da mesma forma que suportar funções não significa que a linguagem seja funcional, suporta objectos também não me parece que signifique que a linguagem seja OO.

Indicar as características que uma linguagem tem que ter para implementar um paradigma, é uma questão bastante subjectiva. Mas, pelo que disse acima, dizer que

[...] o único requisito mínimo para se ser OO é usar objectos e suportar interacções entre esses objectos.

parece-me claramente demasiado redutor do que é o paradigma OO.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Rui Carlos, como expliquei acima, estava a fazer uma comparação pelo método de redução ao absurdo, basicamente a mesma conclusão a que chegaste sobre a afirmação de que se usa objectos então é OO...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O VB só começou a ser uma linguagem OO com o aparecimento da versão .NET.

Não vale a pena discutir sobre isso, foi assim que a versão .NET foi apresentada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uh? Deves estar a fazer alguma confusão.

A única semelhança do VB com o VB.Net é a sintaxe. São duas linguagens completamente distintas.

E vale sempre a pena discutir sobre isto. Porque não?

Ou já conseguiste identificar que paradigma de programação estás a usar quando crias uma classe em VB, a derivas de outra classe, lhe dás propriedades e métodos, instancias um objecto dessa classe e chamas um dos métodos ou alteras uma das propriedades?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que todos sabemos que o VB6 não é uma linguagem OO, só por isso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quem são todos? Onde estão eles? :thumbsup:

Eu também tenho amigos :D E aqui deste lado sabemos que o VB é uma linguagem que implementa o paradigma OOP.

Os teus são mais que os meus? Olha que se calhar não. Mas pronto... vamos então usar outros argumentos...

Como explicas então que o VB consiga criar ActiveX e COM objects sem ser OOP? Ou seja, como se criam COM objects em Windows sem derivar do IUnknown interface visto que não sendo OOP, o VB nunca conseguiria fazê-lo?

Ou como explicas o facto de o VB implementar override, aggregação e encapsulação se não é uma linguagem OO? Ou ainda... como explicas que consegue usar o MFC em Visual Basic se não é uma linguagem OOP?

Realmente, o Visual Basic só não é OO se vocês não quiserem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

uh? Estou a falar do VB6 é claro. Porquê? Não sabias que podias criar ActiveX e COM objects em VB6?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O vb6 não tem tudo o que é necessário para ser uma linguagem OO. Se não concordas com as definições é uma coisa, agora que não cumpre isso é inquestionável.

VB6 utiliza o conceito de objectos e até tem a keyword INHERITS mas utiliza apenas o interface e não no código. Não consegues fazer um herança real, por isso não tens um linguagem pura OO.

>> Não sabias que podias criar ActiveX e COM objects em VB6?

Eu não utilizo vb à dois dias ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Resumindo pode-se dizer que o VB6 é uma linguagem baseada em objectos e não uma linguagem orientada por objectos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O vb6 não tem tudo o que é necessário para ser uma linguagem OO. Se não concordas com as definições é uma coisa, agora que não cumpre isso é inquestionável.

VB6 utiliza o conceito de objectos e até tem a keyword INHERITS mas utiliza apenas o interface e não no código. Não consegues fazer um herança real, por isso não tens um linguagem pura OO.

Não estamos a falar de puro OO. Porque se estivermos então o C++ também não é OO. Conta-se pelos dedos de uma mão talvez as que o são. Está-se a falar de paradigmas de programação e do facto de o VB implementar o paradigma OOP e de implementar OOP básico no seu core.

>> Não sabias que podias criar ActiveX e COM objects em VB6?

Eu não utilizo vb à dois dias ...

Portanto sabes que podes. E como tal sabes que o VB suporta OOP. Mesmo que de uma foma básica, e mesmo que possamos (e necessariamente concordarei) discutir as suas deficiências. Se não concordas com isto tudo bem. A decisão é tua. Já me cansa esta discussão.

Não tenho mais nada a acrescentar. Ficas com a tua opinião e eu fico com a minha.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Está-se a falar de paradigmas de programação e do facto de o VB implementar o paradigma OOP e de implementar OOP básico no seu core.

Lançando um pouco de confusão, se estamos a falar de paradigma, e tenho de concordar com o M6, VB não implementa o mínimo do paradigma, mais interessante é que a descrição da Miscrosoft da linguagem e a descrição da linguagem na wikipedia, dizem que VB6 é uma linguagem que implementa o paradigma "Event driven" e não OOP :D

Objectivamente, se olharmos para o que é considerado o mínimo necessário para ser uma linguagem orientada a objecto, verificamos que VB6 não cumpre.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora