Saya sering mendengar keluhan bahwa bahasa pemrograman yang terlalu banyak menggunakan simbol untuk singkatnya, terutama C dan C ++ (saya tidak akan menyentuh APL), sulit untuk diketik karena mereka memerlukan penggunaan tombol shift yang sering. Satu atau dua tahun yang lalu, saya bosan sendiri, mengunduh Microsoft's Keyboard Layout Creator , membuat beberapa perubahan pada tata letak saya, dan tidak pernah melihat ke belakang. Perbedaan kecepatannya mencengangkan; dengan beberapa perubahan sederhana ini saya dapat mengetik kode C ++ sekitar 30% lebih cepat, tentu saja tergantung seberapa berbulu; Yang terbaik dari semuanya, kecepatan mengetik saya dalam teks berjalan biasa tidak terganggu.
Pertanyaan saya adalah ini: tata letak keyboard alternatif apa yang telah ada untuk pemrograman, yang telah mendapatkan popularitas, apakah ada yang masih dalam penggunaan modern, apakah Anda secara pribadi menggunakan tata letak yang diubah, dan bagaimana tata letak saya dapat dioptimalkan lebih lanjut?
Saya membuat perubahan berikut pada tata letak QWERTY standar. (Saya tidak menggunakan Dvorak , tetapi ada tata letak Dvorak programmer yang layak disebutkan.)
- Tukar angka dengan simbol di baris atas, karena angka literal yang panjang atau berulang biasanya diganti dengan konstanta bernama;
- Tukar backquote dengan tilde, karena backquote jarang ditemukan dalam banyak bahasa tetapi destruktor biasa terjadi di C ++;
- Tukar tanda minus dengan garis bawah, karena garis bawah biasa ditemukan dalam pengenal;
- Tukar tanda kurung kurawal dengan tanda kurung siku, karena blok lebih umum daripada subskrip; dan
- Tukar kutipan ganda dengan tanda kutip tunggal, karena string lebih umum daripada literal karakter.
Saya menduga yang terakhir ini mungkin akan menjadi yang paling kontroversial, karena ini paling mengganggu teks berjalan dengan mengharuskan penggunaan shift untuk mengetik kontraksi umum. Tata letak ini secara signifikan meningkatkan kecepatan mengetik saya di C ++, C, Java, dan Perl, dan agak meningkatkannya di LISP dan Python.