Fork me on GitHub

About

Vous êtes sur le weblog de JN Avila

Pages

Add some pages here, or start a new chapter.

Tag Cloud

Archives

Categories

Links

Alpinux
Aroblog
Hayabousa
Le blog de Raphy Stoller
le blog de Belu
stellamatutina
Da BOop
JS Zone
Irresponsable !
Blablog
Mistress Doom Bazar
Le monde de Cornelius
Why-Note

Search

Latest Comments

Nathalia (Fin de vacances): Tiens, tu blogues perso maintenant ?
DBF (Mes dernières lec…): Plus léger et en phase avec l’actu www.decitre.fr/livres/star -wars-l.. Joyeux Noël, JNA.
JN (Real humans and c…): C’est en anglais parce que je voulais en faire une réponse à l’article initial.
Frérot (Real humans and c…): Waowww, You’ve gone deep into the episodes… By the way, like you, I was kind of fond of “Real Human…
Cami (Les joies de l'in…): Bonjour! Si vous êtes intéressés de traduire logiciels pour Internet, pour PC, pour mobiles ou tout a…
Mathieu (Pas sérieux): …. je vois passer les avions avec bandeaux publicitaires au-dessus des plages depuis la fenêtre de mo…

Stuff

Powered by PivotX - 2.3.3 
XML: RSS Feed 
XML: Atom Feed 

« Mes dernières lecture… | Home | Fin de vacances »

Petites expériences de programmation

Sunday 06 December 2015 at 11:16 am.

Je suis en train de terminer le MOOC sur la programmation fonctionnelle en OCaml proposé par France-Université-Numérique. C'est une suite logique dans mes expérimentations de langages nouveaux après les MOOC de Coursera  (ici et ) sur la programmation fonctionnelle en Scala de l'année dernière.

Ma formation de base m'a principalement initié à la programmation impérative, légèrement matinée d'objet qui commençait à apparaître en industrie à l'époque. Le développement informatique n'étant pas ma spécialité, le reste a dû venir sur le tas, avec pas mal de lecture. Depuis le temps que certaines de mes connaissances me bassinaient avec la programmation fonctionnelle, il était temps de rafraîchir un peu mes connaissances.

L'intérêt d'un MOOC est qu'on est à nouveau en classe, avec des leçons et des devoirs pour s'entraîner, tout en étant capable de moduler selon des emplois du temps qui ne sont plus du type étudiant. C'est un assez bon compromis, même si ça grêve quand même le budget temps libre...

La programmation fonctionnelle et réactive a le vent en poupe en ce moment dans les technologies web qui veulent passer à l'échelle. L'autre grande application abordée lors des cours Ocaml concerne la réduction des bugs et la preuve de programme dans l'industrie (peut-être un MOOC sur Coq ?). Bref, ça semble effectivement très alléchant, mais qu'en est-il au final ?

Après ces deux expériences, je crois que ma manière de programmer a assez changé sur plusieurs points :

  1. Je réfléchis beaucoup plus en terme de calcul de valeur que d'algorithme à mémoire de style impératif. Par exemple, je me surprends à utiliser plus (trop ?) souvent la forme ternaire x=[prédicat]?y:z en C plutôt qu'une forme où j'initialiserais une variable à une valeur inutile avant de l'affecter dans une structure if..then..else .
  2. Ces cours m'ont donné une plus grande aisance sur l'application mathématique de la récursivité en programmation. J'ai un faible particulier pour ce raisonnement en maths et en général, mais avec des difficultés à le porter en informatique. Bien sûr, ce n'est pas très utile car la plupart du temps, la récursion n'est pas simplifiée par les compilateurs, ce qui la rend parfaitement contre-indiquée. Mais bon, c'est une bonne aide à écrire en mode « diviser et conquérir »
  3. L'introduction des monades et de fonctions de haut ordre a été une révélation qui a vraiment servi dans l'utilisation quotidienne de python.
  4. Culturellement, c'est toujours bon d'avoir quelques nouveaux points de répères pour aborder des problèmes de programmation, et ça joue de manière inconsciente.

Je suis très satisfait de ces expériences et s'il venait à apparaître des MOOC en Haskell, Lisp ou Erlang, je me laisserais sûrement tenter.

No comments

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Del.icio.us
  • Digg
  • Facebook
  • Google
  • LinkedIn
  • StumbleUpon
  • Tumblr
  • Twitter




(optional field)
(optional field)
Remember personal info?
Small print: All html tags except <b> and <i> will be removed from your comment. You can make links by just typing the url or mail-address.