Purebasic et concepts de POO

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Purebasic et concepts de POO

Message par Kwai chang caine »

Grom a écrit :Mouais... on vas arrêter là hein ? je commence à avoir des images pas très catho qui font tombé ma libido en flèche... :mrgreen:
:lol: :lol:
MicroDevWeb a écrit :Je ne comprend pas bien ta démarche, as tu un projet en tête ou veux tu seulement apprendre quelque chose de nouveau.
Non en vérité je cherche à comprendre, j'aime bien comprendre, je suis curieux et cartésien, le seul hic c'est que depuis que je suis né j'suis pas équipé pour ça :mrgreen:
C'est un malheur d'aimer la course à pied et d'être cul de jatte :|
Déjà à l'école, dans toute les classes j'étais le dernier à comprendre :|
Faut dire que comme j'étais toujours au fond, le son devait mettre plus de temps pour arriver jusqu'à moi (j'avais trouvé une excuse :mrgreen:) mais j'ai vite compris que le ralentissement se produisait entre les tympans et la partie qui est sensé comprendre :oops:

Ca fait presque 10 ans que l'on nous bassine avec cette POO
Au début j'ai cru à un phénomène de mode, style pantalon "patte d'eph"
Puis j'ai vu que la POO au contraire de passer comme une mauvaise chaude pisse, elle s'est propagée (comme elle aussi :mrgreen:) dans les exe, les scripts, le web, etc ...enfin bref .... c'est devenu un classique au même titre que le "cuirassier POOtemkine"

Moi perso, "j'étais heureux, j'étais pééééénard, ......accoudé au comptoooooir avec mon PB super chouette", mais dans le bidet qui me sert de cerveau, au bout de toutes ces années de propagande POOlitique, je me suis dit que si autant de monde parlait de ça, c'est qu'il y avait surement quelque chose.
A l'époque, j'avais même acheté des livres pour passer de VB6 à .NET lorsqu'il est arrivé
J'ai commencé à lire cette histoire de classes, que c'était comme une voiture, etc .... pas vraiment vu d’intérêt de se compliquer la vie à faire les nœuds au linge avant la lessive 8O
J'ai donc abandonné, mais la maladie est venue me chercher même dans mon PB d'amour, tous les X temps, y'a un post sur le US ou même FR et DE, des codes de ouf à faire pâlir la déclaration des droits de l'homme.
Les plus grands maitres de nos forums s'y sont frottés, et y sont finalement POO arrivés :|
Tout le monde dit, c'est une imitation, une pseudo, une mini, etc....

Alors pour quelqu'un qui a toujours aucune idée de l’intérêt de programmer avec cette chose, si ce n'est de faire des gros projets, de travailler en équipe ou faire des jeux, j'aimerais comprendre une fois pour toute ce qui empêche les maitres de nos forum de terminer ce projet ?
Qu'il nous créé une fois pour toute un PBI que l'on utilise ou non, et qu'on en parle plus
Ceux qui veulent faire de la POO avec PB utilisent ce PBI, les autres réfractaires restent en PB procedural, comme ça tout le monde est content dans le meilleur des mondes :D

SROD est bien arrivé à incorporer le COM dans PB avec un PBI, c'est pas de la gnognote, c'est la plus grosse fonction que microsoft ai créé, on est pas obligé de l'utiliser, mais parfois je l'utilise car pour les produits CROCRO c'est plus précis et fiable.
Quant on regarde le code de COMATE, c'est même pas une valse musette de pointeurs, c'est carrément le bal de vienne des pointeurs 8O

Bref, si PB il peut travailler les pointeurs comme le C, si le C il peut faire du C++, et encore plus fort, PB fait de l'ASM, alors pourquoi nadinosaure cette fameuse POO reste inaccessible à PB, car rien n'est inaccessible à l'ASM que je sache 8)
Quinquin prendrait un des codes les plus complets parmi toutes les pseudos POO créées depuis 10 ans sur les forums, et pour les dernières fonctions qu'il n'a pas pu implémenter les créerait en ASM et enfin on aurait ce que 1/5 des membres des forums PB désirent depuis tant d'années

- Je comprends que PB n'est pas conçu pour la POO
- Je comprends que de ce fait si on le surcouche de POO il sera moins rapide que le C++ qui est natif POO, mais aussi moins rapide qu'en PB procédural
- Mais alors ce qui me troue le cul depuis pleins d'années, c'est que l'on me dise que :
- PB qui est tellement bas niveau qu'il couche au sous sol,
- PB qui joue avec l'ASM comme si c'était son pote, NE PUISSE PAS faire une surcouche POO complète, même pas performante

Ce qui génère dans mon cerveau malade la question à laquelle on ne m'a jamais vraiment donné d'exemple précis:
Quelles fonction manquent à PB pour finir ses pseudos POO de codes en POO complète
Et si PB ne peut absolument jamais faire de la POO, comment il ferait FRED pour donner ce que demande les membres ?
Il lui demandent de tout recommencer à zéro pour avoir une approche POO, donc de repeindre son pure sang en vache
Ou bien il lui demande de rajouter des fonctions du style des INTERFACES qui faciliterait le travail des maitres qui ont déjà codé des pseudos POO à finir leur code pour nous fournir une surcouche complète de POO

Pour ma part, la seule chose qui m'intéresse vraiment dans la POO, c'est que comme tout le monde est POO, on peut de moins en moins utiliser les DLL et autres trucs extérieurs, sans parler des codes sources qui sont parfois intraductibles
Tu m'as dit un jour qu'avec les interfaces on pouvait utiliser les DLL codées en POO aussi facilement que les DLL standard C
Mais actuellement, est ce que la seule barrière pour utiliser une DLL POO est le temps pour la wrapper et la connaissance pour le faire, ou bien une fois de plus, il manque à PB des fonctions qui permettent d'utiliser les LIB C++ à fond

Voilà ce que je cherche à comprendre depuis tant d'années
Quant tu penses que gamin j'avais du mal avec la loi d'ohm et juste 3 lettres, et que depuis,... X milliards de mes neurones se sont barrés...
J'ai vraiment des doutes à croire qu'un jour je comprendrais pourquoi PB ne peut pas faire de POO :cry:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Purebasic et concepts de POO

Message par microdevweb »

Encore une fois de plus la Poo est un concept, et non je ne penses pas que pb serais plus lent si il avait une couche poo car il serait toujours compilé en asm.

Mais c'est le choix de Freed et c'est dommage.

Comme la dit G-rom le c++ ainsi que le java sont vide. C'est leur classes qui les rendent de plus haut niveau.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Purebasic et concepts de POO

Message par Kwai chang caine »

Il serait peut être plus long, même en ASM, pour les instructions simples car si comme je vois les codes compliqués de GRom ou autres il faut passer par whatmilles pointeurs pour avoir la valeur d'une variable, même si il est en ASM ce sera fatalement plus long que d'intérroger directement la valeur de cette variable comme on le fait actuellement.
Évidemment cette lenteur serait compensée au fur et à mesure que le code se complique, avec cette histoire de classe que l'on est pas obligé de recoder, etc....

Avec un copain passionné comme toi de la POO, qui ne jure que par elle, je lui ai demandé pourquoi c'était bien ?
Il m'a dit c'est plus rapide
Bon ok
Le lui ai demandé de me faire un code style

Code : Tout sélectionner

a$ = 5
Debug a$
Il a commencé par m'écrire noir de trucs au début
Puis créé sa classe, et je ne sait combien d'accolades qui s'imbriquent
Je te passe le nombre d'erreurs de compile qu'on a eu parce qu'il manquait des accolades ou trucs du genre :mrgreen:
Bon super ...j'avais la valeur de a$
Je lui ai dit et là...il est plus rapide ?
Il me dit non..il est pareil
Par contre, je lui dit il y a longtemps que j'aurais la réponse en procédural avant que tu ai fini de créer toutes tes classes de bases etc....
Et là, il m'a dit, c'est sûr que si tu n'as besoin que de ce genre de trucs, la POO est plus compliquée et moins rapide
Mais pour la prog de jeux, de travail en équipe et de codes redondants utilisant les mêmes objets changeant de caractéristique...c'est de la bombe
On s'est alors compris lui et moi !! 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
MLD
Messages : 1097
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Purebasic et concepts de POO

Message par MLD »

Bonjour

Pour rebondir sur les propos de KCC
Mois aussi j'ai tâté du .NET et c++. Ceci m'a assez vite gonflé. et je n'y est pas vue un intérêt majeur.
Pour moi la POO est l'art d'utiliser ce que les autres ont fait a ma place. Ceci sous forme de DLL (S), avec une forme de méthodologie particulière d'utilisation le tout agrémenté d'un vocabulaire particulier pour bien noyer le poisson.
Rien empêche en PB de faire un pbi, par exemple de constructeur de fenêtre (a coup d'API (s) et d'ASM et d'en faire une DLL avec la même méthodologie d'utilisation.et bien entendus de la commercialisée sous une forme ou une autre. c'est a dire inclus a un soft de programmation ou seule. mais dans tous les cas payant.
Bien sur il y a toujours un gentil programmeur dans le monde qui va nous en offrir une gratos :lol:
A mes yeux la POO reste surtout la production de petits génies du marketing dont le seul but est de nous vendre quelque chose. Il suffit de voir le prix de certains softs de programmation permettant la POO avec l'assurance dans la pub que demain avec cette dernière merveille du monde nous pourrons raser gratis :mrgreen: :lol: :lol:
G-Rom
Messages : 3626
Inscription : dim. 10/janv./2010 5:29

Re: Purebasic et concepts de POO

Message par G-Rom »

Kwai chang caine a écrit : Avec un copain passionné comme toi de la POO, qui ne jure que par elle, je lui ai demandé pourquoi c'était bien ?
Il m'a dit c'est plus rapide
Bon ok
Le lui ai demandé de me faire un code style

Code : Tout sélectionner

a$ = 5
Debug a$

Bon, tu n'utilises pas la poo pour faire un truc aussi bateau. la poo répond à des concepts bien établi , suit des "patron" de conception.
comme par exemple des singletons , observer , visitor , etc... y en a une pléthore ... c'est exactement comme en couture.
ca ne peut être fait qu'en poo , et pas autrement. Comme les singletons par exemple , ce "patron" une fois transformé en classe permet a cette classe
ou dérivé de celle ci de n'être qu'instancier une seule fois, pas plus. cela sert par exemple à un gestionnaire de ressource, entre autres...
cherche "design pattern" sur google, tu auras surement des résultats. la poo répond avant tout à des besoins que le procédurale ne peut répondre facilement.
on ne fait pas de la poo parce que c'est une mode ;)

si le C il peut faire du C++
C++ qui est natif POO, mais aussi moins rapide qu'en PB procédural
Le C ne fait pas du C++ , mais le C++ peut faire du C. pas l'inverse. le C ou C++ poutrerons tjs PB en terme de perf. c'est des tonnes de gars qui ont créer et optimisé les compilateurs, pas un autoentrepreneur d'alsace moselle expatrié en roumanie qui est revenu vivre à paris ;)
je dénigre pas Fred & son boulot qui est énorme, mais il ne peut pas faire le poids face aux milliers d'ingé qui conçoivent & optimise les compilateurs. ;)
On peu jouer a faire des benchmark si tu veut ;)
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Purebasic et concepts de POO

Message par microdevweb »

Supprimer car trop hors sujet
Dernière modification par microdevweb le ven. 17/août/2018 23:57, modifié 1 fois.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Purebasic et concepts de POO

Message par falsam »

Qu'est ce que c'est que cette exemple que tu donnes ?

Code : Tout sélectionner

NewList malist()

AddElement(maList())
maList() = 10

While NextElement(maList())
    Debug maList()
Wend
Il ne donnera aucun résultat. Ce n'est pas un exemple pour un débutant qui passe par là. Je passe sur le fait que ta liste ne contient qu'un seul élément :mrgreen:

le bon code est celui là

Code : Tout sélectionner

NewList malist()

AddElement(maList())
maList() = 10

ForEach maList()
  Debug malist()
Next
Quand à l'UML et la POO avec Purebasic ...... :roll:
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Marc56
Messages : 2146
Inscription : sam. 08/févr./2014 15:19

Re: Purebasic et concepts de POO

Message par Marc56 »

Code : Tout sélectionner

a$ = 5
Debug a$

Code : Tout sélectionner

[COMPILER] Line 1: Can't write a numerical value into a string variable.
:mrgreen:
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Purebasic et concepts de POO

Message par Kwai chang caine »

@GRom
Tu as milles fois raison, c'est ce que j'ai compris à force de me torturer l'esprit avec l'utilité ou non de la POO
C'est pourquoi le C++ est tres bien car il permet d'utiliser les deux méthodes dans le même code 8)
Ca évite cette guerre de st barthélémy qui se produit depuis plusieurs années chez PB

