Journal Grande braderie chez O'Reilly !

Posté par  . Licence CC By‑SA.
31
31
oct.
2011

Mes très chères salutations distinguées à tous les représentants moulesques que vous êtes !

En l'honneur de Ritchie, paix à son âme, O'Reilly organise une promotion (une promotion ? Que dis-je !? Une grande braderie ! -50% jugez donc du peu !) sur des ouvrages en relations avec son oeuvre. La promotion est valable uniquement pour les versions dématérialisées.
Pour notre plus grand plaisir, cette promotion est étendue à Linux et C++, et c'est là que ça devient intéressant.

Un sujet qui ne peut que nous suivons donc au plus haut point, mais faut-il pour autant tomber dans le piège de la surconsommation d'opportunité ? A la manière des promotions Steam ?
Non ! Chères moules<, je suis fortement intéressé par un livre sur le C++ et au moins un autre sur Linux, mais je n'irais pas jusqu'à dépenser bien plus que ce que j'aurais dépensé sans la promotion.

C'est pourquoi je compte sur vous, vénérables moules< avisées, expérimentées, vétérantes (parfois chauves) pour conseiller (ou déconseiller) certains ouvrages.

Vaut-il mieux prendre C++ in a nutshell ou Pratical C++ programming ? Les critiques sont loin d'être unanimes...
Algorithms in C vaut-il vraiment le coup, sachant que j'ai le volumineux Introduction to Algorithms à portée de main ?
La C++ pocket reference est-elle intéressante ? Ce n'est pas si cher, mais s'en sert-on ?
Et que dire des ouvrages sur Linux ?! Le Linux Networking Cookbook a l'air appétissant mais peut-on s'y fier ?
Et qu'en est-il de cet ouvrage explicatif sur le Kernel ? Après tout, le meilleur moyen de devenir kernel hacker ne passe-t-il pas par une lecture du fameux Operating Systems d'Andrew Tanenbaum, puis par l'écriture d'un driver pour un périphérique simple , et enfin par la lecture du driver utilisé en production pour ce même périphérique ? En prenant cela en considération, y-a-t-il une réelle plus-value ?

N'oublions pas non plus Building Embedded Linux Systems, ne risque-t-il pas de n'être plus à jour, avec la montée en puissance exponentielle des plateformes mobiles (les ARM cortex A8 et A9 sont quand même impressionnants) ?
Dans quelle mesure peut-on s'y fier, les limitations physiques étant de moins en moins présentes, les langages haut niveau progressant d'autant ?

N'oublions pas, bien sur, que ces Ebook sont livrés sans DRM, ils respectent notre liberté, et sentent bon les fleurs.

Par ailleurs, un commentateur malicieux soulignera qu'un livre sur Vim est disponible alors qu'il n'y a rien sur Emacs. Peut-on en conclure que vim est supérieur à emacs en tant qu'éditeur avancé (ou comme IDE rachitique) ?
Il n'y a qu'un pas à faire, que votre humble serviteur ne franchira pas, puisque ce même commentateur malicieux pourra répliquer que l'existence du livre se justifie simplement: vim est tellement compliqué qu'il faut au moins un livre pour le comprendre. Saleté de commentateur malicieux ! :-)

Gardez en tout cas bien en tête que ce n'est qu'une promotion journalière ! Vous n'avez que aujourd'hui pour en profiter (d'où le piège sus-cité de la surconsommation d'occasion).
Précisons aussi que la promotion ne tient que pour les ebooks. Ce qui peut décourager certains.

Alors ? Quels sont vos conseils, vos remarques, vos suggestions ?

