# debutant cherche avec quoi se lancer



## chnoub (17 Mai 2004)

je me debrouillais au lycéed avec ma Ti89, ms depuis rien

vous me conseillez quoi pour debuter??
quel language? pourquoi? quel soft pour faire mon premier essai?



2eme quastion: je voudrais faire un ptit jeu idiot en partant d un jeu genre java avec un pistolet qui tire sur des tetes qui apparaissent, et en mettant les tronches de mes amis ;-)
y a moyen de faire ca genre "demo construction kit" qu on avait sure atari et amiga?


----------



## la tortue (17 Mai 2004)

chnoub a dit:
			
		

> je me debrouillais au lycéed avec ma Ti89, ms depuis rien


Moi aussi, j'avais même tenté de faire un Tétris... 
	

	
	
		
		

		
			





<blockquote><font class="small"> chnoub:</font><hr />vous me conseillez quoi pour debuter??
quel language? pourquoi? quel soft pour faire mon premier essai?

[/QUOTE]
Sans hésitation Xcode + Interface Builder + Cocoa + ObjC.
Pourquoi? C'est très facile d'accès justement, gratuit et facile à installer. 
	

	
	
		
		

		
		
	


	




<blockquote><font class="small"> chnoub:</font><hr />2eme quastion: je voudrais faire un ptit jeu idiot en partant d un jeu genre java avec un pistolet qui tire sur des tetes qui apparaissent, et en mettant les tronches de mes amis ;-)
y a moyen de faire ca genre "demo construction kit" qu on avait sure atari et amiga? 

[/QUOTE]
Connais pas "demo construction kit" mais ça doit être possible, mais essaies de te familiariser avec l'environnement Cocoa d'abord... 
	

	
	
		
		

		
		
	


	



C'est pas forcément si évident que ça, tout dépend de la qualité du ptit jeu idiot... 

Bon courage!


----------



## Manu (18 Mai 2004)

Avant de te lancer il faut commencer par apprendre à programmer en langage C. C'est à mon avis le point de départ OBLIGE.


----------



## chnoub (18 Mai 2004)

et pour le C y a quoi comme soft (gratuit please)


----------



## Gallenza (18 Mai 2004)

N'importe quoi !!! Bien sûr si tu veux programmer le noyau Linux ou Darwin, il faut que tu programmes en C, mais j'ai l'impression que tu veux plus faire dans l'applicatif, y compris graphique....donc il te faut un language objet. Bon moi je suis pour le multiplateforme ce qui n'est pas le cas de objecticv C/Cocoa, si tu veux passer tes programmes à tes copains sous Window$ ou Linux c'est quand mêm plus sympa que de leur demander d'acheter un Mac. Donc Java est très bien intégré à OS X et est multiplateforme (Java/Swing pour le GUI). Si tu veux faire un peux plus d'effort peut-être pour trouver la doc ou installer des packages non-standards si necessaire, Python est SUBLISSIME (je n'utilise plus que ça) et Ruby est aussi excellent (bien que moins répandue et pour l'instant moins riche en fonctionnalités d'extensions).
Allez Python Powa 
	

	
	
		
		

		
		
	


	




 C'est le genre de choix qu'on regrette pas : pour coder le même chose tu mets à peut près 5 à 10 fois mon de code qu'en C ou Java, c'est e grand avantager des languages de haut-niveau.A bon entendeur...


----------



## Manu (21 Mai 2004)

Gallenza a dit:
			
		

> N'importe quoi !!! Bien sûr si tu veux programmer le noyau Linux ou Darwin, il faut que tu programmes en C,



Je conseille la programmation en C c'est tout simplement parce que c'est par ce biais qu'on apprend mieux les ficelles de la programmation tout court sans pour cela se lancer dans le développement d'un noyau. D'ailleurs Java comme d'autres langages Python et autres utilise également une syntaxe à la C. Tout simplement parce que ces langages ont été développés sous Unix qui lui est écrit en C.
Il est nettement plus facile de passer du C à n'importe quel langage qu'il soit objet ou procédural.


----------



## Gallenza (22 Mai 2004)

Manu a dit:
			
		

> D'ailleurs Java comme d'autres langages Python et autres utilise également une syntaxe à la C.


Je suis contraind de me répéter N'IMPORTE QUOI !!!! t'as JAMAIS dû programmer en Python pour dire que sa syntaxe s'inspire du C lol
La syntaxe du C est ignoble, mais si effectivement beaucoup de language s'en sont inspiré (effectivement Java et d'autres) ce n'est PAS parce qu'elle est bien, mais dans le but de pouvoir attirer facilement les gens qui programmaient déjà, et donc en C. C'est une aussi bonne raison que Windows Millénium avec des bout de DOS de 1981 dedans, ou les processeurs Pentium 4 32 bits binairement compatibles avec des 8080 8bits d'y a 30 ans !!! La syntaxe du C est à chier, et ce language n'apprend en aucun cas à bien programmer, mais plutot à programmer comme un porc...


----------



## Didier Guillion (22 Mai 2004)

Bonjour,

Je pense que l'on peut mal programmer dans n'importe quel language qu'il soit structuré ou non, objet ou non.
J'ai vu des sources en Assembleur merveilleusement clair et des sources objective C à se tordre de rire tellement c'était mal écrit.

De toute façon, un source ce n'est que des commentaires avec du code dedans. Si ta pensée elle meme n'est pas structurée, le langage ne le fera pas à ta place.

Donc moi, je te conseille de débuter par un langage simple à apprendre avec des notions primitives mais efficaces et de plus portable : le C.

Après tu pourra tater à d'autres langages plus "évolués".

Cordialement


----------



## GrandGibus (22 Mai 2004)

Tout à fait d'accord !

Une difficulté à la fois: le C c'est bien pour débuter: tu apprendras les séquences de controle (communes à quasi tous les langages): les boucles, les conditionnelles... De plus tu y apprendras ce qu'est un compilateur, qu'il existe aussi des langages interpretés...

Et puis après, il y a l'objet: la joie des patterns !

Après, quand au choix du langage, sache simplement que les langages ont été inventés dans un but bien précis: ex Cobol pour le milieu banquaire (ne rigolez pas)... et donc, faudra peut-être que tu orientes ton choix en fonction de ce que tu voudras faire (ex: pas Cobol si tu veux faire des jeux 
	

	
	
		
		

		
		
	


	




).

Sinon, *Java POWWWAAAAAA 
	

	
	
		
		

		
		
	


	











*


----------



## Didier Guillion (22 Mai 2004)

Bonjour,

J'ajoute une chose. 
Quelque soit le langage que tu va choisir, il est très intéressant d'avoir des rudiments en langage machine.
Les compilateurs ne sont pas parfait et il arrive fréquemment qu'il  y ait des erreurs d'optimisation. La seule facon de les localiser c'est de désassembler et de comprendre ce qu'il a fait.
Par exemple le C qui est un langage qui a plus de 20 ans n'est pas encore compilable avec une fiabilité à 100%...

Cordialement


----------



## Gallenza (22 Mai 2004)

pété de rire, le gars il vaut commencer à programmer et vous lui dite que le C c'est simple, je crois qu'il va se tirer une balle en comprenant pas pourquoi un tableau est statique (taille fixe), que l'on ne peut l'affecter que élément par élément et que sinon il devra s'amuser avec des pointeurs....Je suis PAS DU TOUT d'accord c'est claire.
De plus portabilité lol, il faudra qu'il comprenne qu'il y  a des différences entre les procos petits et gands boutiens ou d'autres trucs du type..
Quand à l'optimisation, si Apple est incapable de sortir des soft optimisé(exemple j'utilise en ce moment safari qui me pompe  avec 50% d'un G4 à 1 Ghz et 50 Mo de RAM pour trois onglets d'ouverts!!) alors qu'elle à des centaines de développeurs grassement payés pour les pondre, il faudrait pas se fouttre de notre gueule en disant que c'est la chose importante pour débuter l'informatique en désassemblant ses binaires pour les optimiser à la main en assembleur.
Donc languages évolués Powa, pas la peine de prendre 20 ans de retard dès le début, facilité de programmation, portabilité, librairies multiples et simples d'utilisation, paradigmes de programation évolués possibles (objet, fonctionnel,etc..)...et si il veut faire de la prog de sémaphore et pondre des if fork()==-1 par la suite pas de problème....


----------



## Gallenza (22 Mai 2004)

Donc mon conseil:
1)Python
2)Ruby


----------



## Didier Guillion (22 Mai 2004)

Gallenza a dit:
			
		

> pété de rire, le gars il vaut commencer à programmer et vous lui dite que le C c'est simple, je crois qu'il va se tirer une balle en comprenant pas pourquoi un tableau est statique (taille fixe), que l'on ne peut l'affecter que élément par élément et que sinon il devra s'amuser avec des pointeurs....Je suis PAS DU TOUT d'accord c'est claire.
> De plus portabilité lol, il faudra qu'il comprenne qu'il y  a des différences entre les procos petits et gands boutiens ou d'autres trucs du type..
> Quand à l'optimisation, si Apple est incapable de sortir des soft optimisé(exemple j'utilise en ce moment safari qui me pompe  avec 50% d'un G4 à 1 Ghz et 50 Mo de RAM pour trois onglets d'ouverts!!) alors qu'elle à des centaines de développeurs grassement payés pour les pondre, il faudrait pas se fouttre de notre gueule en disant que c'est la chose importante pour débuter l'informatique en désassemblant ses binaires pour les optimiser à la main en assembleur.
> Donc languages évolués Powa, pas la peine de prendre 20 ans de retard dès le début, facilité de programmation, portabilité, librairies multiples et simples d'utilisation, paradigmes de programation évolués possibles (objet, fonctionnel,etc..)...et si il veut faire de la prog de sémaphore et pondre des if fork()==-1 par la suite pas de problème....



