# Quels sont les meilleurs languages de programmation [...]



## Membre supprimé 2 (24 Octobre 2002)

Bonjour, d'après vous quels sont les " meilleur " languages de programation a utiliser quand on veut programmer des applications compatible mac os 10.x ?

Merci d'avance.


----------



## Didier Guillion (24 Octobre 2002)

Bonsoir,

La première étape est de télécharger les outils de développement Apple et essayer Interface Builder et Objective C avec Cocoa.

C'est bien fait, avec des didacticiels clairs et précis. L'idéal pour débuter.

C'est la manière la plus rapide et la plus conviviale de développer sur Mac OS X.

Mais si tu te pose des questions sur la portabilité de ton code, tu devra peut etre chercher des voies moins simples...

Cordialement


----------



## Ludopac (24 Octobre 2002)

<blockquote><font class="small">Post&eacute; &agrave; l'origine par Wephe:</font><hr />* Bonjour, d'après vous quels sont les " meilleur " languages de programation a utiliser quand on veut programmer des applications compatible mac os 10.x ?

Merci d'avance.   *<hr /></blockquote>

Objectif C si tu ne souhaites pas une compatibilité Mac OS 9 ...


----------



## Membre supprimé 2 (24 Octobre 2002)

Ok, Merci /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/smile.gif


----------



## Le Permutant (26 Octobre 2002)

<blockquote><font class="small">Post&eacute; &agrave; l'origine par Didier Guillion:</font><hr />* Bonsoir,

La première étape est de télécharger les outils de développement Apple et essayer Interface Builder et Objective C avec Cocoa.

C'est bien fait, avec des didacticiels clairs et précis. L'idéal pour débuter.

C'est la manière la plus rapide et la plus conviviale de développer sur Mac OS X.

Mais si tu te pose des questions sur la portabilité de ton code, tu devra peut etre chercher des voies moins simples...

Cordialement
*<hr /></blockquote>

Bonjour,

