Le dvorak et la langue, prise deux3 min read

Troisième prise! Suite à mon billet précédent sur le dvorak français (et l’incroyable dilemme qui résulte de ses différentes versions) vs dvorak canadien, j’ai publié hier le deuxième numéro du Psy-chose.
Dans cette parution se trouve un article que j’ai rédigé à propos du dvorak, qui résume en quelque sorte (je crois) le contenu de mes deux billets précédents sur ce blog.
Sauf que, pour cet article j’ai décidé de m’amuser à concevoir un petit programme pour comparer (de façon très barbare) les trois claviers: qwerty, dvorak canadien français, dvorak français BÉPO. Mon seul point de comparaison est le nombre de touches d’un texte en français courant qui se trouvent sur la «home row» (ligne de repos, où les doigts sont normalement positionnés).
Dans l’article du journal, je n’ai utilisé que mon article comme «échantillon». Je viens alors de refaire mon benchmark, cette fois en utilisant l’intégralité du numéro 2 du Psy-chose, ce qui fait un peu plus de trente-cinq mille caractères. Voici mon résultat:
benchmark de la home row des dvorak
Je vous copie-colle l’interprétation que j’avais incluse dans mon article: En somme, 50% des lettres que j’ai tapées dans cet article étaient directement en-dessous de mes doigts. Comparons cela à un clavier «qwerty» traditionnel: j’aurais passé 80% de mon temps à déplacer mes doigts dans toutes les directions imaginables. Ça fait plus de [28 000] caractères à taper en sortant de la rangée où reposent les doigts. Choquant, n’est-ce pas? Finalement, en comparant mon dvorak canadien (basé sur le dvorak anglais) au dvorak français le plus récent (BÉPO), on note environ [3%] de différence (bien sûr, il y a d’autres facteurs à considérer), ce qui confirme du moins partiellement mon hypothèse selon laquelle on n’a pas vraiment à se casser la tête avec les multitudes d’agencements «optimisés pour le français».
Pour les intéressés, le code source de mon logiciel va comme suit:
#!/usr/bin/python
# -*- coding: UTF8 -*-
# calcul dvorak
# Copyright (c) 2008, Jean-François Fortin Tam
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
home_row = ["a","o","e","u","i","d","h","t","n","s"]
bepo_home_row = ["a","u","i","e","?",",","c","t","s","n","r", "m"]
qwerty_home_row = ["a","s","d","f","g","h","j","k","l"]
texte = """blah blah blah
ajoutez ce que vous voulez
"""
letters_total = 0
letters_homerow = 0
letters_qwerty_homerow = 0
letters_bepo_homerow = 0
for letter in texte:

letters_total +=1
if letter in home_row: letters_homerow +=1
if letter in qwerty_home_row: letters_qwerty_homerow +=1
if letter in bepo_home_row: letters_bepo_homerow +=1

print "Nombre de caractères au total: ", letters_total
print "Nombre de lettres sur la ligne de repos..."
print "\tDvorak (aoeuidhtns):", letters_homerow, "(", (float(letters_homerow) / float(letters_total) * 100), "%)"
print "\tqwerty (asdfghjkl):", letters_qwerty_homerow, "(", (float(letters_qwerty_homerow) / float(letters_total) * 100), "%)"
print "\tDvorak BÉPO (auie?,ctsnrm):", letters_bepo_homerow, "(", (float(letters_bepo_homerow) / float(letters_total) * 100), "%)"