Tu as qu'elle expérience en C exactement ?

Cordialement


----------



## Gallenza (22 Mai 2004)

Je usi pas sûr de bien comprendre la question...mais bon j'essaye de répondre:
1) Système : programmation liée au noyau Linux (pilotes de périph...)
2) GUI : WindowMaker qui est en C/Xlib, et son jeu de widgets Wings; ainsi que certains prog basés sur GTK.

et donc:

1) C'est géniale c'set parfait c'est ce qu'il faut
2)a)WindowMaker/Xlib --&gt;suoer léger/rapide, totalement ouf à programmer.
  b)pour utiliser avec les Wings ou GTK, ABSURDE,MOCHE,générant les BUGS,ILLISIBLE,LONG,COMPLEXE...je programmeavec GTK et les Wings en Python, c'est mille fois mieux !!!!!!!


----------



## molgow (22 Mai 2004)

Je suis pas sûr non plus que le C soit génial pour se lancer.

En ce qui me concerne, je conseillerai plutôt du Ada (rigolez pas!). Le Ada a tout de même l'avantage d'avoir un compilateur extrêmement tatillon sur les types et la syntaxe. Ca peut paraître chiant, mais c'est un très grand avantage lorsqu'on apprend et même après, ça permet de ne pas perdre beaucoup de temps sur des bêtises qui ne devraient, selon moi, pas passer à la compilation. Combien de fois vous êtes-vous cassé la tête à chercher pourquoi un programme en C ne fonctionne pas alors que le problème venait d'une erreur concernant les pointeurs ?! (par ex: opération mathématique directement sur un pointeur et non pas sur la valeur pointée).

Le C est certes très utilisé, il est également très puissant, il est également nécessaire que tout bon programmeur connaisse le C, mais par pitié ne dites pas que ce langage est bon pour apprendre!

