Apprendre un language de script

Bonjour à tous,

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).

Merci pour vos conseils :slight_smile:

perso python pour manipuler du scv un mec a meme fait une lib sql pour du lire des csv :
http://korben.info/utiliser-la-syntaxe-sql-sur-des-fichiers-csv.html

Apres les perfs sont pas forcement bonnes et faire des gros projets en python c’est casse gueule sans de bonnes pratiques.

La migration de 2 a 3 fout un peu le boxon mais ca reste mon langage préféré.

Python. 

Mais donc du python compilé ?
Besoin de rien sur les machines pour exécuter ça ?

Jython (C’est du python sur des librairies java).

Sinon pour Python il y a le programme  py2exe pour créer des exe.

Powershell c’est viable aussi, surtout couplé avec du C# :slight_smile:

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.

Pour exécuter mes script j’utilise lua52.exe du lua-5.2_Win32_bin.zip de http://luabinaries.sourceforge.net/download.html
Pour la syntaxe et les principes du language: www.lua.org en particulier http://www.lua.org/manual/5.2/#index
Quand au lieu d’un truc en ligne de commande je veux une UI qui fasse pro, wxLua, quand je veux un truc graphique, Löve ou Glush.


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.

[quote=“zwzsg, post:7, topic: 55563”][/quote]
Tu sors… 

C# > * mais c’est pas un language de script donc c’est hors sujet et ca compare des pommes et des oranges…

[quote=« zwzsg, post:7, topic: 55563 »][/quote]

C’est dommage, tu partais bien et tu perds toute credibilité en une derniere phrase :frowning:

Sinon, ouais, lua ca marche aussi.

Pour python tu as la doc de swimmen qui est fabuleuse et le blog de sam and max qui ne l’est pas moins.

Avec la doc de swimmen et les tutos sur le net tu en as pleins et des supers bien foutus. Perso ca joue aussi.

Merci pour tous vos conseils.

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 ?

Merci de votre aide :flowers:

[quote=“AcidBen, post:11, topic: 55563”][/quote]

Pour python arretez moi si je me trompe mais c’est un des plus simples a apprendre c’est limite du pseudo code.

Perso pour python je dirais ca depend de ton temps.

Tu prends le swimmen tu le fais de a A à Z et c’est bon tu deviens moyen en python.

Mon meilleur pote a appris a prog durant les vacances de juillet aout en faisant cela, et il n’avait jamais prog avant.

Swimmen est un prof de programmation et ca se sent dans le bouquin.

Le bouquin est gratuit en pdf : http://inforef.be/swi/python.htm

[quote=“Bussiere, post:12, topic: 55563”][/quote]

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.

[quote=“Twin, post:13, topic: 55563”][/quote]
Si dans le monde educatif pour apprendre a prog :
https://www.google.be/search?client=ubuntu&channel=fs&q=python+education&ie=utf-8&oe=utf-8&gws_rd=cr&ei=yPQJU-SkGOqn4gSWvYDADA

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 …

Oui beaucoup de gens apprécient Python.
Un certain nombre non => pas universel.

Je n’irai pas plus loin sur Python, je suis là pour parler d’outils, pas de religion.

[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.

(Vive le python :stuck_out_tongue: )

Sinon, effectivement, C# est pas un langage de script mais ya quand meme des outils pour en faire presque ca :

Snippet Compiler : Un tout petit notepad pour executer du code, tres simple, tres efficace (J’aime beaucoup, ca deboite)

CS Script : Pratique aussi mais finalement tres simpliste, un outil pour executer un .cs depuis l’explorer

LinqPad : Orienté Linq et DB, un petit editeur de requete linq.

C# REPL : Une Read-Eval-Print-Loop par les gens de mono.

#SnippetCompiler : Jamais testé, mais il est ressorti lors d’une recherche rapide :slight_smile:

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 relance d’un zloty pour python en disant que quel que soit ton besoin en python il y aura une lib pour t’aider a le faire…

Python n’est excellement null part mais il est bon partout.

Cf la lib pour faire du sql avec des csv …

niveau perf il n’est pas defendable et niveau gros projet non plus.

[quote=“phili_b, post:16, topic: 55563”][/quote]

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.