Bagaimana cara menghitung tata letak keyboard yang ideal untuk programmer?

8

Saya sedang berpikir tentang membuat tata letak keyboard baru untuk pemrograman. Sekarang saya kebanyakan program dalam HTML, JavaScript / jQuery / CoffeeScript, CSS / KURANG / SASS, meskipun saya mungkin mencoba-coba dalam skrip shell & RegEx segera, dengan mungkin LUA, C ++, & Java dalam beberapa tahun. Saya ingin memiliki bukti ilmiah untuk penempatan kunci. Saya punya ide / persyaratan, beberapa menemukan diri saya sendiri, beberapa diambil atau berasal dari yang lain:

  • Hampir Semua kunci dapat diatur ulang
    • RETURN , SHIFT Kiri , KONTROL Kiri , SPACE-bar , & TAB perlu tetap, tetapi semua yang lain, termasuk angka, simbol, & kunci gerakan terbuka untuk dipindah
    • Mungkin optimal untuk cuti zxcv & perhhaps s untuk tinggal di tempat, karena umum Undo / Cut / Copy / Paste / Save kebiasaan :)
    • Kunci DELETE kemungkinan akan dipindahkan ke tempat CAPS LOCK :)
    • Tidak mungkin untuk tetap mencocokkan tanda kurung seperti () {} [] <> di samping satu sama lain; Lihat di bawah
  • Satu-satunya cara akurat IMHO untuk menghitung penggunaan kunci adalah dengan pencatatan kunci, bukan jumlah kunci file:
    • Banyak "pemrograman" mengirim email, memposting ke forum, twitter, pelaporan bug, menjelajahi web, dll.
    • Saya percaya banyak dari penggunaan keyboard adalah "gerakan"; tab antara bidang, halaman ke bawah, memindahkan kursor, dll. Ini tidak ditangkap oleh output file
    • Banyak editor menggunakan lengkapi-otomatis & makro, jadi pembatas-dekat:)}]> mungkin tidak sering diketik seperti pembuka, jadi hanya penebangan kunci & tidak mem-parsing file yang akurat.

Jadi pertanyaan saya:

  1. Apa keyloggers perangkat lunak bebas / sumber terbuka yang aman , yang tidak akan mengunggah file kecuali Anda mengirim file terpisah sendiri? Saya lebih suka TIDAK untuk mengumpulkan nama masuk & kata sandi, tidak hanya untuk keamanan tetapi juga untuk karena itu dapat membuang IMHO analisis saya.
  2. Program apa yang dapat digunakan sisi klien untuk mencerna jumlah kunci tunggal & pasangan? Atau bagaimana cara terbaik membangunnya?
  3. Di mana yang terbaik untuk menemukan sukarelawan untuk membantu?

Penelitian terbaik sejauh ini: 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
sumber
Sebuah pertanyaan yang menarik, tetapi izinkan saya mengusulkan salah satu dari pertanyaan saya: Apakah lebih baik kita meninggalkan tata letak cokelat batangan yang telah kita gunakan selama beberapa dekade untuk sesuatu yang sama sekali berbeda?
Ignacio Vazquez-Abrams
Apakah maksud Anda Ignacio untuk beralih ke seluruh tata letak baru seperti keyboard Contoured Kinesis seharga $ 300USD? Tidak, hanya memetakan kembali kunci di papan ketik murah yang ada, yang dapat ditemukan di toko normal seharga $ 5-20.
TomByrer
Jika Anda terbiasa dengan keyboard QWERTY (atau lainnya) standar, mungkin lebih efisien untuk menggunakannya saja, daripada mempelajari tata letak baru. Terutama jika Anda menggunakan komputer lain, yang tidak akan memiliki tata letak khusus Anda, secara teratur.
Bob
1
Ngomong-ngomong, agar orang menerima balasan, Anda perlu melakukan ping dengan @tomByrer, misalnya!
slhck
2
Saya menduga bahwa hal terbaik yang harus dilakukan adalah memberikan <>{}[](dan kunci lain yang saat ini memerlukan shift) kunci mereka sendiri - saya tidak akan benar-benar menganggap diri saya seorang programmer, tapi saya tahu itulah yang paling menjengkelkan ketika menulis skrip bash.
evilsoup

Jawaban:

2

Gunakan program seperti WhatPulse untuk merekam tombol mana yang dipukul, dan berapa kali.

Setelah bertanya pada jaringan IRC FreeNode tentang bagaimana cara mendapatkan frekuensi kunci bersama, pengguna mengarahkan saya ke ini:

  1. Dapatkan teks Anda, seperti program, dan salin.
  2. Pergi ke http://type.trmnl.org/
  3. Di bawah tombol, Pastikan untuk tidak mencentang 'autostart dengan konten clipboard pada tempel'
  4. Kemudian, rekatkan program Anda ke dalam kotak teks.
  5. Tekan Cntrl + Shift + K, yang akan membuka konsol.
  6. Ketik count_digraphs()dan tekan Enter.

Hasilnya dibaca seperti ini: "ar" 7 17 10 "ra"yang berarti 'ar' ditekan 7 kali, 'ra' ditekan 10 kali, dan semuanya 'ar' dan 'ra' ditekan 17 kali bersama