Dans les autres langages que je conseillerais, il y a également le Java. Mais malheureusement, je trouve que ce n'est pas l'idéal de commencer directement par de la programmation orientée-objet. (et faire du Java sans faire de l'OO.. hum.. beurk..).

De toute manière, quoique tu choississes, il faut bien garder à l'esprit que l'on apprend pas à programmer dans UN langage. On apprendre une "manière" de programmer, après la seule chose qui change lorsque tu passes d'un langage à un autre, c'est la syntaxe, et la syntaxe d'un langage, ça se découvre en 2h montre en main.


----------



## Didier Guillion (22 Mai 2004)

Bonsoir,

Je suis d'accord avec toi Molgow, que passer d'un langage a un autre est rapide. (Sauf peut etre avec des langages tres differents comme le Lisp à moins d'avoir travaillé sur Hewlett Packard en notation polonaise inverse et non sur TI comme le créateur de ce fil)

Par contre, la distinction entre "ce qui pointe" et "ce qui est pointé", imposé par le C est pénalisant peut être au début, mais oblige de réfléchir à ce que l'on écrit... Ce qui, à mon avis est certes un exercice parfois casse tête mais un atout certain quand on le maitrise.


Cordialement


----------



## molgow (22 Mai 2004)

Didier Guillion a dit:
			
		

> Par contre, la distinction entre "ce qui pointe" et "ce qui est pointé", imposé par le C est pénalisant peut être au début, mais oblige de réfléchir à ce que l'on écrit... Ce qui, à mon avis est certes un exercice parfois casse tête mais un atout certain quand on le maitrise.



Ce n'est pas pénalisant qu'au début... peut-être n'en fais-je pas assez régulièrement, mais j'ai débuté le C il y a déjà quelques années et j'ai encore parfois aujourd'hui des problèmes dans ce genre. Je les règles rapidement et je les comprends, mais ça me fait tout de même perdre du temps.

Dans les langages un peu plus évolués tels que Java ou Python, cette notion de pointeur a disparu et je trouve que c'est très bien ainsi. Bien sûr, ça ne permet plus de faire des supers bouts de codes optimisé de la mort qui tue (qui ne sont compréhensible qu'à celui qui les a écrit.. et encore..).. mais le confort du programmeur et la sûreté du programme (crash inopiné) s'en trouve grandement amélioré!


Pour le Lisp, c'est effectivement le parfait contre-exemple à ce que je disais 
	

	
	
		
		

		
		
	


	



Il y a aussi le Prolog dans ce genre de langage bien particulier.


----------



## Didier Guillion (22 Mai 2004)

Bonsoir,

Il est vrai que très souvent le programmeur qui travaille en C oublie souvent la distinction entre raccourci d'écriture et code généré plus optimisé.
Des trucs du genre (*p++)=--(*(p-1)); sont jouisif pour le théoricien mais rendent la lecture plus cabalistique que des hiéroglyphes.

J'ai vu énormément de "monstres" de ce genre en C et c'est certainement ce qui a amené une mauvaise réputation de ce langage.

On pourrait également critiquer, je pense, la façon dont les langages sont enseignés dans les écoles, où le principe est de "visualiser" un maximum de langages dans un mimimum de temps. Première semaine C, deuxième C++, troisième Objective C... Ca fait réver.

Après on recoit des CV de personnes disant "maîtriser" une douzaine de langages alors qu'a mon avis il faut au mimimum 10 ans pour commencer à en comprendre les tenants et aboutissants d'un seul et se sentir à l'aise.

En tout cas, personellement, j'utilise des sources C quotidiennement qui ont été écrits en 1987 et qui fonctionnent parfaitement, sautant d'un système d''exploitation à l'autre avec alègresse. 
Je ne connait pas d'autre langage qui m'auraient permi cela...

Cordialement


----------



## Gallenza (22 Mai 2004)

Didier Guillion a dit:
			
		

> (Sauf peut etre avec des langages tres differents comme le Lisp à moins d'avoir travaillé sur Hewlett Packard en notation polonaise inverse et non sur TI comme le créateur de ce fil)


Désolé d'être un peu prof aujourd'hui, mais le Lisp contrairement au HP n'utilises PAS la notation polonaise inversée!!! Il utilise la notation polonaise tout court!!! c'est une écriture préfixée alors que la HP (et le Forth si on cherche un langage de prog comme ça) sont postfixés; L'avantage du Postfixé sont qu'il n'y a pas d'analyse syntaxique à faire par l'interpréteur d'ou l'utilisation dans des calculettes à faible puissance (comparées aux ordis) ou dasn un langaue (le Forth) très près de la machine, d'extremememnt bas niveau. Le préfixé lui s'utilise en Lisp car tout l'interpreteur et la logique lispienne sont basés sur la récursivité et que l'analyse syntaxique d'une expression préfixée est récursive.
Voilà pouur le petit cours.
Sinon globalement y'a quelques années je pensais que seule la syntaxe changeait entre les langages, je pense maintenant qu'il n'y a rien de plus faux, il y a des groupes de langages et si l'on passe d'un groupe à l'autre sans changer de manière de programmer on ne peut plus programmer...programmer en smalltalk ou en prolog, ou encore en C c'est aussi différent que nager et voler...
Cependant un langage comme le python permet de faire de la programmation procédurale simple pour débuter, puis passer à l'objet si on en a envie, ou encore utiliser des fonctions commes les fonctions lambdas ou autres qui le transforme en langage fonctionnel..sans les 1 000 000 000 de parenthèses bien sûr !!
Ruby a les presque les mêmes qualités que Python.
Je veux vraiment que les gens qui pensent que si on sait programmer en C on sait tout faire prennent conscience qu'il n'y a rien de plus FAUX.
Encore une fois la programmation du noyau d'un OS c'est très important, mais ça ne représente qu'une toute petite partie de la diversité et de la force de l'informatique.


----------



## GrandGibus (22 Mai 2004)

Sans vouloir dire des évidences (voire des conneries 
	

	
	
		
		

		
		
	


	




), je pense qu'au delà de toutes les considérations (que je trouve justes), quelqu'un qui programme bien dans un langage (parce qu'il aura compris les tenants et les aboutissants de ce langage), programmera bien dans n'importe quel autre langage.

Sans vouloir faire l'apologie d'un langage plutôt qu'un autre, il est évident que certains langages se prêtent mieux à l'apprentissage que d'autres. Pour cela, il n'y a qu'à voir quels sont les langages qui sont enseignés à l'école.

Pour ma part j'ai commencé ma carrière informatique par l'IUT (de Bordeaux I) et l'on y a appris la programmation par le Pascal (c'était en 1993)... il serait interessant de savoir quels sont les langages choisis par les professionnels de la pédagogie (au delà de toute considérations commerciales des boites de formation).


Enfin, juste histoire de ne pas trop dévier dans la guéguerre (amusante) de mon langage il est mieu que le tien......


----------



## Luc G (22 Mai 2004)

GrandGibus a dit:
			
		

> Sans vouloir faire l'apologie d'un langage plutôt qu'un autre, il est évident que certains langages se prêtent mieux à l'apprentissage que d'autres. Pour cela, il n'y a qu'à voir quels sont les langages qui sont enseignés à l'école.



Alors pour ceux qui veulen se distraire en apprenant des langages un peu différents et parfois utilisés dans l'enseignement, je vous conseille de jeter un coup d'oeil sur OCaml, un langage fonctionnel donc parent de LISP. Bon, pour l'utilisation pratique, je ne m'avancerai pas trop (il y a eu quelques trucs faits avec mais je ne suis pas sûr que l'interfaçage avec le système soit évidente même si on peut intégrer du C, etc.) mais pour avoir une introduction sympa de la récursivité, et surtout des types récursifs gene listes et arbres, c'est une approche intéressante ; et même chose pour tout ce qui est typage et polymorphisme, et le tout avec une certaine rigueur.

Sinon, pour la pédagogie, je pense qu'on n'a encore rien inventé de mieux que Pascal, malheureusement un peu limité par certains aspects et aujourd'hui restant un peu en rade même si Ada a été basé dessus.

Pour la portabilité, c'est le marché qui a tendance à la faire, c'est à dire à pousser les concepteurs de compilateurs et ceux qui gravitent autour à s'y plier, d'où ce que dit Didier : on peut réutiliser du code C ; d'où les possibilités de porter des programmes Fortran parce que certains en ont besoin ; et je suppose, mais là je n'y connais vraiment que dalle, que c'est aussi vrai en Cobol.

Ceci dit, la syntaxe C, je n'ai jamais pu m'y faire, c'est quasiment physique et ça m'embête bien.


----------



## Didier Guillion (23 Mai 2004)

Bonjour,

D'accord LucG pour le Pascal. C'est un excellent langage d'apprentissage. C'est dommage que ce langage n'est pas sut se standardiser. 
Je me rappelle dans les années 80 la revue Pascalissime qui cassait du C à toutes les pages...

Un autre langage que j'ai découvert récemment et qui m'a vraiment beaucoup plus est le Lua. C'est un langage open source developpé par une université brésilienne :
http://www.lua.org/

Sa syntaxe est proche du C et bien qu'interprété, il est très compact et rapide.

Cordialement


----------



## Gallenza (23 Mai 2004)

Didier Guillion a dit:
			
		

> Un autre langage que j'ai découvert récemment et qui m'a vraiment beaucoup plus est le Lua. C'est un langage open source developpé par une université brésilienne :
> http://www.lua.org/
> 
> Sa syntaxe est proche du C et bien qu'interprété, il est très compact et rapide.
> ...



J'ai vraiment du mal à comprendre ce que veut dire syntaxe proche du C pour toi...Lua ayant une syntaxe très proche de celle du Pascal.

Cordialement


----------



## Didier Guillion (23 Mai 2004)

Bonjour,

Et bien disons qu'à mon avis, la syntaxe du Pascal et très proche de celle du C également. Et donc du Lua, ou de JavaScript.
Le C++ ou Objective C sont plus éloignés du C que le C du Pascal. Mais bon tout se discute car avec un peu d'habitude, on arrive à lire l'un quand on connait l'autre.

Au passage le fait d'écrire :
a=b+1;
demeure une incongruité. 
Je preferait nettement 
a:= b+1 par exemple.
C'était une digression.

Il demeure que, quelque soit le langage choisit, le plus important reste le commentaire.
Quand je donnait des cours de C à la Fac, j'avais deux chapitres principaux.
1- Les commentaires (/**/)
2- Annexe : le reste du langage.
C'était carrement caricatural mais j'avait au moins cette satisfaction d'essayer de faire passer une notion importante.

Donc, pour en revenir au sujet, quelque soit le langage choisit pour débuter, commentez, commentez, commentez encore.
Et donnez des noms clairs à vos variables.

Cordialement


----------



## Manu (25 Mai 2004)

Le gros avantage du langage C c'est que de tous les langages dit de haut niveau contrairement aux langages d'assemblage par exemple,c'est l'un des rares langages qui te permet de toucher du doigt la machine et le système. C'est pas pour rien si des systèmes entiers ont été écrits dans ce langage. en plus c'est l'un des rares que tu trouveras sur toutes les plate-formes.
Je ne sais si on pouvait faire du Python ou du Ruby sous Mac OS 9.
Certes il y a des notions pas si simples. Mais le fait de les comprendre te permet également de comprendre comment au sein de ta machine et de ton système les choses sont organisées. Et cela te permet d'être un bon programmeur. En effet programmer tout le monde peut le faire, mais écrire de bons programmes très peu savent le faire. 
Si l'on utilise le C pour écrire des noyaux ou autres, c'est parce que C'EST le langage de BASE. C'est donc par lui qu'il faut commencer.
Un exemple, j'ai mon cousin qui est à la fac et qui a commencé à programmer avec Java. Lorsque plutard on leur a fait faire du C il était assez dérouté car il trouvait le C trop ... basique. Notamment il ne comprenait pas qu'on puisse soi même liberer de la mémoire à chaque fois, alors qu'en java le garbage était là pour ça. Je lui ai clairement fait comprendre que c'est justement en occultant ce genre de choses que l'on programme sans faire attention. La rigueur du langage C est à cet égard très interressante car elle te permet de faire attention et d'être rigoureux.
Cocoa par exemple c'est un très bon RAD. seulement il arrive un moment où il faut optimiser et là la connaissance du C est d'un grand secours.
Bref pour moi le C te permet d'avoir de bons automatismes et te fais prendre conscience que tu programmes pour une machine et un système dont il faut comprendre le fonctionnement, c'est un gage d'écriture de bons programmes.


----------



## Gallenza (25 Mai 2004)

Le C c'est le contraire de la rigueur désolé...


----------



## Didier Guillion (25 Mai 2004)

Bonjour,

Entièrement d'accord avec Manu.
Le C est une excellente école de discipline.

Cordialement


----------



## Couhoulinn (25 Mai 2004)

La rigueur n'est pas liée au langage de programmation mais au programmeur.

et il y a rigueur et rigueur:

est ce que l'on parle de la rigueur au niveau du format du code écrit ou au fait qu'il faut faire plus attention à ce que l'on fait?

Le format libre du C élimine la première rigueur mais il faut faire assez attention à ce que l'on écrit.

Je dirais que le C est le langage à apprendre en premier actuellement car c'est le langage que l'on retrouve sur le plus de plateforme.

Java est à la mode en ce moment mais je ne pense pas qu'il le restera longtemps. Je crois que le langage de l'avenir sera un langage basé sur le C qui rassemblera les avantages du Java et d'Objective-C.


----------



## Tiff (25 Mai 2004)

Pour un vrai débutant (comme moi), et non pas un futur informaticien, inutile de se lancer dans le C, à mon humble avis. Si le but est juste de s'amuser un peu avec son Mac, Objective-C est relativement accessible.
Alors que le C !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

D'ailleurs, j'aimerais savoir où on peut trouver des tutoriels pour apprendre à programmer en C sur Mac ! Enfin, quand je dis "j'aimerais", ce n'est pas pour moi ! Merci. J'ai fait une crois dessus il y a longtemps !
Bien sûr, je ne parle pas des sites qui expliquent ce qu'est un if, ce qu'est un while. Ce n'est pas du C, ce sont des instructions communes à tous(?) les langages.


----------



## Gallenza (25 Mai 2004)

J'au vraiment du ma à te comprendre, le C serait trop compliqué pour toi et l'objC non, alors que ce dernier est du C avec une surcouche objet...donc c'est le mê^me mais avec plus de complexité (et les avantages allant avec)


----------



## marsu_381 (26 Mai 2004)

Je rejoins quelques avis:
 -le pascal ou l'ada sont de très bon choix pour débuter.
Car ils ont typages fort, cela oblige à être rigoureux. On peut aussi être rigoureux en C. De plus en C on est tres vite oblgier de s'occuper des pointeurs. A mon gout la syntaxe pascal ou ada est plus facile à relire que du C. Certaine chose sont plus simple comme les entrées/sortie standards en ada.
 - pour les langages fonctionnels caml light est interressant  car moins complexe que le lisp et il est typé.
 - En objet Smalltalk peut etre tres bien, mais il un peut differents des autres langages objet comme C++ ou Java. Sinon java est pas mal non plus car on peut realiser facilement des interface graphique (smalltalk aussi). Pour objectiveC, cocoa etc je connais pas.

La C est valable pour quelqu'un de tres motive et tres rigoureux a cause de sont manque de typage et des compilateurs laxistes.

A+


----------



## Tiff (26 Mai 2004)

Gallenza a dit:
			
		

> J'au vraiment du ma à te comprendre, le C serait trop compliqué pour toi et l'objC non, alors que ce dernier est du C avec une surcouche objet...donc c'est le mê^me mais avec plus de complexité (et les avantages allant avec)



J'ai un morceau de programme C sous les yeux :
gets(ptr-&gt;provider.dish_company) ;
ptr-&gt;c_d_p = 'd';
(j'en passe, tout le reste est comme ça)
Si c'est pas du charabia, ça ! 
	

	
	
		
		

		
		
	


	




 titre = [monTitre stringValue];
[bouton affiche:titre];
est plus lisible, non ?
Je ne vois pas le rapport entre le C et l'objective-C, si ce n'est que sans doute le compilateur transforme l'un en l'autre.

Je n'ai pas fait d'étude en informatique, et n'ai pas envie de m'embêter avec les innombrables bibliothèques du C, ni de maîtriser les pointeurs. Je me trompe sûrement, mais je pense que l'on peut programmer assez facilement son Mac sans connaître le C. Heureusement ! Mais peut-être que tout simplement je n'ai pas ouvert les bons bouquins qui traitaient du C ?


----------



## Vince-surf (26 Mai 2004)

En lisant le post de  je me demandais à quoi pouvait ressembler la structure de tout ces language, avec  *Tiff*  , je sais: Je prefere le deuxieme, sans probleme

Je n'ai jamais touché au C, C++ et objectif C et autre, je me suis contenté du turbo pascal et du basi(que)c AMOS sur Amiga. C'était simple et l'on pouvait se concentrer sur l'interface . C'est pas facile de se remettre à dvpper des logiciels. Bravo à vous  
	

	
	
		
		

		
		
	


	




.

Avez vous une adresse ou je peux étudier le code de python que je me rende compte si je suis capable de me lancer là dedans ? Merci


----------



## Didier Guillion (26 Mai 2004)

Tiff a dit:
			
		

> J'ai un morceau de programme C sous les yeux :
> gets(ptr-&gt;provider.dish_company) ;
> ptr-&gt;c_d_p = 'd';
> (j'en passe, tout le reste est comme ça)
> Si c'est pas du charabia, ça !



Oui, c'est du charabia ! 
Mais ou sont les commentaires ?
Tout langage mal ecrit, avec des noms de variables et de nom de membre de structure mal choisi, devient très rapidement illisible.
Ce n'est pas la faute du langage, mais du programmeur...

Cordialement


----------



## Didier Guillion (26 Mai 2004)

Vince-surf a dit:
			
		

> En lisant le post de  je me demandais à quoi pouvait ressembler la structure de tout ces language, avec  *Tiff*  , je sais: Je prefere le deuxieme, sans probleme
> 
> Je n'ai jamais touché au C, C++ et objectif C et autre, je me suis contenté du turbo pascal et du basi(que)c AMOS sur Amiga. C'était simple et l'on pouvait se concentrer sur l'interface . C'est pas facile de se remettre à dvpper des logiciels. Bravo à vous
> 
> ...



Tu peut commencer par ici je pense :

http://www.python.org/

Cordialement


----------



## Luc G (26 Mai 2004)

marsu_381 a dit:
			
		

> - pour les langages fonctionnels caml light est interressant  car moins complexe que le lisp et il est typé.



Caml light est aujourd'hui remplacé par OCaml : peu de différences à la base mais on bénéficie en plus des concepts objet (d'ou le "O" de OCaml). Il est disponible (gratuit) sur le site de l'INRIA ainsi que 2 interfaces simples pour l'environnement interactif de OCaml pour OSX qu'on peut télécharger sur le même site.

Par contre j'aimerai bien voir si des gens ont réellement fait des programmes pour mac en utilisant Caml (ce qui n'enlève rien à son intérêt pédagogique pour comprendre pas mal de concepts d'algorithmique).


----------



## maousse (26 Mai 2004)

mldonkey est programmé en ocaml (d'où le 'ml' 
	

	
	
		
		

		
		
	


	




 ), sans interface cocoa ou carbon, certes.


----------



## Luc G (26 Mai 2004)

maousse a dit:
			
		

> mldonkey est programmé en ocaml (d'où le 'ml'
> 
> 
> 
> ...



Merci pour l'info. Je n'en savais rien (je n'ai pas regardé depuis un moment sur le site de l'INRIA ce qui était sorti comme applis développées avec OCaml.


----------



## Gallenza (27 Mai 2004)

Tiff a dit:
			
		

> J'ai un morceau de programme C sous les yeux :
> gets(ptr-&gt;provider.dish_company) ;
> ptr-&gt;c_d_p = 'd';
> (j'en passe, tout le reste est comme ça)
> ...



Bon j'espère que si tu programmes vraiment en objective-C tu comprendra que ce language est une surcouche objet du C ANSI !!!! Et des pointeurs tu va ne faire que ça, si tu n'en veux pas choisit un autre language!!!

Vince-surf le site que t'a indiqué Didier Guillion est effectivement le point de départ obligé sur python...et je crois vraiment que tu fais un excellent choix.

Didier, tu fais une fixation sur les commentaires...programme en Python, y'en a plus besoin !!! le code sera plus claire et plus concis que des vrais commentaires!!bon d'un autre côté c'est la moitié de ton cours qui tombe à l'eau


----------



## Didier Guillion (27 Mai 2004)

Gallenza a dit:
			
		

> Didier, tu fais une fixation sur les commentaires...programme en Python, y'en a plus besoin !!! le code sera plus claire et plus concis que des vrais commentaires!!bon d'un autre côté c'est la moitié de ton cours qui tombe à l'eau



Bonjour,

On va faire simple.

Voici un programme en Python qui a été pris dans les exemples sur Python.org :
 <font class="small">Code:</font><hr /><pre> 
import inspect,dis

def expecting():
    f = inspect.currentframe()
    f = f.f_back.f_back
    c = f.f_code
    i = f.f_lasti
    bytecode = c.co_code
    instruction = ord(bytecode[i+3])
    if instruction == dis.opmap['UNPACK_SEQUENCE']:
        howmany = ord(bytecode[i+4])
        return howmany
    elif instruction == dis.opmap['POP_TOP']:
        return 0
    return 1

def cleverfunc():
    howmany = expecting()
    if howmany == 0:
        print "return value discarded"
    if howmany == 2:
        return 1,2
    elif howmany == 3:
        return 1,2,3
    return 1

def test():
    cleverfunc()
    x = cleverfunc()
    print x
    x,y = cleverfunc()
    print x,y
    x,y,z = cleverfunc()
    print x,y,z

test()
 </pre><hr /> 
Sincèrement, ce ne serait pas plus clair avec des commentaires ?

A noter que cela se rapproche pas mal du Lua. J'aime bien les retours multiple de fonctions...

Cordialement


----------



## Sumzy (27 Mai 2004)

Arretez un peu de vous chamailler!!!! on est parti sur un debat completement con!
Je vais vous dire ce que j'en pense : les gouts et les couleurs ca ne se discute pas!!! et pourtant ca fait quelque message quil ne se passe que ca alors soyez constructifs...


----------



## Didier Guillion (27 Mai 2004)

Bonjour,

Je n'ai pas l'impression que quiconque se chamaille ici.
C'est un échange courtois et argumenté d'opinon et d'expériences différentes.
Par contre tu es le premier à etre vulgaire...

Cordialement


----------



## Sumzy (27 Mai 2004)

vulgaire??
	

	
	
		
		

		
			





 j'ai simplement "exprimer mon opinion"...
alors je te prie de me laisser le faire...
Je trouve sincerement que je suis rester tres courtois au vue de l'enervement que ce debat provoque en moi... 
	

	
	
		
		

		
		
	


	




salut a toi


----------



## Didier Guillion (27 Mai 2004)

Bonjour,

Si "completement con" n'est pas vulgaire à tes yeux, cela te regarde...

Cordialement


----------



## Gallenza (27 Mai 2004)

Moi je pense comme Didier, je trouve très agréable intellectuellement de confronter ses avis à ceux des autres...d'autant que l'expérience informatique arrive souvent à avoir des avis définitifs sur certaines choses et que ces échanges peuvent permettrent de comprendre pourquoi certaines personnes aiment/n'aiment pas des choses qu'on n'aime pas/aime et ainsi de progresser.

Cordialement


----------



## Fulvio (27 Mai 2004)

Gallenza a dit:
			
		

> Bon j'espère que si tu programmes vraiment en objective-C tu comprendra que ce language est une surcouche objet du C ANSI !!!! Et des pointeurs tu va ne faire que ça, si tu n'en veux pas choisit un autre language!!!



Pour ce que j'en ai vu, l'Objective-C rend l'utilisation des pointeurs très abstraite et dispense d'en connaitre le fonctionnement. Certes, tout objet est déclaré comme pointeur avec son astérisque. Mais passée la déclaration, le typage dynamique de l'ObjC fait oublier les astériques et esperluette du C et du C++.



			
				Gallenza a dit:
			
		

> Vince-surf le site que t'a indiqué Didier Guillion est effectivement le point de départ obligé sur python...et je crois vraiment que tu fais un excellent choix.
> 
> Didier, tu fais une fixation sur les commentaires...programme en Python, y'en a plus besoin !!! le code sera plus claire et plus concis que des vrais commentaires!!bon d'un autre côté c'est la moitié de ton cours qui tombe à l'eau



Ok, je vois à ton profil que t'es encore étudiant. Si tu veux devenir programmeur, il faut que tu saches :
* que les programmes du monde du travail sont généralement plus complexes et ambitieux que ceux que tu dois faire en TP.
* que tu passeras 80% de ton temps à maintenir et corriger du code et 20% seulement à en créer de toute pièce.
Je dis pas ça pour te décourager, au contraire. Mais quand tu auras compris ce que ça implique (il m'a fallu moi même du temps), tu considèreras autrement les commentaires, les méthodes d'analyses, les outils de débuggages, les normes et les conventions de nommages et toutes ces conneries qui freinent la créativité des apprentis sorciers du code. Même avec un langage qui impose des tabulations pour chaque bloc d'instruction 
	

	
	
		
		

		
		
	


	




Pour en revenir au sujet, le C n'est pas le meilleur langage pour l'apprentissage, mais il est indispensable à tout programmeur professionnel. En tout cas, il ne manque de rigueur que pour les gens peu rigoureux. Comme tout autre langage


----------



## JoyeuxBranleur (21 Juin 2004)

Pour répondre à la personne qui se demandait qu'elles était les langages enseigné actuellement, je pourrais donc en citer quelques uns.
Je suis actuellement étudiant en informatique  (je rentre en master a saint etienne), en premiere année de licence ils ont vu du caml (et y a qq années un peu de postscript). en seconde année on voit le c (et peut etre un autre langage, j'ai pas fait ceta année là). En troisième année, on a vu du c, et du java, ainsi qu'un peut de perl (j'ai vu ds une autre licence un peu de xml).
en master je crois qu'il y a tjrs du c, du java (je crois du python), du cobol (ou qqch comme ca), il y a aussi un certain nombre d'autre langage (html, php, javascript...).
Je ne pense pas que l'on puisse dire réellement quel langage est le mieux, chacun de mes profs pronant pour son propre langage et critiquant celui du collegue (comme c'est le cas dans ce sujet).


----------



## tatouille (21 Juin 2004)

chnoub a dit:
			
		

> je me debrouillais au lycéed avec ma Ti89, ms depuis rien
> 
> vous me conseillez quoi pour debuter??
> quel language? pourquoi? quel soft pour faire mon premier essai?
> ...


----------



## tatouille (21 Juin 2004)

Didier Guillion a dit:
			
		

> Bonjour,
> 
> Si "completement con" n'est pas vulgaire à tes yeux, cela te regarde...
> 
> Cordialement




 :love:  :love:  :love:  :love:  :love:


----------



## Marty_Macfly (25 Août 2004)

bonjour ,
 Je suis étudiant en prepa MP avec option info et depuis l'année derniere nous travaillons sur du Ocaml .
 seulement , l'anné derniere j'avais un pc  et maintenant je suis passé au mac (OS X.3)
 et je ne comprends pas comment lancer ocaml ni avec quel programme
 En fait je l'ai telechargé depuis http://caml.inria.fr/caml-macosx-howto/index.html
 et instalé sur mon Mac (flambant neuf !!
	

	
	
		
		

		
		
	


	




) et apres, ne voyant aucun icone de lancement ni de fichier ocaml je suis perdu ( ss doute trop abitué à windows xp)
 Si quelqu'un pouvais m'indiqué le plus precisement possible les actions à effectuer ( je ne suis pas trés callé en informatique ) , je lui en serais tres reconnaissant 

 Merci d'avance


----------



## Marty_Macfly (25 Août 2004)

personne ne peut m'apporter son aide??

 A votre bon coeur messieurs dames.


----------



## Gallenza (26 Août 2004)

Marty_Macfly a dit:
			
		

> personne ne peut m'apporter son aide??
> 
> A votre bon coeur messieurs dames.



Bon je vais t'expliquer, mais je tiens à préciser que si tu veux réussir en MP faudra que tu sois un peu plus débrouillard....
Et pour réussir à la fac aussi !!
Donc voilà t'as installé le package ce qui est parfait, maintenant y'a plus qu'à l'utiliser : c'est un outil en ligne de commande, donc tu lances Terminal.app qui est dans /Applications/Utilitaires et là tu tapes "ocaml" dedans puis enter....et ça ne lance pas ocaml car comme précisé dans la page dont tu donnes toi-même le lien (mais peut-être es-tu totalement allergique à l'anglais), le binaire se trouve dans /usr/bin/local qui ne fait pas partie par défault de la variable d'environnement $PATH dans laquelle est listée tous les répertoires où rechercher des exécutables.
Donc il te suffit de taper /usr/local/bin/ocaml à chaque fois que tu veux utiliser ocaml, ou alors à rajouter /usr/local/bin dans le fichier de conf de ton shell qui n'est plus tcsh par défault comme indiqué sur la page, mais bash(le shell standard sous linux et maintenant sous tous les unix) et dont le fichier de conf est .bash_profile.
De plus il est préciser qu'il faut mettre des paramètres pour limiter la taille de la pile d'exécution car comme tout bon language récursif qui se respecte ocaml est une grosse bouse qui peut te défoncer ta bécane en moins de deux pour faire des choses simples car l'itératif c'est pas drôle ça marche trop bien trop vite et c'est trop facile.


----------



## Marty_Macfly (26 Août 2004)

bonjour Gallenza,
 Tout d'abord je tiens a te remercier pour ta reponse et apporter par la meme occasion aporter quelques informations sup
 Primo je me débrouille tout a fait bien en prepa (merci tt de meme de t'en inquiter )
 secundo il se trouve que mon niveau en anglai n'a rien a voir dans l'histoire etant donnée que meme ton explication (fort  detaillée) est pour moi des  plus sibyllin 
 comme je l'avais presisé dans mon premier message , mon niveau en info est des plus basic  et des que des lignes de commande rentrent en compte je suis rapidement perdu.
 Pas besoin pour autant  de prendre les gens de haut  avec des remarques mal placées


----------



## Gallenza (26 Août 2004)

Excuse moi si j'ai été mal perçu dans mes propos, mais si j'ai répondu c'est que je m'intéresse à ton cas ;-)
Quand on "sait" certaines choses, à la longue on oublie qu'on ne les a pas su un jour et qu'elles n'ont rien d'évident !!
J'ai posté à 3 heure du mat donc on se laisse aller parfois.....


----------



## Filou53 (29 Août 2004)

Bonjour.

Je viens de lire ce sujet avec bcp d'intéret.
Une remarque quand même: chnoub cherche avec quoi se LANCER.
Je ne suis pas très certain que les C, Python's et autres soient vraiment des modèles de simplicité (avec ou sans commentaire d'ailleurs). 
Et ce même si ce sont sans doute de merveilleux langages pour les 'spécialistes'. 

Personne n'a évoqué des outils comme RealBasic ou Revolution.
Ils me semblent apparemment plus abordables, non  ???
(pblm, c'est le prix - tout cela n'est pas donné quand on n'a pas un but commercial)

Filou


----------



## Gallenza (29 Août 2004)

Filou53 a dit:
			
		

> Bonjour.
> 
> Je viens de lire ce sujet avec bcp d'intéret.
> Une remarque quand même: chnoub cherche avec quoi se LANCER.
> ...



T'ass franchement totalement tord, il n'a pas de languages pour les spécialistes et d'autres pour les newbies...on peut juste dire que certaines syntaxes sont de primes abord plus simple (basic ou python) que d'autres (le C et tous ceux qui s'en inspirent ou l'ADA).
Et que le premier paradigme de programmation à maitriser à l'impératif...le fonctionnel et l'objet venant en plus si on en a besoin, sachant qu'o pourra s'en sortir plus ou moins joliement en impératif.
Par contre il faut absolument choisir un outil multiplateforme et standard, en un mot libre...le C et le Python ou le Perl ou Ruby ou n'importe quel autre language sont netement SUPERIEURS à des outils comme RealBasic ou Revolution...le fait de ne pas avoir à payer ne doit pas ê^t^rê^troublant, c'est l'une des caractéristiques des logiciels libres que d'etre meilleurs que les logiciels prioprio.


----------



## Filou53 (29 Août 2004)

Gallenza a dit:
			
		

> .le fait de ne pas avoir à payer ne doit pas ê^t^rê^troublant, c'est l'une des caractéristiques des logiciels libres que d'etre meilleurs que les logiciels prioprio.


précision: quand je parlais du prix, c'était celui de RealBasic et de Revolution: excessif à mon sens quand on n'en a pas une utilisation professionnelle.
Je suis également convaincu que les logiciels libres peuvent être meilleurs que leurs concurrents propriétaires...

Filou


----------



## Filou53 (30 Août 2004)

Gallenza a dit:
			
		

> Par contre il faut absolument choisir un outil multiplateforme et standard, en un mot libre...le C et le Python ou le Perl ou Ruby ou n'importe quel autre language sont netement SUPERIEURS à des outils comme RealBasic ou Revolution...


Bonjour.
2ème précision:
c'est vrai que j'ai peut-être complètement tort
et que C, Python, ... sont nettement supérieurs 

mais encore une fois, pour un DEBUTANT (c'est à dire, pas forcément un ingénieur en 1ère année ou un féru de PC/MAC depuis des années, mais simplement qq qui veut programmer un peu, pour le plaisir, sur SA machine),
je continue à penser que certains langages sont plus abordables que d'autres.

Filou


----------



## rackis (3 Septembre 2004)

Bon pour résumer : c'est possible de débuter (pour un gars qui c'es arrété à la prog sous sa casion) avec cocoa?


----------



## Simon T. (4 Septembre 2004)

rackis a dit:
			
		

> Bon pour résumer : c'est possible de débuter (pour un gars qui c'es arrété à la prog sous sa casion) avec cocoa?



A mon avis, ça n'est pas une bonne idée d'essayer de faire de l'objective C sans avoir fait du C auparavant.

Sinon pour java, je ne vais pas me prononcer étant donné que je connais peu ce langage...

Salutations.

Simon


----------



## Gallenza (4 Septembre 2004)

rackis a dit:
			
		

> Bon pour résumer : c'est possible de débuter (pour un gars qui c'es arrété à la prog sous sa casion) avec cocoa?


Je dirais non....en effet le prinsipale problème de cocoa est son paradigme de programmation : l'objet.
C'est un framework très puissant avec un langage (l'objective C)  extremement élégant, mais des générations de programmeurs chevronnés ont mis beaucoup de temps et d'énergie pour comprender ce type de programmation.
La première chose à maitriser : la programmation impérative !!! En cela le python qui est un language objet mais permet sans problème ce genre de programmation si l'on le veut, pour dans un second temps se mettre à programmer des classes à tout va, est vraiment adapté à un débutant.De plus la syntaxe du Python est bien plus claire que celle du c et de tout ses dérivés.


----------



## Filou53 (4 Septembre 2004)

Gallenza a dit:
			
		

> La première chose à maitriser : la programmation impérative !!!


Sorry pour mon ignorance   
mais c'est quoi la programmation 'impérative ?  

Filou


----------



## Forenheit (5 Septembre 2004)

La programmation impérative c'est comme ce que fait ma femme avec moi :
"tu fais çà puis tu fais çà,... tu vaux rien,... et si c'est pas content reviens au début"

C'est avec mon expérience personnelle que je cause


----------



## rackis (14 Septembre 2004)

bon moi je suis en train de potasser python. J'espere que ça ira 
a+


----------



## Luc G (14 Septembre 2004)

Marty_Macfly a dit:
			
		

> bonjour ,
> Je suis étudiant en prepa MP avec option info et depuis l'année derniere nous travaillons sur du Ocaml .
> seulement , l'anné derniere j'avais un pc  et maintenant je suis passé au mac (OS X.3)
> et je ne comprends pas comment lancer ocaml ni avec quel programme
> ...


 Si tu veux pas t'embêter la vie, tu installes en plus de Ocaml un des environnements graphiques développés pour l'utiliser simplement. Ils sont dispos sur le site de Caml. Tu as par exemple CocOCaml  que j'ai l'habitude d'utiliser (le lien vers le deuxièm environnement n'est plus à jour..

 Tu pourras comme ça tester très facilement des bouts de code sans jouer du terminal


----------



## Luc G (14 Septembre 2004)

Gallenza a dit:
			
		

> T'ass franchement totalement tord, il n'a pas de languages pour les spécialistes et d'autres pour les newbies...


 Tout dépend du temps que l'on veut y consacrer. Celui qui veut aller au fond n'échappera pas aux complexités des langages, celui qui veut faire joujou peut très bien s'intéresser à des outils mieux "intégrés".




			
				Gallenza a dit:
			
		

> Par contre il faut absolument choisir un outil multiplateforme et standard, en un mot libre...le C et le Python ou le Perl ou Ruby ou n'importe quel autre language sont netement SUPERIEURS à des outils comme RealBasic ou Revolution...le fait de ne pas avoir à payer ne doit pas ê^t^rê^troublant, c'est l'une des caractéristiques des logiciels libres que d'etre meilleurs que les logiciels prioprio.


 Là aussi, ça dépend : si ton but c'est de créer rapidement un petit outil dont tu as besoin sur une machine donnée, le multiplateforme n'a rien d'indispensable et le choix de l'outil peut très bien être fait sur des critères qui n'ont rien à voir avec la philosophie de la programmation. Il faut simplement savoir que tu cours le risque de ne pas pouvoir réutiliser tes programmes dans quelques années.

 J'ai longtemps fait assez intensivement de l'hypercard, l'ancêtre de revolution (ça m'arrive encore) et je peux te garantir que ça peut être fichtrement efficace et souple comme outil, par exemple pour traiter des mesures et chaîner des traitements divers (ce n'est pas pour rien si dans les dernières versions, on pouvait écrire les scripts indifféremment en hypertalk ou en applescript). Le gros avantage de ces outils est la facilité et la rapidité à mettre au point une interface pratique pour un utilisateur lambda et ajustable en 10 secondes quand c'est nécessaire.

 ça ne veut pas dire qu'il n'y a pas de limitations : vitesse d'exécution (mais ce n'est pas toujours important), manque de la rigueur qu'on peut trouver en ada, etc. mais j'ai un tas de petits outils que j'aurais mis bien plus de temps à faire en C, ada ou autres.

 Et surtout, le débutant peut de suite avancer avec des concepts pas toujours ringards (ce n'est pas le basic d'antan). Et je dis ça alors que, intellectuellement, je suis beaucoup plus attiré par goût par les langage comme OCaml, Ada ou autres langages "rigoureux" que par les bidouilles. Simplement,  les petits tournevis sont dans certains cas, évidemment pas dans tous, plus pratiques que les marteaux-pilons.


----------



## CheepnisAroma (28 Avril 2006)

Très très intéressante cette discussion , j'y ai appris des tas de choses


----------



## tatouille (28 Avril 2006)

Forenheit a dit:
			
		

> La programmation impérative c'est comme ce que fait ma femme avec moi :
> "tu fais çà puis tu fais çà,... tu vaux rien,... et si c'est pas content reviens au début"
> 
> C'est avec mon expérience personnelle que je cause


non non je suis pas d'accord

La programmation impérative 
-> femme dit ménage -> toi ménage 
sinon
--> exit 



sinon on ne peut pas tout mélanger
les languages OO interprétés et bytecodes (Java, Python , Ruby , php)
les languages compilés C,D Obj-c , CPP 
pascal ,fortran, cobol (c'est horrible se truc d'arriéré mental merci IBM  ) ...

[ la pub ]

Objective Caml, 

[ fin de la pub ]

paradigms

les shell scripts ...

pour différents sujets il existent différents animaux

au final

fais du C 
énerve toi avec le C
C a n'en plus Dormir 

et tu pourras aborder le reste tranquillement

ainsi que d'apprendre à programmer dans un environnement X

tu pourras aborder le reste tranquillement

j'ai été stupidemment censuré sur ce sujet dans un autre thread
certainement par un utilisateur windows ...


----------



## p4bl0 (28 Avril 2006)

Pour ce que veut faire chnoub, je lui conseil plutôy de lire le tuto de C sur le site du zéro, tu apprendra à te servir de la SDL : une librairie qui te permettra de faire ce que tu veut avec les tête de tes amis ^^

pour cela tu aura besoin de XCode : tu le trouve sur les CD d'intall de OS X ( les dev tools) sinon sur le site d'Apple, mais faut une bonne connexion : http://developer.apple.com/ (inscription gratuite nécessaire)


Ah et j'oubliai : le site du zéro : http://www.siteduzero.com/


----------



## tatouille (28 Avril 2006)

je te conseille pas XCode pour commencer (installe xcode juste pour avoir les compilo et headers)

mais plutot gcc à ligne de commande via le terminal
c'est beaucoup plus simple à aborder et pour comprendre

le principe de shared object/static  /executable

pour ce qui est de SDL  c'est un peu gros pour commencer

avant d'utiliser un framework essaye deja avec ce que tu as disposition
sous osx il y a déjà de quoi s'amuser un bon bout de temps


----------



## Zeusviper (28 Avril 2006)

je ne suis pas sur que chnoub est encore interessé par la réponse!

cf date!    


sinon ben faut pas oublier projectomega comme site!!

++


----------



## clampin (30 Avril 2006)

Bonjour,

Très intéressante cette discution. Parfois un peu vive, et c'est très bien, mais du coup, je ne pense pas que l'auteur de la première question soit plus avancé. 

Ce qu'il faut retenir, c'est que quelque soit le langage pris pour débuter dans la programmation, c'est : 

1) d'être obstiné 
2) d'être rigoureux 
3) passionné par ce que le fait (bien que ce point 3 est très proche du 1)

après le reste viendra...


----------



## Céroce (3 Mai 2006)

Je trouve que la discussion n'a pas trop répondu à la question posée.
Chacun cherche à dire du bien de son langage chéri, mais j'aimerais que vous vous rappeliez des première fois que vous avez programmé.

J'ai commencé par le GFA Basic sur Atari ST, et pour afficher un message, on tape print "Message" et on lance. Ca me semblait déjà suffisamment compliqué à l'époque.
Imaginez seulement ce qu'il faut savoir pour faire la même chose en C, Java, ObjC ou quasiment tous les langages que vous avez cité.

Alors, à part RealBasic (même si sa syntaxe est exécrable) et AppleScript (et encore...), je ne vois pas trop ce qui s'approche de cette facilité.


----------



## tatouille (6 Mai 2006)

fais du C

c'est pour apprendre , pour apprendre n'importe quoi pas par la suite C
reste la meilleur école pour devenir tout terrain


il n'y a que ça à comprendre


----------



## phrobine@club-internet.fr (7 Mai 2006)

Pour faire du C un livre écrit sur Mac :

http://phrobine.club.fr

ou un autre ...


Surtout ne pas perdre de temps dans les méandres des bidouilleries d'internet

Bon courage , c'est passionnant


----------



## chnoub (7 Mai 2006)

bonjour bonjour
sisi je suis toujours la; mais entre le boulot, la recherche d un appart, ses travaux, etc.... j ai pas eu le temps de me repencher sur la programmation... j emmenage ds un mois et apres je serai plus cool.. 
merci pour toutes vos reponses! et continuez! ;-)
mais c est vrai que je me perds un peu la dedans... tout ce que je savais faire a mon epoque d etudient, c'est des programmes en "pascal like" sur ma TI89; mais c est deja pas mal me direz vous


