Freqüentemente ouço reclamações de que linguagens de programação que fazem uso intenso de símbolos para abreviar, principalmente C e C ++ (não vou tocar em APL), são difíceis de digitar porque exigem o uso frequente da tecla shift. Um ou dois anos atrás, eu mesmo me cansei disso, baixei o Criador de layout de teclado da Microsoft , fiz algumas mudanças em meu layout e nunca olhei para trás. A diferença de velocidade é impressionante; com essas poucas mudanças simples, sou capaz de digitar código C ++ cerca de 30% mais rápido, dependendo, é claro, de quão complicado ele é; o melhor de tudo é que minha velocidade de digitação em textos corridos comuns não é comprometida.
Minhas perguntas são as seguintes: quais layouts de teclado alternativos existiram para programação, que ganharam popularidade, algum deles ainda está em uso moderno, você pessoalmente usa algum layout alterado e como meu layout pode ser otimizado ainda mais?
Fiz as seguintes alterações em um layout QWERTY padrão. (Eu não uso Dvorak , mas há um layout de Dvorak para programador que vale a pena mencionar.)
- Troque números por símbolos na linha superior, porque números literais longos ou repetidos são normalmente substituídos por constantes nomeadas;
- Troque crase por til, porque crase são raros em muitas linguagens, mas destruidores são comuns em C ++;
- Troque o sinal de menos por sublinhado, porque os sublinhados são comuns em identificadores;
- Troque as chaves por colchetes, porque os blocos são mais comuns do que os subscritos; e
- Troque aspas duplas por aspas simples, porque strings são mais comuns do que literais de caracteres.
Suspeito que este último provavelmente será o mais controverso, pois interfere mais com o texto corrido, exigindo o uso de shift para digitar as contrações comuns. Este layout aumentou significativamente minha velocidade de digitação em C ++, C, Java e Perl, e aumentou um pouco em LISP e Python.
fonte
Respostas:
Ainda sustento que a velocidade de digitação não é o principal fator no tempo que leva para um projeto ser concluído. Se for, há um grande problema (semanas de codificação economizam horas de planejamento).
Em relação à sua pergunta, prefiro usar o layout padrão, pois isso significa que não tenho que passar os primeiros 10 minutos parecendo estúpido quando apresentado a um layout de teclado padrão.
Algumas das substituições que você sugeriu, por exemplo, a linha superior com os caracteres especiais não fazem a menor diferença, pois o dedo externo, por outro lado, deve mover-se para se deslocar ao mesmo tempo.
IMHO Uma coisa que ajuda acima de layouts de encadeamento é usar apenas atalhos de teclado. Vim e Emacs são recomendados. Isso torna a movimentação do texto muito mais rápida.
fonte
Eu abordaria sua pergunta da seguinte maneira. A tarefa é organizar um teclado de forma a minimizar os toques nas teclas e o movimento das mãos para um determinado texto.
Passos em direção a uma possível solução. Faça um programa que:
Agora manualmente ou escrevendo um programa Redefina seu layout da seguinte maneira. Coloque o símbolo usado com mais frequência em uma posição central, mais perto de sua mão forte. O segundo símbolo vai para a sua mão fraca na posição central. O terceiro símbolo volta para sua mão forte ... e assim por diante. Em seguida, você move gradualmente da posição central das mãos para áreas mais "distantes" do teclado. Quando todo o teclado estiver cheio, você continua o processo de atribuição de teclas, mas desta vez com a tecla Shift pressionada. A outra diferença é que você não gira a mão forte e fraca para cada símbolo quando o Shift está pressionado. Com a tecla shift pressionada, primeiro você preenche as posições centrais do teclado e, em seguida, passa para posições mais distantes.
Ao fazer tudo isso, execute a etapa 3 novamente para o novo layout para ver como o layout foi aprimorado.
Você pode ter que carregar o teclado com você o tempo todo. Pelo lado positivo, ninguém tocará em seu computador. Isso vai fazer você parecer um profissional.
Finalmente, não se esqueça de compartilhar suas descobertas.
fonte
Estou brincando com uma variante do layout Colemak no momento, com grandes mudanças de símbolos:
sem SHIFT:
`- {} []; <> () _ =
qwfpgjluy * / # \
arstdhneio '
zxcvbkm,. !
com SHIFT:
~ 1 2 3 4 5 6 7 8 9 0 & +
QWFPGJLUY @ ^ $ |
ARSTDHNEIO "
ZXCVBKM%:?
Talvez eu restaure a chave / ...
Mas isso não é baseado em nenhuma pesquisa sólida, e eu também adoraria ver um layout otimizado (otimização incluindo coisas como alteração de mãos, etc, também preservação de ZXCV, ...) com um corpus baseado em código fonte, porque todos esses layouts parecem ser otimizado apenas para prosa. Por exemplo, 'f' é uma letra muito comum em C (if, for).
Atualização: Atualmente estou usando
`- {} [] @ <> () _ =
qwkrgyulp *; #
asftdhneio '\
\ zxcvbjm,. /
com SHIFT:
~ 1 2 3 4 5 6 7 8 9 0 ^ +
QWKRGYULP &! $
ASFTDHNEIO "|
| ZXCVBJM%:?
Isso é baseado em uma otimização parcial de troca de 6 teclas tirada de Carpalx com preservação dos atalhos Cortar / Copiar / Colar / Desfazer usuais e modificados para dar um melhor acesso aos caracteres de programação usuais.
fonte
Faça um registro de chaves simples e conte o número de vezes que cada tecla é pressionada. Execute-o por um ou dois dias e salve a saída em um arquivo de texto. Faça isso de vez em quando. Não importa o layout que você está usando, pois você está apenas vendo quais teclas estão sendo mais usadas.
Se você deseja fazer um bom layout, não pode ter medo de fugir da norma. Eu sugiro colocar as 11 primeiras chaves ao longo da linha inicial, depois as próximas 11 chaves superiores como a linha superior (deixe as 2 chaves acima da tecla de retorno como as menos usadas) e, em seguida, as 11 primeiras chaves superiores como a linha inferior . Deve haver 4 chaves restantes agora. Pegue-os e coloque-os nos slots - = e] \. Parabéns! Agora você criou um ótimo layout de teclado para seus propósitos! = D
fonte
No geral, acho que ter um bom editor de texto e saber como usá-lo é melhor do que tentar melhorar a velocidade de digitação. Ser capaz de gravar e reproduzir macros às vezes é um salva-vidas, e uma seleção de fragmentos de código atribuídos por atalho pode ser útil porque normalmente há limites impostos pela linguagem sobre o que pode ser transformado em uma biblioteca.
De maneira mais geral, acho que os verdadeiros aumentadores de produtividade são todos sobre o conhecimento ...
FWIW, não estou afirmando ser forte em todos eles. Sempre fui muito preconceituoso para resolver problemas sozinho e com uma tendência muito forte para reinventar a roda e grandes esquemas arquitetônicos.
De qualquer forma, suspeito que o tempo gasto mudando e aprendendo os layouts do teclado seria uma distração para questões mais importantes.
fonte
Alterar o layout do teclado é uma má ideia, pois (talvez) aumentaria sua velocidade de digitação em um teclado, mas prejudicaria gravemente sua velocidade de digitação em outros teclados ou em computadores onde você não tem seu layout de teclado especial. Eu descobri que geralmente é melhor se ajustar aos padrões, ter que alterá-los em todos os lugares. (Pessoalmente, meus dedos são fortemente influenciados pelo Emacs, o que causa muito atrito de digitação em todos os outros lugares.)
fonte