
L'actu sur Geek Arlier.com
Comme vous le savez, j'aime les trolls gentillets que l'on s'échange sur les forums ou sur Twitter. Je suis loin d'être le dernier a user de mauvaise foi pour défendre un langage ou une technologie que j'apprécie ... il faut avouer que dans le domaine de l'informatique, c'est presque un art !
Une question me taraude toutefois : Dans ce genre de discussions, on parle souvent de
"mauvais langage de programmation" ... Mais qu'est-ce à dire, au juste

?
Qu'est-ce qui définit un mauvais langage de programmation ? Son manque de portabilité ? Sa syntaxe austère ? Son manque de polyvalence ?
Plus généralement, je crois qu'on associe l'idée de
"bons langages" en fonction de ceux que l'on connait : L'inconnu fait peur, et on aura naturellement tendance à déprécier ce qui sort de notre champ de connaissances,
du moins dans un premier temps 
.
Je suis tombé l'autre jour sur ce schéma de la
"Hiérarchie des programmeurs" (via @HTeuMeuLeu), basé sur la perception que pourraient avoir les développeurs les uns vis à vis des autres, en fonction de leur langage de prédilection.
S'il n'y a rien de sérieux dans ce diagramme, je crois que l'appréciation générale de
"Langage de merde" est implicitement lié à un
concours de quequete dont nous sommes tous acteurs, souvent à notre insu

.
Ainsi, ceux qui étalonnent la qualité d'un langage en fonction de la
"hauteur" de son niveau
(en quelque sorte, sa "distance" par rapport au fonctionnement direct de la machine) seront naturellement plus enclins à considérer des langages plus
"humains" (haut niveau) comme étant moins bons. Les utilisateurs de langages
"haut niveau", quant à eux, auront tendance à considérer les langages plus proche de la machine comme un outil de néandertaliens tentant d'inventer la roue à chaque programme

.
Si on ajoute à ceci la guerre des paradigmes et les guerres entre langages aux possibilités et caractéristiques similaires, nous obtenons un nombre de trolls possibles assez extraordinaire !
Quant à moi, sur ces bonnes paroles, il est évident que je continuerais à dire que
"C# c'est tout pourri parce que c'est du KroSoft !", que
"C++, c'est quand même un très grand langage" ou encore que
"ce n'est pas parce que la bibliothèque standard de PHP est en pagaille que c'est un mauvais langage" : Nous continuerons
tous à troller bien tranquillement, et c'est
très bien comme ça 
!
La programmation n'est pas qu'une affaire de machines, mais aussi et surtout une affaire d'humains, avec tout ce que ça implique de mauvaise foi

.
Voila un peu moins d'un an désormais que
Mi-Ni.Me est en service,
et je suis particulièrement ravi de voir que de plus en plus de personnes utilisent au quotidient mon petit réducteur de liens

.
J'ai entrepris une série de travaux assez conséquents sur le site, j'espère que vous apprécierez cette version 1.5,avec au programme :

Une toute nouvelle interface utilisateur, dynamique gràce a
Ajax

La possibilité de dévoiler une url Mi-Ni.Me avant d'y accéder

La possibilité d'accéder aux statistiques de ses liens grâce à un mot de passe (sans inscription)

Une api ouverte à tous

Un moteur de recherche de liens promus amélioré
Je vous laisse découvrir tout ça sur
Mi-Ni.Me, pensez à vider votre cache si nécessaire, et à bien lire les instructions pour les nouvelles fonctionnalités

.
Pensez également à mettre à jour votre
bookmarklet pour ceux qui utlisent cet outil
(il se trouve dans Api et Outils).
N'hésitez pas à me signaler tout bug que vous pourriez rencontrer, et à me faire part de vos impressions

.
A toute !
IMPORTANT : Si vous avez mis à jour votre bookmarklet avant 17h30 et que vous avez des problèmes sous Firefox, mettez le de nouveau à jour

le problème est résolu.
PS : Voici ce à quoi devrait ressembler le site sous tous les vrais navigateurs ( sauf IE donc

)
Screenshot
Disons le tout de suite, cet article sera un peu plus
"ciblé" que les autres : Je comprends tout à fait que bon nombre d'entre vous ne soient en aucun cas intéressé par la programmation, nonobstant, il me fallait vous parler du langage
Ruby.
En effet, il y a quelques semaines, j'ai entrepris d'apprendre ce langage qui m'avait plus ou moins tapé dans l'oeil : On me l'avait décris comme original, puissant, polyvalent, booster de productivité et grand allié du développement web, j'ai voulu vérifier par moi même