----------



## titim (7 Mai 2006)

du c, du c et encore du c.
le c est portable et marche sur toutes le bécanes quand on respecte les règles.
Et puis le c ca peut rester soft, on peut très bien ne pas utiliser les pointeurs et l'allocation dynamique de mémoire, ne faire que des passages de variables. Bien sur ensuite quand on a compris les pointeurs, on peut ce mettre à l'objet avec du c++. Quand à l'objective C, cela reste un langage apple, donc pas portable. Car il faut avant tout que les programmes puissent compiler sous windows ... malgré tout


----------



## CheepnisAroma (8 Mai 2006)

Peut-on apprendre Objective-C sans rien connaître au langage C ou bien c'est casse-gueule ?


----------



## tatouille (8 Mai 2006)

CheepnisAroma a dit:
			
		

> Peut-on apprendre Objective-C sans rien connaître au langage C ou bien c'est casse-gueule ?


oui mais il y'a du c dans l'obj-c le pont est naturel
obj-c ne veut pas dire seulement Cocoa

Plum Samples

```
#include <Foundation/Foundation.h>

int DemoApplicationMain();

int main(int argc, const char *argv[])
{
  return DemoApplicationMain();
}

int DemoApplicationMain()
{
    NSAutoreleasePool *AutoPool;
    NSString *FileToRead=@"DemoFileHandle.m";
    NSString *FileCopied=@"DemoFileHandleCopy.m";
    const char *File2Create="DemoFileHandleCopy.m";
    
    id FileContent;
     id FileCopy;
     id stdIn0;
     id stdIn1;
     
     //NeXT [[NSAutoreleasePool alloc] init];
    AutoPool=[NSAutoreleasePool new];

    FileContent=[[NSFileHandle fileHandleForReadingAtPath:FileToRead] retain];
    
    #ifdef DEBUG
        assert(FileContent !=nil);
    #endif
    
    open(File2Create,O_CREAT,0644);
    FileCopy=[[NSFileHandle fileHandleForWritingAtPath:FileCopied] retain];
    
    #ifdef DEBUG
        assert(FileCopy !=nil);
    #endif

    stdIn0=[[FileContent readDataToEndOfFile] retain];
    
    [(NSFileHandle *)FileCopy writeData:stdIn0];
    [FileContent release];
    [FileCopy release];
    
    FileContent=[[NSFileHandle fileHandleForReadingAtPath:FileCopied] retain];
    
    stdIn1=[[FileContent readDataToEndOfFile] retain];
    [FileContent release];

    if([stdIn0 isEqual:stdIn1])
    {
        printf("Test passed (length:%d)\n", [stdIn1 length]);
        CFShow([stdIn1 description]);
    
    }else
    {
        printf("Test failed\n");
    }
    
    [stdIn0 release];
    [stdIn1 release];
    
    //(ANSI Standard)
    remove(File2Create);
    
    [AutoPool release];
    
    return 1;
}
```

