Les technologies qui peuvent vraiment changer votre vie (de dev !)

Bonjour, depuis plusieurs années je prêche régulièrement pour l’usage de technologies que je trouve très intéressantes et totalement sous exploitées : Moteurs de règles/système experts, langages distribués (ex: erlang), DSL (qui deviennent plus courants).

Selon mon expérience, le temps passé à apprendre ces technos peut véritablement vous faire gagner des centaines/millier d’heures ou vous donner une approche résolument différente de certains problèmes.

Quelles sont les technos dont vous pensez qu’elles peuvent vraiment changer la vie des autres dev ?

Un petit topo sur chaque techno est la bienvenue. Je vous en prépare un sous peu mais vous pouvez inaugurer cela avant moi !

1 « J'aime »

Je pensais Erlang moins puissant que la suite Hadoop.

Concernant les moteurs de règles c’est vraiment génial, si on pense à la même chose (ex: prolog, datalog, sql…). Je ne sais pas encore (hormis quelques petites idées) pourquoi je trouve l’approche interessante. Cela étant pour le peu de “règles” que j’ai écrit, c’était regulièrement plus facile à lire, mais demande une logique differente de celle utilisé dans les langages impératifs.

De même pour les DSL, j’aimerai bien approfondire le sujet. Mes lectures et mes aspiration tendent à soutenir des DSL graphique et pas du tout les DSL “à taper”, même si letuce est très pratique. Je préfére le Python, latex et Scheme pour le reste.

Je pense que vim est un must know, quelque soit la machine unix que vous utiliserez, il y a vim dessus et savoir l’utiliser efficacement est un bon conseil que je donnerais à n’importe qui.

Pour le réseau, disons nmap, netcat, python et curl sont des must.

Pour le développeur java, un ptit tour du côté de Groovy serait AMHA une bonne idée.

Vagrant pour faire des VM, SourceTree pour save ses données sur GIT, Sublime Text 3 pour avoir un éditeur de text super personnalisé et très complet.

Après avoir un disque dur dédié au travail simplifie également la vie, c’est mieux que d’avoir tout en vrac dans un même dossier au milieu des jeux, logiciels, documents, etc. n’ayant rien à voir avec le travail.

Enfin en PHP, l’usage de CMS/Frameworks.

@amirouche Je ne crois pas qu’on puisse vraiment comparer erlang et Hadoop.

Pour les dev, je pense que les compilateurs vont vraiment plus loin qu’avant et que ca va beaucoup aider pour la suite. Il n’y a qu’a voir ce qui est fait sur haskell, rust et dans une moindre mesure ocaml par exemple. Et pourtant haskell et ocaml sont loin d’être jeunes.

L’utilisation de DSL de haut niveau comme évoqué sur http://scattered-thoughts.net/blog/2012/12/02/hacker-school/

Sur le web, des framworks comme ocsigen peuvent potentiellement beaucoup aider aussi. Beaucoup plus de garanties statiques. Si on bascule effectivement sur un monde du tout web (ce que beaucoup de gens prédisaient avant que les smartphone poussent en fait un monde de l’application), avec des garanties statique sera nécessaire.

Toujours plus de cloud, mais avec des unikernels (Voir mirageOS). Docker n’est pas une solution mais un problème de plus.

Les libs qui permettent de ne pas faire tout ce qui est réseau vraiment a la main, je pense a ømq par exemple.

L’integration continue.

Le clavier orthogonal ! Comme le typematrix. C’est vieux, mais trop peu de personnes le teste alors que c’est vraiment un gain de confort énorme.

Pas vraiment une techno, mais le self quantified est un sujet intéressant qui peut surement faire gagner beaucoup de temps.

Je ne crois pas a la revolution sur les éditeurs de texte. Si emacs et vim sont encore très utilises, ce n’est pas juste par habitude.

1 « J'aime »

Git , Vagrant & Docker what else!

Git a été une petite révolution dans mon apprentissage (au delà de l’utilité, il y a aussi la fierté de voir une requête ajoutée à un projet et la motivation de participer a un projet (généralement) libre).
L’usage des langages fortement (je n’aime pas ce terme, mais bon) typés pour me servir des types pour diriger mon implémentation. (Ce que font à peu près les langages objets, mais avec une autre terminologie).
L’utilisation de Emacs qui me permet d’avoir un environnement de développement sain, personnalisable et réactif (et le niveau de confort d’utilisation prend un gros plus, quand on développe en OCaml et que l’on greffe Merlin au Tuareg Mode).
Niveau système d’exploitation (mais je ne suis pas sur que ça entre dans l’axe technologique), l’usage de ArchLinux + Xmonad a été vraiment une petite avancée, j’aime sa customisation aisée, le fait d’apprendre à comprendre l’enjeu des mises à jours.

Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s