Comme PB peut utiliser l'ASM et PB ensemble, c'est sûr que si quinquin pouvait un jour créer à coups de pointeurs ou de fonctions à coucher dehors avec un billet de logement (Great mother expression inside :mrgreen:) un PBI qui surcoucherait notre PB actuel ce serait un sacré plus pour la communauté.....et on arrêterait de nous casser les roustons avec des code de pseudo, mini, début POO :lol:
Car FRED a pris sa décision, et il a surement raison ce n'est pas de son coté que l'on pourra voir son compilateur faire de la POO.
Il aurait pu aussi créer un PB++ et le refaire payer, il aurait surement eu une nouvelle clientèle et pas mal des anciens qui l'auraient acheté, enfin faut pas le bousculer notre FRED, faudrait pas qu'il nous fasse un coups de "Calcaire LockHS" :mrgreen:, car il est gentil mais quant il s’énerve..... et en plus il vient déjà de faire un pas sur les fonctions participative payante 8)

@Marco pas polo
Putain t'as raison...même pas foutu d'écrire 2 lignes sans un debugger au cul :lol: :lol:

@Les copains
Bon, pour cette histoire de qui a fait la poule ou l’œuf, je me suis dit que de demander à des passionnés et/ou pros du C serait peut être pas si con somewhere :roll:
Alors je suis parti dans le pays du C de "Developpez.com" et un gentil "Koala01" (Oui il y a des animaux exotiques au pays du C :mrgreen:) a pris le temps de m'écrire un pavé pour m'expliquer qui était là le premier et qui a fait quoi, j'en suis pas revenu 8O car il a fait un pavé comme je les fait, sauf que lui ce qu'il a raconté était pas des conneries :oops:
Donc j'ai pensé que ce serait intéressant de le partager avec vous pour ceux que ça intéresse, car l'histoire du C, c'est un peu l'histoire du grand père de PB, comme FRED a fait son compilo en C.
koala01 a écrit :Salut,

