Provient du message de poolet
mais non lol, ce que j'veux dire c'est que pour les fonctions du système, ok ca pose problème pour le portage, mais ça c'est facilement arrangeable, mais ça pose pas d'autres problèmes, à la compilation notamment ?
Facilement arrangeable ?
Si tu as des choses simples à code, oui, c'est facile.
Si ton programme doit être interruptible ou multi-thread, par exemple, tu n'as pas fini de t'amuser.
Parce que les librairies standard, c'est bien gentil, mais si tu veux faire quoique ce soit d'un tant soi peu évolué, il faut utiliser des appels spécifiques au constructeur, et là, les ennuis commencent.
Sans parler des problèmes de compilation dûs au compilateur lui-même, et à l'interprétation du langage : dernier exemple de ce matin : xlC sous aix (je ne connais pas les versions j'ai juste dépanné
) ne reconnait pas la déclaration d'une union contenant un struct anonyme, ce qui tournait parfaitement sous dec. Il faut nommer le struct en dehors de la déclaration de l'union, et créer un champ de l'union référençant la nouvelle structure.
Comme il y a un nouveau champ, cela impacte tous les endroits où l'on faisait référence à la structure anonyme.
D'ailleurs, si quelqu'un connait une solution moins coûteuse, mon collègue serait fort heureux de la connaître et de ne pas avoir à modifier quelques milliers de lignes de code
par exemple un code (qui est portable et utilise les libraries standard, hello world avec stdio), ne marchera pas s'il à été compilé sous Linux et lancé sous windows, et inversement ? ou ça marchera nickel ?
Non. Un code compilé sous Linux n'est pas un exécutable Win32, et inversement. Et c'est encore pire pour les librairies (.dll / .so) qui ne sont pas
du tout générées de la même manière.
Par contre, si le source ne contient que du code standard C, en théorie, c'est censé compiler sur les deux plate-formes sans la moindre modification. Enfin, ça, c'est la théorie. Dans la pratique, je n'ai jamais vu de code "portable" sans #ifdef WIN32.
le portage, ça coince juste au niveau des fonctions de l'OS, ou ya d'autres trucs ??
si c'est juste pour les fonctions système, moi je trouve pas ça difficile à modifier
Ben, portes un programme professionnel (j'entends à la différence d'un programme pour particulier, qui ne servira qu'à celui qui l'a développé), et on en reparle
Parce que les fonctions constructeurs, ça englobe tout et n'importe quoi (surtout du n'importe quoi, d'ailleurs), et à un moment, il faut y passer.
Pour Lango : je suis un fanatique des langages fonctionnels, mais force est de reconnaître que ce n'est pas la chose la plus simple à appréhender au départ. Et je me rappelle très clairement que dans les cours que j'ai eu, il n'y avait pas 5% des étudiants qui comprenaient le sujet => quasiment tout le monde codait en Caml ou en Scheme comme ils auraient codé en C, ce qui donnait évidemment lieu à des résultats lamentables.
Par ailleurs, ces langages sont réellement de haut niveau, et ne donnent plus accès à la mémoire. Or, c'était une particularité signalée dans le post de départ