Feelin : Soumission de syntaxe

15 sujets de 16 à 30 (sur un total de 53)

  • leo

      #83864

      à par l’incompatibilité avec une library Amiga

      Quelle incompatibilité ?

      On accède bien aux libs Amiga en Pascal, Basic, ASM,… Qu’est-ce qu’il y a de plus différent avec le C++ qui empêcherait ca ?

      Je suis pas trop là…

      @+,

      Léo.

      Vince

        #83865

        En parlant de Feelin, des nouvelle du portage MOS ?

        Sur Feelin.fr, il n’y a pas de version MOS et comme la dernière version date de novembre, est il prévue une prochaine release avec une verion MOS ?

        PS : un wrapper C++ serait sympa…

        A++

        Alex

          #83866

          @Leo:

          /me repose sa question, puisqu’elle est restée sans réponse ;)

          Bhein relis mon premier post et tu verras que j’ai donné une réponse. D’ailleurs en relisant tu pourras remplacer le ‘t’ de ‘peut’ par un ‘x’ ça fera mieux ;-)

          Sinon le principe d’une library Amiga c’est de publier des fonctions donc elle est là l’incompatibilité. Si tu veux programmer en C++ tu peux bien entendu le faire aussi bien dans ta lib que dans ton programme appelant juste il faudra « désobjetiser » tes apis pour en faire des fonctions qui travaillent sur un objet (cf. boopsi par exemple) pour les publier dans ta lib et dans le programme rien ne t’empêche d’avoir un wrapper C++ qui te présente une classe avec des méthodes qui en fait appellent tes fonctions de ta lib (un peu comme MFC et Win32).

          centaurz

            #83867

            @ leo

            Bon, le mot « incompatibilité » est peut-être un peu fort puisque comme Alex l’explique, on peut contourner le pb avec un wrapper…

            Ben,le truc différent c’est que l’ABI du C++ est beaucoup plus complexe que ces langages, il ne s’agit pas juste d’appeler des fonctions par leur adresse. Donc (enfin il me semble) tu ne peux pas compiler une classe C++, la mettre dans une library et l’utiliser depuis un autre programme pour manipuler des objets.

            leo

              #83868

              Donc (enfin il me semble) tu ne peux pas compiler une classe C++, la mettre dans une library et l’utiliser depuis un autre programme pour manipuler des objets.

              Ok, nouvelle question alors :) Pourquoi ?

              Ca serait quand même plus pratique de faire de l’objet avec un language… objet, non ?

              J’ai vraiment l’impression qu’il y a que sur Amiga que l’on fait des bidouilles de ce genre… J’ai fait (un peu) de code Win,… et quand je faisais de l’objet, bein je faisais de l’objet, je bidouillais pas avec des DoMethod() pour simuler de l’objet (que c’est élégant :()…

              @+,

              Léo.

              Fab1

                #83869

                Leo,

                J’ai vraiment l’impression qu’il y a que sur Amiga que l’on fait des bidouilles de ce genre… J’ai fait (un peu) de code Win,… et quand je faisais de l’objet, bein je faisais de l’objet, je bidouillais pas avec des DoMethod() pour simuler de l’objet (que c’est élégant :()…

                Elle est bien bonne celle-là. Par exemple, les frameworks MFC/ATL/WTL ne sont que des wrappers C++ pour l’API de win32 qui elle est en pur C. Alors en pratique, tu faisais moins d’objet qu’avec MUI/Boopsi qui, bien que codés en C, sont vraiment empreints d’une philosophie objet et ne sont pas juste des cache-misère.

                Et sinon je ne vois pas en quoi l’operateur -> est plus significatif qu’un DoMethod.

                Alex

                  #83870

                  @Leo:

                  J’ai vraiment l’impression qu’il y a que sur Amiga que l’on fait des bidouilles de ce genre… J’ai fait (un peu) de code Win,… et quand je faisais de l’objet, bein je faisais de l’objet,

                  Bhein oui mais alors explique moi comment tu fais pour accéder à ton objet C++ de ta librairie depuis ton code en AMOS, Pascal, Prolog, etc. ? Le truc d’une bibliothèque c’est d’essayer de se résumer au plus grand dénominateur commun histoire d’être utilisable par le plus grand nombre… Et appeler une fonction en lui passant des paramètres bhein justement tous les langages savent le faire !! Après y a plus qu’à s’entendre sur la façon de passer les paramètres et où récupérer le résultat et c’est plié !!

                  Un autre problème avec le C++ c’est que l’ABI du langage n’est pas figée chaque compilateur fait un peu comme il veut… (bon OK actuellement pour le C++ on n’a pas trop le choix sur Amiga).


                  @Fab1

                  Et sinon je ne vois pas en quoi l’opérateur -> est plus significatif qu’un DoMethod.

                  Ça évite d’essayer de faire un DoMethod sur un tag qui n’existe pas dans l’objet ?

                  leo

                    #83871

                    Ca, j’aurai mis ma main à couper qu’on allait pourrir Win ;)

                    Et je recentre tout de suite: le but n’est pas de dire que Win ci, Win là, mais de comprendre pourquoi sur Amiga il n’y a apparemment pas moyen d’accéder aux APIs censées être orientées objet (comme MUI, mais aussi Feelin, voir Raggae, etc), avec une API C++.

                    Pourquoi sur Amiga il n’y a pas de wrapper C++ pour MUI par exemple ?

                    Et sinon je ne vois pas en quoi l’operateur -> est plus significatif qu’un DoMethod.

                    Bein, je sais pas, mais il n’y a quand même pas photo (et sans parler de tout ce qu’apporte le C++: je te ferai pas un cours… j’en suis incapable, et t’en sais bien plus que moi sur le sujet):

                    DoMethod(monObj, MUIM_SET, MUIA_WIDTH, 30);

                    et…

                    monObj->Set(« Width », 30);

                    (je sais pas si le DoMethod est valide: j’ai fait ca de tête comme ca… Mais c’est en gros ca)

                    Bhein oui mais alors explique moi comment tu fais pour accéder à ton objet C++ de ta librairie depuis ton code en AMOS, Pascal, Prolog, etc. ?

                    Absolument aucune idée, d’où mes questions ;)

                    Alex

                      #83872

                      Pourquoi sur Amiga il n’y a pas de wrapper C++ pour MUI par exemple ?

                      Au hasard : personne ne l’a écrit ?

                      En plus en te renseignant un peu sur le sujet tu saurais qu’il y a eu une tentative de wrappeur MUI (cf. Aminet) mais bon faut voir ce qu’elle vaut j’ai jamais pris la peine de l’étudier en détails (tiens en plus elle existe même pour MOS penche toi dessus !!!)

                      DoMethod(monObj, MUIM_SET, MUIA_WIDTH, 30);

                      et…

                      monObj->Set(« Width », 30);

                      Oui alors si c’est pour faire ça, ça manque d’intérêt tout de même ! Car si je suis dislexique je vais avoir tentance à écrire

                      monObj->Set("Widht", 30);

                      Et là badaboum plantage à l’exécution alors que mon programme se compile sans aucun warning en mode « -supraMegaWarningDétaillé »

                      centaurz

                        #83873

                        @leo

                        mais c’est incroyable cette obstination à croire qu’on s’acharne sur windows… Tu es le premier à avoir comparé les 2 dans ce thread, tu ne vas pas dire que tu ne t’attendais pas à ce qu’on te réponde ? Tu es sur un forum Amiga, au fait…

                        Bein, je sais pas, mais il n’y a quand même pas photo (et sans parler de tout ce qu’apporte le C++: je te ferai pas un cours… j’en suis incapable, et t’en sais bien plus que moi sur le sujet):

                        Mais alors, s’il te le dit, qu’utiliser une classe C++ avec une library Amiga n’est pas possible, ça te suffit pas ? ;-)

                        Une library Exec (j’ai l’impression qu’on se répète, mais bon…) ne permet d’appeler que des fonctions isolées. Quand un programme veut utiliser la fonction Machin() de la truc.library, cela correspond à un code particulier dans le binaire pour atterrir au bon endroit avec les bons paramètres.

                        Une classe C++ manipule des objets qui ont des propriétés et des méthodes. Du coup, au niveau binaire c’est plus compliqué, il y a plein de symboles partout et en gros, si je ne dis pas de c*nnerie, le seul moyen de partager le code d’une classe c’est d’utiliser un linkage dynamique, comme sous linux.Et sous Exec on peut mettre tout le code C++ dans une lib statique qui appelle des fonctions C (wrapper).

                        Alex

                          #83874

                          Mais alors, s’il te le dit, qu’utiliser une classe C++ avec une library Amiga n’est pas possible, ça te suffit pas ?

                          En fait c’est pas tout à fait ce que Fab a dit, il a plutôt dit qu’une lib Amiga ne pouvait pas exposer une API C++ (c’est à dire exporter des classes). En revanche le code de la lib elle-même peut être écrit en n’importe quoi (même C++) de même que le code du programme appelant. Par exemple le jeu de stratégie WW2 de Steven Solie est écrit entièrement en C++ ce qui ne l’empêche absolument pas d’utiliser tout un tas de librairies Amiga dans ses classes.

                          Voilà, j’ai encore augmenté un peu plus mon score de « c00nard prétentieux » là moi ;-)

                          leo

                            #83875

                            Mais alors, s’il te le dit, qu’utiliser une classe C++ avec une library Amiga n’est pas possible, ça te suffit pas ?

                            Bein non, je veux savoir pourquoi maintenant ;)


                            @Alex
                            : merci pour l’explication claire… Oui, j’avais eu vent de ce wrapper, écrit par un gars externe. Mais ma question c’est pourquoi la tendance n’est pas à avoir des API C++. Par exemple pourquoi l’auteur lui même de MUI ne propose pas ca (ca serait quand même le mieux placé, non ?!) ?

                            Il est clair que ca va pas du tout dans ce sens… Donc, pourquoi ?

                            Alex

                              #83876

                              @Leo:

                              Parce qu’actuellement (très très) peu de personnes codent en C++ sur Amiga. Car « c’est pas beau », « ça fait des exe 100 Ko plus gros », « on peut surcharger les opérateurs… beurk ! », « en plus les exceptions c’est hyper lent, mieux vaut avoir des fonctions qui retournent un code d’erreur » (jamais testé ou si peu souvent au passage), enfin voilà quoi ;-)

                              Du coup comme c’est tout de même assez chiant comme boulot d’écrire ce wrapper, que peu de personne l’utiliseront et que des centaines diront « bouuuuu, c’est nul, moi j’aurais pas fait comme ça, ça aurait été mille fois mieux… » bhein ça se fait pas :-(

                              Gofromiel

                                #83877

                                LOL ! Alors bravo on vous laisse 2 jours et ça vire à la foire d’empoigne ;-)

                                Cela dit, et au risque de me faire taper sur les doigts (je m’en fiche j’en ai plein), le C++ ça à pas l’air bien-bien. Je n’ai vu aucun gros projet l’utiliser pour son développement, et je parle de Cairo, GTK+, Gimp ou Firefox. Bon je vois que ceux là, mais c’est déjà pas mal. On dirait que le problème vient de la portabilité… ou alors les gens n’aiment pas le C++ et barka.

                                Perso j’aime beaucoup le Javascript et le PHP, mais alors c’est à des années lumière de langages propres et soyeux ;-)

                                En parlant de Feelin, des nouvelle du portage MOS ?

                                Sur Feelin.fr, il n’y a pas de version MOS et comme la dernière version date de novembre, est il prévue une prochaine release avec une verion MOS ?


                                @vince
                                : Je suis bien d’accord ! Après 6 mois de distance avec Feelin pour cause de création de travail, je m’y remets tout doucement, et même si cela ne sert à rien en ces temps de CoreDuo2, ça fait toujours plaisir de programmer et d’utiliser l’AmigaOS, même sous WinUAE (surtout sous WinUAE en fait).

                                Bref : JH PLUTÔT SYMPA ET PARFOIS DRÔLE, RECHERCHE PERSONNE DE SEXE INDIFFÉRENT MAIS POSSÉDANT MOS POUR ETABLIR UNE RELATION DE TRAVAIL SAINE ET PRODUCTIVE. TU AIMES LES ORDINATEURS DES ANNÉES 90, ÉCRIS MOIS VITE.

                                ++

                                (surtout que j’ai consolidé le système de compilation et qu’il me faut un cobaye)

                                Alex

                                  #83878

                                  Prends plutôt un hamster c’est plus petit et tu nettoies la cage que tous les 3 jours au lieu d’un jour sur deux ;-)

                                  Sinon pour le C++ à mon boulot on programme tout en C++ y a pas une ligne de C. Le C++ c’est hyper bien….Mais faut réfléchir 5 minutes avant d’écrire du code car on peut vite écrire de la grosse daube surtout quand on commence à utiliser des concepts (un peu) avancés de l’objet comme le polymorphsme et l’héritage multiple (oui parce que je suis désolé mais je suis pour l’héritage multiple aussi, franchement j’ai tous les vices ;-) Ha tiens non ça fait 4 ans que j’ai arrêté de fumer…). Après je parle pas des itérateurs, des foncteurs et autres concepts hyper puissants et beaux que l’on peut mettre en oeuvre de jolie manière pour peu que l’on veuille bien se donner la peine de lire la doc de la STL…

                                  Voilà je sais pas j’avais envie de faire mon gros c00nard prétentieux pour faire un ;-) au sujet d’un autre fil…

                                15 sujets de 16 à 30 (sur un total de 53)

                                • Vous devez être connecté pour répondre à ce sujet.

                                Forums AmigaOS, MorphOS et AROS Développement Feelin : Soumission de syntaxe

                                Amiga Impact