J’utilise assez souvent pour le taf des scripts en bat pour faire diverses choses, ça me suffit 99% du temps, mais en ce moment j’ai des projets fous pour des applications bien plus complexes et je vais finir par me sentir à l’étroit avec bat. Donc je me dit qu’apprendre un -vrai- langage de script pourrait être pas mal.
En effet j'aimerais pouvoir manipuler des fichier CSV (lire et écrire) ou des bases de donnés simplistes, des fonction réseau un peu plus poussées, et d'autres choses.
Précision, j'ai un niveau porche de zéro en dev, et surtout, je n'aime pas ça :)
Du coup je suis un peu perdu dans la jungle des langages, lequel choisir ? Perl ? Python? Ruby ?
Et sinon quoi penser de PowerShell et VBS ?
Le but étant que ce soit exécutable sous Windows, et distribué, donc le top c’est que ce soit facilement distribuable (compilé ou directement exécutable depuis Windows XP/7).
Moi j’aime bien le Lua. C’est vrai que c’est plus connu comme un language de script embarqué dans une application que pour les scripts en lignes de commandes, mais progressivement depuis quelque années j’ai pris l’habitude d’utiliser des petits scripts avec l’interpréteur standalone, et j’en suis très content.
En gros, c’est un peu comme du perl, mais qui aurait une syntaxe compréhensible :
Je peux ouvrir des fichiers, les parser avec des pattern (les patterns grosso modo c’est des regex), les foutres dans des listes indexé de 1…n ou des tables clefs-valeurs, les trier et les retourner, et les réimprimer ur la sortie standard ou dans un fichier, ce qui correspond à peu près tout mes besoins. Pour le reste, j’utilise os.execute ou popen pour lancer des commandes DOS (en concaténant des chaines des charactères pour construire la ligne de commande).
L’avantage du Lua c’est d’avoir un language moderne, rapide, puissant, mais qui garde une syntaxe et une logique simple à appréhender: Y’a pas douze mille fonction internes expliqué nulle part comme dans d’autre languages, y’a quasiement pas de piège, de merde historique, ou de comportement implicite contre-intuitif, et pourtant on a tout pour programmer comme on veut: on peut faire du fonctionnel, de l’objet … ou un gros mélange bien crade, pas de soucis.
Après vu ton besoin, spontanément j’aurais envie de dire, prend le language de script qui va avec ta base de donné ou ton tableur. Mais bon, les fois où j’ai fait des scripts VB pour m’interfacer avec Excel, j’ai failli m’arracher les cheveux tellement la doc, (pas la page de merde “5 trucs pour booster votre VB” mais la vraie bonne doc expliquant les choses de manière claire et complète), est impossible à trouver, et avec les bugs impossibles à résoudre sans y passer une semaine (genre je veux ouvrir cinquante fichiers, ma machine tombe a genoux pendant un quart d’heure le temps que mes cinquantes instances invibles d’Excel daigent se fermer spontanément), du coup finalement j’ai fait le minimum en VB (juste une conversion XLS -> CVS) et tout le reste en Lua. Du coup, entre prendre le language qui-est-censé-être-fait-pour, ou un language de script généraliste mais qu’on peut maîtriser, maitenant j’hésite.
Le Python, j’en ai fais quelque mois, j’ai pas trop accroché, le Perl aurait été tout indiqué pour ton besoin, mais la syntaxe imbitable le reserve aux barbus quand au C#… je préfère encore faire du Javascript.
Apres petite étude j’ai fait cette petite analyse, dites moi si je me plante :
Python :
Les + : Très documenté, très complet, présent dans CodeAcademy
Les - : Long à apprendre, complexe, non exécutable directement
Lua :
Les + : A priori plus simple à apprendre que le python, plus rapide à l’exécution (mais ça j’osef)
Les - : Moins documenté et complet que le Python, non exécutable directement
PowerShell :
Les + : Intégré à Windows, exécutable sans avoir besoin de le compiler
Les - : peu documenté, limité à Windows (ça me dérange pas pour le moment)
Donc déjà ça élimine Perl et Ruby (dont personne à parlé, j’aurais pensé l’inverse)
Question très con où il n’y aura certainement pas de réponse, vous pensez qu’il faut à peu près combien de temps pour acquérir les bases d’un de ces langages (pour quelqu’un qui a de toutes petites notions de dev) ? Ça se compte en heures, en jours ?
Python j’ai essayé “pour le fun” mais la syntaxe me saoûle vraiment, du coup je ne suis pas allé bien loin.
Tout ça pour dire que non, Python n’est pas universellement reconnu comme un super langage.
Le problème d’AcidBen est délicat. Il n’y a malheureusement pas réponse qui ne demande un certain investissement en temps d’apprentissage. Du coup pour quelqu’un qui n’aime pas coder ça va être douloureux.
Powershell m’avait un peu tenté à une époque aussi (le C#, comme le disait Glop, c’est un très bon langage), mais pour l’instant les retours que j’ai eu dessus m’ont refroidi.
Perso quand je fais du scripting et que ce n’est pas du bash, je fais du Groovy (tuto). Ça implique du coup d’avoir Java installé sur la machine cible, mais ça a l’avantage rendre le script multi-plateforme dès le départ.
Les avantages que j’y vois:
C'est plus ou moins du Java simplifié, donc ça ouvre la porte à la conception de "vrais" programme plus tard
Comme sous le capot c'est du Java, ça peut utiliser le trillion de bibliothèques Java déjà existantes
On peut (si on veut) utiliser Eclipse pour développer les scripts. Pour des trucs complexes ça aide.
Ça reste un langage de scripting, donc orienté simplicité d'écriture et concision
Ce n'est pas forcément la solution la plus adaptée à ton problème AcideBen (j'ai du mal à juger de la difficulté d'apprentissage de Groovy "from scratch"), mais ça vaut peut-être la peine d'y jetter un oeil.
Sinon j’aurais envie de répondre (et ça me fend le coeur): VBS pour aller au plus court.
et python a été mis par defaut sur le raspberry avec une interface pour dev et des tutos justement pour apprendre a tout es etudiants a programmer pour pas cher.
Et il est dans de tres nombreux programme educatifs.
Il est justement reconnu universellement pour cela, et il est beaucoup enseigné pour cela aussi.
Apres la flemme de plus le demontrer. mais si.
Si tu veux etre honnete regarde toute les université qui l’enseignent par rapport a d’autres langage et a quel niveau ils l’enseignent.
Apres python est un des langages de base de google aussi mais bon …
[quote=« AcidBen, post:11, topic: 55563 »][/quote] Complexe et long à apprendre ? Sûrement pas. Par contre pour certains la délimitation des blocs par l’indentation peut être rédhibitoire.
[quote=« Twin, post:13, topic: 55563 »][/quote]
Je ne connais pas Groovy, il a l’air sympa à première vue, il ressemble au Python à certains égards. « Il constitue une alternative au langage Java pour cette plate-forme et est inspiré de Python, Ruby et Smalltalk. » d’après wikipedia. (Jython a sous le capot aussi java).
[quote=« AcidBen, post:11, topic: 55563 »][/quote]C’est une question intéressante et importante. Je n’apprécie pas tout ce qui est Visual Basic car beaucoup trop verbeux, mais je fais avec quand je suis par exemple dans un environnement Access ou Excel, n’empêche que, ça me fend le cœur aussi, mais si tu n’as pas beaucoup de notion de dév le Vbs sera peut-être plus simple à apprendre…mais te fera prendre plein de mauvaises habitudes.
Tu veux dire quoi exactement par “non exécutable directement”?
Si c’est “installé par défaut avec Windows”, bah ça va vachement limiter. On peut faire quelques trucs en batch, mais c’est vraiment pas pratique ni facile.
Si c’est “doit être compilé”, par définition, dans tous les langages de scripts, non.
Au niveau utilisateur je parle. Parce que techniquement, pour être précis, y’a plus beaucoup de langage qui sont réellement interprétés. C’est juste que l’étape de compilation est rendu suffisamment transparente pour que ça fasse comme si c’était interprété, même si en réalité c’est un peu plus compliqué. Mais bon, les histoires de JIT ou de bytecode, on s’en fout quand on débute.
Bref, que ce soit du Python, du Lua, du Perl, du VBS, ou autre, tu peux écrire une ligne de code et taper entrée pour l’exécuter, pas de soucis. (Dans la console prévue pour, voir dans une page web pour essayer sans rien avoir à installer du tout).
Sinon, le Python n’est pas connu comme un langage complexe ou difficile, c’est même plutôt le contraire. Comme tout langage ayant été largement utilisé pendant 20 ans, il a peu être un peu grossi, mais comme le dit Bussière, il reste souvent utilisé comme langage de débutant.
C’est juste que personnellement, je trouve que le Lua suit les mêmes principes (haut niveau, lisibilité, concision et capacité d’expression, multi-paradigme), mais en étant encore un peu plus épuré. Et pour la doc, comme je disais, une page et y’a tout. Après j’imagine que si c’est ton premier langage, tu voudras une doc qui détaille un peu plus pas à pas comment débuter, dans ce cas y’a lua-users.org avec plein d’exemples et de tutoriaux.
Et pour ce qui est de “complet” ou pas, quelque soit le langage (script ou pas): Si y’a pas ce dont tu as besoin dans le noyau de base du langage, tu cherche et rajoute la librairie qui va bien, et pouf ça rajoute la fonctionnalité désirée.
Je ne vois vraiment pas pourquoi le Visual Basic Script serait plus simple à apprendre. Je trouve que c’est plutôt le contraire, le VBS mélange à la fois des mécanismes genre script haut niveau, avec plein d’implicite, et des notions inspirés de l’objet, avec des membres et méthodes imbriqués à n’en plus finir, plus les DCOM et OLE typique de windows, ce qui fait un grand mélange de notions et de façons de coder différentes, et rend l’ensemble confus.
Peut être que si on se contente de copier coller un bout de code trouver sur le net, ça parait simple (et encore, deux fois sur trois ça marche pas parce que pas la bonne version ou pas le bon type de macro), mais arriver à comprendre ce qu’elles font exactement, c’est un parcours du combattant. Alors peut-être qu’un autre langage, ça fait peur au début, mais bon, le hello world est pas plus compliqué, et la suite beaucoup plus claire et maîtrisable.
Le seul avantage du VBS par rapport à autres langages de script, c’est son intégration avec les outils Windows et Office en particulier. Mais ça reste un très gros avantage: pouvoir mettre son script dans un macro Word ou Excel qu’on lance en cliquant sur un joli bouton dans le ruban au lieu d’un outil distinct, et avoir accès directement à toutes les fonctions de Word et d’Excel dans son script, y’a que le VBS qui le permet.