#1 Le 09/03/2008, à 18:28
- noctua
choix du langage
salut,
je suis aller plusieurs fois sur divers sujet avec la recherche pour choisir un langage de programmation mais je n'arrive pas à me décider...
J e vais passer sous ubuntu prochainement mais là n'est pas la question (j'ai un PC de bureau sous windaube et le portable sous mandriva) je ferais plus tard un autre sujet...
je vais d'abord décrire mes compétances en matière de programmation. J'ai à la base une formation en électronique, j'ai donc appris à programmer en langage assembleur pour divers processeur (68hc11 pour ceux qui connaisse) ainsi que quelques bases du C (déclaration de variable, les boucles, opérations standards, fonction printf scanf, déclarer une fonction et c'est tout) mais ça ne va pas très loin^^
Je pensais plutot aller sur le C++ voir rester sur le C ou apprendre les 2 en sachant que je veut un langage multi plateforme pour faire une simple application en allant jusqu'au jeu (on verra plus tard^^)
J'aimerais aussi des conseils de bouquins en français je connais déjà les sites du zéro et développez.com
Je voudrais aussi avoir des exercices pour m'exercer si possible
Que me conseillez vous?
Soutenez moi dans ma quête pour devenir Jedi, affronter Volkswagen pour les empêcher de menacer le climat et la planète http://vwdarkside.com/fr/jedi/alexandre-bonfils-164702
Hors ligne
#2 Le 09/03/2008, à 18:48
- Mukri
Re : choix du langage
pour moi je te conseille python
Parce que c'est un language relativement simple tout en ayant une bibliothèque standard extrêment fournie et touchant à de nombreux domaines applicatifs. Ceci permet un gain de productivité substantiel. On admet qu'un code Python est en général de 3 à 5 fois plus cours que le code C, C++ ou Java équivalent. Il est également multi-paradigmes (objet, procédural et quelques outils qui rappellent les languages fonctionnels), ce qui permet une grande flexibilité dans l'approche utilisée pour résoudre un problème. De plus, sa syntaxe est élégante (du moins à mon goût) et force l'écriture de code lisible. L'arrivée de frameworks web tels que Django ou TurboGears renforce encore sa popularité.
un bon tutorial ici:
http://www.cifen.ulg.ac.be/inforef/swi/download/python_notes.pdf
Dernière modification par Mukri (Le 09/03/2008, à 18:49)
Hors ligne
#3 Le 09/03/2008, à 19:44
- Hikikomori
Re : choix du langage
Salut,
Si tu veux développer et pouvoir porter ton code et que tu ne lésignes pas sur le temps d'exécution (différence minime avec C++ si tu codes des petites applications.. après ça dépend de la complexité des algorithmes), alors optes pour Java qui possède une bonne grosse librairie bien documentée, à l'inverse de C++ si on oublie la STL ...
Sans quoi c'est sûr que si tu veux passer au développement de jeux vidéo le C++ est ton ami, doublé d'un "petit" OpenGL ou d'un SDL ...
Côté bouquins, beh ... tout est sur le net en fait, surtout en ce qui concerne Java, tu as accès à toute l'API sur le site de Sun, c'est complet et clair.
Hors ligne
#4 Le 09/03/2008, à 22:20
- Link31
Re : choix du langage
optes pour Java qui possède une bonne grosse librairie bien documentée, à l'inverse de C++ si on oublie la STL ...
Ben voyons...
Le C++ a une bonne grosse bibliothèque standard bien documentée, à l'inverse de Java si on oublie le JDK...
Je ne parle même pas du Python sans sa bibliothèque standard
En fait, si on prend la peine de chercher soi-même quelques bibliothèques, le C++ est d'aussi haut niveau et aussi puissant (voire beaucoup plus) que Java, Python, C#...
Le seul inconvénient est que c'est un langage assez difficile. Plus difficile que le C ou le Python en tout cas, mais probablement pas beaucoup plus difficile que le Java, à condition d'avoir des bibliothèques de qualité (Qt, Boost, la STL bien sûr... rien qu'avec ça tu as l'équivalent de Java).
En contrepartie, au lieu d'avoir un runtime prémâché de plusieurs dizaines de Mo comme en Java, tu as un véritable programme natif, rapide, avec les seules dépendances dont il a besoin, et n'importe qui peut le lancer directement sans rien installer de plus.
Sur ce, je laisse la place au troll...
Dernière modification par Link31 (Le 09/03/2008, à 22:52)
Hors ligne
#5 Le 10/03/2008, à 02:59
- Le Farfadet Spatial
Re : choix du langage
Salut à tous !
Sur ce, je laisse la place au troll...
Pas le troll, le farfadet !
Cela dit, pour changer, je suis globalement de ton avis. Ah, une divergence toutefois :
Le seul inconvénient est que c'est un langage assez difficile. Plus difficile que le C ou le Python en tout cas, mais probablement pas beaucoup plus difficile que le Java, à condition d'avoir des bibliothèques de qualité (Qt, Boost, la STL bien sûr... rien qu'avec ça tu as l'équivalent de Java).
Tout à fait d'accord avec les bibliothèques de qualités, quoique je préfère gtkmm à Qt, parce qu'elle collabore mieux avec la bibliothèque standard. D'accord aussi pour dire qu'avec gtkmm, Boost (cette bibliothèque est vraiment géniale) et la bibliothèque standard, tu as l'équivalent de Java, en tout aussi portable.
Par contre, je pense que C++ est plus compliqué que Java. Mais nous sommes bien d'accord : c'est un langage difficile.
Si tu veux développer et pouvoir porter ton code et que tu ne lésignes pas sur le temps d'exécution (différence minime avec C++ si tu codes des petites applications.. après ça dépend de la complexité des algorithmes), alors optes pour Java qui possède une bonne grosse librairie bien documentée, à l'inverse de C++ si on oublie la STL ...
Je ne suis pas le premier à le faire remarquer, mais c'est tout aussi idiot que de dire d'oublier le JDK en Java. La bibliothèque standard, comme son nom l'indique, est standard : elle fait partie du langage.
Parce que c'est un language relativement simple tout en ayant une bibliothèque standard extrêment fournie et touchant à de nombreux domaines applicatifs. Ceci permet un gain de productivité substantiel. On admet qu'un code Python est en général de 3 à 5 fois plus cours que le code C, C++ ou Java équivalent. Il est également multi-paradigmes (objet, procédural et quelques outils qui rappellent les languages fonctionnels), ce qui permet une grande flexibilité dans l'approche utilisée pour résoudre un problème. De plus, sa syntaxe est élégante (du moins à mon goût) et force l'écriture de code lisible. L'arrivée de frameworks web tels que Django ou TurboGears renforce encore sa popularité.
C'est impressionnant de voir combien les Python maniaques sont persuadés d'avoir trouvé le plus meilleur langage du monde. Alors qu'il est comme de nombreux langages : des qualités, certes, avec de bonnes réussites, mais, comme tous les langages, il a ses limites.
Le fait qu'un code soit 3 à 5 fois plus court en Python qu'en C, C++ ou Java est vraiment très discutable et ce n'est de toute façon pas un argument : l'important dans un code source, c'est qu'il soit clair, pas compact. Si vraiment l'objectif est de faire des codes compactes (en gardant en tête de les garder les plus lisibles possibles bien sûr), alors il vaut mieux s'orienter vers les langages fonctionnels, tels que Haskel.
Sinon, Python n'est pas plus multi-paradigme que C++ --- impératif, structuré, procédural, orienté objet, orienté prototype et orienté composant --- ou OCaml --- fonctionel, impératif, orienté objet, modulaire.
Quand à considérer sa syntaxe élégante, c'est tout de même pas mal une question de goût. Personnellement, je trouve que se baser sur la mise en page pour délimiter les blocs d'instructions n'est pas une bonne idée.
Cela dit, ne me faites pas dire ce que je n'ai pas dit : Python est un excellent langage.
je suis aller plusieurs fois sur divers sujet avec la recherche pour choisir un langage de programmation mais je n'arrive pas à me décider...
Je ne sais pas si tu as consulté ce sujet : http://forum.ubuntu-fr.org/viewtopic.php?id=150438. Il est vraiment très bien et tu y trouveras plusieurs propositions argumentées.
Le problème, c'est que nous ne pouvons que te donner des indications, mais qu'il te faudra faire ton choix toi-même, en fonction de tes affinités. En tout cas, tu as tout intérêt à en apprendre plusieurs, afin de pouvoir utiliser le plus approprié à un problème donné.
Cela dit, si ton objectif à terme est de programmer des jeux vidéos, alors, à l'heure actuelle, le C++ est assez incontournable. Toutefois, ce n'est pas un langage que je conseille pour débuter. Généralement, je conseille également d'apprendre le C après le C++, afin d'éviter une contamination mal venu, mais puisque que tu as déjà des notions de C, pourquoi ne pas approfondir ce langage ?
À bientôt.
Le Farfadet Spatial
Hors ligne
#6 Le 10/03/2008, à 12:43
- Martopioche
Re : choix du langage
Mukri a écrit :Parce que c'est un language relativement simple tout en ayant une bibliothèque standard extrêment fournie et touchant à de nombreux domaines applicatifs. Ceci permet un gain de productivité substantiel. On admet qu'un code Python est en général de 3 à 5 fois plus cours que le code C, C++ ou Java équivalent. Il est également multi-paradigmes (objet, procédural et quelques outils qui rappellent les languages fonctionnels), ce qui permet une grande flexibilité dans l'approche utilisée pour résoudre un problème. De plus, sa syntaxe est élégante (du moins à mon goût) et force l'écriture de code lisible. L'arrivée de frameworks web tels que Django ou TurboGears renforce encore sa popularité.
C'est impressionnant de voir combien les Python maniaques sont persuadés d'avoir trouvé le plus meilleur langage du monde. Alors qu'il est comme de nombreux langages : des qualités, certes, avec de bonnes réussites, mais, comme tous les langages, il a ses limites.
Hihi, te fatigue pas, cette citation n'est rien de plus qu'un gros plagia du livre de Gérard Swinnen (je le sais je viens de la faire aussi pour un dossier sur Python ).
Après, si... Ici, à la question "quel langage" qui revient à peu près une fois par semaine, on a le droit au même catalogue. En gros, chaque intervenant indique "son" langage. La chose amusante, c'est quand la question originale est vraiment motivée avec des contraintes. Ici par exemple, Noctua (très bons systèmes de refroidissements entre nous) précise bien qu'il a des bases en assembleur/C. Plutôt que d'intervenir pour lui proposer comment évoluer en programmation et pourquoi pas faire du développement un jour, on va avoir l'éternel catalogue. J'en déduis que :
- Soit les intervenant n'ont pas pris la peine de lire le message et balancent leur langage avec des arguments génériques
- Soit ils ne connaissent pas du tout les langages qu'ils proposent car ils n'ont aucune idée des limites et de l'adéquation avec la demande.
donc bon, on est bien sur Troll Land.
Hors ligne
#7 Le 10/03/2008, à 12:47
- noctua
Re : choix du langage
c'est bien aussi ce que je me demande si je commence par le C pour aller vers le C++ ou si je commence direct avec le C++
j'ai toujours aimer les difficultés (toujours le chic pour prendre ce qui est le plus compliqué)
je vais faire un saut vers le lien mais je crois que je l'ai déjà vu
Soutenez moi dans ma quête pour devenir Jedi, affronter Volkswagen pour les empêcher de menacer le climat et la planète http://vwdarkside.com/fr/jedi/alexandre-bonfils-164702
Hors ligne
#8 Le 10/03/2008, à 13:40
- Le Farfadet Spatial
Re : choix du langage
Salut à tous !
Hihi, te fatigue pas, cette citation n'est rien de plus qu'un gros plagia du livre de Gérard Swinnen (je le sais je viens de la faire aussi pour un dossier sur Python
).
Ah ? Je ne connais pas cet ouvrage.
Noctua (très bons systèmes de refroidissements entre nous) précise bien qu'il a des bases en assembleur/C.
Raison pour laquelle j'ai écrit :
puisque que tu as déjà des notions de C, pourquoi ne pas approfondir ce langage ?
on est bien sur Troll Land.
De toute façon, les questions du genre : quel éditeur/EDI/langage choisir sont toujours des occasions à foire du troll. Ah ! Ces geeks !
c'est bien aussi ce que je me demande si je commence par le C pour aller vers le C++ ou si je commence direct avec le C++
j'ai toujours aimer les difficultés (toujours le chic pour prendre ce qui est le plus compliqué)
C n'est pas un langage compliqué, c'est juste un langage avec lequel on peut faire d'excellente chose... comme n'importe quoi. C++, en revanche, est véritablement compliqué et, en plus, il cache sa difficulté.
Puisque tu demandais des livres, je te conseille celui-ci --- c'est un copié-collé d'une intervention que j'ai faite par ailleurs, mais c'est approprié :
« Introduction à l'Algorithmique, Cours et exercices » de Thomas H. CORMEN, Charles E. LEISERSON, Ronald L. RIVEST et Clifford STEIN, deuxième édition parue chez Dunod en 2004 : le bouquin est énorme, mais tu ne le liras pas d'un coup. Par contre, il te suivra dans toute ta vie de programmeur, depuis tes premiers pas jusqu'à la pratique avancée. De plus, tu pourras en tirer profit quel que soit le langage que tu utiliseras.
Ça te donneras des bases saines.
Alors... C ou C++ ? Après mûre réflexion, je te conseille toujours le C : il y a plein de littérature de qualité à son sujet et les bibliothèques telles que la SDL, FMod et OpenGL te permettront de faire assez vite des petits jeux. De plus, dans mon expérience, c'est le langage que les électroniciens et les habitués de l'assembleur apprennent le plus facilement. Il y a plein de livres de qualités sur le C. Un exemple :
« Méthodologie de la programmation en C » de Jean-Pierre BRAQUELAIRE, troisième édition parue en 2000 chez Dunod.
Je l'aime bien parce qu'il est très complet, qu'il présente la bibliothèque standard C et l'API POSIX, qu'il initie à la programmation en ce sens qu'il ne suppose pas que le lecteur a déjà fait de la programmation et qu'il tente de donner des conseils méthodologiques plutôt qu'uniquement technique, qu'il enseigne les bases de Make et se base sur GCC. De plus, il est très orienté libre et Linux. On peut toutefois lui reprocher d'être peut-être un peu dense.
À bientôt.
Le Farfadet Spatial
Hors ligne
#9 Le 10/03/2008, à 16:18
- Martopioche
Re : choix du langage
Martopioche a écrit :Hihi, te fatigue pas, cette citation n'est rien de plus qu'un gros plagia du livre de Gérard Swinnen (je le sais je viens de la faire aussi pour un dossier sur Python
).
Ah ? Je ne connais pas cet ouvrage.
C'est celui que Mukri donne en lien. Assez bon ouvrage sur la découverte de Python par ailleurs et qui est écrit de façon très didactique.
Hors ligne
#10 Le 10/03/2008, à 17:31
- Link31
Re : choix du langage
j'ai toujours aimer les difficultés (toujours le chic pour prendre ce qui est le plus compliqué)
Alors le C++ est pour toi.
Tu vas adorer écrire du code write-only
Hors ligne
#11 Le 10/03/2008, à 18:07
- noctua
Re : choix du langage
Noctua (très bons systèmes de refroidissements entre nous) précise bien qu'il a des bases en assembleur/C.
Ce n'est pas seulement un ventilateur ça viens aussi du nom scientifique Athene noctua ou la chevêche d'athena...
pour en revenir à nos moutons je suis bien tenté par le C++ mais j'hésite encore avec le C
Soutenez moi dans ma quête pour devenir Jedi, affronter Volkswagen pour les empêcher de menacer le climat et la planète http://vwdarkside.com/fr/jedi/alexandre-bonfils-164702
Hors ligne
#12 Le 10/03/2008, à 18:34
- Peter787
Re : choix du langage
Apprend le C d'abord moi c'est un conseil (c'est ce que j'ai fait) et j'en remerci encor mes amis de m'avoir aidé car c'est un langage super et puis quand même pas si facile que sa au début après le C++ s'apprend avec moins de difficulté et en plus tu aura une base en C (ce qui peut toujours servir ) mais après c'est toi qui choisi mais a mon avis l'apprentisage du C (pas forcément approfondi mais au moin les chaines de caractère les tableau les pointeurs l'allocation dynamique etc) mais après encor une fois tu choisi, moi donc pour résumer je te conseil d'apprendre le C (compléter tes bases déjà acquise) mais en gardant l'objectif d'apprendre le C++ (et PS arréte d'utiliser scanf mais fgets qui est plus sécurisé) voilà bon courage !
Hors ligne
#13 Le 10/03/2008, à 21:34
- tecknhub
Re : choix du langage
+1 pour python qui s'apprend assez vite (du moins les bases) et qui est beaucoup moin s contraignant que le C (je trouve...)
après pour C++ et Java, j'ai essayé de m'y mettre seul mais j'ai pas accroché...peut etre aussi parce que j'avais du mal a tout comprendre
Le monde est dangereux à vivre ! Non pas tant à cause de ceux qui font le mal, mais à cause de ceux qui regardent et laissent faire. (A.Einstein)
Hors ligne
#14 Le 10/03/2008, à 23:11
- abetsic
Re : choix du langage
Salut,
travaillant dans l'electronique je vais me permettre de donner mon avis : Approfondis tes bases en C... ça ne sera que bénéfique pour ta poursuite si tu continues dans l'électronique. Si il y a un langage à connaitre (en plus des HDL pour l'électronique) c'est vraiment le C.
A propos du python et du java, ce sont certainement de bons langages pour les leur domaines d'application. Je vois mal une machine virtuelle java tournant sur un sytème on chip pour de l'embarquée avec des contraintes fortes en terme de consommation/mémoire/temps réel/etc... Et la problématique est la même pour python.
En résumé, si tu veux un langage qui te serviras pour toi et pour l'electronique, continue sur le C, si tu veux voir plus loin dans la programmation, je te conseillerai sûrement le C++ puisque tu as déjà des bases en C.
Voilà, en espérant t'avoir éclairé.
Hors ligne
#15 Le 10/03/2008, à 23:36
- Le Farfadet Spatial
Re : choix du langage
Salut à tous !
Tu vas adorer écrire du code write-only
Espèce de trolleur, va !
+1 pour python
Sauf que, comme l'a fait remarquer Martopioche, il ne correspond pas à la demande faite ici. Je sais que c'est difficile à admettre pour les fans de Python, mais quant bien même ce langage a de très belles réussites et permet de faire plein de bonnes choses, comme tous les langages, il y a de nombreux cas où d'autres langages sont plus appropriés.
pour en revenir à nos moutons je suis bien tenté par le C++ mais j'hésite encore avec le C
Ce que je peux ajouter pour t'aider, ce sont les inconvénients des deux, car plus que les qualités, c'est de bien identifier les inconvénients d'un langage (tous en ont) qui permet de faire un choix :
C ne donne aucun garde-fou et laisse une totale liberté au programmeur (ce qui peu avoir ses avantages), donc le débutant risque de prendre de mauvaises habitudes. Également, il laisse le programmeur seul responsable de la gestion de la mémoire, ce qui peut devenir très compliqué.
C++ donne des opportunités de mettre des gardes-fous, mais c'est complètement optionnel et rarement exploité. Il laisse également le programmeur entièrement libre, mais en plus il le laisse choisir son paradigme, au risque d'en arriver à une bouillie infâme. Grâce à la bibliothèque Boost, la gestion de la mémoire peut-être automatisée de manière très efficace, mais là encore c'est optionnel et rarement utilisé. Pour l'utiliser de manière complète et totalement performantes, il faut souvent se lancer dans des choses assez complexes, tel que la métaprogrammation et les modèles d'expressions. De plus, sa compatibilité avec C peut entraîner des contaminations qui provoquent des codes soit inefficaces, soit remplit de bogues, soit incompréhensibles, voire les trois à la fois. Enfin, il est extrêmement mal enseigné, ce qui fait que le seul ouvrage auquel on peut faire confiance est le suivant : « Le langage C++ » de Bjarne STROUSTRUP (le créateur du langage) paru chez Pearson Education. Or, cet ouvrage ne peut être abordé de manière réellement fructueuse que si on est déjà un programmeur possédant une certaine expérience.
Au passage, je signale que j'utilise tous les jours C++ et qu'il s'agit d'un choix, dans la mesure où, à mon avis, c'est à l'heure actuelle le langage le plus appropriés pour la modélisation numérique (mon thème de recherche). Donc, clairement, ces remarques ne sont pas faites parce que je déteste ces langages : en fait, je les apprécie vraiment --- certes, moins qu'Haskel, mais passons...
Cela dit, noctua, quoique je te conseille de commencer par le C, j'ai l'impression que tu as déjà fait ton choix en faveur du C++. Pour te rassurer, de plus en plus de gens commencent avec ce langage et s'en sortent.
À bientôt.
Le Farfadet Spatial
Dernière modification par Le Farfadet Spatial (Le 11/03/2008, à 00:38)
Hors ligne
#16 Le 10/03/2008, à 23:41
- kaer
Re : choix du langage
Salut,
travaillant dans l'electronique je vais me permettre de donner mon avis : Approfondis tes bases en C... ça ne sera que bénéfique pour ta poursuite si tu continues dans l'électronique. Si il y a un langage à connaitre (en plus des HDL pour l'électronique) c'est vraiment le C.
D'accord à 100% !
A propos du python et du java, ce sont certainement de bons langages pour les leur domaines d'application. Je vois mal une machine virtuelle java tournant sur un sytème on chip pour de l'embarquée avec des contraintes fortes en terme de consommation/mémoire/temps réel/etc... Et la problématique est la même pour python.
Là pas d'accord en ce qui concerne python. Python te permet de faire de petits scripts systèmes mais aussi de vraies applications avec un vrai gui beaucoup plus rapidement qu'en java et en C etcelà sans apprendre un autre langage. De plus Python est trés facilement extensible en C. Tu peux donc écrire une application en Python et optimiser les parties sensibles en C et c'est à mon avis à la fois plus rapide et plus sain que tout faire en C++. Et puis, c'est un langage dynamique et de haut niveau et donc vraiment différent du C donc un trés bon complément du point de vue de l'usage mais aussi de ta formation. A défaut, Ruby répond à peu prés aux mêmes caractéristiques (avec une syntaxe assez différente).
En résumé, si tu veux un langage qui te serviras pour toi et pour l'electronique, continue sur le C, si tu veux voir plus loin dans la programmation, je te conseillerai sûrement le C++ puisque tu as déjà des bases en C.
La parenté entre le C et le C++ est en partie un leurre. OK, la syntaxe ressemble mais aprés ... et choisir C++, c'est aussi choisir des bibliothéques ou frameworks, ... A mon avis le C++ ne se justifie que quand ... il est imposé. Ce qui je le reconnais arrive assez souvent. Pareil pour Java.
Hors ligne
#17 Le 10/03/2008, à 23:59
- wyz
Re : choix du langage
68hc11!?
T' as fais t' as formation à L' afpa?
ubuntu studio 8.04
Hors ligne
#18 Le 11/03/2008, à 00:09
- wyz
Re : choix du langage
Perso, je te conseil le C, puis ensuite un langage beaucoup plus puissant.
De mon coté j' apprend le C, l' ASM pour programmer du MSP430 et du DSP.
Et ensuite je me tournerai vers le python je pense.
Ah oui j' ai fais du VB
Mais pour les langage de haut niveau j' y connais pas grand chose pour l' instant.
Il faut les essayer, vu que tu aimes les difficulées.
A oui de l' assembleur, tu appeler des fonctions en C... C' est pratique, et c' est ce qui m' a convaincu.
ubuntu studio 8.04
Hors ligne
#19 Le 11/03/2008, à 00:56
- Le Farfadet Spatial
Re : choix du langage
Salut à tous !
Martopioche, tu as bien raison : encore un nid de troll. Je ne devrais pas, mais bon...
A mon avis le C++ ne se justifie que quand ... il est imposé. [...] Pareil pour Java.
C'est bien, ça : c'est argumenté ! Cela dit, si c'était vrai, ces deux langages ne se seraient jamais imposés aussi rapidement dans l'industrie (un secteur très pragmatique)... J'ai surtout l'impression que tu as appris le C et n'a pas trop envie de changer tes habitudes...
Pourtant, l'orientation objet de ces deux langages et le meilleur contrôle des types par rapport au C sont des plus non négligeables (parmi d'autres) et permettent des approches très élégantes (c'est-à-dire à la fois performantes et lisibles).
Perso, je te conseil le C, puis ensuite un langage beaucoup plus puissant.
Heu... Que signifie « un langage plus puissant ? »
A oui de l' assembleur, tu appeler des fonctions en C...
Il vaut mieux faire le contraire : réserver l'assembleur aux parties de codes qui nécessitent d'accéder directement au matériel et coder le reste dans un langage évolué, par exemple le C, mais il y en a d'autre.
En effet, la situation a bien changé depuis les années 80 : de nos jours, les processeurs sont superscalaires (utilisation intensive du pipe-line et parallélisation des unités de traitement) et multi-cœur (c'est-à-dire intrinsèquement parallèle), de sorte que réellement tirer partie de leurs capacités en assembleur n'est vraiment pas aisé (pour dire le moins). De plus, la théorie de compilation a bien évolué et permet des optimisations inaccessibles à l'être humain.
À bientôt.
Le Farfadet Spatial
Hors ligne
#20 Le 11/03/2008, à 10:09
- kaer
Re : choix du langage
Salut à tous !
Martopioche, tu as bien raison : encore un nid de troll. Je ne devrais pas, mais bon...
Moi non plus, ... essayons de rester au-dessus de ça
kaer a écrit :A mon avis le C++ ne se justifie que quand ... il est imposé. [...] Pareil pour Java.
C'est bien, ça : c'est argumenté ! Cela dit, si c'était vrai, ces deux langages ne se seraient jamais imposés aussi rapidement dans l'industrie (un secteur très pragmatique)... J'ai surtout l'impression que tu as appris le C et n'a pas trop envie de changer tes habitudes...
Merci pour le procés d'intentions, ça fait toujours plaisir. En plus c'est faux, je connais mieux java que le C et j'ai appris à détester java que j'adorais au début essentiellement pour 2 raisons : trop verbeux et gére mal le systéme (ce n'est que mon avis).
Et, non, ce n'est pas argumenté. J'ai même écrit "à mon avis". Donc voilà, je donne généreusement mon avis à qui le veut. Et dans la mesure de ma disponibilité, je peux répondre aux questions. Des argumentations (en tout sens), il y en a plein le web.
Je ne pense pas qu'un succés de masse garantisse la qualité. Je ne pense pas non plus que Java ou le C++ ne soit adapté à aucun projet. Par exemple, C++ pour la plupart des jeux ... Par contre, il est intéressant de voir ce que les entreprises à succés ont utilisés en interne. Pour python, je connais des exemples : Google, YouTube, ILM, la NASA, ... ce n'est quand même pas rien. Mais il y en a sûrement aussi pour les langages que tu apprécies. Il est interessant de voir comment ces outils ont été utilisés et ont contribués au succés de l'entreprise. Ca donne une idée de leur points forts.
Je suis en partie d'accord avec ce que tu as écrit ensuite même si ce n'est pas argumenté non plus. Mais ce n'est pas grâve.
Give peace a chance, man !
Hors ligne
#21 Le 11/03/2008, à 10:28
- bomba
Re : choix du langage
salut
Comment je peut executer python j'ai pas trouve l'icone dans application-->programming--->........
#22 Le 11/03/2008, à 11:46
- GarulfoUnix
Re : choix du langage
salut
Comment je peut executer python j'ai pas trouve l'icone dans application-->programming--->........
Python est un interpréteur donc c'est un programme en ligne de commande (comme quand tu exécutes la commande 'ls' par exemple).
Installe l'éditeur Idle qui te permettra d'avoir un bon outils pour l'édition des sources Python.
sudo apt-get install idle
Et ensuite menu Applications -> Programmation -> Idle
http://doc.ubuntu-fr.org/gambas - Documentation sur le wiki
http://gambas.shos.fr - Site de la communauté francophone des utilisateurs de Gambas
Hors ligne
#23 Le 11/03/2008, à 11:49
- Le Farfadet Spatial
Re : choix du langage
Salut à tous !
j'ai appris à détester java que j'adorais au début essentiellement pour 2 raisons : trop verbeux et gére mal le systéme (ce n'est que mon avis).
Oui, mais là, c'est argumenté, en ce sens que ce n'est pas juste « c'est caca, » mais « quand je veux faire ça, ça sux grave ! »
La verbosité, je pense que dans un deuxième temps, on se met à la détester, puis dans un troisième, après avoir plongé des codes auxquels on ne comprend rien, on se remet à l'apprécier. Enfin, là-dedans, il y a aussi une question de goûts, du coup, c'est pas mal d'être avertit : Java est verbeux, parfois très verbeux.
Pour le système, tu as entièrement raison : Java n'est pas du tout adapté à la programmation système. Donc, si on veut toucher un peu à ça, il ne faut surtout pas utiliser Java.
Et, non, ce n'est pas argumenté. J'ai même écrit "à mon avis". Donc voilà, je donne généreusement mon avis à qui le veut.
En fait, ce n'est pas que tu donnes ton avis qui m'a gêné, ni non plus le fait que tu ne fasses pas une analyse détaillée des qualités comparées de Python. En fait, ce qui m'a fait tiquer, c'est juste que tu ne donnes pas les raisons de tes remarques.
Je ne pense pas qu'un succés de masse garantisse la qualité.
C'est vrai. Par exemple, tous les observateurs techniques s'accordaient à dire que OS/2 était techniquement meilleur que Microsoft Windows 1995 et pourtant c'est le deuxième qui s'est imposé. Cela dit, l'utilisation massive d'un langage montre tout de même qu'il est capable de résoudre des problèmes, donc qu'il puisse justifier son utilisation. D'ailleurs, c'est aussi un critère de choix d'un langage : est-il largement utilisé ou confidentiel ?
Pour python, je connais des exemples : Google, YouTube, ILM, la NASA, ... ce n'est quand même pas rien.
Tout à fait, mais Python est un très bon langage.
Il y a encore plus d'entreprise qui utilise C++ et Java, à commencer par celles que tu cites !
Mais il y en a sûrement aussi pour les langages que tu apprécies.
Pour C++ et C ? Oui, beaucoup plus qu'en Python, d'ailleurs.
Mais pour ceux que j'apprécie vraiment : Haskel, OCaml, Prolog... Très peu... Comme quoi.
Il est interessant de voir comment ces outils ont été utilisés et ont contribués au succés de l'entreprise. Ca donne une idée de leur points forts.
En effet, c'est parfaitement vrai.
Historiquement, C a été inventé pour permettre le portage d'Unix sur de nouvelles architectures et qu'aucun langage ne permettait de faire ça de manière élégante à l'époque. C c'est alors extrêmement vite propagé, parce que c'était enfin un langage qui savait ce qu'il voulait, plutôt que d'être une collection de fonctionnalités pas toujours très compatibles entre elles. De fait, il est devenu le langage le plus utilisé en programmation système dans les années 80 et 90. Également, l'efficacité de son compilateur original, par comparaison aux compilateurs qui existaient à l'époque, a été fortement appréciée. Du fait de sa grande souplesse et de sa bonne intégration à Unix, il s'est propagé dans d'autre branche que la programmation système.
C++ doit une grande partie de sa popularité à sa compatibilité avec C. C'est même la principale clef de son succès : il permettait aux programmeurs C d'accéder à une abstraction supérieure en faisant peu d'effort d'apprentissage, ceci sans que des fonctionnalités que l'on utilise pas viennent grever les performances. C'est aussi le premier langage orienté objet possédant de bonnes performances. Or, la représentation objet est très efficace pour créer des structures de données et de plus cela permet de répartir de manière très efficace les tâches dans une équipe, puisque peut alors très bien séparer l'interface de l'implémentation.
C'est la raison pour laquelle Java a gardé un syntaxe proche du C, bien qu'elle soit reconnu pour poser problème : les programmeurs expérimentés se retrouvent en terrain connu. L'autre clef du succès de Java, c'est qu'il a dès le départ été livré avec une bibliothèque bien fournie (ce que C++ a mis plus de temps à comprendre).
Je te laisse faire la présentation de Python, tu dois mieux le connaître que moi !
Je suis en partie d'accord avec ce que tu as écrit ensuite même si ce n'est pas argumenté non plus.
Hé ! À mon grand damne, je n'ai pas la science infuse. Alors, pourquoi ne pointes-tu pas les choses sur lesquels tu penses que j'ai tort ? Ça peut aider noctua à faire son choix.
Comment je peut executer python j'ai pas trouve l'icone dans application-->programming--->........
C'est tout à fait normal, dans la mesure où lorsque tu installes Python, c'est d'abord une machine virtuelle que tu installes. Donc, ce que tu dois chercher, ce sont les programmes en Python que tu veux exécuter, à moins que tu veuilles faire de la programmation en Python, auquel cas c'est un peu différent. Pour t'aider, il faudrait que tu nous dises ce que tu veux faire.
Cependant, ça n'a rien à voir avec le présent sujet, donc ce serait bien que tu en fasses un tout beau, tout neuf, qui soit consacré à ton affaire.
À bientôt.
Le Farfadet Spatial
Hors ligne
#24 Le 11/03/2008, à 11:51
- Martopioche
Re : choix du langage
Bonjour,
Merci en premier lieu de me confirmer que je ne dis pas que des conneries
Sinon, il y dernièrement 2-3 remarques sur l'argumentation que j'apprécie beaucoup. "Untel est plus puissant qu'un autre". "Celui-ci permet de développer plus vite que l'autre". "Celui-là permet des codes plus court". Waw. C'est ça vos critères ? Dans ce cas, il y a une seule et unique solution : reformatez votre disque, installez Windows et Visual Studio. Il n'y a rien de plus rapide, rien de plus simple.
Pour un truc perso, et une utilisation perso, en fait, le langage, on s'en fout dans l'absolu. Du point de vue professionnelle, on va se poser des questions bien plus concrètes : le langage permet-il de d'optimiser ma problématique (genre du calcul parallèle intensif avec Perl : mauvais choix...). Permet-il un travail efficace en équipe, un contrôle du développement et de leur qualité (tous les concepts d'intégration continu), et une pérénité (possibilité d'être repris sans avoir à refaire toute l'appli). Souvent, ce ne sera pas que le langage, mais également es outils existant autour. Vous citez Python et Java, mais là par exemple pour les applications web, Java s'impose de part les divers outils et frameworks mis à disposition, là où Python/Zope restent des outils de geeks.
Je finirai sur cette citation
En plus c'est faux, je connais mieux java que le C et j'ai appris à détester java que j'adorais au début essentiellement pour 2 raisons : trop verbeux et gére mal le systéme (ce n'est que mon avis).
Je passe sur le "trop verbeux". Si tu n'aime pas le verbeux, fais tu Perl, les déclarations peuvent se limiter à des signes de ponctuation juxtaposés les un aux autres. Hyperconcis, hyperimintenable.
Par contre, la remarque sur la mauvaise gestion du système est intéressante. Est-elle vrai ? Sûrement (c'est pas mon domaine mais à ma connaissance en effet, ce ne l'est pas). est-ce du coup un langage à rejeter ? N'est ce pas simplement un langage non adapté pour du système ? On en déduit alors que les langages ont plus ou moins des domaines de spécialisation. Je n'utiliserai pas Java pour du système, ni pour du scripting. Peut être pas pour les jeux non plus bien qu'il s'en sorte bien (cf Jack2). De même, je ne me servirai pas de C/C++ pour faire de application de gestion orientée web.
Donc, le choix du langage doit correspondre à de nombreux critères.
Je finirai par dire que Oui, Noctua a plein de significations, mais que ce week end, grâce à leurs ventillos j'ai bien réduit le bruit de ma tour et je pense à passer aux systèmes de refroidissement de proc' Sans pub aucune, évidemment
Hors ligne
#25 Le 11/03/2008, à 12:28
- kaer
Re : choix du langage
Bon, je n'ai pas le temps de répondre en détail mais je trouve de toutes façons que le débat est de bonne qualité et que nous évitons le troll. Donc félicitons-nous.
En bref par rapport à la verbosité de java quelques remarques en vrac:
- les accesseurs (getX, setX) et les classes anonymes allourdissent parfois dramatiquement le code. Je sais que les IDE génerent ce code mais le travail de maintenance est quand même plus ou moins proportionnel à la taille du code (et à sa lisibilité, voir plus loin). Là facilité qu'on trouve en Java dans l'IDE (et vive Eclipse), on la trouve dans le langage lui-même pour Python.
- je sais que Java 5 avec les generics veut résoudre ces problémes. Il y a un gros débat là-dessus. Est-ce réussi ? ça ne semble pas évident.
- Perl est succin mail peu lisible. Python (et ruby) concilient à mon avis expressvité et lisibilité.
Pour la programmation systéme, Java est (ou a été historiquement) trés contraint par sa volonté de portabilité binaire parfaite. On n'avait donc accés qu'au PPDC de tous les systémes.
Je vous laisse discuter pour l'instant.
Hors ligne