JeuxOnLineForumsPlusConnectés : 419 (sites) | 1112 (forums)Créer un compte
Forums divers
La Taverne
Répondre
Partager Outils Rechercher
Avatar de Foehn
Foehn
Alpha & Oméga
 
Avatar de Foehn
 
Citation:
Provient du message de Ranfaroth
Le Java interprété ?
Semi-compilé en fait

Un compilateur transforme les sources en pseudo-code, et la machine virtuelle interprète le pseudo-code.

C'est aussi comme cela que fonctionne le Pascal. Ce qui en faisait un langage lent, peu utilisé en milieu professionnel. Depuis Borland a sorti un vrai compilo pour l'environnement DOS puis Windows (les joies de TPW 7.0 ), puis a ajouté quelques notions de langage objet et une jolie palette de widgets pour faire naître Delphi.
Lien direct vers le message - Vieux
Avatar de powleT
powleT
Bagnard
 
Avatar de powleT
 
Citation:
Provient du message de Lwevin Myan
Exact.
Et poolet, je ne sais pas si tu as eu à faire des portages de programmes C, mais c'est là où tu t'aperçois que le C indépendant de la plate-forme, c'est du pipeau intégral, surtout si ton code utilise des procédés systèmes proche de la machine, comme le multi-thread, auquel cas il est plus rapide de repartir de zéro que d'essayer de porter.
non j'ai jamais fait de portage mais c'est pas juste une histoire de dll et de libraries ..??
Lien direct vers le message - Vieux
Lwevin Myan
Alpha & Oméga
 
Citation:
Provient du message de poolet
non j'ai jamais fait de portage mais c'est pas juste une histoire de dll et de libraries ..??
Du tout. J'ai vu / effectué plusieurs portages, soit il a fallu autant / plus de temps pour faire le portage que pour écrire le programme de départ (et c'était écrit en partie en C++, alors que c'est censé être de bien plus haut niveau que le C ! mais j'admets que j'aurais été beaucoup plus vite si j'avais codé l'original), soit j'ai vu du travail ni fait ni à faire, avec tout un tas de bugs (quand ce n'était pas des core) et de fuites mémoires hallucinantes, à croire que celui qui avait le portage s'était barré dès qu'il avait vu que le code compilait sans erreurs (mais pas sans warnings...).

Exemple simple : si on veut programmer en multi-thread, les noms de fonctions ne sont pas les mêmes sous Windows et Unix, il n'y a pas les mêmes possibilités dans les deux cas.

Pour ma part, c'est de très loin lors des portages que j'ai rencontré le plus de difficultés techniques.
Lien direct vers le message - Vieux
Avatar de Dwelfigor
Dwelfigor
Alpha & Oméga
 
Avatar de Dwelfigor
 
Citation:
Provient du message de Lwevin Myan
Exemple simple : si on veut programmer en multi-thread, les noms de fonctions ne sont pas les mêmes sous Windows et Unix, il n'y a pas les mêmes possibilités dans les deux cas.
Sous windows tu peux tout faire mais ça marches pas ! et surtout pas les exemples Microsoft

Sous unix tu peux pas faire grand chose mais ça a le merite de marcher !
Lien direct vers le message - Vieux
Avatar de powleT
powleT
Bagnard
 
Avatar de powleT
 
Citation:
Provient du message de Lwevin Myan
Du tout. J'ai vu / effectué plusieurs portages, soit il a fallu autant / plus de temps pour faire le portage que pour écrire le programme de départ (et c'était écrit en partie en C++, alors que c'est censé être de bien plus haut niveau que le C ! mais j'admets que j'aurais été beaucoup plus vite si j'avais codé l'original), soit j'ai vu du travail ni fait ni à faire, avec tout un tas de bugs (quand ce n'était pas des core) et de fuites mémoires hallucinantes, à croire que celui qui avait le portage s'était barré dès qu'il avait vu que le code compilait sans erreurs (mais pas sans warnings...).

Exemple simple : si on veut programmer en multi-thread, les noms de fonctions ne sont pas les mêmes sous Windows et Unix, il n'y a pas les mêmes possibilités dans les deux cas.

Pour ma part, c'est de très loin lors des portages que j'ai rencontré le plus de difficultés techniques.
Ok je comprends que ca pose problème pour la programmation système, mais pour les noms de fonctions et de prototypes, c'est bien une question de librarie non ? ça n'a rien à voir avec l'OS je crois..

printf --> stdio.h
std::cout --> iostream.h

pour windows et Linux c'est pareil non ? (j'ai jamais tapé une ligne de code sous windows)
Lien direct vers le message - Vieux
Avatar de Dwelfigor
Dwelfigor
Alpha & Oméga
 
Avatar de Dwelfigor
 
Citation:
Provient du message de poolet
Ok je comprends que ca pose problème pour la programmation système, mais pour les noms de fonctions et de prototypes, c'est bien une question de librarie non ? ça n'a rien à voir avec l'OS je crois..

printf --> stdio.h
std::cout --> iostream.h

pour windows et Linux c'est pareil non ? (j'ai jamais tapé une ligne de code sous windows)
windows ou linux le langage reste le meme. a part les librairies developpées par le constructeur.

Mais stdio.h
et iostream.h font partie des plus classics toujours utilisées dans un prog.
Lien direct vers le message - Vieux
Lwevin Myan
Alpha & Oméga
 