.
Note : Je ne parlerais pas dans cet article du célèbre framework web
Ruby On Rails, pour la simple et bonne raison que c'est habituellement la seule chose dont on parle lorsqu'on évoque
Ruby.
L'apprentissage
Langage libre apparu en
1995,
Ruby nous viens du
Japon ou il fut crée par
Yukihiro Matsumoto.
Il se démocratisa dans le courant des années 2000 avec l'apparition du framework web
Ruby On Rails.
Enfin ... démocratisé reste un bien grand mot : Il est bien plus difficile de trouver de grand tutoriels de qualité sur le net pour
Ruby que pour
Python (par exemple), un autre grand langage interprété, et ce, alors que
Ruby est situé au
12eme rang des langages les plus populaires.
Face à cette pénurie, j'ai décidé de me procurer
ce livre français relativement mauvais
(je vous en reparlerais plus loin
) pour appuyer mes recherches.
Comme je l'indiquais,
Ruby est donc un
langage interprété, multi-plateforme, multi-paradigme mais très fortement
orienté objet : Tout est objet, même les entiers, et les opérateurs ne sont rien d'autre que des méthodes de classe.
Depuis la version
1.9.x du langage, l'interpréteur a pris du coffre et on note une très nette amélioration des performances.
Ruby est un langage polyvalent : Applications console, graphiques, web, 3D, rien ne lui fait vraiment peur

. Sa très complète librairie standard ainsi que son système de gestion d'extensions
Gem en font un outil complet.
Ce langage est plutôt
"haut niveau", et son apprentissage assez facile et rapide. Sa syntaxe originale est cependant parfois un peu difficile à appréhender lorsqu'on est habitué aux langages dont la syntaxe dérive du C
(C++, Php, Javascript, Java ect...).
Il est tout à fait accessible aux débutants, bien que pour ma part je recommande plutôt de commencer avec un langage plus
"commun" et surtout beaucoup plus documenté
(mais la n'est pas la question
).
En parlant de
documentation, celle-ci est loin d'être exemplaire : Générée automatiquement au build de la dernière version de
Ruby (avec le très pratique RDoc), celle-ci se révèle être particulièrement lacunaire et difficile d'accès.
Mauvais point donc, qui ne participe pas à la démocratisation du langage.
Mais il serait vraiment dommage de s'arrêter à ça