Makefile

```
PROG_NAME=DemoFileHandle

.SUFFIXES: .o .m
.m.o:
    $(CC) -c $(CFLAGS) $<
    
CC= gcc 
LIBS= -framework Foundation
LDFLAGS= 
CFLAGS= -Wall -g
OFILES= $(PROG_NAME).o

$(PROG_NAME): $(OFILES)
    $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG_NAME) $(PROG_NAME).o $(LIBS)
    
clean:
    $(RM) *.o $(PROG_NAME) *Copy.m
```


```
#import <AppKit/AppKit.h>

int DemoApplicationMain();

int main(int argc, const char *argv[])
{
  return DemoApplicationMain();
}

int DemoApplicationMain()
{
    int AlertResponse;
    NSAutoreleasePool *AutoPool;
    AutoPool=[NSAutoreleasePool new];
      [NSApplication sharedApplication];
  
    AlertResponse=NSRunAlertPanel(
                    @"Test AppKit",
                    @"Message AppKit", 
                    @"Yes",
                    @"Cancel",
                    @"No"
          );
    
    if(AlertResponse >= 0)
    {
        if(AlertResponse == NSAlertDefaultReturn)
        {
            printf("YES");
            
        }else
        {
            printf("CANCEL");
        }
        
    }else
    {
        printf("NO");
    }
    
    printf("\n");
    
    NSLog(@"%i ",AlertResponse);
    
    return 1;
}
```
Makefile

