#226 Le 03/05/2011, à 16:52
- Le Farfadet Spatial
Re : Petit guide pour aider au choix d'un langage
Salut à tous !
Erf, là je découvre oO
Je pensais qu'il n'y avait qu'un seul langage assembleur !
Bha zut alors…
Je voulais apprendre ça pour culture perso…
Y'en a un qui est « plus utile » ou « plus global » que les autres ?
Genre si on le connaît, c'est facile d'assimiler rapidement les autres ?
L'assembleur dépend d'abord du processeur sur lequel on code. Ensuite, il va également dépendre des conventions du logiciel d'assemblage – Intel ou AT&T, par exemple. Également, il y aura quelques subtilités différentes en fonction du système.
Cela dit, comprendre l'assembleur, c'est d'abord comprendre la logique du processeur. Le plus approprié pour commencer, c'est celui du système que tu utilises.
À bientôt.
Le Farfadet Spatial
Hors ligne
#227 Le 03/05/2011, à 16:53
- grim7reaper
Re : Petit guide pour aider au choix d'un langage
@helly : Une fois que tu connais un assembleur tu apprends assez facilement les autres. Les plus grandes différences sont au niveaux syntaxique en général (sauf pour le VLIW qui introduit la notion de parallèlisme directement dans le langage et l'assembleur algébrique de certains DSP).
Sinon comme le signale le Farfadet Spatial, pour un même langage assembleur (x86 par exemple) tu peux avoir deux syntaxes différentes (Intel et AT&T) selon l'assembleur (le logiciel) que tu utilises.
Pour commencer tu peux faire de l'assembleur x86 ou de l'ARM (personnellement, j'ai une préférence pour l'ARM).
Dernière modification par grim7reaper (Le 03/05/2011, à 16:57)
Hors ligne
#228 Le 03/05/2011, à 16:53
- helly
Re : Petit guide pour aider au choix d'un langage
Ha okay ^^
Bon bha donc, si je demande « pour un langage assembleur pour Proc Intel 32 bits » ça a déjà plus de sens ?
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#229 Le 03/05/2011, à 19:25
- tshirtman
Re : Petit guide pour aider au choix d'un langage
on dit assembleur x86 (en général i386, mais 486, 586 et 686 apportent tous des extensions supplémentaires pour les perfs) alors ça te fait un choix de jeu d'instructions, il te reste à choisir une syntaxe (un logiciel).
Dernière modification par tshirtman (Le 03/05/2011, à 19:26)
Hors ligne
#230 Le 21/06/2011, à 10:41
- mesmento
Re : Petit guide pour aider au choix d'un langage
Je n'ai pas encore lu l'ensemble de la discussion, il est donc possible que ce que je vais dire soit redondant.
Tout d'abord, bravo pour ce petit guide ! C'est assez complet, et ça reste simple.
Quelques remarques cependant :
1) LISP :
Emacs LISP n'est pas le langage de macro-commandes d'Emacs, il est plus que cela : il est le langage dans lequel Emacs est écrit ! Ainsi déplacer son curseur, copier, coller du texte, se déplacer dans les buffers, tout cela appelle une commande LISP.
Emacs n'est pas vraiment un éditeur de texte, c'est un interpréteur LISP spécialisé dans le traitement interactif de données textuelles.
Parmi les livres à lire sur LISP / Scheme :
Structure and Interpretation of Computer Programs d'Abelsson et Sussman.
Premier cours de programmation en Scheme de Jean-Paul Roy.
Land of LISP: Learn to Program in Lisp, One Game at a Time! de Conrad Barski
Les livres de Roy et Barski sont très récents (2010 et 2011), l'Abelsson et Sussman est un très grand livre, un "classique".
2) Perl :
Deux livres en français me semblent importants (le Programming Perl est maintenant vieux et en partie dépassé) :
Learning Perl chez O'Reilly, la dernière édition couvre Perl 5.10
Perl Moderne, excellent livre par Damien Krotkine, Sébastien Aperghis-Tramoni, Jérôme Quelin, Philippe Bruhat chez Pearson. Toutes les dernières pratiques et les meilleures bibliothèques (Moose pour l'OO puissance 10 !).
3) Javascript :
NON ! Java et Javascript ne sont pas du tout cousins, mais alors pas du tout ! Javascript est bien plus proche de Scheme que de Java. C'est une sorte de LISP habillé en C avec le modèle Objet par Prototype de Self.
De plus avec Node.js Javascript est également présent côté serveur sur un créneau (l'asynchone) sur lequel il est en tête.
Le bouquin de Wenz est bien, mais sans plus.
Les indispensables :
Eloquent JavaScript A Modern Introduction to Programming by Marijn Haverbeke, la meilleure introduction au langage
Javascript the Definitive Guide, de David Flanagan, ouvrage de référence.
Javascript, gardez le meilleur ! de Douglas Crockford, les meilleures pratiques.
4) COBOL
Et oui, il ne faut pas oublier COBOL ! Premièrement parce que c'est un langage encore massivement utilisé, et pour longtemps. Car s'il est obsolète dans pleins de domaines, il en est un dans lequel il est au top : les finances. C'est un langage qui continue d'évoluer, dernier standard en 2002, et qui va bientôt être en manque de mainteneur. Si vous voulez trouver du boulot, vous savez quoi faire
Programmer en COBOL Développement et Maintenance de programmes Christine MEICHELBECK
Dernière modification par mesmento (Le 21/06/2011, à 10:41)
Hors ligne
#231 Le 21/06/2011, à 10:59
- tshirtman
Re : Petit guide pour aider au choix d'un langage
c'est clair que si on veux gagner pleins de sous sans aucune considération pour la beauté du code, goto COBOL les banques ne changeront que quand ce sera vraiment impossible d'avoir de l'assistance dessus (enfin, certaine compagnies de banque ou d'assurance commencent à prospecter vers java ou d'autres technos lourdes de l'industrie, quand même, par ce que ça devient un peu dur), pour l'instant, c'est "si ça marche, touche pas ptit con, le pognon tourne!".
Hors ligne
#232 Le 21/06/2011, à 11:08
- mesmento
Re : Petit guide pour aider au choix d'un langage
c'est "si ça marche, touche pas ptit con, le pognon tourne!".
C'est un peu caricatural.
1) Les programmes COBOL sont bien souvent des programmes critiques, risquer de passer des millions de lignes de codes COBOL en Java : c'est très coûteux et très risqué, ça ne se fait pas à la légère.
2) COBOL est très bien adapté à cette niche applicatives. Dans ce domaine il est vraiment supérieur à Java / C / Per / etc. Pourquoi ? Parce qu'ici les algorithmes ne sont pas complexes, toutes les fonctionnalités avancées des langages modernes sont superflues. En revanche sa verbosité, son "auto-documentation", est vraiment un avantage, la maintenance est facilité, et comme le programme doit durer des années, c'est une nécessité !
Bref, COBOL c'est l'opposé même de Perl. Perl est un langage puissant, mais il n'a pas grand chose à faire dans le domaine où COBOL est conseillé, et vice-versa !
Il faudrait changer de langage uniquement parce qu'il n'est plus à la mode ? Prendre des risques énormes pour cette seule raison ?
Alors qu'apprendre COBOL est simple et qu'il s'agit d'un langage standardisé qui continue d'évoluer pour s'adapter à certains besoins ? Bref, qu'il s'agit, comme le C par exemple, d'un langage pérenne ?
Ce serait simplement ridicule.
Hors ligne
#233 Le 21/06/2011, à 11:23
- tshirtman
Re : Petit guide pour aider au choix d'un langage
1) Les programmes COBOL sont bien souvent des programmes critiques, risquer de passer des millions de lignes de codes COBOL en Java : c'est très coûteux et très risqué, ça ne se fait pas à la légère.
oh oui, ils tatent maintenant, mais ils prévoient une migration sur genre 10ans...
Bref, COBOL c'est l'opposé même de Perl. Perl est un langage puissant, mais il n'a pas grand chose à faire dans le domaine où COBOL est conseillé, et vice-versa !
La puissance n'est pas obligatoirement accompagné de l'obscurité d'un langage comme perl, en effet, faire un programme devant être maintenus des dizaines d'années en perl semble une très mauvaise idée ^^.
Il faudrait changer de langage uniquement parce qu'il n'est plus à la mode ? Prendre des risques énormes pour cette seule raison ?
Si cette raison fait qu'on ne trouve plus personne pour le maintenir, alors elle est suffisante, sinon non, mais il y en a d'autres, il a été inventé des plétores de langages depuis, et il est très probable qu'au moins un apporte un niveau de fonctionnalité équivalent, avec plus de lisibilité et de robustesse, ce n'est pas sur, mais ça vaut le coup de chercher.
Après, je pense que prétendre que le langage évolue est un peu illusoire, les banques ne vont pas plus changer leur version du logiciel que de langage completement, à leur niveau, c'est pratiquement le même risque, vu qu'un bug, ou plus vicieux, une correction de bug sur la version utilisé, pourrait causer de subtils changement de résultats, ou planter le système de façon incompréhensible, le problème quand on ne se donne pas les outils pour évoluer (tests unitairs, intégrations continues...) on ne peux pas évoluer sereinement, du tout.
Après je ne dis pas que c'est infaisable de tester leur code de façon unitaire, c'est même la première chose à faire dans l'optique d'une migration, mais je doute que ça ait été fait dans les banques, vu la rareté de la pratique, et encore plus à l'époque ou ces systèmes ont été mis en place.
Alors qu'apprendre COBOL est simple et qu'il s'agit d'un langage standardisé qui continue d'évoluer pour s'adapter à certains besoins ? Bref, qu'il s'agit, comme le C par exemple, d'un langage pérenne ?
Je suis persuadé qu'on arrivera bientot a se débarrasser du C il ne reste plus beaucoup d'endroit ou c'est le langage de choix
Dernière modification par tshirtman (Le 21/06/2011, à 11:24)
Hors ligne
#234 Le 21/06/2011, à 11:37
- mesmento
Re : Petit guide pour aider au choix d'un langage
Je suis persuadé qu'on arrivera bientot a se débarrasser du C tongue il ne reste plus beaucoup d'endroit ou c'est le langage de choix smile
Dans des pleins de domaines, oui, c'est certains. Même dans l'embarqué il devient de moins en moins indispensable. Mais il reste que C est un langage pérenne : il est bien connu, enseigné, partout, et "n'appartient" officiellement à personne.
Pour le reste, au fond, je suis d'accord. Une migration est nécessaire, mais elle ne pourra être que lente et, surtout, elle doit se faire proprement vers un, ou des langages, adaptés et pas seulement le truc qui fonctionne du moment. Sinon c'est reculer pour mieux sauter !
Il reste que pour migrer il faut connaître le langage, et donc... l'apprendre Donc il y a du boulot !
Dernière modification par mesmento (Le 21/06/2011, à 11:39)
Hors ligne
#235 Le 21/06/2011, à 12:16
- Kanor
Re : Petit guide pour aider au choix d'un langage
Le livre eloquence javascrip est disponible en ligne
http://eloquentjavascript.net/
Hors ligne
#236 Le 21/06/2011, à 19:19
- Kanor
Re : Petit guide pour aider au choix d'un langage
Je suis persuadé qu'on arrivera bientot a se débarrasser du C tongue il ne reste plus beaucoup d'endroit ou c'est le langage de choix smile
Dans son domaine de prédilection il existe un langage actuellement pour le remplacer ??
Hors ligne
#237 Le 21/06/2011, à 19:31
- helly
Re : Petit guide pour aider au choix d'un langage
Java ?
/me s’enfuit, vite vite vite !
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#238 Le 21/06/2011, à 19:47
- Haleth
Re : Petit guide pour aider au choix d'un langage
Non ! Le C est irremplacable ! Le C est bon ! Le C est grand ! Le C est !
Ubuntu is an ancien African word which means "I can't configure Debian"
Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.
Hors ligne
#239 Le 21/06/2011, à 19:54
- Le Farfadet Spatial
Re : Petit guide pour aider au choix d'un langage
Salut à tous !
Déjà, merci Mesmento de relancer un peu les réflexions pour améliorer le message qui ouvre ce fil de discussion.
1) LISP :
Emacs LISP n'est pas le langage de macro-commandes d'Emacs, il est plus que cela : il est le langage dans lequel Emacs est écrit ! Ainsi déplacer son curseur, copier, coller du texte, se déplacer dans les buffers, tout cela appelle une commande LISP.
Emacs n'est pas vraiment un éditeur de texte, c'est un interpréteur LISP spécialisé dans le traitement interactif de données textuelles.
J’en suis parfaitement conscient, mais je crains que l’explication ne soient un peu trop longue sachant que l’objectif est de présenter le langage, non pas GNU Emacs. Du coup, j’ai opté pour simplement dire qu’il s’agit du langage de macro-commandes, mais si tu as une proposition pour une explication courte qui soit plus proche de la réalité, je suis preneur.
4) COBOL
Et oui, il ne faut pas oublier COBOL ! Premièrement parce que c'est un langage encore massivement utilisé, et pour longtemps. Car s'il est obsolète dans pleins de domaines, il en est un dans lequel il est au top : les finances. C'est un langage qui continue d'évoluer, dernier standard en 2002, et qui va bientôt être en manque de mainteneur. Si vous voulez trouver du boulot, vous savez quoi faire
Je n’ai pas envie de rentrer dans le troll autour de COBOL, C, Perl (et je suis surpris que Tshirtman n’ai pas encore donné le nom qu’il a sur le bout de la langue).
En tout cas, tu parles déjà dans l’optique d’une professionnalisation, donc pas d’une découverte. Pour celui qui veut se lancer aujourd’hui dans la programmation, pour faire des programmes qui lui font plaisir (déjà pour commencer), je persiste à dire que ce n’est pas un bon choix et même qu’il peut faire peur. L’idée est de s’adresser aux personnes qui passent sur ce forum et qui finissent par se dire qu’ils aimeraient se lancer eux aussi dans la programmation.
Pour le reste, je vais essayer d’introduire tes remarques, mais pas ce soir, désolé.
À bientôt.
Le Faradet Spatial
Hors ligne
#240 Le 21/06/2011, à 21:26
- mesmento
Re : Petit guide pour aider au choix d'un langage
En tout cas, tu parles déjà dans l’optique d’une professionnalisation, donc pas d’une découverte. Pour celui qui veut se lancer aujourd’hui dans la programmation, pour faire des programmes qui lui font plaisir (déjà pour commencer), je persiste à dire que ce n’est pas un bon choix et même qu’il peut faire peur.
C'est tout à fait vrai
J’en suis parfaitement conscient, mais je crains que l’explication ne soient un peu trop longue sachant que l’objectif est de présenter le langage, non pas GNU Emacs. Du coup, j’ai opté pour simplement dire qu’il s’agit du langage de macro-commandes, mais si tu as une proposition pour une explication courte qui soit plus proche de la réalité, je suis preneur.
hum... Je dirais : Emacs LISP est le langage dans lequel Emacs est écrit et qui permet aussi de l'étendre. Ou un truc du genre.
Dernière modification par mesmento (Le 21/06/2011, à 21:27)
Hors ligne
#241 Le 21/06/2011, à 22:03
- tshirtman
Re : Petit guide pour aider au choix d'un langage
@u farfadet spacial: je fais des efforts xD j'ai faillit glisser plusieurs fois, mais je tiens le coup
Je suis persuadé qu'on arrivera bientot a se débarrasser du C tongue il ne reste plus beaucoup d'endroit ou c'est le langage de choix smile
Dans son domaine de prédilection il existe un langage actuellement pour le remplacer ??
dans l'embarqué tu veux dire? ou dans l'écriture d'OS, peut être… (c'est vrai que c'est sa première application historique, tout de même).
Pour l'embarqué, j'ai vu des robots tourner sous mon language préféré , pour les OS j'avoue que ce ne serait pas encore réaliste en terme de perfs mais on peut tout à fait les écrire en C++ (ça a été fait, je ne sais pas si c'est un progrès par contre ^^) ou sans doutes dans d'autres langages .
Dernière modification par tshirtman (Le 21/06/2011, à 22:05)
Hors ligne
#242 Le 22/06/2011, à 05:38
- grim7reaper
Re : Petit guide pour aider au choix d'un langage
Pour l'embarqué, j'ai vu des robots tourner sous mon language préféré
Ouais, après il y a embarqué (celle relativement pépère niveau contrainte, avec entre autres les robots pour faire mumuse) et embarqué (là où tu as de vrai contrainte temps réel). Pour le dernier le C à encore la part du lion même si l'Ada (plutôt côté anglo‑saxon, en France dans une moindre de mesure) et le C++ sont de plus en plus présent. Y'a aussi des DSL qui sont utilisés, mais je ne sais pas dans quel mesure.
pour les OS j'avoue que ce ne serait pas encore réaliste en terme de perfs
En python je ne sais pas.
Oui en C++ il y a au moins la famille des noyaux L4 (qui existe depuis 2003).
Sinon pour les autres langages y'a aussi des noyaux en C# (Singularity de Microsoft Research) ou en Haskell (j'avais mis des liens sur le TdCCT récemment), même si pour le moment ça reste dans le domaine de la recherche ça semble tourner pas trop mal (et c'est bien plus sûr que des noyaux en C). Il n'est pas improbable qu'il y ai des applications dans un futur +/- proches.
Mais dans tous les cas (j'en suis sûr au moins pour le kernel en Haskell), il reste quelques lignes de C et d'assembleur.
Dernière modification par grim7reaper (Le 22/06/2011, à 07:17)
Hors ligne
#243 Le 22/06/2011, à 09:45
- tshirtman
Re : Petit guide pour aider au choix d'un langage
Oh, je me doute qu'a peu prêt n'importe quel programme est plus sur écrit en haskell qu'en C
Après oui, je suis pas trop au courant pour les autres langages, pour le C++ il me semble que NT est principalement en C++ depuis le début, mais hors de ça je sais pas trop en tout cas faut un langage compilé, pas le choix (ou un processeur qui comprenne le python nativement (ha, mince, j'ai finit par le dire ) mais je fais pas attendre ça ^^).
Hors ligne
#244 Le 22/06/2011, à 10:01
- grim7reaper
Re : Petit guide pour aider au choix d'un langage
Oh, je me doute qu'a peu prêt n'importe quel programme est plus sur écrit en haskell qu'en C
Oui c'est certain ^^^
Mais c'est pas tant la faute du C (enfin, si un peu quand même) que du fait que Haskell soit fonctionnel (peu d'effets de bord, possibilité de prouver le fonctionnement de certaines parties, beaucoup de check à la compilation, etc).
Après oui, je suis pas trop au courant pour les autres langages, pour le C++ il me semble que NT est principalement en C++ depuis le début, mais hors de ça je sais pas trop
Hum, t'as des sources à ce sujet ?
Je sais qu'il y a du C++ dans NT, mais de là à dire qu'il est majoritaire.
Enfin j'en sais rien, mais quand on regarde ReactOS (dont le but est d'être compatible NT), c'est surtout du C (mais bon, c'est peut-être juste un choix des dev').
(ou un processeur qui comprenne le python nativement (ha, mince, j'ai finit par le dire ) mais je fais pas attendre ça ^^).
Bah c'est pas totalement absurde, suffirait d'un interpréteur cablé.
Pour le Java il y a bien Jazelle qui est plus ou moins une JVM cablé. Donc pourquoi pas pour Python :]
Bon je crois qu'on fait un peu HS là quand même ^^"
Hors ligne
#245 Le 22/06/2011, à 10:07
- tshirtman
Re : Petit guide pour aider au choix d'un langage
En effet, je n'ai pas de sources, j'ai eu plusieurs profs disant "c'est du C++" mais wikipédia et microsoft indique "C et C++ et asm" donc pas d'indication de majorité, et bon, les profs, comme source c'est… léger ^^.
ok [/HS]
Hors ligne
#246 Le 22/06/2011, à 20:46
- Le Farfadet Spatial
Re : Petit guide pour aider au choix d'un langage
Salut à tous !
Bon, j’ai intégré une partie des modifications suggérées, mais des choses me chiffonnes.
Learning Perl chez O'Reilly, la dernière édition couvre Perl 5.10
Je n’en ai pas trouvé de version française. Il ne faut pas oublier que le sujet s’adresse à des débutants francophones.
Perl Moderne, excellent livre par Damien Krotkine, Sébastien Aperghis-Tramoni, Jérôme Quelin, Philippe Bruhat chez Pearson. Toutes les dernières pratiques et les meilleures bibliothèques (Moose pour l'OO puissance 10 !).
De ce que j’ai pu en voir, il ne s’adresse pas à des débutants.
Eloquent JavaScript A Modern Introduction to Programming by Marijn Haverbeke, la meilleure introduction au langage
Javascript the Definitive Guide, de David Flanagan, ouvrage de référence.
Ces deux-là ne s’adressent pas à des débutants.
Javascript, gardez le meilleur ! de Douglas Crockford, les meilleures pratiques.
De ce que j’en sais, il ne s’adresse pas vraiment à des débutants non-plus.
Il est important de garder à l’idée que le premier message de ce fil de discussion s’adresse aux débutants complets en matière de programmation, contrainte à prendre en compte.
À bientôt.
Le Farfadet Spatial
Hors ligne
#247 Le 22/06/2011, à 21:27
- tshirtman
Re : Petit guide pour aider au choix d'un langage
Eloquent JavaScript A Modern Introduction to Programming by Marijn Haverbeke, la meilleure introduction au langage
Ces deux-là ne s’adressent pas à des débutants.
je n'ai lu que le début de celui là, mais il à pour but d'être aussi une introduction à la programmation, donc je dirais que si… il est en anglais par contre, donc je comprendrai qu'il reste hors de ta liste pour cette raison.
Hors ligne
#248 Le 23/06/2011, à 19:39
- Le Farfadet Spatial
Re : Petit guide pour aider au choix d'un langage
Salut à tous !
Le Farfadet Spatial a écrit :Eloquent JavaScript A Modern Introduction to Programming by Marijn Haverbeke, la meilleure introduction au langage
Ces deux-là ne s’adressent pas à des débutants.
je n'ai lu que le début de celui là, mais il à pour but d'être aussi une introduction à la programmation, donc je dirais que si… il est en anglais par contre, donc je comprendrai qu'il reste hors de ta liste pour cette raison.
Au temps pour moi : je réfléchissais à autre chose lorsque j’ai rédigé ce message. Je voulais dire que ces deux ouvrages étaient en anglais, ce qui pose problème pour de l’initiation.
À bientôt.
Le Farfadet Spatial
Hors ligne
#249 Le 23/06/2011, à 21:51
- Kanor
Re : Petit guide pour aider au choix d'un langage
il y avait un projet pour le traduire mais ça semble mort
https://linuxfr.org/users/akauffmann/jo … dinitiatio
Hors ligne
#250 Le 23/06/2011, à 22:03
- tshirtman
Re : Petit guide pour aider au choix d'un langage
ça me fait penser que le projet de bouquin de bruce eckel sur python semble bien mort (2ans sans commits!) alors qu'il ne tarrissait pas d'éloges sur le langage…
Hors ligne