सिंटेक्स-हाइलाइटिंग रंग योजना अध्ययन


39

सिंटेक्स-हाइलाइटिंग रंग योजनाओं के लिए अधिकांश प्रोग्रामर की अपनी व्यक्तिगत प्राथमिकताएं हैं, लेकिन मैं सोच रहा हूं कि क्या किसी ने कभी भी एक वास्तविक वैज्ञानिक अध्ययन किया है कि सबसे अच्छी रंग योजना क्या होगी? मुझे लगता है कि इस तरह के एक अध्ययन में कोड की पठनीयता जैसी चीजों पर ध्यान दिया जाएगा, चाहे प्रोग्रामर की आँखें सबसे महत्वपूर्ण भागों के लिए तैयार हों, आदि।

शायद यह पहले से ही डिफ़ॉल्ट विज़ुअल स्टूडियो थीम जैसी किसी चीज़ के लिए किया गया था, लेकिन मैं यह जानना चाहूंगा कि क्या वहां कोई सार्वजनिक रूप से उपलब्ध अध्ययन हैं, और उन्हें क्या मिला।


मुझे नहीं लगता कि किसी ने विशेष रूप से सिंटैक्स रंग योजनाओं का अध्ययन किया है, लेकिन अन्य क्षेत्रों के सिद्धांत अभी भी चलते हैं। उदाहरण के लिए, रंग लाल ध्यान आकर्षित करता है।
मैक्समू

+1 मैं अनुप्रयोगों और ओएस के समान या रंग योजनाओं को वास्तव में सोच रहा हूं।
जूल

जवाबों:


17

विशिष्ट रंग योजनाएं अन्य सभी रंग योजनाओं की तुलना में बेहतर नहीं हो सकती हैं, उनकी रैंकिंग स्वाद और सांस्कृतिक कारकों के आधार पर व्यक्तिगत रूप से व्यक्तिपरक होगी।

हालाँकि, पठनीयता / स्पष्टता के लिए कुछ नियम, विशेष परिवेश प्रकाश वातावरण आदि में उपयोग ... आदि लागू होते हैं, ये ग्राफिक डिज़ाइन / टाइपोग्राफी, मानव कंप्यूटर इंटरफ़ेस और अन्य संबंधित अध्ययनों से आगे बढ़ेंगे।

एथन शूनओवर का सोलराइज्ड प्रोजेक्ट एक दिलचस्प कृति है: http://ethanschoonover.com/solarized


यह एक उद्देश्यपूर्ण रंग योजना, या कम से कम समूह-व्यक्तिपरक होना संभव है। जब हम "सर्वश्रेष्ठ" कहते हैं, तो हमारा मतलब है कि अधिकांश आबादी या हमारी उप-संस्कृति / आबादी। हम सभी को आइटम ऑर्डर करने और स्पष्टीकरण का जवाब देने के कुछ तरीके की आवश्यकता होती है ('एक्स को सर्वश्रेष्ठ वाई दिया जाता है')। अन्यथा "सर्वश्रेष्ठ" अर्थ खो देता है। सर्वश्रेष्ठ रंग-योजना जनरेटर की वास्तविक संभावना भी है, जो आपके मस्तिष्क (भविष्य में दशकों) को स्कैन करके प्रत्येक व्यक्तिगत क्विक को ध्यान में रखते हैं।
अन्नान

@Annan: औसत से एक समूह में यह करना हालांकि एक अनुभव है कि निश्चित रूप से स्पेक्ट्रम के किनारों की ओर लोगों के लिए भी औसत दर्जे की तुलना में काम करता है करने के लिए जाता है। मस्तिष्क की स्कैनिंग ... हाँ जो अच्छा होगा लेकिन मैं WW3 को जल्द ही देख रहा हूँ।
डैरेन रिंगर

7

वे केवल हाल के अध्ययन का अध्ययन करते हैं जो मुझे पता है कि 2004 से एक विषय से दूर से संबंधित है: " हॉल एंड हैना द्वारा " पठनीयता, अवधारण, सौंदर्यशास्त्र और व्यवहारिक इरादे पर वेब पेज टेक्स्ट-बैकग्राउंड रंग संयोजन का प्रभाव " । हालाँकि, यह कोड के लिए नहीं है, लेकिन वेब पेज और एकमात्र रंग योजना जो वे मानते हैं, अग्रभूमि और पृष्ठभूमि रंग हैं।