Quand je lis des réponses sur les forum aux pb de COCOA, j'ai pas l'impression que c'est vraiment simple pour un "absolute beginner" comme moi. Ca fout les j'tons. 
Je cherche moi-aussi par quel bout débuter en prog et pour l'instant c'est "Revolution" qui me parait le plus clair. (en plus la portabilité  sur Windows" est appréciable. Maintenant je viens de trouver "Magik" de TEKADENCE. C'est aussi très visuel et facile à apprendre mais j'ai lu que le JAVA,  "write once, run everywhere" est plutôt "write once, debug everywhere"  
Sont-ce des médisants qui n'aiment pas JAVA?  Ou est la vérité? Développer en java c'est une bonne ou une mauvaise idée.  

J'en ai marre de me gratter la tête piur choisir le bon cheval.


----------



## Ptit-beignet (26 Octobre 2002)

Bonjour tout le monde,
le premier langage que j'ai appris est le JAVA et bien quoi qu'on en dise .. il est rudement bien foutu.. pourkoi ?
paske que :
- la doc sur sun.com est super bien foutue
- la prog objet c vraiment sympa (bon je sais ya le c++)
- la portabilité est parfaite si tant est que l'on posséde la même JVM
- l'utilisation du réseau = enfantin
- création de fenetre bouton champs de texte ... = enfantin 
- compilateur explicite pour les fautes .. pas comme en C /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/frown.gif

les contres :
- animation graphiques n'y pense même pas ... ca rame.

voila je te donne mon conseil de "mec qui s'y connait pa bcp"
j'ai trois langage a mon actif : le JAVA , le C, le LISP
et bien JAVA is he winner .. /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/smile.gif
voila a+


----------



## steg (3 Novembre 2002)

B'jour,

Faut pas oublier RealBasic, pour débuter y'a pas mieux, pour la portabilité c'est pas si mal: classic, Mac OS X et Windows, bien que tu dois te cantonner à un seul outils.
Le couple Cocoa Objective-C n'est pas mal, bien qu'introduisant des concepts plus compliqués qui n'existe pas dans RB. Avantages : tu intègres du C et du C++ facilement, voir meme java, tu gagnes en rapidité, et ca fait plus sérieux...
Pour le couple Cocoa, Java, j'ai souvenir que c'est bien long, m'enfin bon...

Quand t'as appris à programmer dans un langage, c'est facile de programmer dans un autre langage. En revanche ca peut-être plus compliqué lors du changement d'API, quoique...


----------



## tehem (5 Novembre 2002)

Pour moi c'est Perl Python et ruby.

Ce sont tout les trois des langages absolument cross-OS (ca marche partout quoi, sauf bien sur si vous utilisez des bibliotheques specifiques a votre os)

Ce sont des langages interprétés (donc pas de phase de compilation) qui curieusement sont tous plus rapide que Java  /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/laugh.gif .

Tout les trois peuvent etre compilés malgres tout si vous trouvez que c'est pas assez rapide encore.

Ensuite:
Perl: on peut absolument tout faire avec meme un peut d'objet et meme si il n'est pas vraiment fait pour ca a l'origine.

Python: completement objet, il a une syntaxe qui OBLIGE a coder de facon uniforme et propre: un code 'sale' en python ca n'existe pas.
il peut-etre compiler en .class ce qui permet de le deployer sur de projet java.  

Ruby: il n'y a rien de plus objet que ruby, encore un peu jeune peut-etre, mais pour ceux qui aime programmer en objet, sachez que TOUT est un objet avec ruby (meme les noms de variable tiens...)

enfin, vous pouvez meme developper des interfaces graphique complete avec Tk puisque une librairie Tk existe pour chacun de ces langages...

...

voila

....


----------



## renaud_ (5 Novembre 2002)

ruby rulez !

je decouvre, mais c'est excelent, et ca passe partout : mem pour le ouaib !


----------



## molgow (5 Novembre 2002)

Quelqu'un connaît Smalltalk ? ça a l'air d'être assez semblable que Ruby d'après ce que vous dites. En tout cas sur le fond, puisqu'en Smalltalk tout est aussi objet (les if, les while, ...) !


----------



## renaud_ (5 Novembre 2002)

Non, connais pas vraiment, mais j'étais deja tombé sur ca :
http://www02.so-net.ne.jp/~greentea/ruby/


----------



## Bobbus (5 Novembre 2002)

On pourrait aussi citer OCaml, qui a bénéficié des recherches des dernières années en matière de langages de programmation, qui peut être interprété ou compilé (auquel cas il est l'un des plus rapides, juste derrière gcc, il me semble).

Personnellement, j'adore, mais il faut aimer la programmation fonctionnelle, il est vraiment fait pour ça.

Bob


----------



## Onra (6 Novembre 2002)

Bonjour à tous,

J'ai lu vos posts qui parlait de SmallTalk. Je voudrais apporter quelques précisions sur ce langage. Première chose, smalltalk est un langage objet et un des premiers du genre. Arrivé trop tôt il n'a pas su fédérer tous les engouments suscités par le C++ ou java.
Deuxième chose, smalltalk est un "vrai" langage objet, et n'est pas seulement un langage "orienté" objet comme le C++. Pour expliquer toutes les subtilités d'un langage objet, il faudrait un peu plus que ces quelques lignes.

Voili, voilou... j'espère que cela vous aura aidé dans votre choix. Si c'est un langage portable et objet qui vous intéresse, le mieux c'est java.


----------



## molgow (6 Novembre 2002)

Pour ceux qui aimeraient un peu plus d'infos sur Smalltalk :
http://lpdwww.epfl.ch/download?document=poo/course/smalltalk.pdf

A part ça, je pense que si Smalltalk n'a pas eu de vrai succès, c'est surtout parce que c'est un langage assez "lourd" à utiliser puisque tout est objet. Je rajouterais encore comme précision que si l'Objective-C est comme il l'est aujourd'hui, c'est en partie grâce à Smalltalk.


----------



## jmini (6 Novembre 2002)

Et vous connaissez le Matchik Patchak, la Abracaploumploum, et le dernier Pouet-Pouet ....

Dire qu'a chaque post vous parlez d'un language différent... Je sais que la question "Quels sont les meilleurs languages de programmation" est toujours brûlante, mais là on atteind des sommets, personne n'est d'accord...

Moi je n'y connais rein et j'utilise le RealBasic, qui à mon niveau me convient : Explications et documentation en français, programmation orientée Objet, compilation 68k (plus avec les dernières versions), PPC, Carbon... En tous les cas cela me convient...

Ceci était ma petite contribution et je vous laisse à votre conversation de passioné...


----------



## tehem (6 Novembre 2002)

ouai, jmini n'a pas tout a fait tord...

en fait avant de repondre a une question comme " c'est quoi le meilleur langage de programmation?" il faudrait voir de quoi on dispose exactement.

pour moi, il y plusieurs distinctions a faire:

1) le langage est-il compilé ou scripté? (ou les deux)
2) le langage est-il objet ou non ou orienté objet? (sachant que rien ne nous empeche de faire de la programmation classique avec un langage non-objet)
3) et pis d'abord qu'est ce que vous voulez en faire?