Il faut comprendre que toutes les évolutions s'intègrent sur une "ligne temporelle" dans laquelle nous avons l'énorme avantage de pouvoir profiter de ce qui existe à un instant T.
Pour programmer les tous premiers ordinateurs tels qu'imaginés par Von Newman, on ne disposait que du langage binaire qui était spécifique à chaque ordinateur.

1- Si on voulait provoquer l'addition de 7 et de 56 à cette époque là, il se peut que, sur l'ordinateur A, cela se traduise par l'opération

Code : Tout sélectionner

01010 000111 111000
et par l'opération

Code : Tout sélectionner

10101 000111 111000
sur l'ordinateur B (le premier groupe de 5 bits représentant l'instruction provoquant l'addition, dans l'exemple présent ;) )

2- Pour faciliter les chose, nous avons mis en place les mnémoniques : un langage (connu sous le nom "d'assembleur" qui permettaient de représenter les différentes instructions sous la forme de noms simple. Cela nous permettait d'écrire un code proche de

Code : Tout sélectionner

addA 7 56
. Mais le premier programme qui transformait cette instruction en code binaire utilisable par l'ordinateur (donc comme en (1) était écrit de manière spécifique pour caque ordinateur.

Par contre, une fois que l'assembleur -- le programme qui permettait de traduire l'instruction

Code : Tout sélectionner

addA 7 56
en l'instruction

Code : Tout sélectionner

01010 000111 111000
(pour l'ordinateur A) ou en l'instruction

Code : Tout sélectionner

10101 000111 111000
(pour l'ordinateur B) -- nous avons pu l'utiliser pour créer d'autres programmes.

3- Nous avons donc pu créer (en assembleur) des programmes destinés à compiler de nouveaux langages, comme FORTRAN, Algol ou ... C. Les premiers compilateurs étaient sans doute écrits en asembleurs, et les compilateurs en question avait uniquement pour objectif de "traduire" une instruction comme

Code : Tout sélectionner

int i = 7 + 56
en une succession de commandes proche de

Code : Tout sélectionner

LDA 7    # on charge la valeur 7 dans l'accumulateur A
LDB 56  # on charge la valeur 7 dans l'accumulateur A
ADDC &A &B # on place la valeur résultant de l'addition des valeurs connue dans A et dans B
                     # dans l'accumulateur C
Et, comme on disposait du programme qui permettait de traduire ces instructions en instructions compréhensibles par l'ordinateur A et par l'ordinateur B, on arrivait à obtenir le résultat que l'on voulait.

4- L'étape suivante a été d'écrire, dans le langage que l'on venait d'inventer, un programme qui pourrait compiler le langage en question.

Ainsi, on a commencé à écrire -- en C -- le code d'un compilateur C. Et comme nous disposions d'un programme (écrit en assembleur) qui permettait de compiler le code écrit en C, nous avons été en mesure d'écrire un compilateur C en C et d'obtenir, au final, un programme utilisable pour l'ordinateur A ou pour l'ordinateur B.

Note que, si tu observe les instructions qui composent le code binaire compréhensible par l'ordinateur, tu te rendras compte que la version utilisable par l'ordinateur A utilise... les instructions spécifiques à l'ordinateur A, et que la version utilisable par l'ordinateur B utilisera les instructions spécifiques à ... l'ordinateur B.

4b- Dans le même temps, on a assisté à une certaine "normalisation" des instructions que les ordinateurs sont en mesure de comprendre. si bien que l'on peut considérer que l'instruction (écrite en binaire)

Code : Tout sélectionner

01010 000111 111000
sera sans doute comprise de la même manière par les différents ordinateurs que nous utiliserons.

Et, si ce n'est pas le cas, pour autant que nous disposons d'un assembleur capable de traduire correctement les mnémoniques pour générer les instructions compréhensibles par un ordinateur particulier nous permettra d'utiliser le code écrit en C avec "n'importe quel ordinateur envisagé" :D

5- Strutroup débarque dans les bâtiments de Bell Labs, et décide de créer un nouveau langage.

Comme il dispose d'un compilateur C, il décide de décrire son nouveau langage en C et, après l'avoir compilé, il dispose donc d'un programme (écrit en C) qui est capable de comprendre et de compiler ce nouveau langage (qu'il nomme C++, parce que "c'est du C, avec un petit plus").

5b - Quand on crée un nouveau langage de programmation, il faut s'assurer qu'il est "suffisamment cohérent" que pour répondre à tous les besoins qui ont mené à la création de ce nouveau langage.

L'un des moyens les plus efficace pour obtenir cette garantie est d'écrire, dans le langage que l'on crée, un programme qui sera capable de comprendre le langage en question.

Il a donc écrit, en C++ tout un programme qui ... permet de comprendre du code écrit en C++.

Comme il disposait d'un programme (écrit en C) qui pouvait compiler le C++, il a pu obtenir ... un compilateur C++ écrit en C. Et comme ce programme se "contente" de "traduire" le code C++ en code assembleur, et que l'on dispose de programmes capables de traduire ce code assembleur en suite d'instructions compréhensible pour n'importe quel ordinateur, la boucle est bouclée: nous pouvons désormais écrire, en C++ des programmes capables de comprendre le langage C++ et de le traduire -- au final -- en code binaire compréhensible par n'importe quel ordinateur :D

6- pendant "un certain temps", plusieurs "grosses boites" se sont amusées à fournir "leur propre version" du langage créé par stroutrup.

Ces version étaient "très proches" du langage "original" (celui créé par stroutrup), mais pouvaient parfois s'en écarter de manière assez importante. Il fallait mettre un peu d'ordre dans ce cahos.

Les laboratoires Bell ont alors eu l'idée de génie : transmettre les droits sur ce langage à un organisme de standardisation (à l'organisme ISO).

De cette manière, la description du langage et les fonctionnalités qu'il met en oeuvre dépend d'un "concensus" globalement accepté.

La première description du C++ proposée par l'ISO est parue en 1988, et les différentes boites ont -- avec plus ou moins de succès -- fait tout leur possible pour respecter les spécifications ainsi décrites.

Par la suite, le langage a évolué, et de nouvelles spécifications sont apparues : d'abord en 1998, puis en 2003.

Par la suite, on s'est rendu compte que C++ devait être "modernisé" car il était devenu particulièrement complexe à utiliser. Nous sommes donc entrés dans un cycle de modernisation qui a mené depuis à la sortie de la norme C++11 en 2011, et qui s'est poursuivi par la mise en place de nouvelles spécifications en 2014 et en 2017 (de nouvelles améliorations sont prévues pour 2020 :D )

Bien sur, les compilateurs capables de comprendre le C++ ont suivi les évolutions qui ont été apportées par les différentes normes, qu'ils aient été écrits en C ou en C++ (ou même dans n'importe quel autre langage qui puisse exister à l'heure actuelle :D )

Par contre, ce qu'il est intéressant de constater, c'est que les différentes boites qui fournissent un compilateur C++ en sont désormais à offrir un support de plus en plus complet des différentes spécifications :D
J'ai trouvé son explication passionnante et complète, j'ai juste eu du mal avec un C qui se compile lui-même :oops: mais le reste j'ai presque tout compris 8O
Encore merci aux membres de développez.com qui ont été aussi rapide, serviables et gentils que sur les Forums PB

En fin de compte, pour moi le C c'est comme les vaches..j'habite en rase campagne, j'en ai tout autour de ma maison que je pourrais toucher en tendant le bras, je les vénèrent, les admirent, les aiment depuis des dizaines d'années déjà....mais j'en approche jamais

Image

Elle me font trop peur !!!! Ooooooouuuuiiiinnn !!! :oops:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
MLD
Messages : 1097
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Purebasic et concepts de POO

Message par MLD »

KCC +10

Ceci confirme ce que je pense.
Pour ma part , j'ai participé (dans une autre vie) a des commissions de normalisation (France et Europe) dans le domaine de l'éclairage publique.
Autour de la table outre l'organisme de normalisation, il y a le ou les représentants de ou des états (pour la transformation de la futur norme en décret-norme (c'est a dire une loi),et les industriels concernés.
Et bien sur en final les industriels les plus puissants sont aussi ceux qui pèsent le plus lourd dans la rédaction finale de la norme. (Sans compter les tractations entre industriels dans les couloirs). En général dans ces commissions de normalisation chaque industriel est représenté par deux personnes un ingénieur de haut niveau et un commercial de la direction.
CQFD
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Purebasic et concepts de POO

