2025-11-23T09:49:16.774551

Readability and Understandability of Snippets Recommended by General-purpose Web Search Engines: a Comparative Study

Dantas, Maia
Developers often search for reusable code snippets on general-purpose web search engines like Google, Yahoo! or Microsoft Bing. But some of these code snippets may have poor quality in terms of readability or understandability. In this paper, we propose an empirical analysis to analyze the readability and understandability score from snippets extracted from the web using three independent variables: ranking, general-purpose web search engine, and recommended site. We collected the top-5 recommended sites and their respective code snippet recommendations using Google, Yahoo!, and Bing for 9,480 queries, and evaluate their readability and understandability scores. We found that some recommended sites have significantly better readability and understandability scores than others. The better-ranked code snippet is not necessarily more readable or understandable than a lower-ranked code snippet for all general-purpose web search engines. Moreover, considering the readability score, Google has better-ranked code snippets compared to Yahoo! or Microsoft Bing
academic

सामान्य-उद्देश्य वेब सर्च इंजन द्वारा अनुशंसित स्निपेट की पठनीयता और समझदारी: एक तुलनात्मक अध्ययन

बुनियादी जानकारी

  • पेपर ID: 2110.07087
  • शीर्षक: Readability and Understandability of Snippets Recommended by General-purpose Web Search Engines: a Comparative Study
  • लेखक: Carlos Eduardo C. Dantas, Marcelo A. Maia
  • वर्गीकरण: cs.SE (सॉफ्टवेयर इंजीनियरिंग)
  • प्रकाशन समय/सम्मेलन: AeSIR '21, 15–11 नवंबर, 2021
  • पेपर लिंक: https://arxiv.org/abs/2110.07087

सारांश

डेवलपर्स अक्सर Google, Yahoo! या Microsoft Bing जैसे सामान्य सर्च इंजन पर पुनः उपयोग योग्य कोड स्निपेट खोजते हैं। लेकिन ये कोड स्निपेट पठनीयता या समझदारी के मामले में कम गुणवत्ता वाले हो सकते हैं। यह पेपर एक अनुभवजन्य विश्लेषण प्रस्तुत करता है, जो तीन स्वतंत्र चर (रैंकिंग, सामान्य सर्च इंजन और अनुशंसित वेबसाइट) का उपयोग करके वेब से निकाले गए कोड स्निपेट की पठनीयता और समझदारी स्कोर का विश्लेषण करता है। अध्ययन ने Google, Yahoo! और Bing से 9,480 क्वेरी के लिए शीर्ष 5 अनुशंसित वेबसाइटों और उनके संबंधित कोड स्निपेट अनुशंसाओं को एकत्र किया, और उनके पठनीयता और समझदारी स्कोर का मूल्यांकन किया। अध्ययन से पता चलता है कि कुछ अनुशंसित वेबसाइटें पठनीयता और समझदारी स्कोर के मामले में अन्य वेबसाइटों से काफी बेहतर हैं। उच्च रैंकिंग वाले कोड स्निपेट सभी सामान्य सर्च इंजन में आवश्यक रूप से कम रैंकिंग वाले स्निपेट की तुलना में अधिक पठनीय या समझदारी योग्य नहीं हैं। इसके अलावा, पठनीयता स्कोर के मामले में, Google के पास Yahoo! या Microsoft Bing की तुलना में बेहतर कोड स्निपेट रैंकिंग है।

अनुसंधान पृष्ठभूमि और प्रेरणा

समस्या परिभाषा

  1. मुख्य समस्या: सामान्य सर्च इंजन द्वारा अनुशंसित कोड स्निपेट पठनीयता और समझदारी के मामले में गुणवत्ता में भिन्नता प्रदर्शित करते हैं, उच्च रैंकिंग वाले कोड स्निपेट आवश्यक रूप से उच्च गुणवत्ता के नहीं होते हैं
  2. व्यावहारिक आवश्यकता: डेवलपर्स व्यापक रूप से कोड उदाहरण खोजने के लिए सामान्य सर्च इंजन का उपयोग करते हैं, लेकिन इन कोड स्निपेट की गुणवत्ता का व्यवस्थित मूल्यांकन अभाव है
  3. सर्च इंजन सीमाएं: Google के पास 200 से अधिक रैंकिंग कारक हैं, लेकिन उच्च रैंकिंग वाले पृष्ठों में कम गुणवत्ता वाले कोड उदाहरण हो सकते हैं

अनुसंधान का महत्व

  • कोड स्निपेट पुनः उपयोग प्रोग्रामिंग कार्यों के समय को कम कर सकता है, विकास प्रक्रिया को तेज कर सकता है
  • Google के पास 90% से अधिक सर्च इंजन बाजार शेयर है, लेकिन अन्य सर्च इंजन की कोड गुणवत्ता रैंकिंग स्थिति अज्ञात है
  • पठनीयता और समझदारी के बीच पारस्परिक संबंध को समझने की आवश्यकता है: पठनीयता वाक्य-विन्यास समझ से संबंधित है, समझदारी शब्दार्थ पहलू से संबंधित है

प्रेरणा उदाहरण

पेपर Hora के अनुसंधान केस का हवाला देता है: Google पर "File.mkdirs examples" खोजते समय, Tutorialspoint का कोड स्निपेट हालांकि कम पठनीयता और पुनः उपयोग क्षमता संकेतक रखता है, लेकिन क्वेरी के समान प्राकृतिक भाषा व्याख्या के कारण उच्च रैंक करता है।

मुख्य योगदान

  1. पहला व्यवस्थित तुलनात्मक अध्ययन: Google, Yahoo! और Microsoft Bing तीन प्रमुख सर्च इंजन द्वारा अनुशंसित कोड स्निपेट की पठनीयता और समझदारी का बड़े पैमाने पर तुलनात्मक विश्लेषण
  2. बड़े पैमाने पर डेटासेट निर्माण: 9,480 क्वेरी के 47,400 वेब लिंक एकत्र किए, 5,355 विभिन्न वेबसाइटों को कवर किया
  3. बहु-आयामी विश्लेषण ढांचा: रैंकिंग, सर्च इंजन और अनुशंसित वेबसाइट तीन स्वतंत्र चर के आधार पर विश्लेषण विधि प्रस्तावित की
  4. अनुभवजन्य निष्कर्ष: दो महत्वपूर्ण परिकल्पनाओं की पुष्टि की: उच्च रैंकिंग वाले कोड स्निपेट में आवश्यक रूप से उच्च पठनीयता/समझदारी नहीं होती है; विभिन्न अनुशंसित वेबसाइटों की कोड गुणवत्ता में महत्वपूर्ण अंतर है
  5. समझदारी माप का मानकीकरण: संज्ञानात्मक जटिलता को 0,1 अंतराल में परिवर्तित करने की मानकीकृत विधि प्रस्तावित की

विधि विवरण

कार्य परिभाषा

इनपुट: प्रोग्रामिंग संबंधित क्वेरी कथन आउटपुट: कोड स्निपेट की पठनीयता और समझदारी स्कोर बाधाएं: केवल Java भाषा कोड स्निपेट का विश्लेषण, शीर्ष 5 खोज परिणामों पर विचार

अनुसंधान डिजाइन आर्किटेक्चर

अनुसंधान पांच-चरणीय विधि अपनाता है:

  1. इनपुट क्वेरी का चयन: CROKAGE उपकरण से 10,000 उपयोगकर्ता क्वेरी एकत्र करना
  2. शीर्ष n वेब पृष्ठ एकत्र करना: Google, Yahoo! और Bing के शीर्ष 5 अनुशंसित वेब पृष्ठ प्राप्त करना
  3. कोड स्निपेट निष्कर्षण: चयनित वेबसाइटों से Java कोड स्निपेट निकालना
  4. संकेतक की गणना: पठनीयता और समझदारी स्कोर की गणना करना
  5. विश्लेषण विधि: सांख्यिकीय विश्लेषण के लिए ANOVA और Tukey परीक्षण का उपयोग करना

मुख्य तकनीकी कार्यान्वयन

डेटा संग्रह रणनीति

  • क्वेरी संशोधन: Java कोड उदाहरण प्राप्त करने के लिए "example in java" टैग जोड़ना
  • वेबसाइट चयन: 5 सबसे लोकप्रिय वेबसाइटों का विश्लेषण

कोड निष्कर्षण विधि

  • StackOverflow: स्वीकृत उत्तरों से Java कोड स्निपेट निकालना
  • अन्य वेबसाइटें: HTML टैग में "example" और "Java" युक्त स्रोत कोड खोजने के लिए नियमित अभिव्यक्ति का उपयोग करना

मूल्यांकन संकेतक

पठनीयता माप:

  • Scalabrino आदि द्वारा प्रस्तावित भविष्य कहनेवाला मॉडल का उपयोग करना
  • टिप्पणियां, पहचानकर्ता सामंजस्य, पाठ सुसंगतता, अर्थ संख्या और अवधारणा आदि संकेतक शामिल करना
  • आउटपुट रेंज: 0,1, 0 कम पठनीयता दर्शाता है, 1 उच्च पठनीयता दर्शाता है

समझदारी माप:

  • Campbell द्वारा प्रस्तावित संज्ञानात्मक जटिलता पर आधारित
  • मानकीकरण सूत्र:
understandability(cs_i) = {
    1 - #cc/#mcc  if #cc < 15
    0.0           otherwise
}

जहां #cc संज्ञानात्मक जटिलता मान है, #mcc=15 अधिकतम अनुशंसित मान है

प्रयोगात्मक सेटअप

डेटासेट विवरण

  • क्वेरी स्रोत: CROKAGE उपकरण की उपयोगकर्ता क्वेरी, 80 से अधिक देशों से
  • डेटा स्केल: 9,480 वैध क्वेरी, 47,400 वेब लिंक
  • वेबसाइट कवरेज: 5,355 विभिन्न वेबसाइटें
  • भाषा प्रतिबंध: केवल Java प्रोग्रामिंग भाषा

मूल्यांकन विधि

  • सांख्यिकीय विश्लेषण: विचरण विश्लेषण (ANOVA) का उपयोग, 5% आत्मविश्वास स्तर (p-value<0.05)
  • बहु तुलना: समूहों के बीच महत्वपूर्ण अंतर की पहचान के लिए Tukey परीक्षण का उपयोग करना
  • समूहीकरण डिजाइन:
    • सर्च इंजन: 3 समूह (Google, Bing, Yahoo!)
    • रैंकिंग: 5 समूह (top-1 से top-5)
    • वेबसाइट: 5 समूह (चयनित 5 वेबसाइटें)

डेटा पूर्व-प्रसंस्करण

  • डुप्लिकेट क्वेरी और मैन्युअल रूप से अनुपयुक्त चिह्नित क्वेरी को हटाना
  • 5 से कम वेब पृष्ठ अनुशंसा वाली क्वेरी को फ़िल्टर करना
  • HTML टैग से लिंक निकालने के लिए नियमित अभिव्यक्ति का उपयोग करना

प्रयोगात्मक परिणाम

मुख्य निष्कर्ष

RQ1: सर्च इंजन रैंकिंग और कोड गुणवत्ता संबंध

  • ANOVA परिणाम: पठनीयता p-value=0.0034, समझदारी p-value=0.0003
  • मुख्य निष्कर्ष: Top-2 कोड स्निपेट पठनीयता और समझदारी के मामले में समग्र रूप से Top-1, Top-4 और Top-5 से बेहतर हैं
  • प्रभाव आकार: छोटा (-0.02 से 0.01 पठनीयता, -0.01 से 0.02 समझदारी)
  • निष्कर्ष: परिकल्पना H1 की पुष्टि करता है, उच्च रैंकिंग वाले कोड स्निपेट आवश्यक रूप से अधिक पठनीय या समझदारी योग्य नहीं हैं

RQ2: सर्च इंजन के बीच तुलना

  • ANOVA परिणाम: पठनीयता p-value=1.207e-12, समझदारी p-value=0.0364
  • पठनीयता क्रम: Google > Microsoft Bing > Yahoo!
  • समझदारी: Google Microsoft Bing से थोड़ा बेहतर है
  • प्रभाव आकार: छोटा (-0.02 से 0.02 पठनीयता, -0.01 से 0.005 समझदारी)

RQ3: अनुशंसित वेबसाइटों के बीच तुलना

  • ANOVA परिणाम: पठनीयता और समझदारी p-value दोनों <2.2e-16
  • सर्वश्रेष्ठ पठनीयता: geeksforgeeks
  • सर्वश्रेष्ठ समझदारी: tutorialspoint
  • प्रभाव आकार: पठनीयता मध्यम प्रभाव (-0.15 से 0.10), समझदारी छोटा प्रभाव (-0.04 से 0.08)

विस्तृत विश्लेषण परिणाम

पठनीयता विश्लेषण

GeeksforGeeks के सर्वश्रेष्ठ प्रदर्शन के कारण:

  • प्रत्येक कोड लाइन के साथ एक टिप्पणी
  • उच्च समन्वय, प्रत्येक अवधारणा स्वतंत्र
  • उदाहरण: क्वेरी "How to append to a string?"
    • GeeksforGeeks: पठनीयता स्कोर 0.94
    • Tutorialspoint: पठनीयता स्कोर 0.44

समझदारी विश्लेषण सीमाएं

  • 58.3% कोड स्निपेट अधिकतम समझदारी स्कोर तक पहुंचते हैं
  • अधिकांश कोड स्निपेट सरल API कॉल हैं, जटिल नियंत्रण संरचना की कमी है
  • सुझाव है कि यह संकेतक पूर्ण Git रिपॉजिटरी जैसी फाइलों के लिए अधिक उपयुक्त है

संबंधित कार्य

कोड पठनीयता अनुसंधान

  • Hora (2021): Google कैसे पठनीयता और पुनः उपयोग क्षमता विशेषताओं के अनुसार कोड स्निपेट रैंक करता है इसका अनुसंधान
  • Scalabrino आदि: कोड पठनीयता भविष्य कहनेवाला मॉडल प्रस्तावित किया
  • Buse और Weimer: कोड पठनीयता माप सीखना

कोड खोज और अनुशंसा

  • API Sonar उपकरण: पठनीयता विशेषताओं का उपयोग करके कोड स्निपेट रैंक करना
  • Muse विधि: पठनीयता विशेषताओं का उपयोग करके कोड उदाहरण रैंक करना
  • CROKAGE: StackOverflow से कोड स्निपेट और व्याख्या निकालने वाला कोड सर्च इंजन

कोड गुणवत्ता मूल्यांकन

  • Treude और Robillard: पाया कि केवल 49% StackOverflow कोड स्निपेट पूरी तरह से आत्म-व्याख्यात्मक हैं
  • संज्ञानात्मक जटिलता: Campbell द्वारा प्रस्तावित समझदारी माप विधि

निष्कर्ष और चर्चा

मुख्य निष्कर्ष

  1. रैंकिंग विरोधाभास: सर्च इंजन रैंकिंग कोड गुणवत्ता से पूरी तरह संबंधित नहीं है, Top-2 और Top-3 कोड स्निपेट की गुणवत्ता अधिक हो सकती है
  2. सर्च इंजन अंतर: Google पठनीयता के मामले में सर्वश्रेष्ठ प्रदर्शन करता है, लेकिन लाभ सीमित है
  3. वेबसाइट गुणवत्ता भेदभाव: अनुशंसित वेबसाइटों के बीच महत्वपूर्ण गुणवत्ता अंतर है, ट्यूटोरियल वेबसाइटें (GeeksforGeeks) बेहतर पठनीयता प्रदान करती हैं
  4. समझदारी सीमा: वर्तमान समझदारी संकेतक सरल कोड स्निपेट के लिए विभेदन क्षमता सीमित है

व्यावहारिक महत्व

  • डेवलपर मार्गदर्शन: GeeksforGeeks जैसी ट्यूटोरियल वेबसाइटों के कोड स्निपेट को प्राथमिकता देने की सिफारिश
  • खोज रणनीति: केवल रैंकिंग के आधार पर कोड स्निपेट का चयन नहीं करना चाहिए, गुणवत्ता संकेतकों पर विचार करना चाहिए
  • उपकरण सुधार: कोड सर्च इंजन के लिए गुणवत्ता मूल्यांकन के संदर्भ मानदंड प्रदान करना

सीमाएं

  1. वेबसाइट कवरेज सीमित: केवल 5 वेबसाइटों का विश्लेषण, अनुशंसित वेबसाइटों का 34%-38.1% प्रतिनिधित्व करता है
  2. निष्कर्षण रणनीति: प्रत्येक वेब पृष्ठ से केवल पहला कोड स्निपेट निकाला गया
  3. क्वेरी संशोधन प्रभाव: "example in java" जोड़ना खोज परिणामों को प्रभावित कर सकता है
  4. संकेतक सटीकता: पठनीयता और समझदारी उपकरणों में त्रुटि हो सकती है

भविष्य की दिशा

  1. गुणात्मक अनुसंधान: पठनीयता और समझदारी स्कोर अंतर के कारणों को गहराई से समझना
  2. विस्तारित अनुसंधान: अधिक वेबसाइटें शामिल करना या सामान्य कोड निष्कर्षण विधि विकसित करना
  3. बहु-भाषा समर्थन: अन्य प्रोग्रामिंग भाषाओं तक विस्तार करना
  4. बहु-कोड स्निपेट प्रसंस्करण: एकल पृष्ठ पर कई कोड स्निपेट को संभालने के लिए अनुमानी विधि विकसित करना

गहन मूल्यांकन

शक्तियां

  1. अनुसंधान नवीनता: मुख्य सर्च इंजन की कोड स्निपेट गुणवत्ता की पहली व्यवस्थित तुलना
  2. डेटा स्केल: बड़े पैमाने पर अनुभवजन्य अनुसंधान, पर्याप्त डेटा मात्रा, विश्वसनीय निष्कर्ष
  3. विधि कठोरता: परिपक्व सांख्यिकीय विश्लेषण विधि का उपयोग, सांख्यिकीय रूप से महत्वपूर्ण परिणाम
  4. व्यावहारिक मूल्य: डेवलपर्स को कोड स्निपेट चयन के लिए अनुभवजन्य मार्गदर्शन प्रदान करता है
  5. पुनरुत्पादनीयता: पूर्ण पुनरुत्पादन पैकेज और विस्तृत विधि विवरण प्रदान करता है

कमजोरियां

  1. संकेतक सीमाएं: समझदारी संकेतक सरल कोड स्निपेट के लिए विभेदन क्षमता अपर्याप्त है
  2. वेबसाइट चयन पूर्वाग्रह: केवल 5 मुख्य वेबसाइटों का विश्लेषण, चयन पूर्वाग्रह संभव है
  3. भाषा प्रतिबंध: केवल Java भाषा पर विचार, सामान्यीकरण क्षमता सीमित है
  4. समयोपयोगिता: खोज परिणाम समय-संवेदनशील हैं, निष्कर्ष समय के साथ बदल सकते हैं

प्रभाव

  1. शैक्षणिक योगदान: कोड खोज और सॉफ्टवेयर इंजीनियरिंग अनुसंधान के लिए नया दृष्टिकोण प्रदान करता है
  2. व्यावहारिक मार्गदर्शन: डेवलपर्स के कोड खोज व्यवहार को सीधे प्रभावित करता है
  3. उपकरण सुधार: सर्च इंजन और कोड अनुशंसा प्रणाली अनुकूलन के लिए आधार प्रदान करता है
  4. अनुवर्ती अनुसंधान: संबंधित क्षेत्र अनुसंधान के लिए आधार स्थापित करता है

लागू परिदृश्य

  • सॉफ्टवेयर डेवलपर्स द्वारा कोड खोज के समय गुणवत्ता मूल्यांकन
  • कोड सर्च इंजन की रैंकिंग एल्गोरिदम अनुकूलन
  • प्रोग्रामिंग शिक्षा में कोड उदाहरण गुणवत्ता नियंत्रण
  • सॉफ्टवेयर इंजीनियरिंग अनुसंधान में कोड गुणवत्ता विश्लेषण

संदर्भ

पेपर 23 संबंधित संदर्भों का हवाला देता है, मुख्य रूप से:

  • कोड पठनीयता और समझदारी माप विधि
  • कोड खोज और अनुशंसा प्रणाली अनुसंधान
  • StackOverflow कोड गुणवत्ता विश्लेषण
  • सर्च इंजन रैंकिंग तंत्र अनुसंधान

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