cutrightjm
sumber
"Opsi Ekstra: Catat frekuensi keystroke - Diperkenalkan di WhatPulse versi 1.7, ini memungkinkan Anda untuk melacak berapa banyak dari setiap tombol yang Anda tekan." whatpulse.org/wiki/Program_Settings_Tab_2 Manis, terima kasih @ekaj! Saya akan terlalu melihat ke dalamnya!
TomByrer
Saya pikir ini adalah solusi terbaik sejauh ini dari keyloger yang lebih mengganggu. Menjadi lintas platform & keluaran XML / HTML adalah berkah. Satu-satunya hal yang hilang adalah dukungan untuk bigram / digram (urutan dua elemen yang berdekatan). Penalaran: dalam bahasa Inggris, tidak hanya 'dia' & 'th' bersama, tetapi juga dalam banyak bahasa pemrograman (seperti C ++, JavaScript, CSS) ' ; ENTER ' sangat sering diketik bersama. Jadi jika ada klon WhatPulse yang memungkinkan ini, maka itu yang terbaik. Sementara itu, saya akan mengirim saran di forum mereka.
TomByrer
1
@ TomBryer mencoba memperbarui jawaban untuk Anda, harap ini membantu .. dan perhatikan, saya hanya bisa membuatnya bekerja di FF, bukan IE atau Chrome .. tidak yakin mengapa.
cutrightjm
Ya, itu membantu dalam beberapa cara! Kode sumber: "'Sayangnya aplikasi ini tidak berfungsi di IE, sry.'"; IE terkadang memiliki sintaks JS yang aneh.
TomByrer
4

Kunci untuk pergerakan editor sering disesuaikan agar sesuai dengan penggunaan seefisien mungkin dengan QWERTY, dan karena itu mereka perlu dipetakan kembali jika Anda mengubah tata letak kunci dan menginginkan penempatan optimal segala sesuatu, yang Anda perjuangkan. Misalnya dalam Vim, tombol HJKL digunakan untuk alasan dengan QWERTY, dan kemungkinan besar perlu dipetakan kembali ke penempatan yang sama setelah peta kunci telah dimodifikasi.

Yang saya maksudkan adalah bahwa itu tidak akan banyak membantu Anda untuk melacak gerakan dan mengedit kunci dan menggunakannya sebagai dasar untuk tata letak baru, karena mereka mudah dikonfigurasi ulang (dalam editor apa pun layak itu garam, dan karena kita berbicara tentang programmer tata letak, kita kemungkinan besar berbicara tentang Vim atau Emacs), tidak boleh mengganggu penempatan kunci literal dan telah dioptimalkan (sekali lagi: kita tidak berbicara tentang Notepad).

Anda mencoba memecahkan masalah yang merupakan cara tidak efisien untuk produktivitas , terutama untuk seorang programmer , ** imho **. Akan ada efek yang jauh lebih besar hanya dengan mempelajari lebih lanjut tentang alat (sekali lagi: mungkin Vim / Emacs). Anda akan menemukan bahwa semakin sedikit waktu yang dihabiskan untuk menulis karakter saat pemrograman, dan lebih banyak (tetapi lebih efisien) waktu dihabiskan untuk penyelesaian otomatis, penandaan otomatis, indentasi otomatis, pencarian definisi fungsi cepat, dll. Kunci untuk melakukan semua ini sudah disesuaikan untuk memungkinkan efisiensi, dan peningkatan kecepatan besar datang hanya dengan keakraban. Jadi saya berpendapat bahwa tata letak keyboard yang berbeda tepat untuk merusak produktivitas , karena Anda sudah memiliki banyaklatihan QWERTY selama bertahun - tahun . Jika waktu pelatihan analitik yang sama dihabiskan pada QWERTY seperti orang-orang yang beralih tata letak menghabiskan pada Dvorak, mereka juga akan melihat peningkatan kecepatan. Kecepatan hadir dengan pelatihan eksplisit.

Jika Anda adalah seorang copywriter / translator / author / etc, seseorang yang benar-benar menghabiskan waktunya melakukan pekerjaan dengan makna literal kunci, maka tata letak yang berbeda mungkin bisa membantu. Untuk seorang programmer, tip terbaik biasanya untuk setidaknya mendapatkan tata letak keyboard bahasa Inggris, karena idiom pemrograman telah dibentuk oleh ini dan penempatan kunci mereka (pada tata letak kunci lokal saya, @$[]{}~semuanya di belakang AltGr yang cukup sub-optimal).

tldr: Dvorak / Colemak / ["hal terbaik sejak irisan roti"] berikutnya (bisa dibilang) memecahkan masalah hanya bagi mereka yang memasukkan banyak teks yang mengalir dalam bahasa tertentu (paling sering bahasa Inggris). Untuk pemrograman, kunci yang dibutuhkan belum tunduk pada batasan yang sama dengan bahasa literal, dan dengan demikian telah dioptimalkan untuk tujuannya (yang tidak hanya "menulis secepat yang Anda bisa"; itu membangun lebih banyak pada operasi logis. Lihat Vim). Saya percaya bahwa waktu yang dihabiskan untuk mempelajari tata letak alternatif dan kebingungan yang pasti terjadi berulang kali jelas tidak sebanding dengan usaha dalam banyak kasus (bukan hanya kebingungan Anda sendiri; orang lain yang duduk di terminal yang sama yang terakhir Anda gunakan akan membuang hal-hal pada Anda), termasuk programmer

Daniel Andersson
sumber
Terima kasih @ Daniel-Andersson untuk wawasan Anda tentang Vim; akan sangat membantu untuk menimbang bahwa beberapa editor memungkinkan memetakan kembali tombol-gerakan! Saya harus belajar lebih banyak tentang alat saya. Namun, saya BANYAK mengedit dengan alat BANYAK; editor & kotak teks online: forum (seperti di sini;), inti, jsFiddle, GMail, Facebook, Twitter (bukankah seharusnya @ menjadi tombol tutup yang tidak bergeser?) ... & editor lain seperti Inkscape, SynthMaker, Live, dll. Saya ingin menyatukan pintasan saya sebanyak mungkin melalui keymapping, lalu mengambil langkah lebih tinggi melalui aplikasi-konfigurasi :)
tomByrer