Message par Ollivier »

KCC a écrit :- PB qui joue avec l'ASM comme si c'était son pote, NE PUISSE PAS faire une surcouche POO complète, même pas performante
Le compilo peut faire des surcouches. Des fois, tu sniffes trop la poussiére d'aspirateur...

J'ai beau le répéter : à partir du moment où le compilo peut s'exécuter sans toute une quincaillerie qu'on retrouve dans x compilateurs, il peut compiler à peu près tout et n'importe quoi.

La POO n'y est pas parce que, si tu la veux, t'as tout ce qu'il faut pour la mettre en place...
Avatar de l’utilisateur
MLD
Messages : 1097
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Purebasic et concepts de POO

Message par MLD »

Bonjour

Ollivier a raison :lol: Dire que c'est simple... non :( Mais il a raison :lol:
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Purebasic et concepts de POO

Message par microdevweb »

Oui c'est sur que quelqu'un de motivé pourrait faire un pré compilateur qui transformerais une code Objet en code Pb et sans aucune perte de performance mais cela inclus le développement d'un nouveau langage et Ide ce qui n'est pas une mince affaire.

Ceci n'est qu'un exemple il aurais de multiple façon de faire

Exemple Poo

Code : Tout sélectionner

Public Class Objet
  public int x
  public int y
  private int W
  private int H

  public func1()
    ; fait ceci
  EndMethod

  public String func2()
    ; fait ceci
  EndMethod

  Private funct3(Sting p)
    ; fait ceci
  EndMethod
 EndClass
 
 Objet monObjet = new Objet()
 
 monObjet.func1()
