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

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

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

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

यह भी देखें

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