moi personnellement voila ce que j'apprecie dans un langage:
le script (les phase de compilation, je trouve ca fastidieux) mais j'aime qu'il soit compilable (parce que c'est vrai qu'au final l'appli est beaucoup plus rapide)
ensuite j'apprecie d'utiliser un langage pour ce qu'il sait faire de mieux (moi les langages qui savent tout tout faire mais mal ca me gave). 
et pour finir, (et on peut le deduire de mes points precedent) je n'aime pas perdre mon temps.

la liste des langages existant est longue, tres longue.... tres tres longue... arf!


----------



## renaud_ (7 Novembre 2002)

un language de prog n'est qu'un outil, sans besoin, c'est du vide ...

Perso, je ne pourrai pas apprendre un language sans avoir un "projet" necessitant son apprentissage.

Apres, on decouvre des trucs sympa, et ca donne d'autres envies /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/smile.gif

&gt; ruby rulez /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/smile.gif


----------



## cux221 (7 Novembre 2002)

en parlant de Ruby, vous avez un tutorial sympa dessus.
J'aimerais voir qu'est ce que s'est exactement.
De plus comment faire du ruby sous mac os X, gratuitement bien sur.


----------



## renaud_ (7 Novembre 2002)

Salut,

comme toujours le mieux est de partir du site officiel : www.ruby-lang.org
&gt; y'a toute la doc.
Apres tu saute de liens en  liens /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/smile.gif

Si tu trouve un site français, fais moi signe.

renaud


----------



## cux221 (7 Novembre 2002)

Merci, je vais regarder ça.


----------



## SuperCed (8 Novembre 2002)

Sur OS X, dans des langage a peu pres connus, tu as plusieurs types :

Les langages interpretes, souvent plus lents :
- Java, tres bon, mais ca prend un peu de temps pour s'y mettre, l'interet, c'est que ca fonctionne "a peu pres" partout.
- Les clones d'HyperCard : super intuitif, vraiment sympa pour decouvrir la programmation, mais c'est limite. Il y en a plusieurs je crois. Un pile de ce type necessite un player. Les players existent sur beaucoup de plateformes differentes.
- Le Lingo de Director : Facile sympa, marche sous Windows et MacOS 9 (pas MacOS X!). C'est tres graphique, on peut creer des jeux assez facilement avec Director, mais bon, ca restera des petits jeux.
- Les langages fonctionnels pour faire des maths ou du prototypage : LISP, PROLOG, c'est pas top l'eclate quand meme.

Les langages compiles :
-RealBasic, pas un foudre de guerre mais il a l'avantage d'etre tres tres simple a apprendre et de permettre de developper de tres bonnes applications. En plus, c'est compatible MacOS 9/MacOS X/Windows. Tres bons produit malgre quelques bugs. L'interet, c'est que s'il te manque une fonctionnalite, tu peux aller fouiner dans tous les plug-in existants ou ecrire ton propre plug. Il est tres facile de realiser un plug RealBasic si tu connais un peu le langage C.
- ObjectiveC Cocoa, ca met un peu de temps a s'apprendre et il faut avoir des bases en C. Mais ca devient quand meme tres rapide pour developper des interfaces. Beaucoup mieux que Carbon pour cette tache.
- C++, tu peux utiliser du C++ dans tes projets Cocoa ou Carbon, ou meme PowerPlant. PowerPlant fournit des classes C++ permettant de faciliter la creation d'interfaces.
- Le langage C, mon prefere, car on peut tout faire avec, et les instructions de base sont tres simples. Bon, ok, ca prend du temps d'apprendre le C, mais c'est indispensable pour etre un vrai programmeur, et puis, ca aide pour le C++ ou ObjectiveC ensuite. Tu peux faire un projet Cocoa et utiliser du C pour faire des libraries multiplateformes.
- Le Pascal... Heu, ben chai meme plus si ca existe encore sous OS X. Si, ca doit exister, mais bon, tant qu'a faire, le C est mieux.
- L'assembleur : si tu as envie d'apprendre un langage tres complique, tres fastidieux pour faire presque rien, si tu as envie d'apprendre un langage qui est maintenant inutile, apprend celui-la. A part si tu veux craquer des programmes, aujourd'hui, ca sert plus a grand chose d'apprendre l'assembleur.


----------



## cux221 (9 Novembre 2002)

Perso, j'ai commencé par Ocaml, puis enchainé avec Pascal, et ensuite du C et SmartEiffel.


----------



## Didier Guillion (9 Novembre 2002)

Bonjour,

Bon, je suis d'accord a 99,99% avec toi Superced. Comme toi, je préfère developper en C. Comme il est très simple (simpliste dirait certains, non sans raison) on le maîtrise assez vite.

Par contre, je pense qu'il est impératif d'avoir des bases d'assembleur. Tous les langages compilés, genèrent de l'assembleur, et aucun langage n'est exempt d'erreur de compilation surtout lors de l'optimisation (Codewarrior par exemple...). 
Il est donc parfois nécessaire de se dire, bon, "qu'a compris le compilateur de ce que j'ai écrit ?", et là il faut savoir lire l'assembleur.

Cordialement


----------



## Onra (9 Novembre 2002)

Java n'est pas un langage interprété.


----------



## SuperCed (9 Novembre 2002)

Java EST un langage interprete, il necessite un runtime appele "Machine virtuelle java".


----------



## molgow (9 Novembre 2002)

Le C n'est franchement pas un langage simple. C'est plutôt un langage de "bas niveau", ce qui le rend très difficile à maîtrisé pour un non-informaticien. Mon plus grand reproche aussi, c'est que ce langage n'est pas du tout assez strict. Il laisse le programmeur beaucoup trop libre (avec les types notamment), ce qui bien sûr peut être un avantage pour des programmeurs avancés, mais qui ne l'est absolument pas pour un amateur.

Je pense donc qu'il est bien mieux de commencer la programmation avec un langage fortement typé et avec une syntaxe assez stricte. Et de ce point de vue là, le C est tout à l'opposé !


----------



## Luc G (10 Novembre 2002)

Je partage l'avis de Molgow. Je ne programme plus beaucoup, ou alors en dilettante, donc je ne suis peut-être pas le mieux placé pour parler. Mais j'enseigne un peu d'algorithmique-programmation, simple, au CNAM et j'ai l'impression, qu'à ce niveau, C ralentit plutôt les choses.

Je préférais, surtout pur débuter : pascal (c'est vrai qu'aujourd'hui, c'est un peu difficile à faire joujou avec sur mac) ou Ocaml, pour faire dans l'exotisme, ou java (malgré la syntaxe C qui conviendra au contraire mieux à certains), ou Ada. Je fais un blocage sur C : les raccourcis vite incompréhensibles, les pointeurs dans tous les coins et pas toujours pour de bonnes raisons.

Je comprends très bien qu'un programmeur à 100% en tire satisfaction mais pour le programmeur intermittent, c'est moins évident et pour la formation, c'est galère : il faut beaucoup plus de temps pour donner le bagage minimum pour être capable d'écrire ou de lire un programme élémentaire.

Passer par l'intermédiaire d'un langage plus "propre" au départ me semble une option raisonnable, même si après on passe au C pour des raisons pratiques. Le langage n'est pas l'essentiel mais ça peut être plus facile de commencer par l'italien que par le japonais pour un individu lambda. Et le fait d'avoir vu des langages différents ne peut pas, à mon avis, être un défaut.


----------



## Didier Guillion (11 Novembre 2002)

Bonjour,

C'est vrai, le C peut devenir rapidement illisible.
Mais c'est également vrai pour tous les langages.
N'oubliant pas qu'un programme c'est des commentaires avec du code dedans...
J'ai vu des sources en assembleur merveilleusement clair, et des sources de langage orientés objet completement incompréhensibles...

Cordialement


----------



## Krynn (10 Décembre 2002)

</font><blockquote><font class="small">Citer:</font><hr />
 - Les clones d'HyperCard : super intuitif, vraiment sympa pour decouvrir la programmation, mais c'est limite. Il y en a plusieurs je crois. Un pile de ce type necessite un player. Les players existent sur beaucoup de plateformes differentes.
 <hr /></blockquote> 

Hello

Revolution est un clone d'HyperCard, mais il sait créer des application independante. (comme HyperCard).

Donc pas besoin de player.
Et il tourne sur mac (9/X), PC, unix, linux, ...

Perso je le trouve nikel.


----------



## Luc G (10 Décembre 2002)

<blockquote><font class="small">Post&eacute; &agrave; l'origine par Didier Guillion:</font><hr />* Bonjour,

C'est vrai, le C peut devenir rapidement illisible.
Mais c'est également vrai pour tous les langages.
*<hr /></blockquote>

C'est vrai qu'on peut toujours écrire un programme illisible quel que soit le langage (ça peut même donner des exercices intéressants : dites-moi ce que fait ce truc ?  
	

	
	
		
		

		
			





)

Avec C, le problème est :

1) que tu es tout de suite confronté à des écritures pas tout à fait évidentes pour un petit nouveau (c'est un peu mieux souvent avec C++). Quelques exemples :

- le passage de paramètres (adresse/valeur). Le mot-clef VAR du Pascal est bien plus pédagogique.
- les écritures formatées, commencer sans format du tout, ça serait quand même plus simple (C et Fortran, même combat  
	

	
	
		
		

		
		
	


	




)

Même si au final, ça ne change pas grand chose, le démarrage est retardé et sans qu'on y gagne, à mon avis, quoi que ce soit du point de vue de l'apprentissage. 

2) Que les programmes trouvés dans la nature utilisent assez systématiquement (il y a d'heureuses exceptions dans les bouquins d'algorithmique comme ceux de Sedgewick par exemple) de nombreuses "astuces" du C parfaitement claires pour un habitué mais souvent inabordables pour un débutant, ce qui était beaucoup plus rare en Pascal (ou le serait même en Ada).