.
La pratique
En pratique,
Ruby pourrait porter le même slogan que le framework Javascript jQuery
"Code less, Do More" : L'aspect
"tout objet", couplé à un syntaxe logique, élégante et efficace
(qui peut déplaire, c'est aussi une question de goût), aident à mieux coder, plus vite et plus efficacement.
Il faut certes un temps d'adaptation un peu plus important pour devenir vraiment efficace que pour un langage à la syntaxe
"C-Like", mais, à mon sens, le jeu en vaut clairement la chandelle.
Il s'agit d'un langage dit
"moderne" dans le sens ou il comporte nombre d'outils désormais considérés comme incontournables : Ramasse-miettes, génération automatique de documentation, bibliothèque standard très fournie, ect ...
Plus original, on notera l'intégration des
expressions régulières à la syntaxe même du langage ! Ce qui permet, encore une fois, d'augmenter radicalement sa productivité et de produire un code élégant et lisible.
Pour ce qui est des
"bémols", en dehors du manque de documentation, coté développement web, on notera que l'installation de
mod_ruby pour Apache ne peut pas se faire sur tous les serveurs
(Je n'ai, par exemple, vu aucun serveur mutualisé offrir cette possibilité).
Mon hébergeur actuel,
Gandi, propose l'installation automatisée de
mod_ruby et mod_rails sur ses offres d'hébergement cloud.
En bref ...
J'ai beaucoup aimé apprendre ce langage. Sa singularité et son efficacité m'ont séduit. Sa polyvalence en fera très certainement un de mes langage de prédilection dans un futur proche.
Quant à la comparaison que beaucoup s'amusent à faire entre
Ruby et Python (source incommensurable de trolls en tout genre), je pense qu'elle n'a pas lieu d'être : Il s'agit de langages singuliers, aux possibilité équivalentes. Le reste, c'est une question de goût

.
J'espère vous avoir donné envie de l'essayer

. Notez bien que je n'ai traité que très peu d'aspects du langage dans cet article, faute de place et de temps, mais aussi parce que je n'en connait certainement pas encore toutes les subtilités

.
Annexe : Mon support d'apprentissage
Comme je l'indiquais plus haut, j'ai acheté
ce livre français, s'adressant surtout à des personnes connaissant déjà la programmation, pour m'aider dans mon initiation.
Si le cours tiens relativement bien la route, les coquilles sont nombreuses, surtout dans les exercices !
Ainsi, on se retrouve avec des exercices tout bonnement infaisable, contenant des choses du style
" i += >2 " (p60), ce qui ne veut strictement rien dire ...
Malgré ces évidents défaut, je ne peux pas vous encourager à l'éviter, dans le sens ou il est tout de même relativement complet, entièrement en français et que les tutoriels pour
Ruby de cette envergure manquent sur le net.
Pour mettre le pied à l'étrier, ce
tutoriel du SDZ est assez bien fichu

.
Enjoy !
On parle de plus en plus de
Valve et de son service de jeux dématérialisés
Steam : Nouvelles fonctionalités par ci, portage
Mac et bientôt
Linux par là ... La firme fait cette fois le buzz avec
Alien Swarm, un jeu de
shoot d'Aliens vu de dessus, jouable
jusqu'à 4 joueurs en
coopération, mais surtout
GRATUIT.
L'opération promo que tente de réaliser
Valve en sortant un titre exclusif et gratuit est évidente. Mais que vaut vraiment le jeu une fois téléchargé ?
Un jeu old school dans un écrin (presque) neuf
Largués au beau milieu d'Aliens en tout genre, les marines que vous incarnez dans
Alien Swarm doivent se débrouiller pour accomplir des taches somme toutes assez simple
(Récupération d'informations, ouverture de portes blindées) tout en explosant joyeusement de la bestiolle au sang vert ... Oui, le scénario du jeu est particulièrement original

.
Plusieurs
"classes" de personnages sont disponibles, comme par exemple les
infirmiers ou
ingénieurs qui se révéleront être nécéssaire à l'execution de certaines missions
(hack de portes, ect...).
L'action est prennante, le mode multijoueur est bien conçu, le gameplay
"vu de dessus" est agréable, les armes et bonus nombreux, la difficulté bien reglée et le système de "rôles" assez intéressant ... Bref, ce jeu est une réussite

.
Le titre semble reposer, comme la grande majorité des jeux
Valve, sur le moteur
Source, qui offre des graphismes très corrects et des effets convaincants sans mettre à genoux votre configuration.
Défaut principal : La durée de vie. Le titre ne propose pour l'instant qu'une poignée de missions, qui, bien que très réussies et proposant parfois un réel défi, risquent de laisser sur leur faim un grand nombre de joueurs.
Pour l'avenir du titre et de sa durée de vie, plusieurs options : Soit
Valve a prévu la sortie ponctuelle de nouvelles campagnes gratuites pour attirer l'attention
(sorte d'appât), soit
Alien Swarm deviendra une foire au micro paiement : Missions suplémentaires, équipements bonus et classes particulières sont autant d'éléments qui se prêtent parfaitement bien à cet exercice.
Toujours est-il qu'
Alien Swarm est un jeu qui m'a séduit par sa simplicité, son action brute, sa mise en scène parfois redoutable et son gameplay très old school.
Steam a potentielement déclenché une arme de séduction massive en lançant un jeu gratuit au concept simple qui séduira le plus grand nombre.
Je ne suis pour autant pas convaincu que le jeu déclenchera un phénomène d'addiction aussi fort que
Counter Strike ou
Left 4 Dead : On en fait tout de même vite le tour !
Verdict : Testé et approuvé, idéal dans une petite soirée LAN. Ne pas oublier les chips.
Aaahh
IRC ... Lorsqu'on évoque ce protocole de
"tchat", nombreux sont les souvenirs qui ressurgissent pour les geeks ...
Pas que des bons, certes
(n'oublions pas que le boom d'iRC, c'est aussi la grande époque du 56K, des serveurs de Tchat Voila.fr et Caramail
), mais ça reste
mythique.
Le protocole est toujours utilisé, bien qu'il n'ait plus l'aura de sa jeunesse ... Pour les nostalgiques de cette époque, et pour tout ceux qui
(comme moi) ont parfois tendance à confondre la timeline de
Twitter avec un
channel IRC,
@un_geek à crée
V.NF, un serveur
IRC "comme au bon vieux temps" pour la
Twittosphère Francophone.
Le site propose une interface de connexion via le navigateur en plus de l'accès classique via un client
iRC, il est possible de créer son propre
channel, d'enregistrer son pseudo et même de s'enregistrer avec son compte
Twitter.
V.NF fonctionne comme un serveur
iRC classique : Les commandes
/me, /join, /nick et compagnie fonctionnent parfaitement.
Son auteur a réalisé un
petit guide de mise en route pour ceux qui n'auraient jamais utilisé
iRC.
C'est l'occasion de papoter sans flooder sa timeline, et surtout, de se retrouver entre Twitterers quand les serveurs du service de micro-blogging flanchent
(Ce qui arrive bien trop souvent) ...