मैंने Skepics.SE पर प्रोग्रामर के लिए संबंधित रंग योजनाओं के अध्ययन के बारे में प्रश्न पूछा है: "क्या प्रोग्रामर के लिए कंप्यूटर स्क्रीन के लिए लाइट-ऑन-डार्क कलर स्कीम बेहतर हैं?" । अब लगभग 2 वर्षों में इसका उत्तर नहीं दिया गया है, जबकि आम तौर पर उस प्रकार के प्रश्न का उत्तर बहुत जल्दी मिलता है। जो मुझे विश्वास दिलाता है कि इस तरह के वैज्ञानिक अध्ययन नहीं हैं।


7

हमने हाल ही में कोड प्रस्तुतियों पर एक उपयोगकर्ता अध्ययन किया था जो सिंटैक्स हाइलाइटिंग की तुलना में नेत्रहीन रूप से समृद्ध है। हालांकि यह वाक्य रचना हाइलाइटिंग योजनाओं पर काफी अध्ययन नहीं है, आपको यह व्यावहारिक लग सकता है:

डी। एसेनोव और ओ। हिलिग्स और पी। मुलर - कोड की समझ पर अमीर विज़ुअलाइज़ेशन का प्रभाव और यहां सीएचआई 2016 में 10 मिनट की बातचीत का वीडियो है

हमने मानक ग्रहण सिंटैक्स की तुलना विज़ुअल एक्स्ट्रा के साथ कोड की दो समृद्ध प्रस्तुतियों पर प्रकाश डाला है जैसे:

  • घुंघराले ब्रेसिज़ के बजाय रूपरेखा
  • सूची के तत्वों को अलग करने के लिए, कॉमा के बजाय पृष्ठभूमि रंग को वैकल्पिक करना
  • कुछ खोजशब्दों के बजाय प्रतीक
  • कुछ बयानों और अभिव्यक्तियों के लिए अतिरिक्त पृष्ठभूमि रंग

अध्ययन से पता चला कि प्रस्तुति की दृश्य विविधता में वृद्धि का गति पर एक बड़ा प्रभाव पड़ा है जिसके साथ डेवलपर्स कोड संरचना को समझ सकते हैं - समय 75% तक कम हो गया था। यह ध्यान रखना महत्वपूर्ण है कि यह कोड संरचना के बारे में सरल प्रश्नों के बारे में है (उदाहरण के लिए "क्या विधि में नेस्टेड लूप हैं?")। हमने जटिल सोच की आवश्यकता वाले कार्यों का परीक्षण नहीं किया था (जैसे "यह विधि क्या करती है?"), क्योंकि ये कोड प्रस्तुति के प्रभावों के बजाय व्यक्ति के कौशल पर हावी हैं।

हमारे अध्ययन से एक दिलचस्प खोज यह है कि हमने समृद्ध दृश्य के कारण किसी भी दृश्य अधिभार का निरीक्षण नहीं किया । हालांकि कई प्रतिभागियों ने कहा कि उन्होंने कुछ दृश्य अधिभार या भ्रम महसूस किया, जो डेटा हमने एकत्र किया (एक उत्तर प्रदान करने का समय और क्या यह सही था) ने केवल समृद्ध दृश्य के साथ सुधार दिखाया।

सिंटेक्स हाइलाइटिंग के संबंध में, हमारे निष्कर्ष अप्रत्यक्ष रूप से सुझाव देते हैं कि अधिक दृश्य विविधता (जैसे अधिक रंग, और अधिक प्रकार के प्रोग्रामिंग निर्माण के लिए रंग) का उपयोग करना फायदेमंद होगा। उदाहरण के लिए अंतर्निहित रंगों, नियंत्रण-प्रवाह कीवर्ड और बाकी कीवर्ड के लिए एक अलग रंग के साथ एक विषय, कुछ मामलों में कोड संरचना की समझ में सुधार की संभावना है, एक सादे विषय की तुलना में जो सभी के लिए एक ही रंग का उपयोग करता है कीवर्ड।