```
PROG_NAME=DemoRunAlertPanel

.SUFFIXES: .o .m
.m.o:
    $(CC) -c $(CFLAGS) $<
    
CC= gcc -Wno-import
LIBS= -framework Cocoa -framework AppKit
LDFLAGS= 
CFLAGS= -Wall -g
OFILES= $(PROG_NAME).o

$(PROG_NAME): $(OFILES)
    $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG_NAME) $(PROG_NAME).o $(LIBS)
    
clean:
    $(RM) *.o $(PROG_NAME)
```

 CheepnisAroma change moi cet avatar   horrible vraiment


----------



## CheepnisAroma (8 Mai 2006)

tatouille a dit:
			
		

> oui mais il y'a du c dans l'obj-c le pont est naturel
> obj-c ne veut pas dire seulement Cocoa


Objective-C = C avec une surcouche, c'est bien ça ?
J'en conclus qu'apprendre Objective-C sans connaître C est possible
Les échantillons de code que tu as postés, c'est du C ou du Objective-C ?



			
				tatouille a dit:
			
		

> CheepnisAroma change moi cet avatar   horrible vraiment


:rose:


----------



## tatouille (8 Mai 2006)

_ Objective-C = C avec une surcouche, c'est bien ça ?_

un "wrapper object" ?

