language de programmation

language de programmation - Divers - Programmation

Marsh Posté le 24-03-2006 à 19:14:34    

Bonjour,
J'ai fait un peu de programmation avec flash MX mais ce logiciel se resume a la programmation de petits jeux or moi je voudrais aussi essayer de creer des logiciels (ne vous inquietes pas je compte pas refaire microsoft office :)  :non: ). Donc je souheterais quelque chose s'assez polyvalent mais qui ne necessite pas trois ans d'aprentissage avant de pouvoir enfin reuussir a fair quelque chose de basic. Quel language de programmation me conseillez-vous?

Reply

Marsh Posté le 24-03-2006 à 19:14:34   

Reply

Marsh Posté le 24-03-2006 à 20:36:09    

Reply

Marsh Posté le 24-03-2006 à 21:21:58    

on peut creer des logiciel et des jeux en php ?? je pensais que c'était plus reserver pour les sites web. Enfin je vais regarder.

Reply

Marsh Posté le 24-03-2006 à 22:15:30    

ha pour des jeux, essaye le C

Reply

Marsh Posté le 25-03-2006 à 03:36:50    

mon 1é langage qui reste mon préféré le C++ tu peux quasi tout faire avec et avec Qt tu créer des GUI facilement, sinon il y a aussi python qui est vraimment pas mal (langage de script), sinon moi là je suis entrain d'apprécier pleinement le Java plus facile que le C++ lorsqu'on à bien apprivoisé la notion de POO (Programmation Orienté Objet)
 
mais de toute facon il ne faut pas compter créer un jeux (même petit) au bout de 2mois (du moins avec du graphique) il te faudra acquérir les bases et ça peut prendre un petit bout de temps avant de maitriser certain concept


Message édité par blastman le 25-03-2006 à 03:48:55

---------------
http://www.blastmanu.info
Reply

Marsh Posté le 25-03-2006 à 14:04:01    

Ok Donc d'apres toi le C++ est bien mais il y a aussi comme tu l'a dit le python et du fait que l'un est gratuit est pas l'autre j'hésite un peu...  
Autement ces deux languages sont polyvalents??
 
PS: A mon avis tout depend des languages mais il faut au moin 1 an pour mles maitriser a peu pres et pouvoir creer quelque chose de potable.

Message cité 1 fois
Message édité par elephant13 le 25-03-2006 à 14:07:24
Reply

Marsh Posté le 25-03-2006 à 14:24:37    

elephant13 a écrit :

Ok Donc d'apres toi le C++ est bien mais il y a aussi comme tu l'a dit le python et du fait que l'un est gratuit est pas l'autre j'hésite un peu...  
Autement ces deux languages sont polyvalents??


 
Avec le C++, les possibilités sont infinies mais c'est aussi un des langages qui demande le plus d'effort d'apprentissage et d'abstraction.
 
Sinon tu veux faire quel type de jeux ? Car si tu veux creer un jeu online, tu peux te mettre au PHP vu que tu utilises déjà flash, les 2 s'interfacent bien.

Reply

Marsh Posté le 25-03-2006 à 14:39:34    

Oui mais le truc c'est que si je me met a aprendre flash et php et que j'aprend le c+ pour faire des logiciels et ba vaut mieux aprendre que le c++ car il peut faire les deux..
autrement j'ai trouver un compilateur c++ gratuit donc je croit que je vais rester la dessu.
merci a tous.

Reply

Marsh Posté le 25-03-2006 à 14:53:37    

elephant13 a écrit :

Oui mais le truc c'est que si je me met a aprendre flash et php et que j'aprend le c+ pour faire des logiciels et ba vaut mieux aprendre que le c++ car il peut faire les deux..


En effet, le C++ peut faire les 2 mais faire un jeu online en C++ est bien plus compliqué qu'en php+flash surtout en terme d'infrastructure. Tu ne trouveras pas d'hebergeur gratuit pour un jeu online en C++ par exemple, il te faudra necessairement un serveur dédié.

Reply

