samedi 23 janvier 2016

Installation locale de nodejs et npm


Pour mes environnements de développement je suis un fan des environnements locaux
(perlbrew/plenv, virtualenv...) :
_  Pour séparer mon environement de développement du sytème
_  Pour se dispenser du sudo
_  Parce que ça donne une meilleur visibilité sur l'environnement de dev qui est ainsi mieux contenu/localisé.

C'est pourquoi comme je vais désormais utiliser assez souvent node et npm, je préfère le mode d'installation suivant à celle classique des paquets sur ma Debian.

# Installation des prérequis (optionnel)
sudo apt-get install build-essential curl

# Ajout d'un répertoire au PATH
mkdir ~/local
echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc

 # Installation de node via les sources
mkdir ~/node-install
cd ~/node-install


# Pour choisir la version (idéalement LTS)
# https://github.com/nodejs/LTS

curl http://nodejs.org/dist/latest-v4.x/
node-v4.5.0.tar.gz | tar xz --strip-components=1
./configure --prefix=~/local
make install
cd ..
rm -rf  ~/node-install

#Installation de npm
curl https://www.npmjs.com/install.sh | sh



Update (22/08/2016)Changement de node-latest.tar.gz vers la version LTS  v4.x (latest-v4.x/node-v4.5.0.tar.gz) car la version bleeding edge m'a causé trop d'incompatibilité.

Update (03/04/2017) : Ajout du lien vers la roadmap des versions avec les infos sur les LTS

jeudi 7 janvier 2016

Année de Javascript

Parmi mes résolutions de début d'année l'étude approfondie de Javascript et de son écosystème tient une place de choix.

Pourquoi Javascript ? Alors que Perl 6 est là ? Que des langages plus récents comme nimrod, go, rust ont vent en poupe ? Que des langages offrant d'autres paradigmes comme haskell, clojure seraient plus dépaysant ? Pourquoi Javascript en 2016 ?!?

Pour moi les principales raisons sont :
_ La souplesse du langage (je retrouve pas mal de choses que j'aime avec Perl)
_ L'asynchronisme dans son "adn"
_ La maturité de l'écosystème nodejs (npm !)
_ La possibilité d'utiliser le langage partout (serveur, navigateur, ligne de commande, embarqué...)
   (et pour *tous* les projets qui me trottent dans la tête)
_ Le moment me semble idéal  (ES6, Angular 2 béta, Année du singe ;-) )


J'ai déjà conscience que tout n'est pas rose (callbacks hell, le rythme de sortie et d'obsolescence des frameworks/libraries qui est dément...) et j'espère bien découvrir d'autres zones de frictions mais c'est décidé en 2016 tous mes projets persos se feront en Javascript.