Et le plus important, l'URL : http://shop.oreilly.com/category/deals/honor-ritchie.do

  • # ARF l'URL !

    Posté par  . Évalué à 8.

    Il manque le plus important: l'url

    http://shop.oreilly.com/category/deals/honor-ritchie.do

    Si un admodérolecteur aurait l'aimable et sympathique opportunité de le rajouter à la fin du journal, ce serait fort aimable et sympathique de sa part.

    Merci, et désolé. /o\

    • [^] # Re: ARF l'URL !

      Posté par  (site web personnel) . Évalué à 4.

      D'une part, merci, c'est toujours bon d'avoir l' information à temps pour ce genre de choses.

      D'autre part, à la question "Le Linux Networking Cookbook a l'air appétissant mais peut-on s'y fier ?" je réponds oui. Pour avoir la version papier, j'en ai eu l'usage plusieurs fois car il aborde plusieurs sujets classiques : iptables, OpenSSH, OpenLDAP et beaucoup de choses utiles. Ce n'est pas abordé en profondeur (du au format de la collection Cookbook) mais cela constitue un bon choix.

      Essential System Administration est aussi un bon ouvrage de référence, mais très dense et qui aborde l'administration de plusieurs types de systèmes UNIX (Solaris, AIX, ...). Il aura sûrement vieilli, mais il peut intéresser les personnes qui souhaitent avoir un large panorama pour compléter leur culture technique.

  • # Vim et IDE

    Posté par  . Évalué à 3.

    Par ailleurs, un commentateur malicieux soulignera qu'un livre sur Vim est disponible alors qu'il n'y a rien sur Emacs. Peut-on en conclure que vim est supérieur à emacs en tant qu'éditeur avancé (ou comme IDE rachitique) ?

    On peut utiliser vim comme ide pour c/c++ : ici et ici.

    vim est tellement compliqué qu'il faut au moins un livre pour le comprendre.

    Et Emacs une bibliothèque entière, ce qui aurait ruiné oreilly.

    • [^] # Re: Vim et IDE

      Posté par  . Évalué à 2.

      Et Emacs une bibliothèque entière, ce qui aurait ruiné oreilly.

      Oui mais un seul livre aurait suffit pour l'édition de texte (et un autre pour l'émulation de Vim).

      Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

  • # c++11

    Posté par  (site web personnel) . Évalué à 5.

    A propos de c++, qu'est ce qu'il y a comme bouquin qui soit un peu au jus des nouveautés de c++11 ? Parce que j'ai l'impression que ça change assez profondement la façon d'utiliser c++, et que les vieux bouquins auront perdu 90% de leur utilité dans 2-3 ans (comme les bouquins pre-STL qui bien souvent ne parlaient meme pas des templates, sont devenus totalement obsolètes avec c++-98)

    • [^] # Re: c++11

      Posté par  . Évalué à 3.

      Sans aller jusqu'à C++11 (peu de chances qu'ils aient étés mis à jour aussi vite), il faut en effet faire attention à ce que les livres nous parlent de vrai C++, et pas d'un C porté en C++ utilisant des boucles for un peu plus sympathiques, des booléens, et une surcharge.

      Je crois que c'est le principal reproche fait à Pratical C++ programming mais je ne sais pas dans quelle mesure ces reproches sont fondés.

      • [^] # Re: c++11

        Posté par  (site web personnel) . Évalué à 1.

        en quoi les boucles for sont plus sympathiques qu'en C (c'est une vrai question, peut être l'occasion d'apprendre un truc intéressant...)?

        Ceci n'est pas une signature

        • [^] # Re: c++11

          Posté par  . Évalué à 2.

          http://fr.wikipedia.org/wiki/C%2B%2B11#Boucles_bas.C3.A9es_sur_des_intervalles

          int mon_tableau[5] = {1, 2, 3, 4, 5};
          for (int &x: mon_tableau) {
              x *= 2;
          }
          
          

          et une micro-feature qui existait avant C++11 : pouvoir déclarer la variable de boucle dans la ligne du for (alors qu'en C il faut la déclarer avant le for)

          • [^] # Re: c++11

            Posté par  . Évalué à -1.

            Ceci n'est pas sympathique.

            C'est une boucle foreach absolument imbittable, dégeulasse et illisible. Dans la plus pure tradition du C++, peut-être/ /o\

            • [^] # Re: c++11

              Posté par  . Évalué à 1.

              Ah oui ? Fais mieux pour voir ?

              • [^] # Re: c++11

                Posté par  . Évalué à 2. Dernière modification le 31 octobre 2011 à 18:20.

                Comme le C# ?

                int[] fibarray = new int[] { 0, 1, 1, 2, 3, 5, 8, 13 };
                foreach (int i in fibarray)
                {
                     System.Console.WriteLine(i);
                }
                
                

                Voire même:
                List<Moule> moules = new List 
                {
                    new AdminMoule("penso<"),
                    new AdminMoule("NoNo<"),
                    new MoMoule("reblochon<"),
                    new ReMoule("claudex<")
                }
                
                foreach (Moule moule in moules.Where(m => m.IsAdmin))
                {
                    /* dire aux admins à quel point ils sont beaux */
                }
                
                

                C'est quand même largement plus lisible.

                • [^] # Re: c++11

                  Posté par  . Évalué à 8. Dernière modification le 31 octobre 2011 à 18:37.

                  int[] fibarray = new int[] { 0, 1, 1, 2, 3, 5, 8, 13 };
                  foreach (int i in fibarray)
                  {
                      System.Console.WriteLine(i);
                  }
                  
                  

                  La seule différence c'est le remplacement d'un ":" par un "in" (et for par foreach), c'est clairement totalement moins imbittable, plus lisible et pas dégueulasse, ça saute aux yeux...

                  foreach (Moule moule in moules.Where(m => m.IsAdmin))
                  {
                      /* dire aux admins à quel point ils sont beaux */
                  }
                  
                  

                  Faudrait savoir, on compare le foreach (qui est pareil que le premier paste) ou bien des features qui n'ont totalement rien à voir (utilisation d'une méthode "Where" avec une syntaxe "imbittable, illisible et dégueulasse" (et je ne suis pas en train de parler de la notation microsoft de foutre des majuscules à n'importe quoi))

                  • [^] # Re: c++11

                    Posté par  . Évalué à 0.

                    Mauvaise foi spotted.
                    Seule réponse: OK

                    Si tu souhaite quand même débattre, je te signale que l'utilisation d'un mot clef a des implications dans le code. Utiliser un mot clef pour 42 usages, c'est juste merdique.
                    Et devine quoi, je préfère utiliser foreach pour une action qui va s'appliquer "à chaque élément dans IEnumerable" et non pas "pour élément : tableau".

                    Le C# est plus lisible, c'est un fait. Ne te sens pas agressé pour ça, tu n'y peux rien, et moi non plus. Je le regrette par contre.

                    Faudrait savoir, on compare le foreach (qui est pareil que le premier paste) ou bien des features qui n'ont totalement rien à voir (utilisation d'une méthode "Where" avec une syntaxe "imbittable, illisible et dégueulasse" (et je ne suis pas en train de parler de la notation microsoft de foutre des majuscules à n'importe quoi))

                    Onoze il utilise une lambda-expression ! Quelle syntaxe horrible et dégueulasse ! ;-)
                    Tu devrais regarder les méthodes LINQ de C# avec moins d'à priori, c'est une des plus belles choses du langage et ça leur donne clairement une avance sur le C++.

                    • [^] # Re: c++11

                      Posté par  (Mastodon) . Évalué à 3.

                      Histoire de foutre un peu le bordel dans votre conversation :
                      - dans vos exemples je trouve clairement le C# plus lisible (je ne connais ni C++ ni C#)
                      - mieux que C# dans la lisiblité, je trouve que ruby frappe fort. c'est un peu la même ambiance, sans les parenthèses. t'es presque à parler anglais.

                      En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

                      • [^] # Re: c++11

                        Posté par  . Évalué à 1.

                        • dans vos exemples je trouve clairement le C# plus lisible (je ne connais ni C++ ni C#)

                        C'est dingue, "in" au lieu du caractère ":" et "foreach" au lieu de "for" devient plus lisible ? Mais vous êtes des programmeurs qui utilisez "==" pour signifier "égal" et "!=" pour "différent" et un malheureux caractère vous fait parler d'illisibilité...

                        • [^] # Re: c++11

                          Posté par  . Évalué à 2.

                          C'est un excellent exemple !

                          "=" est une assignation, deux opération: 'mettre la valeur dans la case pointée' + 'renvoyer cette valeur'

                          "==" est une comparaison de valeur: 'comparer les valeurs des deux éléments"

                          "===" est une comparaison structurelle: 'comparer les adresses pointées'

                          Trois opérateurs pour trois choses plus ou moins semblables, mais néanmoins différentes.
                          Pas un opérateur dont le sens change selon le contexte. Tu vois le principe ?

                          Et évidement, je n'ai pas parlé de l'utilisation étrange de const, de virtual method() = 0;, de la répétiton ad nauséam des keyword template<class T>...

                        • [^] # Re: c++11

                          Posté par  (site web personnel, Mastodon) . Évalué à 5.

                          C'est dingue, "in" au lieu du caractère ":" et "foreach" au lieu de "for" devient plus lisible ?

                          Pour moi oui. Le ":", si on ne sait pas ce qu'il représente, on comprend mal ce que fait ce for particulier. Je n'ai pas compris ce que ton truc faisait aux premiers abords (bien ayant fait du C++ pendant de longues années), alors que l'exemple du C#, j'ai tout de suite compris (bien que n'ayant jamais fait du C#).

                          Pour toi c'est lisible, parce que tu connais cette syntaxe particulière. Pour les autres, c'est beaucoup moins évident.

                          Il est plus facile de comprendre un truc qui se rapproche du langage naturel, qu'un truc s'exprimant par signe cabalistique.

                          Par exemple, un programme perl, c'est souvent incompréhensible pour quelqu'un n'ayant jamais fait de perl. Alors que du python ou du php, c'est un peu plus lisible, parce que la syntaxe comprenant moins de signes "bizarres".

                          • [^] # Re: c++11

                            Posté par  . Évalué à 2.

                            alors que l'exemple du C#, j'ai tout de suite compris (bien que n'ayant jamais fait du C#).

                            Euh, t'as fait du Javascript, où le "in" existe aussi, et m'est avis que c'est plutôt pour ça que tu as "de suite compris"

                • [^] # Re: c++11

                  Posté par  (site web personnel) . Évalué à 3.

                  System.Console.WriteLine(i);

                  Je crois que c'est plûtot

                  ECMA334.Localhost.UNIX.System.Console.WriteLine(i);

                  tu dois avoir un problème avec ton espace de noms. ;)

        • [^] # Re: c++11

          Posté par  . Évalué à -1. Dernière modification le 31 octobre 2011 à 18:18.

          En C:

          int i;
          for(i=0; i < MAX; i++)
          {}
              
          // utilisation possible de i car la portée est en dehors de la boucle for
          
          

          En C++:

          for(int i=0; i < MAX; i++)
          {}
              
          // utilisation impossible de i car la portée est dans la boucle for
          
          

          C'est un détail, surtout quand on a les snippets adéquats, mais bon ça reste plus propre. ;-)

          (Au passage, l'insertion de code dans les commentaires est un horreur, et l'aide à l'édition n'est d'aucune aide)

          • [^] # Re: c++11

            Posté par  . Évalué à 7.

            Pour la déclaration d'une variable dans la boucle for, il me semble (mais je ne fais pas souvent du C) qu'en C99 c'est aussi valide :

            for (int i=0; i<n; i++) {}
            
            

            Tous les nombres premiers sont impairs, sauf un. Tous les nombres premiers sont impairs, sauf deux.

          • [^] # Re: c++11

            Posté par  (site web personnel) . Évalué à 2. Dernière modification le 31 octobre 2011 à 18:43.

            l'aide à l'édition n'est d'aucune aide

            j'ai corrigé quelques-uns de tes posts et précisé aide-édition (la syntaxe était un peu pétée visiblement... :/). Me reste à retrouver la liste des langages possibles (bash, c, c++, c#, python, ruby, text... c'est bon déjà).

            • [^] # Re: c++11

              Posté par  . Évalué à 1.

              Merci pour ta réactivité ! :)

            • [^] # Re: c++11

              Posté par  (site web personnel) . Évalué à 3.

              Chez moi, pygmentize -L lexer donne :

              Cucumber, cucumber, Gherkin, gherkin
              abap
              ada, ada95ada2005
              ahk
              antlr-as, antlr-actionscript
              antlr-cpp
              antlr-csharp, antlr-c#
              antlr-java
              antlr-objc
              antlr-perl
              antlr-python
              antlr-ruby, antlr-rb
              antlr
              apacheconf, aconf, apache
              applescript
              as, actionscript
              as3, actionscript3
              aspx-cs
              aspx-vb
              asy, asymptote
              basemake
              bash, sh, ksh
              bat
              bbcode
              befunge
              blitzmax, bmax
              boo
              brainfuck, bf
              c-objdump
              c
              cfm
              cfs
              cheetah, spitfire
              clojure, clj
              cmake
              coffee-script, coffeescript
              common-lisp, cl
              console
              control
              cpp, c++
              cpp-objdump, c++-objdumb, cxx-objdump
              csharp, c#
              css+django, css+jinja
              css+erb, css+ruby
              css+genshitext, css+genshi
              css+mako
              css+mako
              css+myghty
              css+php
              css+smarty
              css
              cython, pyx
              d-objdump
              d
              delphi, pas, pascal, objectpascal
              diff, udiff
              django, jinja
              dpatch
              duel, Duel Engine, Duel View, JBST, jbst, JsonML+BST
              dylan
              erb
              erl
              erlang
              evoque
              factor
              felix, flx
              fortran
              gas
              genshi, kid, xml+genshi, xml+kid
              genshitext
              glsl
              gnuplot
              go
              gooddata-cl
              groff, nroff, man
              haml, HAML
              haskell, hs
              html+cheetah, html+spitfire
              html+django, html+jinja
              html+evoque
              html+genshi, html+kid
              html+mako
              html+mako
              html+myghty
              html+php
              html+smarty
              html+velocity
              html
              hx, haXe
              hybris, hy
              ini, cfg
              io
              ioke, ik
              irc
              jade, JADE
              java
              js+cheetah, javascript+cheetah, js+spitfire, javascript+spitfire
              js+django, javascript+django, js+jinja, javascript+jinja
              js+erb, javascript+erb, js+ruby, javascript+ruby
              js+genshitext, js+genshi, javascript+genshitext, javascript+genshi
              js+mako, javascript+mako
              js+mako, javascript+mako
              js+myghty, javascript+myghty
              js+php, javascript+php
              js+smarty, javascript+smarty
              js, javascript
              jsp
              lhs, literate-haskell
              lighty, lighttpd
              llvm
              logtalk
              lua
              make, makefile, mf, bsdmake
              mako
              mako
              maql
              mason
              matlab, octave
              matlabsession
              minid
              modelica
              modula2, m2
              moocode
              mupad
              mxml
              myghty
              mysql
              nasm
              newspeak
              nginx
              numpy
              objdump
              objective-c, objectivec, obj-c, objc
              objective-j, objectivej, obj-j, objj
              ocaml
              ooc
              perl, pl
              php, php3, php4, php5
              postscript
              pot, po
              pov
              prolog
              properties
              protobuf
              py3tb
              pycon
              pytb
              python, py
              python3, py3
              ragel-c
              ragel-cpp
              ragel-d
              ragel-em
              ragel-java
              ragel-objc
              ragel-ruby, ragel-rb
              ragel
              raw
              rb, ruby, duby
              rbcon, irb
              rconsole, rout
              rebol
              redcode
              rhtml, html+erb, html+ruby
              rst, rest, restructuredtext
              sass, SASS
              scala
              scaml, SCAML
              scheme, scm
              scss
              smalltalk, squeak
              smarty
              sourceslist, sources.list
              splus, s, r
              sql
              sqlite3
              squidconf, squid.conf, squid
              ssp
              tcl
              tcsh, csh
              tex, latex
              text
              trac-wiki, moin
              v
              vala, vapi
              vb.net, vbnet
              velocity
              vim
              xml+cheetah, xml+spitfire
              xml+django, xml+jinja
              xml+erb, xml+ruby
              xml+evoque
              xml+mako
              xml+mako
              xml+myghty
              xml+php
              xml+smarty
              xml+velocity
              xml
              xquery, xqy
              xslt
              yaml
              
              
    • [^] # Re: c++11

      Posté par  . Évalué à 3.

      Je pense que tout le monde travaille sur des nouveaux bouquins, mais deux choses sont a prévoir:
      1) Ils ne vont pas en parler trop à l'avance parce que sinon, les ventes de versions actuelles vont chuter.
      2) Stroustrup et Meyers sont d'accord pour dire que ça va prendre un moment parce que les bonnes pratiques doivent d'abord se construire et se vérifier dans l'industrie avant de pouvoir en faire des bouquins. Et pour ça faudrait déjà commencer par avoir des compilos qui prennent en charge le standard de manière relativement exhaustive

      Ceci étant, je ne pense pas que les anciens bouquins seront obsolètes puisque C++11 est entièrement compatible avec C++98 (enfin pour les simples mortels) et C++11 ne va pas non plus rajouter une nouvelle dimension (genre concepts) à C++98, c'est plus une panoplie d'outils pratiques qui facilitent la vie.

      Perso, j'attends la sortie de la quatrième édition de TCPPPL et en attendant, j'essaie faire survivre mon exemplaire déchiré de partout de l’Édition Spéciale (les pages commencent a s'arracher). -> Cette fois ci, je radinerai pas, je prendrai la version reliée !

      EN ATTENDANT: Herb Sutter vient d'annoncer sur son blog qu'il va refaire des GURU OF THE WEEK à la sauce C++11 !!

      P.S. j'ai vu passer une pub pour un bouquin qui parle de C++11, je crois que c'est sur le blog des développeurs de Visual Studio. Je te contacterai si je la remets.

      • [^] # Re: c++11

        Posté par  . Évalué à 3.

        Et pour ça faudrait déjà commencer par avoir des compilos qui prennent en charge le standard de manière relativement exhaustive

        On peut déjà faire pas mal de truc avec les compilos actuels. Par exemple avec GCC: http://gcc.gnu.org/projects/cxx0x.html et la libstdc++: http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.200x

        Ceci étant, je ne pense pas que les anciens bouquins seront obsolètes puisque C++11 est entièrement compatible avec C++98

        Il y a quand même des trucs de C++98 qui sont marqué comme deprecated, on peut toujours les utiliser mais ce n'est pas une super idée non plus.

        « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

  • # Emacs

    Posté par  (site web personnel) . Évalué à 3.

    • [^] # Re: Emacs

      Posté par  (site web personnel) . Évalué à 1.

      Je crois que mackwic soulignait qu'il n'y avait pas de bouquin sur emacs bénéficiant de la promotion.

      • [^] # Re: Emacs

        Posté par  (site web personnel) . Évalué à 6.

        Oui, c'est également ce que j'avais compris, c'est pourquoi j'ai donné les adresses de deux livres sur Emacs bénéficiant de la promotion…

        • [^] # Re: Emacs

          Posté par  (Mastodon) . Évalué à 3.

          Faut dire que la page des promos n'est pas assez insistante sur le fait que beaucoup d'autres livres ont cette promo.

          Faut cliquer sur "See more titles" pour avoir des dizaines de pages de promo supplémentaires.

          En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

  • # O’Reilly France

    Posté par  . Évalué à 8.

    En l'honneur de Ritchie, paix à son âme, O'Reilly organise une promotion (une promotion ? Que dis-je !? Une grande braderie ! -50% jugez donc du peu !) sur des ouvrages en relations avec son oeuvre.

    Dommage qu’ils n’aient pas eu la même idée – pour les traductions en français – à la fermeture d’O’Reilly France.
    Ça aurait fait plaisir à leurs lecteurs habituels et ça aurait aidé à payer la prime de licenciement des employés...

    « Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone

  • # Bash / scripting

    Posté par  (Mastodon) . Évalué à 4.

    Pour ma part je cherche un bon bouquin de scripting. Je sais faire des "grep | awk | tr " faciles (disons sans regexp), je sais faire des boucles, des fonctions, mais à chaque fois c'est du basique.

    Pour devenir un "power scripter", vous me conseillez plutot "Bash cookbook" ou "Shell scripting" ?

    Et sinon j'ai fait quelques essais, ces livres à prix cassé restent éligibles au "buy 2 get the 3rd free", donc ça tape dans les $30 pour 3 bouquins... pas mal !

    En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

    • [^] # Re: Bash / scripting

      Posté par  . Évalué à 2.

      Bash, non. Si c'est pour faire du script portable, ne pas lire de livre bash. Si c'est pour du non-portable, autant utiliser zsh, qui est plus complet, plus "protégé" (on n'est pas obligé de toujours mettre des guillemets pour se protéger des espaces, car le shell a une gestion plus saine des chaines/arrays) et même sa documentation est meilleure.

      • [^] # Re: Bash / scripting

        Posté par  (Mastodon) . Évalué à 2.

        Oui mais si, je préfère du Bash. C'est de loin le plus courant, on en trouve partout... y compris au boulot (déjà heureux de bosser dans un milieu où on puisse avoir un vrai shell, je vais pas faire ma susceptible et demander "du zsh parce que c'est mieux vous comprenez pour les espaces").

        En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

        • [^] # Re: Bash / scripting

          Posté par  (site web personnel, Mastodon) . Évalué à 5.

          Le mieux pour apprendre du shell script, c'est d'en lire pas mal. Déjà tu peux lire les scripts de démarrage de ta distribution. Tu risques déjà d'apprendre un paquet de choses. Ensuite, je te conseille de te faire des petits scripts dès que tu as besoin de quelque chose.
          Au début j'ai appris en lisant la man page de bash...donc j'ai appris du bash, pas du shell script portable. Mais ça aide au début, surtout que beaucoup de choses et concepts sont communs. Ensuite, je te conseille de chercher sur le net "no bashism" sur le net. Je n'arrive pas à le retrouver là, mais un type avait mis au point un shell script portable qui parse un script et te dis les choses spécifiques à bash qui sont dedans, où les choses qui ne sont pas portables et te donnes des pistes pour les écrire mieux. J'ai beaucoup appris aussi de cette manière. Je suis sûr qu'il y a moyen de le retrouver ce script...

        • [^] # Re: Bash / scripting

          Posté par  . Évalué à 1.

          Guide avancé d'écriture des scripts Bash: http://abs.traduc.org/abs-fr/
          Permet de partir de presque zéro et d'avancer rapidement vers des concepts avancés.
          C'est la traduction en français du livre: Advanced Bash Scripting Guide.

    • [^] # Re: Bash / scripting

      Posté par  (site web personnel) . Évalué à 3.

      Pour devenir un "power scripter", vous me conseillez plutot "Bash cookbook" ou "Shell scripting" ?

      Aucun … je te conseille plutôt de t'abonner au newsgroup comp.unix.shell: on y pose beaucoup de questions sur l'emploi des programmes AWK, SED, PERL et j'ai fait de grands progrès en lisant ces discussions. Cela marchera peut-être aussi pour toi! Bien-sûr tu peux aussi poser tes propres questions. Si en plus tu t'amuses à utiliser ces programmes plus que de raison (par exemple pour faire trois traitements, où l'opération complètement manuelle reaste imbattable en terme de rapidité) tu t'approprieras rapidement ces outils. Lire les programmes des autres, à l'occasion, est aussi très enrichissant.

      Si j'avais un livre à te conseiller pour la programmation du SHELL, ce serait plutôt le livre de Lowell Jay Arthur UNIX shell programming: j'ai la deuxième édition et aucun des exemples du livre ne marche sur mon système mais la vision d'ensemble qu'il donne de l'emploi du shell me semble d'une valeur inestimable!

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.