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

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

डेल्फ़ी के कंपाइलर Microsoft Windows, macOS, iOS, Android (ऑपरेटिंग सिस्टम) और Linux (X86-64) के लिए मूल कोड उत्पन्न करते हैं। डेल्फ़ी में एक कोड संपादक, एक विज़ुअल डिज़ाइनर, एक एकीकृत डिबगर, एक संस्करण नियंत्रण घटक और तृतीय-पक्ष प्लगइन (कंप्यूटिंग) के लिए समर्थन शामिल है। कोड संपादक में कोड अंतर्दृष्टि  (कोड पूर्णता), एरर इनसाइट (वास्तविक समय त्रुटि-जाँच), और कोड रीफैक्टरिंग की सुविधा है। विज़ुअल फॉर्म डिज़ाइनर के पास शुद्ध विंडोज़ विकास के लिए दृश्य घटक लाइब्रेरी (VCL) या क्रॉस-प्लेटफ़ॉर्म विकास के लिए FireMonkey (FMX) फ्रेमवर्क का उपयोग करने का विकल्प होता है। डेटाबेस समर्थन एक प्रमुख विशेषता है और यह FireDAC (डेटाबेस एक्सेस कंपोनेंट्स) द्वारा प्रदान किया जाता है। डेल्फ़ी अपनी तेज़ संकलन गति, मूल कोड और डेवलपर उत्पादकता के लिए जाना जाता है।

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ढांचे
डेल्फ़ी दृश्य अनुप्रयोग विकास के लिए दो रूपरेखाएँ प्रदान करता है, VCL और FireMonkey (FMX):


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

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

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

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

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

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

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

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