Comment calculer la disposition de clavier idéale pour les programmeurs?

8

Je pense à créer une nouvelle disposition de clavier pour la programmation. Maintenant, je programme principalement en HTML, JavaScript / jQuery / CoffeeScript, CSS / LESS / SASS, bien que je puisse bientôt essayer les scripts shell et RegEx, avec peut-être LUA, C ++ et Java dans quelques années. Je veux avoir une preuve scientifique des placements de la clé. J'ai des idées / exigences, certaines m'ont inventé, certaines prises ou dérivées d'autres:

  • Presque toutes les clés peuvent être réorganisées
    • RETURN , Left SHIFT , Left CONTROL , SPACE-bar et TAB doivent rester, mais tous les autres, y compris les chiffres, les symboles et les touches de mouvement sont ouverts au déplacement
    • Cela pourrait être optimal pour laisser zxcv et peut-être s pour rester en place, en raison des habitudes courantes d'annulation / coupure / copie / collage / sauvegarde :)
    • SUPPRIMER la clé susceptible d'être déplacée à l'endroit où se trouve VERR MAJ :)
    • Il est peu probable que les parenthèses correspondantes comme () {} [] <> côte à côte soient conservées; voir ci-dessous
  • La seule façon précise à mon humble avis de compter l'utilisation des clés est l'enregistrement des clés, et non le nombre de clés des fichiers:
    • Une grande partie de la «programmation» consiste à envoyer des e-mails, à publier sur des forums, à Twitter, à signaler des bogues, à naviguer sur le Web, etc.
    • Je crois qu'une grande partie de l'utilisation du clavier est le «mouvement»; tabulation entre les champs, page suivante, déplacement des curseurs, etc. Ceux-ci ne sont pas capturés par les sorties de fichier
    • De nombreux éditeurs utilisent la saisie semi-automatique et les macros, donc les délimiteurs rapprochés:)}]> peuvent ne pas être aussi souvent tapés que les ouvreurs, donc seuls les fichiers de journalisation et non d'analyse des fichiers seront précis.

Alors mes questions:

  1. Quels sont les enregistreurs de frappe de logiciels libres / open source sûrs , qui ne téléchargeront pas de fichiers à moins que vous n'envoyiez vous-même un fichier séparé? Je préférerais NE PAS collecter les noms de connexion et les mots de passe, non seulement pour des raisons de sécurité, mais aussi parce que cela peut jeter de mon analyse à mon humble avis.
  2. Quels programmes peuvent être utilisés côté client pour digérer les décomptes de paires et de paires? Ou comment en construire un au mieux?
  3. Où est-il préférable de trouver des bénévoles pour aider?

Meilleures recherches à ce jour: http://www.michaelcapewell.com/projects/keyboard/layout_capewell.htm

http://viralintrospection.wordpress.com/category/technology/keyboard-layouts/

& Wikipedia: Keyboard_layout # Non-QWERTY_keyboards_for_Latin_scripts

TIA!