Citation:
Provient du message de poolet
Ok je comprends que ca pose problème pour la programmation système, mais pour les noms de fonctions et de prototypes, c'est bien une question de librarie non ? ça n'a rien à voir avec l'OS je crois..

printf --> stdio.h
std::cout --> iostream.h

pour windows et Linux c'est pareil non ? (j'ai jamais tapé une ligne de code sous windows)
C'est sûr que "Hello World" est multi-plateforme

Ce que je voulais dire, c'est que le C est un langage qui n'est pas si haut niveau que cela. Il y a des choses qui passent sans (trop de) douleur, et d'autres beaucoup moins bien. Et en vertu de la loi de Murphy, la deuxième catégorie est beaucoup plus importante

Le fait de pouvoir accéder aux pointeurs, donc la mémoire comme on veut (quitte à aller chercher à l'indice -1 d'un tableau tant "qu'on sait ce qu'on fait", je sais plus dans quel bouquin j'avais lu ça... je me demande si ce n'était pas dans le K&R, d'ailleurs) est d'ailleurs révélateur du caractère hautement bidouillatoire de ce langage (ce n'est nullement une critique, et le C est de très loin le langage impératif que je préfère).
Lien direct vers le message - Vieux
Avatar de Dwelfigor
Dwelfigor
Alpha & Oméga
 
Avatar de Dwelfigor
 
Citation:
Provient du message de Lwevin Myan
Le fait de pouvoir accéder aux pointeurs, donc la mémoire comme on veut (quitte à aller chercher à l'indice -1 d'un tableau tant "qu'on sait ce qu'on fait", je sais plus dans quel bouquin j'avais lu ça... je me demande si ce n'était pas dans le K&R, d'ailleurs) est d'ailleurs révélateur du caractère hautement bidouillatoire de ce langage (ce n'est nullement une critique, et le C est de très loin le langage impératif que je préfère).
C'est vrai que ça c'est cho. Mais quand on maitrise c'est overbon !

C'est l'avantage du C sur un max d'autres langages.
Lien direct vers le message - Vieux
Avatar de powleT
powleT
Bagnard
 
Avatar de powleT
 
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 ?

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 ?

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

enfin, je suis pas un boss de la prog hein lol
Lien direct vers le message - Vieux
Avatar de BustaK
BustaK
Alpha & Oméga
 
Avatar de BustaK
 
Je suis assez noob dans ce milieu qu'est la programmation, mais j'ai un logiciel (3D game creator/directx 7), il existe aussi une version pro/directx 9.
Donc c'est pour créer des jeux, mais peut tout à fait servir à faire des programmes 2D et autres.
Le langage c'est du DarkBasic. Par rapport à du C j'ai lu en comparaison, 400 lignes de prog en DB = 10 000 lignes de prog en C pour une fonction similaire.

Enfin c'est un bon petit logiciel avec plein de tutoriels, pour les noobz comme moi.

Plus d'informations ici.
Lien direct vers le message - Vieux
Avatar de Lango
Lango
 
Avatar de Lango
 
Bon il faut bien quelqu'un pour défendre caml...

Alors déjà je ne vois pas ce qu'il y a de drole à lui proposer ce langage, il est certainement beaucoup plus simple à utiliser que la majorité des langages proposés ici.

Caml est un langage très structuré, très logique. La manière de programmer usuelle en caml, c'est d'utiliser au maximum la récursivité terminale. C'est un peu déroutant pour quelqu'un qui n'a pas l'habitude, mais
  1. quand on en prend l'habitude sur certaines structures de données c'est beaucoup plus logique, rapide, simple
  2. il existe aussi des boucles en caml si vous voulez vraiment pas

Voilà, sinon le gros avantage de caml est qu'il permet de créer et manipuler très facilement des structures de données complexes (listes, arbres, tables de haschage, ...) sans avoir à se soucier de la mémoire allouée et autres trucs chiants du c.

Pour finir, je dirais que le seul inconvénient du caml, c'est qu'une fois que tu y auras gouté, tu ne voudras plus jamais utiliser les autres langages
Lien direct vers le message - Vieux
Lwevin Myan
Alpha & Oméga
 
Citation:
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

Citation:
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.

Citation:
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
Lien direct vers le message - Vieux
Avatar de Dwelfigor
Dwelfigor
Alpha & Oméga
 
Avatar de Dwelfigor
 
Ha ça finie en manif pour les langages !

Bon OK !

LE FORTRANT VAINCRA
Lien direct vers le message - Vieux
Avatar de Kathandro Jourgensen
Kathandro Jourgensen
Alpha & Oméga
 
Avatar de Kathandro Jourgensen
 
Citation:
Provient du message de Dwelfigor
Ha ça finie en manif pour les langages !

Bon OK !

LE FORTRANT VAINCRA
COBOL FOREVER!!

Bon, plus sérieusement, ça ressemble à quoi le Basic???
Sinon, on s'éloigne un peu du sujet originel qui est pas un concours de b... pissage de lignes, mais une solution pour monsieur qui sait programmer en Basic...
Lien direct vers le message - Vieux
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés

Outils Rechercher
Rechercher:

Recherche avancée

Thème visuel : Fuseau horaire GMT +1. Il est actuellement 01h33.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite