Studi skema warna yang menyoroti sintaksis

39

Sebagian besar programmer memiliki preferensi pribadi mereka sendiri untuk skema warna yang menyoroti sintaksis, tapi saya sudah bertanya-tanya, apakah ada yang pernah melakukan studi ilmiah yang sebenarnya tentang apa skema warna terbaik? Saya membayangkan studi seperti itu akan melihat hal-hal seperti keterbacaan kode, apakah mata programmer tertarik ke bagian yang paling penting, dll.

Mungkin ini sudah dilakukan untuk sesuatu seperti tema Visual Studio default, tapi saya ingin tahu apakah ada studi yang tersedia untuk umum di luar sana, dan apa yang mereka temukan.

Jonathan Schuster
sumber
Saya tidak berpikir ada orang yang secara khusus mempelajari skema pewarnaan sintaks, tetapi prinsip-prinsip dari bidang lain masih terbawa. Misalnya, warna merah cenderung menarik perhatian.
Maks.
+1 Saya sudah bertanya-tanya skema aplikasi atau OS yang sama atau berwarna sebenarnya.
stijn

Jawaban:

17

Skema warna tertentu tidak bisa lebih baik secara objektif daripada skema warna lainnya, peringkat mereka akan subjektif secara individual berdasarkan rasa dan faktor budaya.

Namun, aturan tertentu untuk keterbacaan / kejelasan, penggunaan dalam lingkungan cahaya ambient dll dll ... berlaku, ini akan dibawa dari desain grafis / tipografi, antarmuka komputer manusia dan studi terkait lainnya.

Proyek Ethalized Schoonover's Solarized adalah karya yang menarik: http://ethanschoonover.com/solarized

ocodo
sumber
Dimungkinkan untuk memiliki skema warna terbaik secara objektif, atau setidaknya kelompok-subyektif. Ketika kita mengatakan "terbaik", yang kita maksudkan adalah rata-rata untuk sebagian besar populasi atau sub-budaya / populasi kita. Yang kami butuhkan adalah beberapa cara memesan barang dan menjawab klarifikasi ('X paling baik diberikan Y.'). Kalau tidak, "terbaik" akan kehilangan makna. Ada juga kemungkinan nyata generator skema warna terbaik, yang memperhitungkan setiap kekhasan individu dengan memindai otak Anda (puluhan tahun di masa depan).
Annan
@Annan: Melakukannya di grup dengan rata-rata meskipun cenderung mengarah pada pengalaman yang jelas lebih buruk daripada hanya biasa-biasa saja bagi orang-orang menuju tepi spektrum. Pemindaian otak ... ya itu bagus tapi saya memperkirakan WW3 terjadi lebih cepat dari itu.
Darren Ringer
7

Mereka hanya mempelajari secara moderat baru-baru ini yang sedikit terkait dengan subjek yang saya tahu adalah satu dari tahun 2004: "Dampak kombinasi warna latar belakang teks halaman web pada keterbacaan, retensi, estetika dan niat perilaku" oleh Hall & Hanna . Namun, ini bukan untuk kode tetapi halaman web dan satu-satunya skema warna yang mereka pertimbangkan adalah warna foreground dan background.

Saya telah mengajukan pertanyaan tentang studi terkait skema warna untuk programmer di Skepics.SE: "Apakah skema warna terang-gelap untuk layar komputer lebih baik untuk programmer?" . Itu belum dijawab dalam hampir 2 tahun sekarang, sementara biasanya jenis pertanyaan dijawab dengan cepat di sana. Yang membuat saya percaya bahwa tidak ada studi ilmiah seperti itu.

vartec
sumber
7

Kami baru-baru ini melakukan studi pengguna pada presentasi kode yang secara visual lebih kaya daripada penyorotan sintaksis. Meskipun ini bukan studi tentang skema penyorotan sintaksis, Anda mungkin menemukan wawasan:

D. Asenov dan O. Hilliges dan P. Müller - Pengaruh Visualisasi yang Lebih Baik terhadap Pemahaman Kode dan di sini adalah video pembicaraan 10 menit di CHI 2016.

Kami membandingkan sintaksis Eclipse standar dengan dua presentasi kode yang lebih kaya dengan tambahan visual seperti:

  • Menguraikan bukan kawat gigi keriting
  • Bergantian warna latar belakang, bukan koma, untuk memisahkan elemen daftar
  • Ikon alih-alih beberapa kata kunci
  • Warna latar tambahan untuk beberapa pernyataan dan ekspresi

Studi ini menunjukkan bahwa meningkatkan variasi visual dari presentasi memiliki efek yang agak besar pada kecepatan pengembang dapat memahami struktur kode - waktu berkurang hingga 75%. Penting untuk dicatat bahwa ini adalah pertanyaan sederhana mengenai struktur kode (mis. "Apakah ada loop bersarang dalam metode ini?"). Kami tidak menguji tugas yang memerlukan pemikiran kompleks (mis. "Apa yang dilakukan metode ini?"), Karena ini didominasi oleh keterampilan seseorang daripada efek dari penyajian kode.

Temuan menarik dari penelitian kami adalah bahwa kami tidak melihat adanya kelebihan visual karena visualisasi yang lebih kaya. Meskipun banyak peserta mengatakan bahwa mereka merasakan kelebihan visual atau kebingungan, data yang kami kumpulkan (waktu untuk memberikan jawaban dan apakah itu benar) hanya menunjukkan peningkatan dengan visualisasi yang lebih kaya.

Sehubungan dengan penyorotan sintaksis, temuan kami secara tidak langsung menunjukkan bahwa menggunakan lebih banyak variasi visual (misalnya lebih banyak warna, dan warna untuk lebih banyak jenis konstruksi pemrograman) akan bermanfaat. Misalnya tema dengan warna terpisah untuk tipe bawaan, kata kunci kontrol-aliran, dan sisa kata kunci, kemungkinan akan meningkatkan pemahaman struktur kode dalam beberapa kasus, dibandingkan dengan tema polos yang menggunakan warna tunggal untuk semua kata kunci.

Dimitar Asenov
sumber
2

Saya kira studi semacam itu tidak ada. Dalam praktiknya, ketika sebuah perusahaan membuat IDE baru, skema warna highlight sintaksis didasarkan pada skema yang ada dari IDE lain.