Possibilité de traduction en Pb avec ___ pour éviter les conflits ce qui rend le code un peux plus difficile à lire.

Code : Tout sélectionner

Define ___MTH_funct1()
 Define.s ___MTH_funct2()
 Define ___MTH_funct3()
 Procedure ___MTH_funct1()
   
 EndProcedure
 EndProcedure
 Procedure.s ___MTH_funct2()
   
 EndProcedure  
 EndProcedure
 Procedure ___MTH_funct3()
   
 EndProcedure
 
 Prototype ___func1()
 Prototype.s ___func2()
 Prototype ___func3(p.s)
 ; ceci représente la class
 Structure ___public_objet
   x.l
   y.l
   ___func1.___func1
   ___func2.___func2
 EndStructure
Structure ___private_objet Extends  ___public_objet
   w.l
   h.l
   ___func3.___func3
 EndStructure  
 ; addressage des function
 ___public_objet\___func1 = @___MTH_funct1()
 ___public_objet\___func2 = @___MTH_funct2()
 ___private_objet\___func3.___func3 = @___MTH_funct3()
 
 Global ___instanceOject_1.___private_objet
 
 ___instanceOject1\___func1()
Donc ce n'est pas que Pb ne sait pas faire de Poo mais comme il ne possède pas de vraiment des commandes à ce effet ce ne n'est pas confortable à mettre en place.