2

मुझे नहीं लगता कि इस तरह के अध्ययन मौजूद हैं। व्यवहार में, जब कोई कंपनी एक नई आईडीई बनाती है, तो सिंटैक्स हाइलाइटिंग रंग योजना अन्य आईडीई की विद्यमान योजनाओं पर आधारित होती है

उदाहरण के लिए, डिफ़ॉल्ट विज़ुअल स्टूडियो थीम में नया और मूल कुछ भी नहीं है । पुराने ऐड आईडीई सहित, सालों से कीवर्ड के लिए नीले रंग का उपयोग किया गया था। हरी टिप्पणियों के लिए एक ही बात है। कुछ रंग कम या ज्यादा "नए" थे, जैसे कि कक्षाओं के नाम के लिए चैती, लेकिन आप उन रंगों की पसंद के पीछे के कारण को आसानी से समझ सकते हैं: यह एक रंग सेट करना उचित होगा जो नीले रंग से दूर नहीं है (क्योंकि वे हैं) बहुत कुछ आरक्षित शब्दों की तरह: Int32.NET के लिए, intसी # के लिए, आदि), लेकिन यह एक मूल रंग रहना चाहिए, पहले से ही नीले रंग से अलग।

अब, वैकल्पिक योजनाओं के बारे में क्या है, जैसे अंधेरे पृष्ठभूमि पर लोकप्रिय प्रकाश पाठ? वे एक वैज्ञानिक द्वारा नहीं बनाए गए हैं, जिन्होंने वर्षों तक इस विषय का अध्ययन किया और सटीक पूर्ण मिलान प्राप्त करने के लिए कुछ जटिल गणना की। इसके बजाय, एक डेवलपर एक योजना बनाता है जो उसके लिए पठनीय है। वह इसे एक वेबसाइट पर साझा करता है, और यह लोकप्रिय हो जाता है । वह सब जादू है।

