डेल्फ़ी (सॉफ़्टवेयर)

डेल्फी एक सामान्य प्रयोजन प्रोग्रामिंग लैंग्वेज और एक सॉफ्टवेयर उत्पाद है जो ऑब्जेक्ट पास्कल प्रोग्रामिंग लैंग्वेज की डेल्फी डायलेक्ट का उपयोग करता है और डेस्कटॉप, मोबाइल, वेब और कंसोल सॉफ्टवेयर के तेजी से अनुप्रयोग विकास के लिए एक एकीकृत विकास वातावरण (आईडीई) प्रदान करता है, वर्तमान में एम्बरकेडेरो टेक्नोलॉजीज द्वारा विकसित और रखरखाव किया जाता है।

डेल्फ़ी के कंपाइलर माइक्रोसॉफ्ट विंडोज, मैकओएस, आईओएस, एंड्रॉइड और लिनक्स (x64) के लिए नेटिव कोड उत्पन्न करते हैं।

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

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

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

सुविधाएँ
डेल्फ़ी तीव्र अनुप्रयोग विकास (आरएडी) का सपोर्ट करता है। प्रमुख विशेषताएं एक विज़ुअल डिज़ाइनर और दो एप्लीकेशन फ्रेम वर्क, विंडोज़ के लिए विज़ुअल कंपोनेंट लाइब्रेरी और क्रॉस-प्लेटफ़ॉर्म विकास के लिए फ़ायरमॉन्की (एफएमएक्स) हैं।

डेल्फ़ी टर्बो पास्कल के उत्तराधिकारी के रूप में बोरलैंड (अब आईडीईआरए) के लिए एंडर्स हेल्सबर्ग द्वारा बनाई गई पास्कल प्रोग्रामिंग लैंग्वेज -आधारित प्रोग्रामिंग लैंग्वेज ऑब्जेक्ट पास्कल का उपयोग करता है। यह विंडोज़, लिनक्स, आईओएस और एंड्रॉइड सहित कई प्लेटफार्मों पर देशी क्रॉस-संकलन का सपोर्ट करता है।

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

डेटाबेस कनेक्टिविटी को वीसीएल डेटाबेस-अवेयर और डेटाबेस एक्सेस घटकों के माध्यम से बड़े मापदंड पर समर्थित किया जाता है।

इसके पश्चात् के वर्जन में उन्नत और उन्नत रनटाइम लाइब्रेरी रूटीन सम्मिलित हैं, जिनमें से कुछ सामुदायिक समूह फास्टकोड द्वारा प्रदान किए गए हैं।

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

स्ट्रिंग्स को फ़ंक्शंस का उपयोग करने के अतिरिक्त '+' ऑपरेटर का उपयोग करके संयोजित किया जा सकता है। डेडिकेटेड स्ट्रिंग प्रकारों के लिए, डेल्फ़ी प्रोग्रामर के व्यवधान के बिना मेमोरी प्रबंधन को संभालता है। बोरलैंड डेवलपर स्टूडियो 2006 के बाद से, मेमोरी लीक्स का पता लगाने के लिए फ़ंक्शन उपस्थित हैं।

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

कंपाइलर ओप्टीमिज़िंग कर रहा है और सिंगल-पास कंपाइलर है। यह वैकल्पिक रूप से एकल निष्पादन योग्य में संकलित हो सकता है जिसके लिए डीएलएल की आवश्यकता नहीं होती है। डेल्फ़ी मानक डीएलएल, एक्टिवएक्स डीएलएल, कॉम ऑटोमेशन सर्वर और विंडोज सेवाएँ भी उत्पन्न कर सकता है।

डेल्फ़ी 2005 के बाद से डेल्फ़ी आईडीई विधि निष्कर्षण और स्रोत कोड से यूनीफाईड मॉडलिंग लैंग्वेज मॉडल बनाने या मॉडल में किए गए परिवर्तनों के माध्यम से स्रोत को संशोधित करने की संभावना जैसी रेफक्टोरिंग सुविधाओं का तेजी से सपोर्ट कर रहे हैं।

डेल्फ़ी के वर्ल्ड वाइड वेब पर समुदाय हैं, जहाँ उसके एम्प्लोयी भी सक्रिय रूप से भाग लेते हैं।

बेकवर्ड कॉम्पैटीबिलिटी
डेल्फ़ी उन लैंग्वेज में से एक है जहाँ बेकवर्ड कॉम्पैटीबिलिटी 100% के समीप है। यद्यपि डेल्फ़ी की प्रत्येक नई रिलीज़ उपस्थित कोड के पुन: उपयोग, नई सुविधाओं, नई लाइब्रेरीज़ और सुधारों की अनुमति देने के लिए जितना संभव हो उतना बैकवर्ड कॉम्पैटीबिलिटी बनाए रखने का प्रयास करती है, और कभी-कभी नए रिलीज़ को 100% से कम बैकवर्ड कॉम्पैटीबिलिटी बना देती है।

2016 के बाद से, हर छह महीने में डेल्फ़ी की नई रिलीज़ होती रही हैं, लगभग हर दूसरी रिलीज़ में नए प्लेटफ़ॉर्म जोड़े जाते हैं।

फ्रेम वर्क
डेल्फ़ी विजुअल अनुप्रयोग विकास के लिए दो रूपरेखाएँ प्रदान करता है, वीसीएल और फायरमंकी (एफएमएक्स):


 * विज़ुअल कंपोनेंट लाइब्रेरी (वीसीएल) प्योर विंडोज़ अनुप्रयोगों को विकसित करने के लिए फ्रेमवर्क है। वीसीएल एक दीर्घकालिक फ्रेम वर्क है, जिसे डेल्फ़ी की पहली रिलीज़ में सम्मिलित किया गया था और तब से सक्रिय रूप से विकसित किया गया है।
 * फायरमंकी (बाद में संक्षिप्त रूप से एफएमएक्स), 2011 में डेल्फ़ी XE2 के भाग के रूप में, नॉन-विंडोज़ प्लेटफ़ॉर्म के लिए बिल्ट इन कंपाइलरों के एक अतिरिक्त सेट के साथ प्रसारित किया गया था। फायरमॉन्की विंडोज, मैकओएस, आईओएस, एंड्रॉइड और लिनक्स (x64) के लिए एक क्रॉस-प्लेटफॉर्म फ्रेमवर्क है। फायरमंकी के जीयूआई भाग अधिक सीमा तक डायरेक्ट3डी और ओपनजीएल पर आधारित हैं। फायरमंकी वीसीएल के साथ संगत नहीं है; वे दो अलग-अलग फ्रेम वर्क हैं। चूँकि, फायरमंकी एप्लिकेशन वीसीएल अनुप्रयोगों के साथ नॉन-विज़ुअल कोड यूनिट (सॉफ़्टवेयर डेवलपमेंट) को सरलता से साझा करने की अनुमति देते हैं, जिससे बहुत सारे कोड को प्लेटफ़ॉर्म के बीच आसानी से पोर्ट या साझा किया जा सकता है।

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

स्कूलों में उपयोग
डेल्फ़ी दक्षिण अफ़्रीकी स्कूलों में सूचना प्रौद्योगिकी (आईटी) के विषय के रूप में प्रोग्रामिंग सिखाने के लिए उपयोग किया जाने वाला माध्यम है।

रोडमैप
एम्बरकेडरो अपनी भविष्य की विकास योजनाओं का वर्णन करते हुए रोडमैप प्रकाशित करता है। सबसे आधुनिक नवंबर 2020 में प्रकाशित हुआ था। नवंबर 2020 के रोडमैप में रेफ्फेर्ड वर्जन 10.5 का नाम बदलकर 11.0 कर दिया गया।

