एक्सप्लोरेटरी प्रोग्रामिंग

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

औपचारिक विशिष्टता बनाम खोजपूर्ण प्रोग्रामिंग
कुछ सॉफ़्टवेयर विकास परियोजनाओं के लिए, आवश्यकताओं का विश्लेषण और औपचारिक विनिर्देशन करना उचित है। अन्य सॉफ्टवेयर विकास परियोजनाओं के लिए, यह समझ में आता है कि डेवलपर्स को प्रौद्योगिकी के साथ प्रयोग करने दें और खोजपूर्ण प्रोग्रामिंग के आधार पर सॉफ्टवेयर के विनिर्देशों को विकसित होने दें।

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

यह भी देखें

 * लाइव कोडिंग
 * सॉफ्टवेयर प्रोटोटाइपिंग