Misalnya, tema Visual Studio default tidak memiliki yang baru atau asli . Warna biru digunakan untuk kata kunci selama bertahun-tahun, termasuk oleh IDE lama. Hal yang sama untuk komentar hijau. Beberapa warna kurang lebih "baru", seperti warna untuk nama-nama kelas, tetapi Anda dapat dengan mudah memahami alasan di balik pilihan warna-warna itu: masuk akal untuk menetapkan warna yang tidak jauh dari biru (karena itu adalah cukup banyak seperti kata-kata yang dipesan: Int32untuk .NET, intuntuk C #, dll.), tetapi harus tetap dengan warna dasar, berbeda dari biru yang sudah digunakan.

Sekarang, bagaimana dengan skema alternatif, seperti teks terang populer dengan latar belakang gelap? Mereka tidak diciptakan oleh seorang ilmuwan yang mempelajari subjek selama bertahun-tahun dan membuat beberapa kalkulus rumit untuk mendapatkan pasangan sempurna yang tepat. Sebaliknya, pengembang membuat skema yang dapat dibaca untuknya. Dia membagikannya di situs web, dan itu menjadi populer . Itu semua keajaiban.

Hal terakhir: apakah ada aturan keterbacaan? Tidak terlalu banyak.

  • Untuk sebagian besar, itu adalah sesuatu yang subjektif : Anda tidak dapat berdebat bahwa kata kunci biru lebih mudah dibaca daripada kata kunci ungu, karena seseorang akan dapat menjawab daripada untuknya, pada monitornya, kata kunci ungu jauh lebih mudah dibaca daripada kata kunci biru. .

  • Untuk bagian lain, itu hanya logis . Skema hitam-putih tidak akan dapat dibaca seperti skema default. Dengan cara yang sama, Anda tidak dapat menetapkan kata kunci menjadi kuning muda dan komentar menjadi abu-abu terang (katakanlah #eee) pada latar belakang putih, karena itu tidak dapat dibaca, dan Anda bahkan tidak perlu menjelaskan alasannya. Itu adalah aturan yang sama ketika membuat situs web atau mencetak buku atau apa pun.

Arseni Mourzenko
sumber
1

Sebagai semacam studi kasar, tangkapan layar di bawah ini menunjukkan 3 tema warna yang digunakan untuk sintaks sorot XSLT. Saya memilih XSLT karena menghadirkan tantangan khusus karena banyaknya elemen bahasa - dan juga karena banyak pengembang menggambarkannya sebagai jelek.

Solarized

masukkan deskripsi gambar di sini

Malam Hari Besok

masukkan deskripsi gambar di sini

Github

masukkan deskripsi gambar di sini

Pengamatan

Jumlah warna yang digunakan dalam sampel membantu membedakan elemen bahasa yang berbeda, tetapi mungkin terbukti mengganggu bagi pengembang.

Ini membantu untuk berkembang dari warna dingin ke hangat jika memungkinkan, menggunakan warna dingin untuk bagian bahasa yang lebih netral. Alternatifnya adalah beralih dari warna pastel ke yang lebih cerah (saturasi warna).

Warna latar belakang membuat perbedaan besar pada persepsi warna latar depan.

Beberapa warna latar depan yang berdekatan dapat menyebabkan bentrokan buruk yang mengganggu mata, terutama merah dan hijau tampaknya tidak cocok bersama.

Dengan latar belakang gelap, lebih mudah untuk menyediakan berbagai macam warna latar depan dengan kontras yang cukup satu sama lain dan latar belakang.

Terakhir, faktor-faktor eksternal seperti cahaya sekitar dan kualitas serta kalibrasi monitor membuat perbedaan besar.

Kesimpulan

Yang terbaik adalah menggunakan alat yang menyediakan cara yang dapat diperluas untuk mengatur tema warna karena tidak mungkin bahwa tema warna tunggal apa pun akan memenuhi kebutuhan semua pengembang, dan bahkan pengembang yang sama dapat sering mengubah preferensi mereka tergantung pada berbagai faktor.

pgfearo
sumber
0

Yah, saya kira pertanyaan pertama adalah apakah latar belakang putih adalah ide bagus. Hanya karena mendekati kertas asli dan kita dapat menemukan di mana-mana di Internet hari ini tidak selalu menjadikannya pilihan yang baik (atau boleh saya katakan sempurna).

Saya ingat bahwa (banyak) tahun yang lalu kami hanya memiliki "skema warna" kuning-hitam. Dan saya juga ingat bahwa itu tidak terlalu buruk. Itu tidak memiliki kontras seperti hitam & putih. Belum lama ini saya belajar bahwa itu juga lebih baik bagi mata manusia.

Kadang-kadang saya benar-benar bertanya-tanya siapa yang merancang skema warna itu, misalnya dikirim dengan sistem operasi. Saya biasanya mengabaikan mereka, tetapi saya ingat melihat campuran yang benar-benar mengagumkan dari pink dan hijau dan yang lainnya. Yah, aku tidak menggunakan narkoba ...

Ada beberapa penelitian tentang apa yang dilakukan warna pada alam bawah sadar Anda (tenang, sebabkan agresi, ...). Saya berpikir bahwa skema warna yang umum digunakan agak berdasarkan itu. Mungkin mereka hanya menambahkan keterbacaan. Pengkodean seharusnya bukan misi bunuh diri.

Tetapi sejauh menyangkut skema warna IDE saat ini, saya baik-baik saja dengan itu. Mari kita hadapi itu: ide sederhana di baliknya adalah untuk membuatnya lebih mudah untuk menemukan sesuatu yang berbeda dari "noise code" yang umum. Dan sejujurnya saya tidak terlalu peduli warna apa yang mereka gunakan untuk memungkinkan itu. Seharusnya tidak menyakiti mata saya atau membakar bagian kode ke bagian belakang kepala saya, seperti merah mencolok pada beberapa nada hijau.

Pengodean harus santai. Dan itulah yang menurut saya.

sjngm
sumber