Marsh Posté le 25-03-2006 à 16:02:35    

ouia mais de toute facon je n'envisage pas de creer un jeu online. Pour l'instant mon but c'est d'aprendre  pour avoir des bases solides et puis apre peut etre de fair un petit logiciel ou un jeux 2D pour commencer et si vraiment je me debrouille de le mettre en reseau ethernet entre 2 PC chez moi ....

Reply

Marsh Posté le 25-03-2006 à 16:02:35   

Reply

Marsh Posté le 25-03-2006 à 16:10:35    

Franchement, pour commencer par des petits jeux simples, le C et une librairie graphique 2D style SDL est plus facile que la grosse artillerie objet du C++.
 
Il y a de nombreuses librairies freeware de programmation de jeux en C.

Reply

Marsh Posté le 25-03-2006 à 16:12:01    

smaragdus a écrit :

Avec le ${RANDOM_TURING_COMPLETE_LANGUAGES_LIST}, les possibilités sont infinies


 [:aloy]  
 :whistle:  
 
Sinon, pour de simples applications il y a Python (avec Tkinter, wxPython ou wxQT) ou Ruby (FOX/FXRuby), pour des jeux à part entière Python + PyGame [:spamafote]  
 
Un autre langage intéressant (un niveau au dessus de Python/Ruby pour la vitesse d'exécution, un niveau en dessous pour la facilité de code, plus proche de C/C++/Java) est le D, on peut voir des exemples de jeux en D ici (je conseille Tumiki Fighters et Gunroar, ils sont géniaux)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 25-03-2006 à 16:36:06    

OK.
Mais vous me mettez un peu plus de doute.
Pour m'aider a me decider pouvez me resumer les grandes différences entre python et c\c++. Ainsi que ce qu'on peut faire avec ces languages  (jeux 2d, 3d, en reseau... logiciel.....)

Reply

Marsh Posté le 25-03-2006 à 16:44:28    

elephant13 a écrit :

OK.
Mais vous me mettez un peu plus de doute.
Pour m'aider a me decider pouvez me resumer les grandes différences entre python et c\c++. Ainsi que ce qu'on peut faire avec ces languages  (jeux 2d, 3d, en reseau... logiciel.....)


 
Si tu veux des jeux très orientés graphisme, fluides etc..., ton choix s'orientera vers le C++ pour la vitesse d'execution et le nombre impressionnant de bibliothèques graphiques qui existent. Autre facteur à ne pas négliger en C++ : l'importance de la communauté.

Message cité 1 fois
Message édité par smaragdus le 25-03-2006 à 16:45:18
Reply

Marsh Posté le 25-03-2006 à 16:50:10    

elephant13 a écrit :

OK.
Mais vous me mettez un peu plus de doute.
Pour m'aider a me decider pouvez me resumer les grandes différences entre python et c\c++.


Avantages respectifs:
Simplicité du code et vitesse de développement pour Python/Ruby
Vitesse d'exécution pour C/C++
 
Inconvénients respectifs:
Relativement lent à s'exécuter pour Python ou Ruby (les libs genre PyGame sont écrite en C, donc le problème reste relatif et dans les faits l'exécution est souvent "suffisament rapide" )
Allocation mémoire manuelle + langages extrèmement complexes (surtout C++ [:moule_bite]) + langages extrèmement verbeux (la taille du code varie d'un facteur 1 à 10 entre Python et C++) pour C/C++
 
Le D présente une alternative intéressante en celà qu'il peut être placé à mi-chemin entre les deux approches. Il utilise une syntaxe très proche de celle du C/C++ (et est pas mal verbeux) mais est beaucoup plus avancé dans ses constructions, et ne requiert pas une gestion manuelle de la mémoire. Dans le même temps, il est largement plus performant (en terme de perfs brutes) que Python ou Ruby.
 
Son principal inconvénient est le fait qu'il y a relativement peu de monde qui code en D.

elephant13 a écrit :

Ainsi que ce qu'on peut faire avec ces languages  (jeux 2d, 3d, en reseau... logiciel.....)


Tout, dans tous les cas [:el g]  
 
C'est le principe même du concept de langage "Turing-complete" [:spamafote]

smaragdus a écrit :

Si tu veux des jeux très orientés graphisme, fluides etc..., ton choix s'orientera vers le C++ pour la vitesse d'execution et le nombre impressionnant de bibliothèques graphiques qui existent.


[:moule_bite]


Message édité par masklinn le 25-03-2006 à 16:53:40

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 25-03-2006 à 18:29:40    

OK merci de ces explications. Donc je pense que meme si le C\C++ est plus complexe une fois maitriser il permet de faire des projets de grandes tailles de meilleur qualitée...
Je vais essayer de m'y lancer et on cera bien :lol:

Reply

Marsh Posté le 25-03-2006 à 18:35:24    

Nickel pour les jeux.
 
La seule notion importante en plus dans C/C++ par rapport à flash, ce sont les pointeurs.
 
Heureusement c est pas la doc, les tutoriaux et les exemples qui manquent. un ptit coup de google et c est réglé.

Reply

Marsh Posté le 25-03-2006 à 18:48:22    

Ouai ba j'ai commencer avec celui-la
http://www.siteduzero.com/tuto-3-8 [...] -en-c.html
je pense que c'est pas mal et puis c'est bien exlpiqué!!

Reply

Marsh Posté le 25-03-2006 à 19:14:59    

elephant13 a écrit :

Ouai ba j'ai commencer avec celui-la
http://www.siteduzero.com/tuto-3-8 [...] -en-c.html
je pense que c'est pas mal et puis c'est bien exlpiqué!!


non ca pu du cul j'trouve pour du C (et non C++)


---------------
http://www.blastmanu.info
Reply

Marsh Posté le 25-03-2006 à 19:18:50    

elephant13 a écrit :

OK merci de ces explications. Donc je pense que meme si le C\C++ est plus complexe une fois maitriser il permet de faire des projets de grandes tailles de meilleur qualitée...


Non, il permet juste de faire des logiciels s'exécutant plus rapidement (quand ils sont bien codés).
 
Un projet en C/C++ requiérera une bien plus grande attention (et des connaissances supérieures) pour atteindre une qualité équivalente (en terme de défauts, de bugs, ...) à un projet en Java, D, Python ou Ruby. Et l'augmentation de difficulté à maintenir le code augmentera beaucoup plus vite que pour un projet équivalent dans un langage de plus haut niveau.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 25-03-2006 à 20:01:42    

Citation :


Un projet en C/C++ requiérera une bien plus grande attention (et des connaissances supérieures) pour atteindre une qualité équivalente (en terme de défauts, de bugs, ...) à un projet en Java, D, Python ou Ruby. Et l'augmentation de difficulté à maintenir le code augmentera beaucoup plus vite que pour un projet équivalent dans un langage de plus haut niveau.


Nawak, les plus gros programmes sont écrits en C/C++.
Tu doit sûrement faire allusion aux pointeurs qui sont difficiles à appréhender ...et sans lesquels il n y a pas de performances.

Message cité 1 fois
Message édité par nargy le 25-03-2006 à 20:02:07
Reply

Marsh Posté le 25-03-2006 à 20:15:05    

AH ok
bon ba je vais cherhcer autre chose autrement si vous avez une adresse site bien sous la main faites m'en part, merci d'avance.

Reply

Marsh Posté le 25-03-2006 à 20:17:54    

nargy a écrit :

Nawak, les plus gros programmes sont écrits en C/C++.


1. non
2. et alors
3. la verbosité du code n'y est pas pour rien [:dawa]

nargy a écrit :

Tu doit sûrement faire allusion aux pointeurs qui sont difficiles à appréhender ...et sans lesquels il n y a pas de performances.


non (et accessoirement, s'il n'y a pas de performances sans pointeurs il va faloir que tu m'expliques comment SML ou Common Lisp font pour avoir des performantes proches de celles du C (et meilleures pour certaines tâches) sans jamais exposer de pointeurs [:icon12])
 
Attention hein, je ne dis pas que le C n'a pas sa place dans le monde hein, simplement que dans ce cas précis il n'a strictement aucun intérêt, éléphant13 ne sait pas encore coder et n'est sûrement pas parti pour nous pondre un MMORPG ou  le 5e chapitre des Elder Scrolls, donc le gain de perfs obtenu en utilisant le C n'a strictement aucun intérêt quand on le pondère par les inconvénients du langage.


Message édité par masklinn le 25-03-2006 à 20:23:43

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 25-03-2006 à 21:35:42    

elephant13 a écrit :

OK merci de ces explications. Donc je pense que meme si le C\C++ est plus complexe une fois maitriser il permet de faire des projets de grandes tailles de meilleur qualitée...
Je vais essayer de m'y lancer et on cera bien :lol:


Juste un truc, si tu comptes te lancer dans la grosse artillerie jeu en 3D/réseau, attends-toi à y passer quelques années d'acharnement avant de sortir qq chose de potable. J'espère que tu as les reins solides.

Reply

Marsh Posté le 25-03-2006 à 21:43:49    

Citation :

PS: A mon avis tout depend des languages mais il faut au moin 1 an pour mles maitriser a peu pres et pouvoir creer quelque chose de potable.

Reply

Marsh Posté le 25-03-2006 à 22:37:11    

> A mon avis tout depend des languages mais il faut au moin 1 an pour mles maitriser a peu pres et pouvoir creer quelque chose de potable.
 
Ça dépends aussi de ton expérience, même dans d autres languages.
 
Masklinn> certains des languages que tu cites sont programmés en C
 
> la verbosité du code n'y est pas pour rien
- Je parle de fonctionnalités
 
La seule façon d améliorer un language, c est d ajouter des fonctionnalités, pas d en retirer.
 
=> Les languages sans pointeurs ont un handicap par rapport au C.

Reply

Marsh Posté le 25-03-2006 à 22:40:10    

nargy a écrit :

> la verbosité du code n'y est pas pour rien
- Je parle de fonctionnalités
 
La seule façon d améliorer un language, c est d ajouter des fonctionnalités, pas d en retirer.


Ouh là [:pingouino]

nargy a écrit :

=> Les languages sans pointeurs ont un handicap par rapport au C.


1. Vu le nombre de handicaps du C par rapport à d'autres langages, les pointeurs sont un peu mineurs [:dawa]
2. La seule valeur qu'apportent les pointeurs (si on peut appeler ça une valeur) qui ne soit pas répliquée dans d'autres langages, c'est l'arithmétique de pointeurs [:dawa] s'pas pour être méchant, mais m'est avis que l'arithmétique de pointeurs elle manque pas à grand monde [:dawa]
3. Puis si on va par là, tous les langages ont un handicap par rapport à l'ASM parce qu'on peut pas manipuler directement les registres hein [:dawa]


Message édité par masklinn le 25-03-2006 à 22:42:31

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 25-03-2006 à 22:41:27    

nargy a écrit :

=> Les languages sans pointeurs ont un handicap par rapport au C.


et puis quoi encore... tous les languages n'ont pas la meme mentalité que le c/c++ :o

Reply

Marsh Posté le 25-03-2006 à 22:58:56    

Se basant sur l axiome suivant:
- un ordinateur est une machine de turing.
 
=> La ``notion de pointeur`` est une condition sinequanone pour qu un ordinateur soit une machine de turing: un accès arbitraire.
 
Se basant sur le théorème suivant:
- il est possible de construire une machine de turing à partir de toute autre machine de turing.
 
Si tu supprime cette notion d accès arbitraire, tu doit la remplacer par une simulation pour avoir à nouveau une machine de turing.
 
En l occurence dans les languages que tu cites cette reconstruction d une machine de turing se fait par l intermédiaire de deux notions principales:
- les boucles
- la récursion
 
=> il est possible de remplacer les pointeurs par autre chose tout en gardant un language turing-complet.
 
Et se basant sur le théorème suivant:
- une machine de turing ne peut déterminer en un temps fini si un programme écrit dans un language turing-compet est fini ou non.
 
=> un compilateur n optimise jamais parfaitement en un temps fini.
 
Se basant sur l axiome suivant:
- les opérations sur les pointeurs sont effectués par le CPU en 1 instruction élémentaire indivisible
Et sur le théorème suivant:
- une compilation doit se finir pour produire un programme
 
=> un language ayant boucles et récursions mais n ayant pas de pointeurs produit des programmes qui necessitent plus d instructions CPU
 
Se basant sur les axiomes suivants:
- le CPU execute les instructions en un temps proportionnel à leur nombre
 
=> un language ayant boucles et récursions mais n ayant pas de pointeurs produit des programmes plus lents
 
---
 
De même pour les languages qui n ont pas d instruction ``goto`` ou ``jump``, alors que le CPU en a.
 
> 3. Puis si on va par là, tous les langages ont un handicap par rapport à l'ASM parce qu'on peut pas manipuler directement les registres hein
- point de vue perf, oui

Reply

Marsh Posté le 25-03-2006 à 23:53:28    

C'est très bien tout ça, mais aux dernières nouvelles nous n'habitons pas dans le monde magique des pingouins roses et des koalas arc-en-ciel nous sommes dans le monde réel, tout ce dont tu me parle ce sont les performances théoriques maximales du langage sur la machine.
 
Pas de bol, je n'ai jamais dit que le C n'était pas performant (je répète par contre que d'autres langages atteignent le même niveau de performances de manière locale).
 
Tu passes par contre sous silence tous les problèmes d'abstraction (tout-juste existantes en C), de vitesse de développement (inexistante en C), de flexibilité du langage (très moyenne en C), de sûreté/sécurité du langage (inexistante en C) et d'extensibilité du langage (très, très faible en C)
 
Tu passes également sous silence le fait que le C est essentiellement un langage de Von Neumann construit à partir des machines sur lesquelles il tourne et à la programmation sérielle, et totalement inadapté (ce qui ne veut pas dire qu'on ne peut pas en faire) au prochain paradigme programmatif qu'est la programmation en parallèle.  
 
D'ailleurs tu seras peut-être intéressé par le fait que la fin de sa vie (avant de décéder de son cancer), von Neumann l'a passée à développer des théories sur la programmation d'automates cellulaires.
 
Enfin tu n'arrêtes pas de parler des fonctionalités du processeurs disponibles plus ou moins directement en C, mais as tu considéré que, sans même revenir sur les modèles de calcul parallèle et les automates cellulaires, le modèle physique sur lequel est basé le C n'en n'est qu'un parmis tant d'autres? Le plus populaire peut-être, mais sûrement pas le seul, cf les Lisp Machines des années 70-80 sur lesquelles tu n'aurais jamais pu faire tourner quoi que ce soit de potable en C.
 
Etonnament par ailleurs, un nombre impressionnant des plus importantes innovations informatiques (GUI, AI, Garbage Collection, ...) viennent de Lisp, qui est ce qui se fait de plus lointain par rapport à la machine (à condition que la machine ne soit pas construite spécifiquement pour le langage e.g. les Lisp Machines suscitées). Mais c'est sûrement un hazard puisque le C semble être The Silver Buller... (et pourquoi pas le fortran au fait, il est encore plus près de la machine que le C après tout)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 26-03-2006 à 00:44:19    

> ...le monde magique...
- où Java compilé est plus rapide que l assembleur profilé?

Reply

Marsh Posté le 26-03-2006 à 01:03:52    

nargy a écrit :

> ...le monde magique...
- où Java compilé est plus rapide que l assembleur profilé?


Non, où l'optimisation faite à la main par des humains est d'une très faible efficacité et requiert des spécialistes de haut niveau et pas le programmeur moyen, et où la productivité de l'assembleur profilé est quelque part entre les cartes perforées et le débugging par lecture directe des bus de la machine


Message édité par masklinn le 26-03-2006 à 01:06:00

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 26-03-2006 à 09:27:54    

:lol: la prise de tete
Vous n'avez pas de lien?
Bien sur que je cherche sur google pas la peine de me rappeler que c'est mon ami!!

Reply

Marsh Posté le 26-03-2006 à 12:24:34    

nargy a écrit :

>  
 
La seule façon d améliorer un language, c est d ajouter des fonctionnalités, pas d en retirer.
 
=> Les languages sans pointeurs ont un handicap par rapport au C.


Ca c'est grossièrement faux.
Quand au handicap / C, c'est surtout un handicap en terme de perfs en accès mémoire. A part ça, c'est plutôt un avantage.
En ce qui concerne les perfs, le fortran est un langage sans pointeurs au moins aussi performant que le C (mais encore plus merdique).

Message cité 1 fois
Message édité par el muchacho le 26-03-2006 à 12:28:24
Reply

Marsh Posté le 26-03-2006 à 13:35:04    

el muchacho a écrit :

Ca c'est grossièrement faux.
Quand au handicap / C, c'est surtout un handicap en terme de perfs en accès mémoire. A part ça, c'est plutôt un avantage...


 
... pour ceux qui ne comprennent pas le concept [:aloy]
 
Je ne vois pas pourquoi vous parlez de C : c'est pas comparable et c'est vieux. La comparaison avait lieu sur C++ mais certains forumeurs (appelons le Mask**** pour ne pas le nommer) sont descendus sciemment sur le C comme seul moyen pour troller. :sarcastic:
 
Enfin, pour ceux qui ne le savent pas, il est possible de masquer presque totalement les pointeurs en C++  :sarcastic:
 
Dès qu'on accède à l'API DirectX par exemple, il faut utiliser des pointeurs (les buffer de vertex etc...). Un langage qui ne possède pas le concept de pointeur est donc largement handicapé pour ce genre de tache: CQFD

Message cité 1 fois
Message édité par smaragdus le 26-03-2006 à 14:33:15
Reply

Marsh Posté le 26-03-2006 à 14:11:11    

smaragdus a écrit :

La comparaison avait lieu sur C++ mais certains forumeurs (appelons le Mask**** pour ne pas le nommer) qui ne font pas la différence entre les 2 langages n'ont trouvé que ce moyen pour troller. :sarcastic:


Ou sont descendus sciement vers le C [:kiki]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 26-03-2006 à 14:32:26    

masklinn a écrit :

Ou sont descendus sciement vers le C [:kiki]


 
corrigé [:itm]

Message cité 1 fois
Message édité par smaragdus le 26-03-2006 à 14:33:24
Reply

Marsh Posté le 26-03-2006 à 14:59:54    


Et accessoirement la descente sur le C, si tu suis le truc, est une concéquence de la focalisation de monsieur Nargy sur les performances maximales théoriques du langage comme seul et unique métrique de jugement du dit langage.
 
Le C ayant des performances supérieures au C++ (et une réelle cohérence), il semblait normal et logique de se concentrer sur lui.
 
Accessoirement, tu devrais relire le 4e post du thread pour savoir d'où le C est venu exactement [:icon12]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 26-03-2006 à 15:10:16    

elephant13>
 
Bref, pour en revenir au sujet initial, fait toi bien expliquer la notion de pointeur ça te servira au moins dans un cas: récupérer un pointeur sur (= l adresse de) la mémoire vidéo.
 
Grâce à ce pointeur tu as accès directement à la carte vidéo, aussi garde la prudence necessaire pour ne pas déborder en dehors de la mémoire vidéo.

Reply

Marsh Posté le 26-03-2006 à 15:18:54    

nargy a écrit :

Grâce à ce pointeur tu as accès directement à la carte vidéo, aussi garde la prudence necessaire pour ne pas déborder en dehors de la mémoire vidéo.

Cette technique date du siècle dernier

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed