Do Developers Read Type Information? An Eye-Tracking Study on TypeScript
26 स्नातक छात्रों पर आधारित यह आई-ट्रैकिंग अध्ययन यह प्रकट करता है कि डेवलपर्स टाइपस्क्रिप्ट में कोड बोध या बग लोकलाइजेशन कार्यों के दौरान टाइप एनोटेशन को सीधे तौर पर अधिक बार नहीं देखते हैं, जो यह सुझाव देता है कि हालांकि प्रकार (types) दस्तावेज़ीकरण के रूप में कार्य कर सकते हैं, लेकिन उन्हें उस तरह से सक्रिय रूप से नहीं पढ़ा जाता है जैसा कि पहले परिकल्पना की गई थी।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक कुकबुक (पाक पुस्तिका) पढ़ रहे हैं। कुछ रेसिपी में सामग्री की सूची पर छोटे स्टिकी नोट्स लगे हैं जैसे "2 कप मैदा" या "चिकन, बिना हड्डी वाला।" ये नोट्स कंप्यूटर कोड में टाइप एनोटेशन (type annotations) की तरह हैं। वे प्रोग्रामर (रसोइया) को बताते हैं कि किस तरह के डेटा (सामग्री) का उपयोग किया जा रहा है।
वर्षों से, विशेषज्ञों का मानना रहा है कि ये "स्टिकी नोट्स" एक अंतर्निहित निर्देश पुस्तिका (built-in instruction manual) के रूप में कार्य करते हैं। सिद्धांत यह है कि जब कोई प्रोग्रामर फंस जाता है या किसी रेसिपी को समझने की कोशिश करता है, तो वह इन नोट्स को मदद के लिए देखता है।
बड़ा सवाल:
क्या प्रोग्रामर वास्तव में कोड पढ़ते समय इन नोट्स को देखते हैं, या वे उन्हें अनदेखा कर देते हैं?
यह पता लगाने के लिए, इस शोध पत्र के शोधकर्ताओं ने एक "किचन" प्रयोग तैयार किया। उन्होंने केवल प्रोग्रामर्स से यह नहीं पूछा कि वे क्या सोचते हैं कि वे क्या करते हैं; उन्होंने 22 छात्रों को कोड समझने और उसमें बग (गलतियाँ) खोजने के दौरान देखने के लिए आई-ट्रैकिंग चश्मे (eye-tracking glasses) (जैसे हाई-टेक चश्मे जो रिकॉर्ड करते हैं कि आपकी आँखें वास्तव में कहाँ देख रही हैं) का उपयोग किया।
यहाँ उनकी खोज दी गई है, जिसे सरल अवधारणाओं में विभाजित किया गया है:
1. "घोस्ट नोट" (Ghost Note) घटना
अपेक्षा: यदि स्टिकी नोट्स मददगार हैं, तो लोग उन्हें अक्सर देखना चाहिए, खासकर जब वे भ्रमित हों।
वास्तविकता: आई-ट्रैकिंग डेटा ने दिखाया कि प्रोग्रामर टाइप एनोटेशन को शायद ही कभी देखते थे।
- उपमा: यह एक ऐसे मानचित्र की तरह है जिस पर चमकीले लाल रंग का "आप यहाँ हैं" का स्टिकर लगा है, लेकिन ड्राइवर सड़क और जीपीएस स्क्रीन को देखते हुए आगे बढ़ता रहता है, उस स्टिकर को पूरी तरह से अनदेखा कर देता है। भले ही नोट्स वहाँ मौजूद थे, प्रोग्रामर्स की आँखें कोड पढ़ते समय उतनी ही थीं जितनी कि नोट्स के न होने पर होतीं।
- निष्कर्ष: इन नोट्स की उपस्थिति ने प्रोग्रामर्स के कोड पढ़ने के तरीके को नहीं बदला। उन्होंने नोट्स को अधिक बार नहीं देखा, और जब वे फंस गए तो वे उन्हें दोबारा पढ़ने के लिए भी वापस नहीं गए।
2. "मेमोरी" (स्मृति) परीक्षण
अपेक्षा: शायद नोट्स एक स्मृति सहायता (memory aid) के रूप में कार्य करते हैं? यदि किसी प्रोग्रामर के पास याद रखने के लिए बहुत सारी चीजें हैं (उच्च वर्किंग मेमोरी), तो शायद वे नोट्स का कम उपयोग करते हैं क्योंकि वे जानकारी को अपने दिमाग में रख सकते हैं। यदि उन्हें याद रखने में कठिनाई होती है, तो शायद वे नोट्स पर अधिक निर्भर होते हैं।
वास्तविकता: शोधकर्ताओं ने छात्रों की याददाश्त का परीक्षण किया (जैसे गणित करते समय अक्षरों की एक सूची को याद रखना)।
- निष्कर्ष: इससे बहुत फर्क नहीं पड़ा कि उनकी याददाश्त कितनी अच्छी थी। चाहे उनके पास "सुपर मेमोरी" हो या "सामान्य मेमोरी", वे फिर भी टाइप नोट्स को काफी अधिक या कम देखते नहीं थे। नोट्स उनकी याददाश्त के लिए उस तरह से सहारा (crutch) नहीं बने जैसा कि शोधकर्ताओं को उम्मीद थी।
3. "यह रेसिपी पर निर्भर करता है" कारक
निष्कर्ष: प्रोग्रामर्स के कोड पढ़ने के तरीके को बदलने वाली सबसे बड़ी चीज़ नोट्स नहीं थी; बल्कि कोड स्वयं था।
- उपमा: कुछ रेसिपी अन्य की तुलना में पढ़ना आसान होती हैं। यदि कोई रेसिपी अव्यवस्थित या भ्रमित करने वाली है, तो रसोइया उसे देखते हुए अधिक समय बिताता है। यदि यह स्पष्ट है, तो वे इसे जल्दी से पढ़ लेते हैं। शोधकर्ताओं ने पाया कि विशिष्ट कोड के नोट्स होने की तुलना में कोड का कठिन होना कहीं अधिक महत्वपूर्ण था। कुछ कोड एनोटेशन के बावजूद समझने में कठिन था।
4. "मुझे नोट्स पसंद हैं" विरोधाभास
ट्विस्ट: प्रयोग के बाद, शोधकर्ताओं ने छात्रों से पूछा, "क्या आपको ये स्टिकी नोट्स पसंद हैं?"
- परिणाम: छात्रों ने कहा हाँ! उन्होंने भारी संख्या में कहा कि टाइप एनोटेशन कोड लिखने और समझने के लिए सहायक हैं। वे सोचते हैं कि वे उपयोगी हैं।
- विरोधाभास: यह भ्रमित करने वाला हिस्सा है। छात्र कहते हैं कि नोट्स बेहतरीन हैं, लेकिन उनकी आँखें साबित करती हैं कि वे उन्हें देख नहीं रहे हैं। यह कहने जैसा है कि, "मुझे अनाज खरीदते समय पोषण लेबल पढ़ना पसंद है," लेकिन फिर खरीदारी करते समय वास्तव में कभी उसे नहीं देखते।
इसका क्या अर्थ है?
शोध पत्र निष्कर्ष निकालता है कि हालांकि प्रोग्रामर्स यह मानते हैं कि टाइप एनोटेशन कोड के भीतर उपयोगी दस्तावेज़ीकरण (documentation) की तरह हैं, वे वास्तव में उन्हें उस तरह से नहीं पढ़ते जैसा कि हम उम्मीद करते हैं। वे उन पर ध्यान केंद्रित नहीं करते, और न ही फंसने पर वे वापस उन पर जाते हैं।
किसे इसकी चिंता करनी चाहिए?
- टूल निर्माता (Tool Builders): यदि प्रोग्रामर नोट्स नहीं देख रहे हैं, तो शायद टूल्स (जैसे उनके द्वारा उपयोग किए जाने वाले सॉफ्टवेयर एडिटर) को इस जानकारी को स्क्रीन पर प्रिंट करने के बजाय, इसे अलग या अधिक स्पष्ट तरीके से दिखाने की आवश्यकता है।
- शिक्षक: यदि छात्र नोट्स नहीं पढ़ रहे हैं, तो शिक्षकों को यह सिखाने की आवश्यकता हो सकती है कि इस जानकारी को कैसे पढ़ा और उपयोग किया जाए, बजाय इसके कि वे यह मान लें कि वे इसे स्वाभाविक रूप से सीख लेंगे।
- समुदाय: यह सुझाव देता है कि केवल कोड में ये नोट्स जोड़ना समझ के लिए कोई जादुई समाधान नहीं है; नोट्स को एक विशिष्ट तरीके से उपयोग करने की आवश्यकता है जिसे हमने अभी तक पूरी तरह से समझा नहीं है।
संक्षेप में: प्रोग्रामर्स टाइप एनोटेशन के विचार को पसंद करते हैं, लेकिन व्यवहार में, उनकी आँखें एक अलग कहानी बताती हैं: वे उन्हें ज्यादातर अनदेखा कर रहे हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।