Como calcular o layout de teclado ideal para programadores?

8

Estou pensando em criar um novo layout de teclado para programação. Agora, eu programa principalmente em HTML, JavaScript / jQuery / CoffeeScript, CSS / LESS / SASS, embora eu possa se interessar por scripts de shell e RegEx em breve, talvez com LUA, C ++ e Java em alguns anos. Quero ter provas científicas das colocações da chave. Tenho idéias / requisitos, alguns me inventaram, outros foram tirados ou derivados de outros:

  • Quase todas as chaves podem ser reorganizadas
    • RETURN , SHIFT esquerdo , CONTROL esquerdo , barra de espaço e TAB precisam permanecer, mas todos os outros, incluindo números, símbolos e teclas de movimento, estão abertos para movimentação
    • Pode ser ideal deixar zxcv e talvez s para permanecer no lugar, devido aos hábitos comuns de Desfazer / Cortar / Copiar / Colar / Salvar / Salvar :)
    • Chave DELETE que provavelmente será movida para onde CAPS LOCK está :)
    • É improvável que você mantenha colchetes correspondentes como () {} [] <> próximos um do outro; ver abaixo
  • A única maneira precisa do IMHO de contar o uso de chaves é por meio do registro de chaves, e não da contagem de arquivos:
    • Grande parte da "programação" está enviando e-mails, postando em fóruns, twitter, relatórios de bugs, navegação na web etc.
    • Eu acredito que grande parte do uso do teclado é "movimento"; tabulação entre campos, página para baixo, movimentação de cursores etc. Isso não é capturado pelas saídas do arquivo
    • Muitos editores usam macros e preenchimento automático: portanto, os delimitadores próximos:)}]> podem não ser tão freqüentemente digitados quanto os abridores; portanto, apenas os registros de chaves e os arquivos de análise não são precisos.

Então, minhas perguntas:

  1. O que são keyloggers de software seguro / de código aberto, que não carregam arquivos, a menos que você mesmo envie um arquivo separado? Eu preferiria NÃO coletar nomes e senhas de logon, não apenas por segurança, mas também porque isso pode gerar o IMHO da minha análise.
  2. Quais programas podem ser usados ​​no lado do cliente para digerir contagens de chaves únicas e emparelhadas? Ou como melhor construir um?
  3. Onde é melhor encontrar voluntários para ajudar?

Melhor pesquisa até agora: 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
fonte
Uma pergunta interessante, mas deixe-me propor uma de minha autoria: é melhor abandonarmos o layout escalonado de barras de chocolate que usamos há décadas para algo completamente diferente?
Ignacio Vazquez-Abrams
Você quer que Ignacio mude para um novo layout como o teclado Kinesis 'Contoured por US $ 300? Não, basta remapear as teclas dos teclados baratos existentes em uma loja normal por US $ 5 a 20.
tomByrer
Se você está acostumado a um teclado QWERTY (ou outro) padrão, pode ser mais eficiente usá-lo, em vez de aprender um novo layout. Especialmente se você usar outros computadores, que não terão seu layout personalizado, regularmente.
11004 Bob
11
A propósito, para que as pessoas recebam respostas, você precisa fazer ping delas com @tomByrer, por exemplo!
slhck
2
Eu suspeito que a melhor coisa a fazer seria dar <>{}[](e outras chaves que atualmente exigem mudança) suas próprias chaves - eu realmente não me consideraria um programador, mas sei que é o que é mais irritante ao escrever scripts bash.
Evilsoup 28/05

Respostas:

2

Use um programa como o WhatPulse para registrar quais teclas são pressionadas e quantas vezes.

Depois de perguntar na rede FreeNode IRC sobre como reunir as principais frequências, um usuário me levou a isso:

  1. Obtenha seu texto, como um programa, e copie-o.
  2. Vá para http://type.trmnl.org/
  3. Sob os botões, desmarque a opção 'iniciar automaticamente com o conteúdo da área de transferência ao colar'
  4. Em seguida, cole seu programa na caixa de texto.
  5. Pressione Cntrl + Shift + K, que abrirá um console.
  6. Digite count_digraphs()e pressione Enter.

Os resultados são lidos assim: o "ar" 7 17 10 "ra"que significa que 'ar' foi pressionado 7 vezes, 'ra' foi pressionado 10 vezes e todos juntos 'ar' e 'ra' foram pressionados 17 vezes juntos