tomByrer
la source
Une question intéressante, mais permettez-moi de proposer la mienne: est-il préférable d'abandonner la disposition décalée des barres de chocolat que nous utilisons depuis des décennies pour quelque chose de complètement différent?
Ignacio Vazquez-Abrams
Voulez-vous dire Ignacio pour passer à une toute nouvelle disposition comme le clavier Contoured de Kinesis pour 300 $ US? Non, il suffit de remapper les clés des claviers bon marché existants que l'on peut trouver dans un magasin normal pour 5-20 $.
tomByrer
Si vous êtes habitué à un clavier QWERTY (ou autre) standard, il peut être plus efficace de simplement l'utiliser, plutôt que d'apprendre une nouvelle disposition. Surtout si vous utilisez régulièrement d'autres ordinateurs qui n'auront pas votre disposition personnalisée.
Bob
1
Soit dit en passant, pour que les gens reçoivent des réponses, vous devez les envoyer avec @tomByrer, par exemple!
slhck
2
Je soupçonne que la meilleure chose à faire serait de donner <>{}[](et d'autres clés qui nécessitent actuellement un décalage) leurs propres clés - je ne me considérerais pas vraiment comme un programmeur, mais je sais que c'est ce qui est le plus gênant lors de l'écriture de scripts bash.
evilsoup

Réponses:

2

Utilisez un programme comme WhatPulse pour enregistrer quelles touches sont frappées et combien de fois.

Après avoir demandé sur le réseau IRC FreeNode comment rassembler les fréquences clés, un utilisateur m'a conduit à ceci:

  1. Obtenez votre texte, tel qu'un programme, et copiez-les.
  2. Accédez à http://type.trmnl.org/
  3. Sous les boutons, assurez-vous de décocher «démarrage automatique avec le contenu du presse-papiers sur la pâte»
  4. Collez ensuite votre programme dans la zone de texte.
  5. Appuyez sur Cntrl + Maj + K, ce qui ouvrira une console.
  6. Tapez count_digraphs()et appuyez sur Entrée.

Les résultats sont lus comme ceci: ce "ar" 7 17 10 "ra"qui signifie que 'ar' a été pressé 7 fois, 'ra' a été pressé 10 fois, et tous ensemble 'ar' et 'ra' ont été pressés 17 fois ensemble

cutrightjm
la source
"Options supplémentaires: Gardez une trace des fréquences de frappe - Introduit dans WhatPulse version 1.7, cela vous permet de suivre le nombre de chaque touche sur laquelle vous avez appuyé." whatpulse.org/wiki/Program_Settings_Tab_2 Sweet, thaks @ekaj! Je vais aussi devoir y jeter un œil!
tomByrer
Je pense que c'est la meilleure solution jusqu'à présent, à moins d'un enregistreur de frappe plus intrusif. Être multiplateforme et sortie XML / HTML est une bénédiction. La seule chose qui manque est le support du bigramme / digramme (séquence de deux éléments adjacents). Raisonnement: en anglais, non seulement «il» et «e» sont communs ensemble, mais aussi dans de nombreux langages de programmation (comme C ++, JavaScript, CSS) « ; ENTER » sont très souvent tapés ensemble. Donc, s'il existe un clone WhatPulse qui permet cela, alors ce serait mieux. En attendant, je posterai une suggestion sur leur forum.
tomByrer
1
@tomBryer a essayé de mettre à jour la réponse pour vous, j'espère que cela aide .. et notez, je ne pouvais que le faire fonctionner dans FF, pas IE ou Chrome .. je ne sais pas pourquoi.
cutrightjm
Oui, cela est utile à plusieurs égards! Code source: "'Malheureusement, cette application ne fonctionne pas dans IE, essayez.'"; IE a parfois une syntaxe JS bizarre.
tomByrer
4

Les clés de déplacement dans les éditeurs sont le plus souvent adaptées pour s'adapter à une utilisation aussi efficace que possible de QWERTY, et elles devront donc certainement être remappées si vous changez la disposition des touches et souhaitez le placement optimal de tout ce que vous recherchez. Par exemple, dans Vim, les boutons HJKL sont utilisés pour une raison avec QWERTY, et devraient très probablement être remappés au même emplacement après la modification de la carte de touches.

Ce que je veux dire, c'est que cela ne vous aidera pas beaucoup à suivre les mouvements et à éditer les clés et à les utiliser comme base pour une nouvelle disposition, car elles sont facilement reconfigurables (dans n'importe quel éditeur qui en vaut la peine, et puisque nous parlons d'un programmeur). , nous parlons très probablement de Vim ou Emacs), ne devrait pas interférer avec le placement des clés littérales et a déjà été optimisé (encore une fois: nous ne parlons pas de Bloc-notes).

Vous essayez de résoudre un problème qui est un moyen inefficace de productivité , en particulier pour un programmeur , ** imho **. Il y aurait un effet beaucoup plus important en apprenant simplement plus sur les outils (encore une fois: probablement Vim / Emacs). Vous constaterez que de moins en moins de temps est réellement consacré à l'écriture de caractères lors de la programmation, et plus de temps (mais plus efficace) est consacré à l'auto-complétion, au marquage automatique, à l'indentation automatique, aux recherches de définition de fonction rapide, etc. pour faire tout cela sont déjà adaptés pour permettre l'efficacité, et le gros boost de vitesse vient simplement avec la familiarité. Ainsi, je soutiens qu'une disposition de clavier différente est tout aussi destructrice pour la productivité , car vous en avez déjà beaucoupannées d'exercice QWERTY. Si le même temps de formation analytique était consacré à QWERTY que les personnes qui changent de disposition passent sur Dvorak, ils remarqueraient également une augmentation de la vitesse. La vitesse s'accompagne d'une formation explicite.

Si vous étiez rédacteur / traducteur / auteur / etc., quelqu'un qui passe réellement son temps à travailler avec la signification littérale des touches, alors une disposition différente pourrait être utile. Pour un programmeur, la meilleure astuce est généralement d'obtenir au moins une disposition de clavier en anglais, car les idiomes de programmation ont été façonnés par ceux-ci et leur placement de clé (sur ma disposition de clé locale, @$[]{}~sont tous derrière AltGr qui est assez sous-optimal).

tldr: Dvorak / Colemak / [la prochaine "meilleure chose depuis le pain en tranches"] (sans doute) ne résout un problème que pour ceux qui saisissent beaucoup de texte fluide dans une langue spécifique (le plus souvent l'anglais). Pour la programmation, les clés nécessaires n'ont pas été soumises à la même restriction que le langage littéral, et donc il a déjà été optimisé pour son objectif (qui n'est pas seulement "écrire aussi vite que possible"; il s'appuie davantage sur des opérations logiques. Voir Vigueur). Je crois que le temps consacré à l'apprentissage de mises en page alternatives et la confusion qui se produit très souvent à maintes reprises ne vaut certainement pas l'effort dans la plupart des cas (pas seulement votre propre confusion; d'autres qui s'asseyent au même terminal que vous avez utilisé pour la dernière fois jetteront choses à vous), y compris beaucoup du programmeur.

Daniel Andersson
la source
Merci @ Daniel-Andersson pour vos idées sur Vim; il est utile de peser que certains éditeurs autorisent le remappage des touches de mouvement! Je dois en savoir plus sur mes outils. Cependant, je fais beaucoup d'édition avec de nombreux outils; éditeurs et zones de texte en ligne: forums (comme ici;), gists, jsFiddle, GMail, Facebook, Twitter (ne devrait pas @ être une touche de fermeture sans décalage?) ... et d'autres éditeurs comme Inkscape, SynthMaker, Live, etc. J'aimerais unifier autant que possible mes raccourcis via le mappage de touches, puis aller plus loin via app-configs :)
tomByrer