Brad Cox 

http://www.virtualschool.edu/cox/
http://virtualschool.edu/objectivec/

_J'en conclus qu'apprendre Objective-C sans connaître C est possible&#8230;
_
oui

_Les échantillons de code que tu as postés, c'est du C ou du Objective-C ?
_
un mélange des deux


----------



## CheepnisAroma (8 Mai 2006)

« Wrapper object »  

Merci pour les liens  

Encore une question : quelle est la procédure pour porter sous Linux un logiciel développé en Objective-C ? Et pour Windoze ?


----------



## tatouille (8 Mai 2006)

tu peux utiliser GStep mais attention cocoa to GStep c'est  : pratiquement refaire tout son prog pour GStep
GStep to cocoa est assez simple

il existe une lib de widget

http://www.gnustep.it/Renaissance/Documentation.html


windoz c'est pas avec moi que tu auras du support 
j'y touche pas


----------



## CheepnisAroma (8 Mai 2006)

Ah ben tu me donnes envie d'apprendre Objective-C tiens J'ai du pain sur la planche on dirait :mouais:  

Cela dit c'est quoi un « wrapper object » ?


----------



## amadoubane (10 Mai 2006)

ET MON DBASE
ct pas mal 
un bon conseil à l'heure du net prends JAVA
tu vas comprendre apres


----------



## tatouille (10 Mai 2006)

CheepnisAroma a dit:
			
		

> Ah ben tu me donnes envie d'apprendre Objective-C tiens&#8230; J'ai du pain sur la planche on dirait :mouais:
> 
> Cela dit c'est quoi un « wrapper object » ?


wrapper : emballage, enveloppe , conteneur

http://en.wikipedia.org/wiki/Wrapper


----------



## CheepnisAroma (10 Mai 2006)

Justement j'ai fait une recherche sur Wikipedia.fr :



> wrapper : programme « enveloppant » l'exécution d'un autre programme, pour lui préparer un environnement particulier. Utilisé par exemple pour sécuriser le fonctionnement de certaines applications en contrôlant très précisément leur interface avec le reste de l'univers connu.



Succinct mais mieux que rien

J'ai commandé un livre sur Objective-C


----------



## Anonyme (10 Mai 2006)

molgow a dit:
			
		

> Pour le Lisp, c'est effectivement le parfait contre-exemple à ce que je disais
> 
> 
> 
> ...


Ah, Lisp et Prolog......
Prolog surtout - le pied.



Bon, sinon, pour l'apprentissage "de base", j'aurais dit le Turbo-pascal - parceque ça ressemble au C sans en avoir la possibilité cabalistique...
Mais je ne sais pas si ça existe sur MAC ou si c'est encore utilisé par qui que ce soit (déjà, quand j'étais à la fac, c'était considéré comme un langage d'apprentissage, pas un truc dont des gens se servaient réellement)


----------



## molgow (10 Mai 2006)

Oh une remontée de sujet... 

Je persiste à dire : ne surtout pas commencer par le C qui introduit des concepts trop proches de la machine et qui déroute le débutant. Un langage de très haut niveau est idéal pour apprendre car il permet de se concentrer sur la logique de la programmation.

J'ai eu l'occasion d'assister des étudiants en C/C++ et 95% du temps qu'ils passent à résoudre des problèmes, c'est sur des problèmes liés aux pointeurs et à des mauvais typages qui ne sont pas détectés par le compilateur.

En plus, plus grand monde ne fait du C de nos jours : Java, C# .Net (ou éventuellement du C++ pour la presentation tier).


----------



## forzaxelah (11 Mai 2006)

D'ailleurs vous n'auriez pas un bon livre sur objective-c et cocoa à me conseiller, j'ai pu voir quelques books en anglais, mais d'un survol très rapide il  n'y a pas beaucoup de codes d'écrit, alors comme je suis con et basique, et bien je veux plein de lignes de code avec pleins d'exemples moi!!!:rateau: 

livres concernés: cocoa programming,Learning cocoa with objective-c(o'reilly),Building cocoa applications, step by step (o'reilly encore)


----------



## tatouille (11 Mai 2006)

PonkHead a dit:
			
		

> Ah, Lisp et Prolog......
> Prolog surtout - le pied.
> 
> 
> ...



tu m'étonnes 

c'est pour ça qu'il faut préférer directement le C puis quelques passages (asm si tu veux)
il reste encore beaucoup de pascal encapsulé dans OSX
c'est assez étonnant


----------



## tatouille (11 Mai 2006)

forzaxelah a dit:
			
		

> D'ailleurs vous n'auriez pas un bon livre sur objective-c et cocoa à me conseiller, j'ai pu voir quelques books en anglais, mais d'un survol très rapide il  n'y a pas beaucoup de codes d'écrit, alors comme je suis con et basique, et bien je veux plein de lignes de code avec pleins d'exemples moi!!!:rateau:
> 
> livres concernés: cocoa programming,Learning cocoa with objective-c(o'reilly),Building cocoa applications, step by step (o'reilly encore)


un bouquin c'est fait pour etre dépassé en une semaine sur ses grands lignes
et puis tu y reviens mais ds ces dernières pages généralement
là ou tu as dépassé les exemples à noeud noeud

commence  déjà  un projet avec une idée inscrit toi sur les mailing liste et google (to google)


----------



## forzaxelah (11 Mai 2006)

dans ce cas, connais tu des sites ou il y a des forums sur ça?


----------



## tatouille (11 Mai 2006)

forzaxelah a dit:
			
		

> dans ce cas, connais tu des sites ou il y a des forums sur ça?



http://lists.apple.com/
http://cocoadevcentral.com/

http://osx.hyperjeff.net/Apps/apps.php?sub=100&u=on

http://www.projectomega.org/main.php?lg=fr

http://www.otierney.net/objective-c.html

http://mysql-cocoa.sourceforge.net/
http://cocoamysql.sourceforge.net/
http://sourceforge.net/search/?words=cocoa&type_of_search=soft

forzaxelah -> encore une grosse feignasse


----------



## ntx (11 Mai 2006)

forzaxelah a dit:
			
		

> D'ailleurs vous n'auriez pas un bon livre sur objective-c et cocoa à me conseiller, j'ai pu voir quelques books en anglais, mais d'un survol très rapide il  n'y a pas beaucoup de codes d'écrit, alors comme je suis con et basique, et bien je veux plein de lignes de code avec pleins d'exemples moi!!!:rateau:


Cocoa par la pratique, Aaron Hillegass


----------



## Anonyme (15 Mai 2006)

Du coup, je me suis interressé à Python.
A priori, je le conseillerais aussi pour débuter - la syntaxe est assez simple, assez facile à comprendre (pas trop de ramassis de 15 instructions en une, de gestion de la mémoire à la mimine ou de tous ces trucs qui font que j'ai un mauvais souvenir du C) - et c'est gratuit.

Par contre, pas facile de trouver un bouquin dessus (à la Fnac, ils en avaient deux, bien planqués au fond d'un rayon) - celui que j'ai trouvé ("apprendre à programmer avec Python", éditions O'Reilly) n'est pas donné (30 euros) mais assez clair et pédagogique pour le débutant en programmation.

Et, bien évidement, Python gère au moins 357 polices.


----------



## Nicky Larson (20 Mai 2006)

Je conseille le Java.

A quoi ça va servir d'apprendre le Python ou le Ruby à un non informaticien.
Surtout si il veut faire quelques jeux sympas. 

Le Java c'est ne plus se préoccuper de la machine et programmer. Y a pas plus simple, plus complet et surtout autant documenté.

J'ajouterais que ce n'est pas avec le python ou ruby (qui sont néanmoins de très bon langage mais pas du tout adapté aux besoins du sieur) que vous ferez des applis comme aerith:
http://jroller.com/page/gfx?entry=aerith_a_very_cool_swing


----------



## CheepnisAroma (21 Mai 2006)

Tiens au fait j'ai lu récemment que Java allait devenir open source. Concrètement, ça va changer quoi ?


----------



## Zeusviper (21 Mai 2006)

CheepnisAroma a dit:
			
		

> Tiens au fait j'ai lu récemment que Java allait devenir open source. Concrètement, ça va changer quoi ?


Pour faire simple : ils vont récupérer les fanatiques qui ne jurent que par le libre  et concurrencer vista qui sera fourni directement avec .NET.

En pratique, ils offrent la source des commandes java, dc on pourra savoir comment ca marche, les concurrents pourront s'en inspirer, les développeurs pourront changer les points qui ne leur paraissent pas optimal.
De nouvelles bibliothèques bas niveau pourront etre crées dans un but d'optimisation ou pour faire fonctionner le java au mieux sur des architectures exotiques.

Le risque, que pleins de mondes se créent "leur" java, ce qui menera à un gros fourbi d'incompatibilités.

Et sinon, ca facilite les choses pour ceux qui voudraient redistribuer java. Ainsi pas mal de distrib linux
par ex auront le java intégré, la machine virtuelle en particulier.


----------



## CheepnisAroma (22 Mai 2006)

C'est à peu près ce que je pensais. Merci pour ta réponse


----------



## Anonyme (22 Mai 2006)

Nicky Larson a dit:
			
		

> Je conseille le Java.
> 
> A quoi ça va servir d'apprendre le Python ou le Ruby à un non informaticien.
> Surtout si il veut faire quelques jeux sympas.
> ...


Python me semblait plus immédiat pour débuter que Java (mais je ne suis un expert ni de l'un ni de l'autre, je peux donc me planter)

Après, quand t'as pigé les bases du dev, tu prends le langage que tu veux, en fonction de ce que tu veux développer, t'es pas obligé de tout faire dans le même langage ou de rester tout ta vie attaché au même.

Donc, oui java est sans doute mieux que Python pour faire des jeux ou des applis particulière.
Pour débuter et apprendre la programmation, Python me semble toujours bien.

Au fait, toi qui ouvrit ce fil, tu as choisi quoi ? (ça se trouve, t'es devenu entre temps un pro du, je ne sais pas moi, disons Cobol (pour rire) et tu lis tous ces avis tardifs en te disant : "ah les pauvres, s'ils savaient...")


----------



## CheepnisAroma (24 Mai 2006)

J'ignorais complètement que l'ADC, le site d'Apple pour les développeurs, avait une librairie en ligne : c'est *ici.* Tout est en anglais


----------



## tatouille (24 Mai 2006)

oui ca évite de faire la manche avec paypal


----------



## mathusalem (31 Mai 2006)

PonkHead a dit:
			
		

> Python me semblait plus immédiat pour débuter que Java (mais je ne suis un expert ni de l'un ni de l'autre, je peux donc me planter)
> 
> Après, quand t'as pigé les bases du dev, tu prends le langage que tu veux, en fonction de ce que tu veux développer, t'es pas obligé de tout faire dans le même langage ou de rester tout ta vie attaché au même.
> 
> ...




ce thread date un peu, mais je suis entièrement d'accord : Python est très bien pour débuter la programmation :
il oblige à bien indenter, on peut aborder l'objet quand on est prêt, c'est facile à débugger car c'est du script, on peut faire des choses puissantes avec...

Par contre, je pense qu'un petit tour par le C ne fera de mal à personne, après l'épreuve du feu, du premier langage.


----------



## CheepnisAroma (2 Juin 2006)

Salut à tous
Allons bon, me voilà bien ! Après avoir hésité entre Smultron, SubEthaEdit et TextWrangler, j'ai opté pour le troisième (j'aime pas l'interface mais tant pis). Or maintenant mes premiers scripts Python sont devenus « illisibles » par TextWrangler alors qu'il les lisait de manière normale il y a quelques jours encore. Message d'erreur quand je sélectionne #! > Run :



			
				TextWrangler a dit:
			
		

> This file doesnt appear to contain a valid shebang line (application error code: 26304)



En désespoir de cause, j'ai ajouté #!/bin/bash mais rien n'y fait  
C'est certainement une question très bête  enfin pas trop j'espère   mais voilà que faire ?
Comme d'hab', vos lumières seront les bienvenues


----------



## JPTK (2 Juin 2006)




----------



## tatouille (2 Juin 2006)

CheepnisAroma a dit:
			
		

> Salut à tous
> Allons bon, me voilà bien ! Après avoir hésité entre Smultron, SubEthaEdit et TextWrangler, j'ai opté pour le troisième (j'aime pas l'interface mais tant pis). Or maintenant mes premiers scripts Python sont devenus « illisibles » par TextWrangler alors qu'il les lisait de manière normale il y a quelques jours encore. Message d'erreur quand je sélectionne #! > Run :
> 
> 
> ...



ou 

#!/usr/bin/python


ouvre ton terminal svp un peu d'effort


----------

