debutant cherche avec quoi se lancer

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.
laugh.gif
 
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
 
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.

Cordialement

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
 
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
 
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.
 
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.
 
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.
 
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)
 
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+
 
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->provider.dish_company) ;
ptr->c_d_p = 'd';
(j'en passe, tout le reste est comme ça)
Si c'est pas du charabia, ça !
modo.gif


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 ?
rose.gif
 
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
up.gif
.

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
 
Tiff a dit:
J'ai un morceau de programme C sous les yeux :
gets(ptr->provider.dish_company) ;
ptr->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
 
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
up.gif
.

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

Tu peut commencer par ici je pense :

http://www.python.org/

Cordialement
 
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 a dit:
mldonkey est programmé en ocaml (d'où le 'ml'
wink.gif
), sans interface cocoa ou carbon, certes.

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.
zen.gif
 
Tiff a dit:
J'ai un morceau de programme C sous les yeux :
gets(ptr->provider.dish_company) ;
ptr->c_d_p = 'd';
(j'en passe, tout le reste est comme ça)
Si c'est pas du charabia, ça !
modo.gif


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 ?
rose.gif

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
wink.gif
 
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
wink.gif

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