Sento spesso lamentele sul fatto che i linguaggi di programmazione che fanno un uso massiccio di simboli per brevità, in particolare C e C ++ (non toccherò APL), sono difficili da digitare perché richiedono un uso frequente del tasto Maiusc. Uno o due anni fa, me ne sono stancato io stesso, ho scaricato Keyboard Layout Creator di Microsoft , apportato alcune modifiche al mio layout e non ho guardato indietro nemmeno una volta. La differenza di velocità è sbalorditiva; con queste poche semplici modifiche riesco a digitare il codice C ++ circa il 30% più velocemente, a seconda ovviamente di quanto sia peloso; la cosa migliore è che la mia velocità di digitazione nel normale testo corrente non è compromessa.
Le mie domande sono queste: quali layout di tastiera alternativi sono esistiti per la programmazione, che hanno guadagnato popolarità, sono ancora in uso moderno, usi personalmente un layout alterato e come può essere ulteriormente ottimizzato il mio layout?
Ho apportato le seguenti modifiche a un layout QWERTY standard. (Non uso Dvorak , ma c'è un layout Dvorak del programmatore degno di nota.)
- Scambia i numeri con i simboli nella riga superiore, perché i numeri letterali lunghi o ripetuti vengono generalmente sostituiti con costanti denominate;
- Scambia il backquote con la tilde, perché i backquote sono rari in molti linguaggi ma i distruttori sono comuni in C ++;
- Scambia il segno meno con il carattere di sottolineatura, perché i caratteri di sottolineatura sono comuni negli identificatori;
- Scambia parentesi graffe con parentesi quadre, perché i blocchi sono più comuni dei pedici; e
- Scambia virgolette doppie con virgolette singole, perché le stringhe sono più comuni dei caratteri letterali.
Sospetto che quest'ultimo sarà probabilmente il più controverso, poiché interferisce maggiormente con il testo in esecuzione richiedendo l'uso di shift per digitare le contrazioni comuni. Questo layout ha notevolmente aumentato la mia velocità di digitazione in C ++, C, Java e Perl, e in qualche modo l'ha aumentata in LISP e Python.