संबंधित सॉफ़्टवेयर

 * बोरलैंड एंटरप्राइज स्टूडियो, आरएडी स्टूडियो का पूर्ववर्ती, एक सॉफ्टवेयर डेवलपमेंट सूट है जिसमें कई लैंग्वेज के लिए सपोर्ट सम्मिलित है। विंडोज़ के लिए बोरलैंड एंटरप्राइज़ स्टूडियो डेल्फ़ी का सपोर्ट करता है।
 * बोरलैंड काइलिक्स: डेल्फ़ी के समान किंतु लिनक्स के लिए, 2001 में प्रसारित किया गया। यह डेल्फ़ी उत्पाद वर्ग में लिनक्स सपोर्ट जोड़ने का पहला प्रयास था। काइलिक्स ने डेल्फ़ी के वीसीएल के अतिरिक्त नए सीएलएक्स क्रॉस-प्लेटफॉर्म फ्रेमवर्क (क्यूटी पर आधारित) का उपयोग किया गया था। काइलिक्स को वर्जन 3 के बाद संवर्त कर दिया गया था। आज लिनक्स सपोर्ट मुख्य डेल्फ़ी उत्पाद में एकीकृत है और फायरमॉन्की क्रॉस-प्लेटफ़ॉर्म फ्रेमवर्क का उपयोग करता है।
 * इंटरबेस एक एम्बेड करने योग्य एसक्यूएल डेटाबेस है जो क्लाइंट/सर्वर या एम्बेडेड विकास के लिए मूल रूप से डेल्फ़ी और C++बिल्डर के साथ एकीकृत होता है। इसकी विशिष्ट विशेषताएं कम प्रशासन आवश्यकताओं, वाणिज्यिक-ग्रेड डेटा सुरक्षा, आपदा पुनर्प्राप्ति और परिवर्तन सिंक्रनाइज़ेशन हैं। यह ओडीबीसी, एडीओ, एडीओ.नेट जैसे डेटाबेस कनेक्शन प्रोटोकॉल और यहां तक ​​कि जावा के साथ जेडीबीसी/ओडीबीसी ब्रिज या जावा टाइप 4 कनेक्टर्स के साथ बाजार में सभी प्रमुख लैंग्वेज और प्लेटफार्मों द्वारा भी पहुंच योग्य है।
 * जेबिल्डर वर्जन जेबिल्डर 2007 से एक्लिप्स पर आधारित जावा विकास के लिए एक उपकरण था।
 * रैडपीएचपी (बाद में एचटीएमएल 5 बिल्डर से बदल दिया गया) पीएचपी के लिए एक एकीकृत विकास वातावरण था जो वास्तविक रैड कार्यक्षमता प्रदान करता था। इसमें डेल्फ़ी या मूल विजुअल के समान एक फॉर्म डिज़ाइनर और अपाचे एचटीटीपी सर्वर वेब सर्वर पर आधारित एक एकीकृत डिबगर है। इसमें पीएचपी में पोर्ट की गई विज़ुअल कंपोनेंट लाइब्रेरी लाइब्रेरी भी सम्मिलित है। अन्य आईडीई के विपरीत, यह अजाक्स जैसी वेब 2.0 सुविधाओं का सपोर्ट करता है। पीएचपी के लिए डेल्फ़ी की घोषणा 20 मार्च 2007 को की गई थी, अक्टूबर 2010 में इसका नाम बदलकर रैडपीएचपी कर दिया गया और यह काद्रम Q स्टूडियो पर आधारित है। एम्बरकैडेरो ने जनवरी 2011 में काद्रम का अधिग्रहण किया गया था।
 * डेल्फ़ी प्रिज्म (जिसे बाद में एम्बरकैडेरो प्रिज्म के नाम से जाना गया) रेमऑब्जेक्ट्स से ऑक्सीजन (प्रोग्रामिंग लैंग्वेज ) (पहले क्रोम के नाम से जाना जाता था) से प्राप्त हुआ। यह रैड स्टूडियो के अतिरिक्त माइक्रोसॉफ्ट विज़ुअल स्टूडियो आईडीई में चला जब उस उत्पाद को संवर्त कर दिया गया तो उसे Delphi.NET की जगह लेने के लिए एम्बरकेडरो द्वारा लाइसेंस दिया गया और पुनः ब्रांड किया गया था।
 * फ्री पास्कल एक ओपन-सोर्स पास्कल क्रॉस-प्लेटफ़ॉर्म क्रॉस-कंपाइलर है जो डेल्फ़ी के अधिकांश ऑब्जेक्ट पास्कल कोड का सपोर्ट करता है। फ्री पास्कल के पास अपनी लैंग्वेज एक्सटेंशन, मल्टीपल कंपाइलर लैंग्वेज सिंटैक्स मोड भी हैं, और 18+ ऑपरेटिंग सिस्टम और 9+ प्रोसेसर आर्किटेक्चर का सपोर्ट करता है। लाजर एक क्रॉस-प्लेटफ़ॉर्म रेड आईडीई है जो फ्री पास्कल कंपाइलर का उपयोग करता है।

उल्लेखनीय तृतीय-पक्ष लाइब्रेरी

 * फास्टकोड - उन्नत रनटाइम लाइब्रेरी और मेमोरी मैनेजर।
 * ओपनवायर (लाइब्रेरी) - डेटा प्रवाह, ईवेंट और स्थति सिंक्रनाइज़ेशन कॉम्पोनेन्ट लाइब्रेरी।
 * प्रोजेक्ट जेडी (डेल्फी इनोवेटर्स का संयुक्त प्रयास) - विंडोज़ एपीआई इंटरफेस, अतिरिक्त घटकों और नियंत्रण, और एल्गोरिदम और डेटा संरचनाओं के अनुवाद प्रदान करने के लिए डेल्फी डेवलपर समुदाय द्वारा एक सहयोगी ओपन-सोर्स प्रयास है ।
 * टीचार्ट - चार्टिंग लाइब्रेरी।