cutrightjm
fonte
"Opções extras: mantenha o registro das frequências de pressionamento de tecla - introduzido na versão 1.7 do WhatPulse, isso permite que você acompanhe quantas teclas foram pressionadas." whatpulse.org/wiki/Program_Settings_Tab_2 Doce, isso é @ekaj! Eu também vou dar uma olhada!
TomByrer 11/04/12
Eu acho que esta é a melhor solução até agora, menos um keyloger mais intrusivo. Ser multiplataforma e saída XML / HTML é uma bênção. A única coisa que falta é o suporte para bigram / digram (sequência de dois elementos adjacentes). Raciocínio: em Inglês, não só é 'ele' e 'th' juntos comum, mas também em muitas linguagens de programação (como C ++, JavaScript, CSS) ' ; ENTER ' são muito frequentemente digitado juntos. Portanto, se houver um clone do WhatPulse que permita isso, seria melhor. Enquanto isso, vou postar uma sugestão no fórum deles.
tomByrer
11
A @tomBryer tentou atualizar a resposta para você, espero que ajude .. e observe, eu só consegui fazê-la funcionar no FF, não no IE ou no Chrome .. não sei por quê.
precisa saber é o seguinte
Sim, isso é útil de algumas maneiras! Código fonte: "'Infelizmente, este aplicativo não funciona no IE, sry.'"; O IE tem uma sintaxe JS estranha às vezes.
tomByrer
4

As teclas para movimento nos editores são mais frequentemente adaptadas para se adaptarem ao uso mais eficiente possível com o QWERTY, e certamente precisarão ser remapeadas se você alterar o layout das teclas e desejar o posicionamento ideal de tudo o que se esforça. Por exemplo, no Vim, os botões HJKL são usados ​​por um motivo com o QWERTY e provavelmente precisam ser remapeados novamente para o mesmo local após a modificação do mapa de teclas.

O que quero dizer é que não ajudará muito a rastrear as teclas de movimento e edição e usá-las como base para um novo layout, pois elas são facilmente reconfiguráveis (em qualquer editor que vale a pena, e já que estamos falando sobre a programação de um programador). layout, provavelmente estamos falando do Vim ou do Emacs), não deve interferir no posicionamento das chaves literais e já foram otimizadas (novamente: não estamos falando do bloco de notas).

Você está tentando resolver um problema que é uma maneira ineficiente de produtividade , especialmente para um programador , ** imho **. Haveria um efeito muito maior em simplesmente aprender mais sobre as ferramentas (mais uma vez: provavelmente Vim / Emacs). Você descobrirá que cada vez menos tempo é gasto na criação de caracteres na programação e mais (mas mais eficiente) é gasto na conclusão automática, marcação automática, recuo automático, pesquisas rápidas de definição de função, etc. As teclas para fazer tudo isso já estão adaptados para permitir eficiência, e o grande aumento de velocidade vem simplesmente com a familiaridade. Por isso, argumento que um layout de teclado diferente é comparativamente destrutivo para a produtividade , já que você já tem muitosanos de exercício QWERTY. Se o mesmo tempo de treinamento analítico fosse gasto no QWERTY que as pessoas que trocam de layout gastam em Dvorak, elas também notariam um aumento de velocidade. A velocidade vem com treinamento explícito.

Se você era um redator / tradutor / autor / etc., Alguém que realmente gasta seu tempo trabalhando com o significado literal das teclas, um layout diferente pode ajudar. Para um programador, a melhor dica é geralmente obter pelo menos um layout de teclado em inglês, pois os idiomas de programação foram modelados por eles e pelo posicionamento das teclas (no layout de teclas local, @$[]{}~todos estão atrás do AltGr, o que é bastante insatisfatório).

tldr: Dvorak / Colemak / [a próxima "melhor coisa desde pão fatiado"] (sem dúvida) resolve um problema apenas para aqueles que inserem muito texto corrido em um idioma específico (geralmente inglês). Para programação, as chaves necessárias não foram sujeitas à mesma restrição que a linguagem literal e, portanto, já foram otimizadas para sua finalidade (que não é apenas "escreva o mais rápido que puder"; ela se baseia mais em operações lógicas. Vim). Acredito que o tempo gasto na aprendizagem de layouts alternativos e a confusão que certamente ocorre repetidas vezes não valem o esforço na maioria dos casos (não apenas a sua própria confusão; outros que se sentam no mesmo terminal que você usou pela última vez jogam coisas para você), incluindo muito o programador.

Daniel Andersson
fonte
Obrigado @ Daniel-Andersson por suas idéias sobre o Vim; é útil considerar que alguns editores permitem remapeamento das teclas de movimento! Eu tenho que aprender mais sobre minhas ferramentas. No entanto, eu faço muita edição com muitas ferramentas; editores on-line e caixas de texto: fóruns (como aqui;), gists, jsFiddle, GMail, Facebook, Twitter (não deve ser uma tecla para fechar sem mudar de turno?) ... e outros editores como Inkscape, SynthMaker, Live, etc. Eu gostaria de unificar os atalhos, tanto quanto possível através de mapeamento de teclado, em seguida, dar um passo maior via app-configs :)
tomByrer