अंतिम बात: क्या पठनीयता नियम हैं? बहुत जयादा नहीं।

  • अधिकांश भाग के लिए, यह कुछ व्यक्तिपरक है : आप यह तर्क नहीं दे सकते कि एक नीला कीवर्ड बैंगनी कीवर्ड की तुलना में अधिक पठनीय है, क्योंकि कोई व्यक्ति उसके लिए उत्तर देने में सक्षम होगा, उसके मॉनिटर पर, बैंगनी कीवर्ड नीले रंग की तुलना में बहुत अधिक पठनीय है ।

  • दूसरे भाग के लिए, यह सिर्फ तार्किक है । श्वेत-श्याम योजना डिफ़ॉल्ट के रूप में पठनीय नहीं होगी। उसी तरह, आप कीवर्ड को हल्के पीले होने के लिए और टिप्पणियों को हल्के भूरे होने के लिए सेट नहीं कर सकते (चलो कहते हैं #eee) एक सफेद पृष्ठभूमि पर, क्योंकि यह अपठनीय है, और आपको यह भी बताने की आवश्यकता नहीं है कि क्यों। वेबसाइट बनाते समय या किसी पुस्तक को प्रिंट करते समय या उसके बाद भी वही नियम हैं।


1

एक प्रकार के मोटे अध्ययन के रूप में, नीचे दिए गए स्क्रीनशॉट में 3 रंग थीम का उपयोग किया गया है जो XSLT को हाइलाइट करता है। मैंने XSLT को चुना है क्योंकि यह बड़ी संख्या में भाषा तत्वों की वजह से एक विशेष चुनौती है - और इसलिए भी क्योंकि कई डेवलपर्स इसे बदसूरत बताते हैं।

Solarized

यहाँ छवि विवरण दर्ज करें

टोमोरो नाइट

यहाँ छवि विवरण दर्ज करें

Github

यहाँ छवि विवरण दर्ज करें

टिप्पणियों

नमूने में प्रयुक्त रंगों की संख्या विभिन्न भाषा तत्वों को अलग करने में मदद करती है, लेकिन यह एक डेवलपर के लिए विचलित करने वाला साबित हो सकता है।

यह भाषा के अधिक तटस्थ भागों के लिए ठंडे रंगों का उपयोग करते हुए, यदि संभव हो तो ठंडे से गर्म रंगों में प्रगति करने में मदद करता है। एक विकल्प पेस्टल शेड्स से अधिक ज्वलंत वाले (ह्यू संतृप्ति) को स्थानांतरित करना है।

पृष्ठभूमि का रंग अग्रभूमि के रंगों की धारणा के लिए एक बड़ा अंतर बनाता है।

कुछ निकटवर्ती अग्रभूमि रंग खराब झड़पों का कारण बन सकते हैं जो आंख को परेशान करते हैं, विशेष रूप से लाल और हरे रंग एक साथ नहीं जाते हैं।

एक अंधेरे पृष्ठभूमि के साथ एक दूसरे के साथ पर्याप्त विपरीत और पृष्ठभूमि के साथ अग्रभूमि रंगों की एक विस्तृत श्रृंखला प्रदान करना आसान है।

अंत में, बाहरी कारक जैसे परिवेश प्रकाश और मॉनिटर की गुणवत्ता और अंशांकन एक बड़ा अंतर रखते हैं।

निष्कर्ष

ऐसे टूल का उपयोग करना सबसे अच्छा है जो रंग थीम सेट करने का एक विस्तृत तरीका प्रदान करते हैं क्योंकि यह संभावना नहीं है कि कोई भी एकल रंग थीम सभी डेवलपर्स की आवश्यकताओं को पूरा करेगा, और यहां तक ​​कि एक ही डेवलपर विभिन्न कारकों के आधार पर अक्सर अपनी पसंद बदल सकता है।


0

खैर, मुझे लगता है कि पहला सवाल यह होगा कि क्या सफेद पृष्ठभूमि इतना बड़ा विचार है या नहीं। सिर्फ इसलिए कि यह असली कागज के करीब आता है और हम इन दिनों इंटरनेट पर हर जगह पा सकते हैं जरूरी नहीं कि यह अच्छा हो (या मैं सही कह सकता हूं) विकल्प।

मुझे याद है कि (बहुत से) वर्षों पहले हमारे पास केवल पीला-पर-काला "रंग योजना" था। और मुझे यह भी याद है कि यह उतना बुरा नहीं था। यह काले और सफेद के रूप में इसके विपरीत नहीं था। बहुत पहले नहीं मैंने सीखा कि यह मानव आंख के लिए भी बेहतर है।

कभी-कभी मुझे वास्तव में आश्चर्य होता है कि कौन रंग योजनाओं को डिजाइन करता है, जैसे ऑपरेटिंग सिस्टम के साथ भेज दिया जाता है। मैं आमतौर पर उन्हें अनदेखा करता हूं, लेकिन मुझे याद है कि वास्तव में गुलाबी और हरे रंग का अद्भुत मिश्रण और व्हाट्सएप है। खैर, मैं ड्रग्स नहीं करता ...

आपके अवचेतन में रंग क्या करते हैं, इसके बारे में कुछ अध्ययन हैं (शांत, आक्रामकता का कारण ...)। मैं सोच रहा हूं कि आमतौर पर इस्तेमाल की जाने वाली रंग योजनाएं कुछ हद तक उसी पर आधारित होती हैं। हो सकता है कि उन्होंने सिर्फ पठनीयता जोड़ी हो। कोडिंग एक आत्मघाती मिशन नहीं होना चाहिए।

लेकिन जहां तक ​​वर्तमान आईडीई की रंग योजना का संबंध है, मैं इसके साथ ठीक हूं। आइए इसका सामना करते हैं: इसके पीछे का सरल विचार यह है कि कुछ ऐसा खोजना आसान हो जो सामान्य "कोड शोर" से अलग हो। और सच कहूं तो मुझे वास्तव में परवाह नहीं है कि वे कौन से रंगों का इस्तेमाल करते हैं। यह सिर्फ मेरी आंखों को चोट नहीं पहुंचाना चाहिए या मेरे सिर के पीछे कोड के कुछ हिस्सों को जलाना नहीं चाहिए, जैसे हरे रंग के कुछ टोन पर एक चमकदार लाल।

कोडिंग में आराम होना चाहिए। और यही मेरे लिए है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.