Mais un soft pourrait le faire sans problème, perso j'avais essayé mais je penses avec une mauvaise méthode (c surement au dessus de mes compétences).
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Purebasic et concepts de POO

Message par falsam »

microdevweb a écrit :... c surement au dessus de mes compétences)
Ben oui banane ^-^tu n'es pas ingénieur :mrgreen:
Dernière modification par falsam le dim. 19/août/2018 17:15, modifié 1 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Purebasic et concepts de POO

Message par Kwai chang caine »

Bon ça me rassure de lire ça 8)
Pas que MicroDevWeb soit une "Banane" (Dixit Falsamounet) hein !!!! :lol:
En tout cas il a essayé, et c'est déjà admirable 8) :wink:

Non plutôt que c'est possible, car d'un coté on te dit PB est si bas niveau qu'il peut tout faire, d'un autre on te dit, si il manque une fonction à PB, t'as que te la faire puisque tu as les pointeurs et l'ASM et avec ça on peut tout faire 8)
Et d'un autre on te dit PB ne peut pas, ou n'est pas fait pour, etc ....
Dire que PB n'est pas fait pour, je le conçois, mais est ce que l'ASM est fait pour la POO non, et je suppose que au final il doit être de la partie, peut être

Donc, en résumé, les dizaines de méthodes ou approches que tous les cadors des forums ont tentées ne sont pas les bonnes, et pourtant y'en a des méthodes différentes 8O

Par contre pour l'IDE, c'est sûr, je comprends que celui de PB ne puisse pas, rien que l'autocompletion et aussi la reconnaissance des instructions, sans ça, ça va pas être facile de coder.

Bon...et ben y'a plus qu'à attendre celui qui trouvera la bonne méthode, ou alors peut être ceux car je pense que l'idéal aurait été que plusieurs des membres qui la veulent tant se réunissent, mettent d'accord (pas facile) pour la créer ou au moins la commencer et que avec miracle ça donne envie aux autres et qu'on en parle plus 8)
Je pense que tous les gros projets ont du commencer comme ça, il faut donner l'envie comme dirait "jojo" :wink:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre