dimanche 17 novembre 2013

Du temps de cerveau pour... programmer - 1 - introduction

Sur ce blog, vous le savez, les dimanches sont consacrés à vous occuper le cerveau sans parler d'actualités. J'entame cette semaine un cycle pour parler de programmation (informatique). Pas d'affolement, le niveau nécessaire sera signalé dans la mesure du possible, même si l'ordre des articles sera un peu aléatoire. A relire après à tête reposée, avec le tag "Livecode" (pourquoi Livecode ? réponse en bas).

Introduction - Pour tous niveaux

Eh oui, pour programmer un ordinateur, dans presque tous les cas, il faut maîtriser l'anglais écrit. Les langages utilisent des mots-clés anglais plus ou moins intensivement et les documentations (que personne ne lit jamais, RTFM comme disent les anglophones - Read the fucking manual) sont en anglais, ainsi que les sites d'aide ou les livres disponibles sur le marché. Il y a plein de ressources en français et on pointera dessus chaque fois que possible, mais vous êtes prévenus.

Il y a donc trois pré-requis pour lire ces articles. Si vous ne les avez pas, passez votre dimanche à faire autre chose, comme par exemple relire les excellents articles de ce blog que vous auriez ratés, honte à vous. Les trois pré-requis sont :

- Avoir envie de programmer un ordinateur, un téléphone, un robot ou un machin électronique ; ou savoir déjà le faire (un peu, beaucoup, passionnément, à la folie) et vouloir découvrir d'autres horizons ; ou n'en rien savoir mais avoir juste un bon sens logique et de la curiosité pour répondre à la question "comment ça marche ?"
- Avoir suffisamment de connaissances en anglais de base pour comprendre des textes simples, mais un peu techniques.
- Avoir de la patience, tous les développeurs vous le diront. Accessoirement, si ça vous intéresse, avoir un ordinateur pas loin pour tester en installant des outils et du temps disponible. On apprend par la pratique. Il y a une loi bien connue, la loi d'Hofstadter (le génie qui a écrit le livre Gödel, Escher, Bach), qui peut s'énoncer ainsi : "En informatique, tout prend toujours plus de temps que prévu, même en prenant en compte cette loi". C'est une loi pessimiste mais réaliste. C'est aussi une loi récursive et on peut avoir l'impression qu'elle débouche sur un océan infini d'incertitude. Mais non, mais non...

En français on dit indifféremment programmer ou développer. Il y a plein de métiers derrière tout ça, et beaucoup de formations pour y arriver. Mais il y a aussi beaucoup de personnes qui aimeraient développer (un peu) pour réaliser des applications qui les intéressent, sans trop se prendre le chou. On trouvera dans cette catégorie des utilisateurs avancés, c'est-à-dire des personnes capables de se servir d'un ordinateur suffisamment bien pour qu'on vienne leur demander des conseils ; des enseignants (parents) qui veulent développer des petites applications pédagogiques pour leurs élèves (enfants) ; des enseignants qui souhaitent apprendre à leurs élèves les bases de la programmation plutôt que de les laisser confondre ordinateur et console de jeu ; des spécialistes de métiers divers qui aimeraient avoir des outils à utiliser au quotidien et dont seuls eux ont besoin ; des hobbyistes, passionnés par quelque chose et qui veulent aller plus loin en fabriquant leurs propres outils informatiques.

Personne ne devrait avoir peur de programmer, en fait. Il y a plusieurs avantages à ça d'ailleurs :
- en programmant, même un peu, on passe du statut de simple consommateur esclave à celui d'une personne qui a le contrôle de la machine. Cela peut paraître dérisoire, mais c'est immense. Pour une fois la machine vous obéit à vous, et à vous seul.On ne regarde plus les ordinateurs comme avant, une fois cette expérience vécue.
- en programmant soi-même, on exerce son cerveau à ne pas s'endormir. A tout âge, il s'agit d'une activité très stimulante qui mobilise beaucoup de cases différentes de notre cerveau.
- en programmant, on atteint un résultat facilement visible, ce qui est très gratifiant. C'est un vrai processus de création. Il y en a beaucoup d'autres évidemment, mais aucun n'est plus noble qu'un autre. Une création est une création et la créativité est ce qui nous différencie d'une table de salle à manger ou d'un paquet de pop-corn sur un canapé.

De manière générale, vous trouverez des ressources pour programmer à plusieurs endroits : Attention, tout ceci peut vite devenir compliqué.
- Comment passer de non-programmeur à programmeur ? (Le Monde)
- Lins Wikipedia à partir de cette page (comme une référence au cas où)

- petits exercices à lire en premier pour voir de quoi on parle (pseudocode - lisible)
- initiation aux algorithmes (Clermont-Ferrand - lisible)
- initiation à partir de la pâte à crêpes, si, si (Belgique - lisible, puis trop ardu)
- c'est quoi un algorithme, pour non-matheux (Pise - lisible mais un peu ardu)
- initiation à Java pour les enfants, ls parents et les grands parents (Ici - ardu)
- initiation à la programmation (Université Lille I - ardu)

En particulier sur ce blog, je vous parlerai d'un seul langage de programmation, pour éviter de mélanger les torchons et les serviettes. Je l'aime bien et le connais bien. Il peut parfaitement servir à la fois au pur débutant, au développeur très occasionnel ou au développer professionnel et régulier. On peut y faire facilement une application d'un papa pour son fils, un petit jeu aussi, mais plus difficilement une université en entier a utilisé ce système pour développer toute sa gestion par exemple.

Programmer, c'est du concret, donc installez un machin et allez-y.

Je vous propose d'installer Livecode :

- Allez ici pour télécharger la version que vous souhaitez : c'est gratuit et libre (open source). Il y a une version commerciale mais vous n'en aurez pas besoin. Entrez une adresse électronique et choisissez "Community édition". C'est un peu fatigant mais après quelques mails vous pourrez télécharger Livecode ici (une fois votre compte créé) et choisir la version que vous voulez : PC-Windows, PC-Linux ou Mac. Moi je travaille sur Mac.
- Installez-la et jouez avec. Dans le menu Help il y a des exemples et des tutoriels (en anglais, rappelez-vous).
- Si vous n'y arrivez pas, mettez un commentaire ou écrivez-moi.

La semaine prochaine, pour contrebalancer et parler à ceux qui connaissent , je vous ferai une fiche de lecture d'un livre qui vient de paraitre (en anglais) et qui s'adresse à des programmeurs connaissant déjà Livecode qui souhaitent développer des applications pour mobiles (iPhone ou Androïd). Niveau avancé donc, mais ça donnera aux autres un parfum de ce qu'on peut faire. Le niveau sera avancé, mais on reviendra ensuite en arrière et on repartira en avant ;)

Juste avant, une explication : je ne suis pas un développeur professionnel, mais Livecode et le "Livecode programming" est un choix que je vous recommande pour plusieurs raisons :

- C'est un système simple à l'usage, après un temps d'acclimatation, et qui peut servir à des développement rapides ou à des machins très compliqués, dans la même logique. Tout se passe comme si le système vous accompagnait au fur et à mesure, sans avoir besoin de changer de système.
- C'est un système multiplateformes comme on dit : vous développez un petit (ou gros) programme et il fonctionnera sur Windows, Linux, Mac, iPhones et iPads et Androïd. Evidemment il y aura des différences mais pour des programmes simples, tout fonctionne pareil. C'est rassurant !
- C'est un système qui combine agréablement le graphisme et le langage. Programmer, c'est toujours écrire des lignes de "code". Mais c'est aussi concevoir de jolis écrans, réaliser une interface ergonomique pour l'utilisateur, pouvoir facilement modifier les choses car on ne sait pas toujours (en fait jamais) où on va... La partie "écriture de lignes de programme" n'est pas la plus importante et Livecode est très agréable pour ça.
- C'est devenu un système libre et ouvert depuis quelques mois. On peut imaginer des évolutions intéressantes à l'avenir, y compris même, pourquoi pas - rêvons un peu - une traduction  du langage lui-même en français.
- Et surtout, Livecode est l'héritier vivant d'un des mythes de l'informatique, appelé Hypercard. Inventé par Apple pour le lancement du Macintosh, il y a presque 30 ans maintenant, Hypercard a révolutionné le monde de ce que l'on pouvait faire avec un ordinateur. Il y a eu un avant et un après Hypercard. Les informaticiens purs et durs contestent cela évidemment, mais les êtres humains normaux le savent. Hypercard permettait à tous ou presque de développer plein de petits machins. Livecode est maintenant beaucoup plus sophistiqué et riche, mais c'est la même famille. On peut ouvrir beaucoup de vieilles piles Hypercard avec Livecode. Exemples en français ici.

Donc ici, certains dimanches, je vous proposerai un voyage dans la programmation avec Livecode, avec des niveaux différents suivant les dimanches.

Bienvenue dans les commentaires à ceux qui veulent en parler. Et pas seulement ceux qui savent déjà développer.




Exercice :
- Lancer Livecode
- Créez une nouvelle pile (Menu File/New Mainstack)
- Clic droit dans la fenêtre puis "Edit card script" pour modifier le script (programme)
- tapez ça, puis validez (bouton "Apply") :
on opencard
   answer "Hello"
end opencard

Vous venez d'écrire votre premier programme, celui qu'écrivent tous les programmeurs pour débuter : afficher "Hello" pour vérifier que votre système est fonctionnel.
Pour tester votre programme, plusieurs solutions :
- quitter Livecode en enregistrant votre programme/pile et relancez le
- faire un clic droit dans la fenêtre et "Send card message" puis "opencard"
- ou plein d'autres que je vous laisse découvrir.



Aucun commentaire:

Publier un commentaire