C'est assez rébarbatif pour les élèves.


----------



## Luc G (10 Décembre 2002)

<blockquote><font class="small">Post&eacute; &agrave; l'origine par Krynn:</font><hr />*Revolution est un clone d'HyperCard, mais il sait créer des application independante. (comme HyperCard).

Donc pas besoin de player.
Et il tourne sur mac (9/X), PC, unix, linux, ...

Perso je le trouve nikel.  *<hr /></blockquote>


Oui, j'ai regardé un peu et il m'intéresse mais :
1) il coût combien aujourd'hui ?
2) Quelle pérennité espérer ?


----------



## Krynn (10 Décembre 2002)

*1) il coût combien aujourd'hui ?* 

 - gratuit pour 10 lignes de script par objet
   (facilement contournable en faisant des appelle a d'autre objet)
   tu peux le downloader gratuitement sur  http://www.runrev.com  pour te faire une idée
 - des 99$ pour etudiants
 - apres les prix varient de 299$ à beaucoup (pour une entreprise avec multilicences)
 - Plus de detail sur  Store Runrev 

La version gratuite est deja largement utilisable.


*2) Quelle pérennité espérer ? *

 - comme tous les langagues qui ne sont pas supporter par des mastodonte. (c'est variable). A part le Java et le C++, je ne sais pas si il y a bcp de programme qui ont un avenir assuré.


Mais que souhates-tu faire comme prog? Ca peux aussi bcp aider pour le programme, le plus adapté.


----------



## Luc G (10 Décembre 2002)

<blockquote><font class="small">Post&eacute; &agrave; l'origine par Krynn:</font><hr />* 1) il coût combien aujourd'hui ? 

 - gratuit pour 10 lignes de script par objet
   (facilement contournable en faisant des appelle a d'autre objet)
 - apres les prix varient de 299$ à beaucoup (pour une entreprise avec multilicences)
 La version gratuite est deja largement utilisable.

*<hr /></blockquote>

Oui, donc apparemment les prix n'ont pas changé depuis la dernière fois que j'ai regardé.

- 10 lignes par script, pour moi, c'est vraiment inutilisable : j'utilise hypercard intensivement depuis ses origines et la limite de script à 32 ko me gênait déjà souvent même si les "stacks in use" me permettaient de m'en sortir souvent assez proprement (pour ce que je fais, je ne dis pas que c'est pareil pour tout le monde). Les bricolages d'un objet à un autre, je connais : un peu ça va, beaucoup, c'est ingérable
J'aurais préféré avoir une vraie version de démo utilisable un mois, je pourrais tester réellement.

- 300 $ soit 400 euros : je ne suis pas encore prêt à payer ça pour faire des freewares, compte tenu de la pérennité hypothétique du produit. J'ai déjà vu passer pas mal de clones intéressants en shareware ou pas et à part metacard aux prix stratosphériques (le moteur de révolution) et supercard qui semble resortir le nez du bois après une histoire plutôt cahotique, je ne vois pas grand-monde.

Entendons-nous bien, je pense que le produit a de réelles qualités (l'engagement de Rinaldi en est la meilleure preuve) et à 150 euros pour une version complète, je signe demain même sans réelle démo mais là, on reste pour les happy few, le contraire de ce qu'était hypercard, même quand il est devenu payant.

Alors, j'attends toujours : un révolution ou un supercard ou un autre correct à prix correct pour moi (ou un hypercard 3, bien improbable)

Pourtant, entre l'éducation, le traitement de mesures, etc. je pense qu'il y a une niche intéressante pour Apple.

Ce que je programmerai, pour le plaisir, ce serait :
- des programmes liés à la conception d'installations solaires
- des programmes sur les unités de mesure
- à titre privé, des outils de traitement de mesures (au boulot, je bricole beaucoup ça avec hypercard)
-


----------



## Fulvio (13 Décembre 2002)

SuperCed a dit:
			
		

> * Java EST un langage interprete, il necessite un runtime appele "Machine virtuelle java".  *



Je coupe la poire en deux : Java est un langage intermédiaire entre le compilable et l'interprêté : tu écris ton code, tu le compiles et tu obtiens du pseudo-code, qui sera interprété par la machine virtuelle de ta plate-forme. Voilà, on se dispute plus, maintenant 
	

	
	
		
		

		
		
	


	




Quand à savoir quel est le meilleur langage ? C'est un peu vain comme débat. chaque langage a ses points forts et ses faiblesses. Par exemple le Java est élégant, idéal pour l'apprentissage, mais tu feras pas le quart de ce que tu peux faire en C/C++, et de toute façon, là n'est pas son but.

Cependant, on ne peut pas contester que le couple C/C++ est le langage le plus universel. Il est supporté par toute les plate-formes et utilisable à tout les niveaux de programmation (de l'assembleur à la base de donnée). Mais faut se le cogner quand-même, surtout en objet où le C++ est quand-même lourdingue (pourra-t-on un jour oublier les fichiers d'en-tête ? pourra-t-on un jour faire des affectations dynamique d'objet sans "cast" ?) Pas le meilleur pour apprendre, bien qu'il soit indispensable à un pro.

En revanche, je supporte pas le Basic. Idéal pour apprendre ? Idéal pour apprendre les mauvaises manières de programmation, oui !


----------



## SuperCed (13 Décembre 2002)

En ce qui concerne le Java, meme s'il est ecrit "compiler" dans les environnements de developpement, il ne s'agit pas d'une compilation au sens mathematique du terme, il s'agit d'une precompilation et d'une transformation.

La compilation consste a transformer un code en langage machine. Pour Java, ce n'est pas vrai.

De plus, on considere un langage comme "interprete" des qu'il fait appel a un runtime pour executer son code.

Enfin, si tu n'es pas d'accord, tu peux chercher quelque part dans l'ISO ou l'IEE pour verifier.


----------



## Luc G (13 Décembre 2002)

Sûr que le débat compilateur/interpréteur n'est pas simple  
	

	
	
		
		

		
		
	


	




.

De mon point de vue, java ou plus précisément les mises en oeuvre classiques de java * utilisent (comme le faisait déjà Pascal UCSD sur apple II et ailleurs) le principe d'un compilateur pour une machine virtuelle (on traduit bien en langage machine) mais comme la machine est virtuelle, il faut ensuite :
- soit un interpréteur émulant la machine virtuelle
- soit un processeur doté des instructions de la machine java (vaporware ?  
	

	
	
		
		

		
		
	


	




).

* on peut avoir un compilo dédié à une machine mais ça complique l'évolution de java. et sa logique

On peut même trouver plus vicieux comme mise en oeuvre, genre OCaml avec son compilateur interactif : ça a tout d'un interpréteur type vieux basic : tu tapes une ligne, il traduit mais c'est de la compilation et pas de l'interprétation (ce sont les concepteurs et metteurs en oeuvre de Caml qui le disent  
	

	
	
		
		

		
		
	


	




 et ils tatouillent quand même un peu en informatique théorique  
	

	
	
		
		

		
		
	


	




) 

Maintenant, la définition des mots est une chose, le ressenti en pratique en est une autre. Et là, ben, quand c'est lent, on dit que c'est interprété (c'est plus simple comme ça, non  
	

	
	
		
		

		
		
	


	




).


----------



## Luc G (13 Décembre 2002)

<blockquote><font class="small">Post&eacute; &agrave; l'origine par lupus yonderboy:</font><hr />* 

En revanche, je supporte pas le Basic. Idéal pour apprendre ? Idéal pour apprendre les mauvaises manières de programmation, oui !  *<hr /></blockquote>

Absolument. En fait, l'intérêt des Basic (qui ne sont pas un ni même des langages aujourd'hui mais plutôt des environnements de développement), c'est de faciliter l'accés aux API des systèmes.

Or, à mon avis, c'est pas par ça qu'il faut commencer pour apprendre à programmer


----------



## SuperCed (13 Décembre 2002)

<blockquote><font class="small">Post&eacute; &agrave; l'origine par Luc G:</font><hr />* Sûr que le débat compilateur/interpréteur n'est pas simple  
	

	
	
		
		

		
		
	


	




.

De mon point de vue, java ou plus précisément les mises en oeuvre classiques de java * utilisent (comme le faisait déjà Pascal UCSD sur apple II et ailleurs) le principe d'un compilateur pour une machine virtuelle (on traduit bien en langage machine) 
*<hr /></blockquote>

Non non non, le lava est traduit en fichier binaire, incomprehensible par le processeur, donc ce n'est pas du langage machine.

<blockquote><font class="small">Post&eacute; &agrave; l'origine par Luc G:</font><hr />* 
mais comme la machine est virtuelle, il faut ensuite :
- soit un interpréteur émulant la machine virtuelle
- soit un processeur doté des instructions de la machine java (vaporware ?  
	

	
	
		
		

		
		
	


	




).

*<hr /></blockquote>

Cette machine existe bel et bien chez Sun Microsystem. C'est une machine qui n'a pas besoin de machine virtuelle pour fonctionner. Mais bon, dans ce cas la, c'est l'electronique qui est ada^pte au langage et non l'inverse, c'est encore un autre probleme.

<blockquote><font class="small">Post&eacute; &agrave; l'origine par Luc G:</font><hr />* 

Maintenant, la définition des mots est une chose, le ressenti en pratique en est une autre. Et là, ben, quand c'est lent, on dit que c'est interprété (c'est plus simple comme ça, non  
	

	
	
		
		

		
		
	


	




).

*<hr /></blockquote>

Desole, ca ne marche pas ton truc. RealBasic est lent et pourtant, ca compile...

Un truc beaucoup plus simple pour savoir si c'est compile ou non :
On fait tourner le meme programme sur un pece et sur un Mac. Si ca fonctionne (a peu pres) de la meme maniere, alors, c'est interprete, sinon c'est compile.

Java a de moins en moins d'interet car les standard imposes par Sun sont de moins en moins respectes. Les machines virtuelles sont parfois tres differentes d'un OS a l'autre.

Bref, Java, ca ne tient pas ses promesses, et en plus, c'est lent.


----------



## Luc G (13 Décembre 2002)

La phrase sur lent = interpréteur, c'était de l'humour, pas grand chose d'autre : les gens ont tendance à associer lenteur et interprétation, ce qui est assez logique dans l'esprit "ancien" des interpréteurs : 

1) la même instruction rencontrée x fois est traduite x fois, ce qui ralentit effectivement les choes.
2) l'interprétation se faisant pendant l'utilisation, le temps d'interprétation est perceptible par l'utilisateur (pour la compilation, c'est pour le développeur que c'est perceptible. 
	

	
	
		
		

		
		
	


	




Même dans l'état actuel de l'art (où les choses sont plus complexes : mix compil/interprétation, je n'ai pas la même conception d'un compilateur que toi, mais ça fait bien 20 ans que je vois des débats là-dessus  
	

	
	
		
		

		
		
	


	




Par exemple  ici .

Perso, je suis dans la ligne de ce que dit Eric Marsden. Et il rappelle que le choix compilo/interprété ne relève pas du langage (j'ai vu du fortran interprété) même si la logique d'un langage peut faciliter une voie ou l'autre.

Enfin, compte tenu de la complexité des processeurs modernes, même à ce niveau, il y a fréquemment des phases d'interprétation (émulation des instructions d'anciens processeurs, optimisation, etc.)

Le binaire produit par le compilateur java n'est pas compréhensible par le processeur hôte, mais c'est aussi le cas pour du bon gros code X86 sur un PowerPC : virtualPC remplit dans ce cas le rôle que joue la machine java dans l'autre (entre autres choses évidemment). C'est pas pour ça que le compilateur Microsoft visual C devient un interpréteur  
	

	
	
		
		

		
		
	


	




.

Mais c'est vrai que, sauf en conception de langages et d'outils de devpt, ce sont des conversations de chez le coiffeur


----------



## SuperCed (13 Décembre 2002)

<blockquote><font class="small">Post&eacute; &agrave; l'origine par Luc G:</font><hr />* 
Le binaire produit par le compilateur java n'est pas compréhensible par le processeur hôte, mais c'est aussi le cas pour du bon gros code X86 sur un PowerPC : virtualPC remplit dans ce cas le rôle que joue la machine java dans l'autre (entre autres choses évidemment). C'est pas pour ça que le compilateur Microsoft visual C devient un interpréteur  
	

	
	
		
		

		
		
	


	




.

*<hr /></blockquote>

Attention, tu commets ici une erreur de logique; "Un code interprete n'est pas lisible par tous les processeurs" n'implique pas "qu'un code compile est lisible sur tous les processeurs"!
Il s'agit ici d'une implication et non d'une equivalence. La reciproque est fausse.
Ton raisonnement est faux.

Par contre, je suis un peu d'accord avec toi sur le fait que la compilation ou interpretation ne tient pas du langage. En effet, il existe de vrais compilateurs Java. Mais dans ce topic, je parlais du Java que l'on rencontre dans 99 pour cent des cas.


----------



## jmini (13 Décembre 2002)

<blockquote><font class="small">Post&eacute; &agrave; l'origine par SuperCed:</font><hr />* 

Desole, ca ne marche pas ton truc. RealBasic est lent et pourtant, ca compile...

*<hr /></blockquote>

De toute façon la lenteur c'est relatif : tout dépend de ce que tu veux faire :
- Un logiciel de décodage du génome DOIT être rapide, c'est indispensable de tout très bien optimisé
- Un petit utilitaire qui n'est que intreface d'une ligne de commande du terminal ou un aide à la création HTML (des méta-tags par exemple), peut importe sa vitesse (dans la limite du raisonable)


----------



## Membre supprimé 2 (17 Décembre 2002)

bonsoir.
j'aimerai juste dire que j'utilise RealBasic. Très très facile a apprendre, multi-plateforme mais limité et les applications ne sont pas aussi rapides que les applics cocoa évidemment.


----------



## Onra (17 Décembre 2002)

Non, java est bien un language compilé.

Le fait qu'il nécessite une jvm pour fonctionner n'implique pas que ce soit du language interprété. Perl est un language interprété.

Il existe des processeurs qui éxécute directement du byte code java et qui sont commercialisé.

L'intérêt du byte code est la portabilité. Néanmoins, tu peux compiler ton programme java en un binaire directement éxécutable sur une plateforme cible mais tu perds la portabilité de l'éxécutable. Il faut alors recompiler le source si tu veux un éxécutable pour une autre plate-forme.

Ta remarque sur le respect de la norme java dans les jvm n'est pas fondé. Sur quoi tu te base pour affirmer que la norme est de moins en moins respectée ? J'espère que pour écricre de telles affirmations tu t'appuies sur une longue expérience dans l'utilisation de ce langage !


----------



## pem (17 Décembre 2002)

Pour moi, c'est Java + Project Builder + Cocoa...
Facile a apprendre et bon apprentissage de la programmation orientée objet, pour pouvoir ensuite utiliser du C voire du C++


----------



## noliv (17 Décembre 2002)

100% d'accord avec Onra au sujet du Jave et du fait qu'il ne s'agit pas d'un langage interprété


----------



## Onra (17 Décembre 2002)

Pour revenir au coeur du sujet, il n'y a pas de meilleur langage de programmation. Par contre, il y a des langages plus adapté que d'autre suivant le projet que l'on souhaite réaliser.

Chaque langage a ses avantages et inconvénients. La solution pour choisir son langage, c'est de bien décrire son besoin. Ensuite, il faut faire coïncider ses besoins avec les points forts des langages...

Plus facile à dire qu'à faire me direz-vous !


----------



## Membre supprimé 2 (19 Décembre 2002)

Juste une petit parenthese pour répondre à cela, je cite: "les contres :
- animation graphiques n'y pense même pas ... ca rame."
Puis-je te conseiller ce site où tu pourras télécharger un lot de 40 applets, écris en java, et qui sont, à moins que je n'ai la berlue, tous plus graphiques les uns que les autres.
Certe il te faudra un PC pour les mettre en oeuvre mais tu pourras faire tourner les applets sur un mac et tu verras que ca ne rame pas plus que ça.

par ici --- 
	

	
	
		
		

		
		
	


	




http://anfyteam.com/index.html


----------



## Membre supprimé 2 (20 Décembre 2002)

Déjà je trouve çà cool que les anonyme puisse intervenir sur ce forum  
	

	
	
		
		

		
		
	


	




Ensuite j'voudrai m'expliquez un peu:

Alors pour ma part, je choisi mon langage suivant le projet que j'ai à réaliser mais il est evident que du Basic, pascal etc. la dernière fois ke j'en ai fait c t à l'école. je n'utilise plus que deux langages.

Le java : Pour le web où le multiplateformes est indispensable et là dessus java est pour moi l'un des meilleurs. Par contre il est clair que pour réaliser des applications il ne faut pas utiliser Java. Il est très lent pour réaliser des calculs j'ai rarement vu çà, pour inversé une matrice vous avez intéret d'avoir quelques 50aines de café à boire. Pour les entrées/sorties aussi c po térrible. Par contre c sûr que c facile de programmer en jav mais je rejoins super ced sur le faite que à l'inverse de la partie net, la partie graphique de Java n'est quasi pas portable lorsque l'on veux faire du dynamique. J'ai réalisé une grosse applis en Java parce kelle devait tourner sous Linux, Windows et je voulais aussi perso MacOSX. Et bien la meme fonction ne donnait pas le meme resultat visuel suivant le systeme et ceci meme avec la version identique de la JVM sur chacun des systèmes, bref j'ai du faire des fonction différentes suivant le système d'exploitation, la seule solution. Quand à la partie graphique là encore java est très lent, dès qu'il y a plus de 10000 polygones à gerer et bien même sur une grosse bécane y a intérêt à être très patient. Donc java je le reserve seulement si y a du web et/ou qu'on est obliger de faire une appli multiplateforme.

C/C++ : pour moi les deux vont ensemble (j'ai tjs un peu de C dans mon code C++). Alors là c sûr, pour la programmation, c bien plus prise de tête que Java, il fo pratiquement tout gérer et tout ce qui est graphique est vraiment galère surtout quand on à gouter à Java. Mais par contre nivo rapidité il n'y a rien de mieux et on peux ce demerder afin que le code reste compilable sous n'importe quel systeme. C'est donc naturellement le langage que j'utilise le plus.


Bref, j'aime beaucoup Java pour sa simplicité et surtout son developpement web mais pour le reste je trouve que se langage possède encore des défauts de jeunesse. Le C/C++ est quand à lui plus rapide et robuste mais il fo avoir un certain nivo avant de pouvoir vraiment en tirer completement partie et demande donc plus de temps d'apprentissage.

Donc le plus important c de savoir quel est le langage le plus approprié au projet suivant les contraintes et les points essentiels de celui-ci. Mais bon fo reconnaitre que C/C++ et Java sont devenu les langages les plus utilisés dans le développement.

Bon ba voilà, j'ai fais un peu long je sais mais j'avais vraiment envie de réagir sur le sujet.


----------



## Fender (24 Décembre 2002)

Ce que certains disent sur Java est ridicule. Hum. franchement, déjà, le language de porgrammation utilisé dépend beaucoup de ce qu'on va faire. Y'a pas un language qui soit meilleur d'après moi. Reflechissez:
Le java est très simple pour commencer! J'ai commence avec ca, et franchement, je regrette pas. On ne va JAMAIS utiliser le Java pour faire un jeu 3D! C'est logique! Mais pour programmer de manière simple une application directement utilisable par un navigateur par exemple, pourquoi pas? C'est un language, simple et portable! Facile à mettre en oeuvre et tout, et la lenteur est très relative, ça dépend toujours de ce qu'on veut en faire. 
Le realBASIC permet de dévlopper une application pour quelqu'un qui n'est pas programmeur. En réponse a un post, non le RealBASIC n'est pas un language compilé puisqu'il passe d'abord par une sorte de bibliothèque qui l'interprète ensuite pour le compilateur. Ce language a aussi un interet donné.
Le C est un language complexe très porche de la machine, et une connaissance approfondie de l'assembleur est nécessaire.
L'objective-c me semble etre un bon language mais manque peut-être encore de portabilité (je n'en suis pas sur, je le connais assez peu, comme la plupart des languages d'ailleurs 
	

	
	
		
		

		
		
	


	




 )

De toute façon, il ne faut jamais oublier qu'avec n'importe quel programme, une chose déterminante reste quand même la conception et non le codage. C?est un peu comme si on voulait demandait "Quel est la langue qui permet de parler le plus facilement?" Tout le monde répondrait n'importe quoi mais qu'on parle anglais ou Chinois, de toute façon, ce sera plus long de dire " L'animal avec des grandes oreilles qui est petit et qui cours vite" que "Lapin". Non? Le codage n'est qu'une "facon" de parler, la conception est largement plus importante. Non?


----------



## vonstroheim (30 Décembre 2002)

Python !
C'est vraiment un très bon langage.
En plus avec un outil comme swig on peut s'interfacer avec des librairies C ou C++ très facilement.  

A noter:
http://pyobjc.sourceforge.net/
Mais j'ai pas testé.


----------

