Le blog perso de Sam

Parce-que je le vaux bien

Mercredi

11/10/2006

Ruby in the sky with diamonds

Le jeu de piste des liens entres blogs et news m’a amené à prendre connaissance de cet indicateur selon lequel Ruby serait grosso-modo le treizième langage du moment. Je vous laisse découvrir dans l’introduction ce que cette notion signifie.

Logo Ruby

Il est intéressant de constater la progression de Ruby dans ce classement, qui semble avoir multiplié par 3 à 4 son score en un an. A cette époque je n’avais moi-même jamais entendu parler de ce langage.

Nul doute que Rails y soit pour quelque chose, mais pour m’intéresser à Ruby indépendamment de RoR, je peux vous affirmer que ce langage mérite d’être connu et utilisé dans d’autres contextes que du développement web.

Il reste encore une grosse marge de progression, et il faudra du temps pour atteindre le niveau de Python dans ce classement, et plus encore pour concurrencer PHP sur son terrain. Mais le dynamisme de la communauté Ruby en général et les améliorations qu’apporterons les futures versions laissent penser que cela n’a rien d’impossible.

Ruby est un langage objet, dynamique, réputé très lisible (à raison). Ruby est également libre. Si des développeurs expérimentés peuvent réaliser des outils riches et complexes, il est également un langage très adapté à l’apprentissage de la programmation en générale, objet en particulier.

Pour ceux qui souhaitent en savoir plus :

Mercredi

11/10/2006

=== et commutativité

Récemment j’ai perdu pas mal de temps sur une broutille en Ruby. J’étais en train d’écrire un petit programme utilisant la très pratique bibliothèque DBF, et je souhaitais gérer différents cas selon le type des champs. Chaque valeur d’un champs étant une instance d’une classe adaptée, j’ai rapidement pensé à utiliser case/when. Comme je débute, je démarre irb, je teste bêtement l’opérateur === et … ça ne fonctionne pas. Mince alors ! J’ai cherché dans les docs, google, …

Finalement tout est rentré dans l’ordre, je me suis posé la bonne question, mais n’ai pas fait le bon test : l’opérateur === n’est pas commutatif ! D’ailleurs ce n’est pas un opérateur, mais une méthode, pour être précis. Une fois que l’on a compris cela parait si simple, un truc idiot de débutant… (non pas en Ruby, mais en informatique). Mais voilà, ça arrive, surtout pour ceux qui ne sont pas réveillés au moment de se poser les bonnes questions ;)

Concrètement, lorsque ce code est utilisé (note aux blondes : ce n’est pas du basic, les numéros de lignes sont là pour faire joli) :

1	case mon_instance
2 		when String	: puts "chaine"
3		when Date	: puts "date"
4		else puts "autre chose"
5	end

Il faut bien comprendre que ce qui est exécuté est similaire à String===mon_instance , et non l’inverse. Exemple avec irb :

>> a=String.new
=> ""
>> a === String
=> false
>> String === a
=> true

C’est aussi simple que ça. Mais c’est mieux quand on y pense :)

Mardi

03/10/2006

Listes électorales

Logo-Service-PublicEn 2007, auront lieu les élections présidentielles françaises. Le suffrage est un élement fondamental de notre démocratie. On peut critiquer à volontée les institutions, les partis, hommes et femmes politiques, mais il faut aussi savoir prendre ses responsabilités.

En 2002 nous avons vu que des surprises (très désagréables) peuvent survenir. Le FN au second tour, rares devaient être ceux qui l’avaient envisagé sérieusement. Et pourtant c’est arrivé. Au final il n’y a pas eu de réel choix au second tour pour de très nombreux électeurs.

Alors n’oubliez pas, pour voter en 2007, il faut s’inscrire sur les listes électorables avant la fin de l’année 2006. C’est simple, et totalement indolore (si si). Pour plus d’informations, c’est ici que ça se passe : http://vosdroits.service-public.fr/particuliers/N362.xhtml

Voter c’est agir. Ne pas voter c’est subir.