जूलिया (प्रोग्रामिंग लैंग्वेज)

जूलिया एक उच्च-स्तरीय गतिशील प्रोग्रामिंग भाषा है। इसकी विशेषताएं संख्यात्मक विश्लेषण और संगणनीय विज्ञान के लिए उपयुक्त हैं।

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

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

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

जूलिया अन्य भाषाओं के साथ भी कार्य करती है, जिसमे अतिरिक्त पैकेजों के उपयोग के साथ C को कॉल करने का विशेष समर्थन है। इसे पायथन के साथ-साथ आर, जंग, सी ++, एसक्यूएल और जावास्क्रिप्ट के साथ कार्य करने या संकलित करने के लिए भी प्रारूपित किया गया है।

जूलिया को एक पैकेज का उपयोग करके द्विआधारी निष्पादन में संकलित किया जा सकता है इसके लिए सभी जूलिया सुविधाओं का समर्थन करना एक आवश्यक विशेषता है। किसी भिन्न पैकेज का उपयोग करके इन्हें छोटे द्विआधारी निष्पादन योग्य भी बनाया जा सकता हैं  परन्तु तब जूलिया रनटाइम  'निष्पादन योग्य' में सम्मिलित नहीं है। नीचे  9 KB कंप्यूटर या 2 KB RAM वाले माइक्रोकंट्रोलर के लिए भी डिफ़ॉल्ट रूप से, जूलिया कूट सभी जूलिया सुविधाओं का समर्थन करने के लिए जूलिया रनटाइम पर निर्भर करता है। थ्रेडिंग, परन्तु कुछ जूलिया कूट को छोटे निष्पादनयोग्य कूट में संकलित किया जा सकता है। दोनों ही स्थितियों में कोई स्रोत कूट वितरित करने की आवश्यकता नहीं है।

इतिहास
जूलिया पर कार्य 2009 में जेफ बेजानसन (प्रोग्रामर), स्टीफन कारपिंस्की, विरल बी. शाह और एलन एडेलमैन द्वारा शुरू किया गया था, जो एक ऐसी मुक्त भाषा बनाने के लिए तैयार थे जो उच्च-स्तरीय और तेज दोनों थी। 14 फरवरी 2012 को, टीम ने भाषा के मिशन को समझाते हुए एक ब्लॉग पोस्ट के साथ एक वेबसाइट लॉन्च की। अप्रैल 2012 में इन्फोवर्ल्ड के साथ एक साक्षात्कार में, कारपिंस्की ने जूलिया नाम के बारे में कहा: वास्तव में कोई अच्छा कारण नहीं है। यह सिर्फ एक सुंदर नाम जैसा लग रहा था। बेजानसन ने कहा कि उन्होंने एक मित्र की सिफारिश पर नाम चुना, फिर वर्षों बाद लिखा:

प्री-1.0 जूलिया के 2012 के लॉन्च के बाद से 10 वर्षों में, समुदाय का विकास हुआ है। जूलिया पैकेज पारिस्थितिकी तंत्र में कूट की 11.8 मिलियन से अधिक लाइनें हैं । जूलियाकॉन अकादमिक सम्मेलन जूलिया उपयोगकर्ताओं और डेवलपर्स के लिए 2014 से सालाना आयोजित किया गया है, जिसमें जूलियाकॉन 2020 28,900 से अधिक अद्वितीय दर्शकों का स्वागत करता है। और फिर जूलियाकॉन 2021 ने पिछले सभी रिकॉर्ड तोड़ दिए (यूट्यूब पर 300 से अधिक जूलियाकॉन2021 प्रस्तुतियों के साथ, एक साल पहले 162 से अधिक), और सम्मेलन के दौरान 43,000 अद्वितीय दर्शक। जूलिया के तीन सह-निर्माता न्यूमेरिकल सॉफ्टवेयर के लिए 2019 जेएच विल्किंसन पुरस्कार के प्राप्तकर्ता हैं। जूलिया के निर्माण के लिए न्यूमेरिकल सॉफ्टवेयर के लिए जेम्स एच। विल्किंसन पुरस्कार (हर चार साल में दिया जाता है), उच्च प्रदर्शन के निर्माण के लिए एक अभिनव वातावरण उपकरण जो कम्प्यूटेशनल विज्ञान समस्याओं के विश्लेषण और समाधान को सक्षम करते हैं। इसके अलावा, एमआईटी में लागू गणित के प्रोफेसर एलन एडेलमैन को उच्च-प्रदर्शन संगणनीयता, रैखिक बीजगणित और कम्प्यूटेशनल विज्ञान में उत्कृष्ट सफलताओं और जूलिया प्रोग्रामिंग भाषा में योगदान के लिए 2019 आईइइइ कंप्यूटर सोसाइटी सिडनी फ़र्नबैक अवार्ड प्राप्त करने के लिए चुना गया है।

दोनों जूलिया 0.7 और संस्करण 1.0 को 8 अगस्त 2018 को जारी किया गया था। जूलिया 0.7 पर कार्य करना एक बड़ा उपक्रम था (उदाहरण के लिए, एक पूरी तरह से नए अनुकूलक के कारण), और शब्दार्थ में कुछ बदलाव किए गए थे, उदा। पुनरावृति इंटरफ़ेस को सरल बनाया गया था; और सिंटैक्स थोड़ा बदल गया (सिंटैक्स अब स्थिर है, और 1.x और 0.7 के लिए समान है)।

जूलिया 1.1 जनवरी 2019 में एक नए अपवाद स्टैक फीचर के साथ जारी किया गया था। जूलिया 1.2 को अगस्त 2019 में वेब ब्राउज़र के लिए कुछ बिल्ट-इन सपोर्ट के साथ रिलीज़ किया गया था। जूलिया 1.3 ने जूलिया पैकेज के लिए कंपोज़ेबल मल्टी-थ्रेडेड समानता और एक द्विआधारी आर्टिफैक्ट सिस्टम जोड़ा। जूलिया 1.4 ने जेनरिक एरे इंडेक्सिंग के लिए सिंटैक्स जोड़ा जैसे कि हैंडल करने के लिए शून्य-आधारित नंबरिंग#प्रोग्रामिंग भाषाओं में उपयोग|0-आधारित सरणियाँ। मेमोरी मॉडल भी बदला गया था। अगस्त 2020 में जारी जूलिया 1.5 ने रिकॉर्ड और डिबगिंग फिर से चलाएं समर्थन जोड़ा, मोज़िला के आरआर (डिबगिंग) टूल के लिए। रिलीज़ ने रीड-इवल-प्रिंट लूप (सॉफ्ट स्कोप) में व्यवहार को प्रोजेक्ट ज्यूपिटर में उपयोग किए गए व्यवहार में बदल दिया, परन्तु गैर-आरईपीएल कूट के साथ पूरी तरह से संगत। अधिकांश थ्रेड (संगणनीयता) को स्थिर के रूप में चिह्नित किया गया था, और इस रिलीज़ के साथ मनमाने ढंग से अपरिवर्तनीय वस्तुओं को जारी किया गया था - चाहे उनके पास ऐसे क्षेत्र हों जो परिवर्तनशील वस्तुओं को संदर्भित करते हों या नहीं - अब स्टैक आवंटित किया जा सकता है, ढेर आवंटन को कम करना, उदा।   अब आवंटन नहीं हो रहा है।  जूलिया 1.5 ने तथाकथित टाइम-टू-फर्स्ट-प्लॉट प्रदर्शन को लक्षित किया, सामान्य तौर पर, संकलन की गति (जेनरेट किए गए कूट के प्रदर्शन के विपरीत), और पैकेज लोडिंग में सुधार के लिए डेवलपर्स के लिए अतिरिक्त टूल। जूलिया 1.6 1.0 के बाद सबसे बड़ी रिलीज थी, नवीनतम/एकमात्र दीर्घकालिक समर्थन (एलटीएस) संस्करण है (हालांकि अधिकांश को नवीनतम स्थिर/1.8 संस्करण का उपयोग करने की सलाह दी जाती है), कई मोर्चों पर तेजी से, उदा। कुछ मामलों में द्विआधारी कलाकृतियों के बड़े पेड़ों के लिए लोड समय में 50x स्पीडअप में समानांतर प्रीकंपिलेशन और पैकेजों की तेजी से लोडिंग की शुरुआत की। संस्करण 1.7 के रूप में जूलिया विकास जल्दी रिलीज करने के लिए वापस आ गया है, अक्सर रिलीज | समय-आधारित रिलीज। जूलिया 1.7.0 नवंबर 2021 में कई बदलावों के साथ जारी किया गया था, उदा। एक नया तेजी से यादृच्छिक संख्या पीढ़ी|यादृच्छिक-संख्या जनरेटर। जूलिया 1.7.3 को 25 मई 2022 को जारी किया गया था, जिसमें कम से कम एक सुरक्षा अद्यतन सहित कुछ मुद्दों को ठीक किया गया था। और 1.7.x अब समर्थित नहीं है।

जूलिया 1.8 को 2022 में रिलीज़ किया गया था (और जनवरी 2023 में फॉलोअप के रूप में 1.8.5 तक के संस्करण, दोनों फिक्सिंग बग्स (बैकपोर्टिंग) और इनवैलिडेशन, इस प्रकार तेजी से संकलन), बिना स्रोत कूट के जूलिया कार्यक्रमों को वितरित करने के लिए सुधार के साथ, और कंपाइलर स्पीडअप, कुछ मामलों में 25% तक,  और अधिक नियंत्रणीय इनलाइन विस्तार (अर्थात अब भी आवेदन करने की अनुमति देता है   कॉल साइट पर, न केवल समारोह में ही) और जूलिया 1.9 अगला मील का पत्थर है, यह और 1.10, 1.11, 1.12 और 2.0 के लिए मील के पत्थर की वर्तमान में कोई नियत तारीख नहीं है।

जूलियाकॉन
2014 से, जूलिया समुदाय ने डेवलपर्स और उपयोगकर्ताओं पर केंद्रित एक वार्षिक जूलिया सम्मेलन की मेजबानी की है। पहला जूलियाकॉन शिकागो में हुआ और सम्मेलन की वार्षिक घटना को किकस्टार्ट किया। 2014 से, सम्मेलन एमआईटी सहित कई स्थानों पर हुआ है और मैरीलैंड विश्वविद्यालय, बाल्टीमोर। घटना के दर्शक कुछ दर्जन लोगों से बढ़कर 28,900 से अधिक अद्वितीय उपस्थित लोगों तक पहुंच गए हैं जूलियाकॉन 2020 के दौरान, जो वस्तुतः हुआ। जूलियाकॉन 2021 भी वर्चुअली हुआ प्रोफेसरों विलियम कहन (आईईईई 754-1985 फ्लोटिंग-पॉइंट मानक के प्राथमिक वास्तुकार, जो उनके मुख्य वक्ता के बारे में है, वस्तुतः सभी सीपीयू उपयोग करते हैं और जूलिया समेत भाषाओं) से मुख्य पते के साथ, और जन विटेक, ज़िलॉय शेरी ली, और सौमिथ चिंताला (पीटरच के सह-निर्माता)। जूलियाकॉन 43,000 अद्वितीय उपस्थित लोगों और 300 से अधिक प्रस्तुतियों तक बढ़ गया (अभी भी स्वतंत्र रूप से सुलभ है, साथ ही पुराने वर्षों के लिए)। जूलियाकॉन 2022 भी 27 जुलाई से 29 जुलाई, 2022 के बीच पहली बार सिर्फ अंग्रेजी ही नहीं बल्कि कई भाषाओं में वर्चुअल आयोजित किया जाएगा।

प्रायोजक
जूलिया भाषा परियोजना की दीर्घकालिक स्थिरता सुनिश्चित करने के प्रयास में 2014 में न्यूफोकस वित्तीय रूप से प्रायोजित परियोजना बन गई। एमआईटी लिंकन प्रयोगशाला में जेरेमी केपनर अपने शुरुआती दिनों में जूलिया परियोजना के संस्थापक प्रायोजक थे। इसके अलावा, जूलिया के विकास के लिए गॉर्डन और बेट्टी मूर फाउंडेशन, अल्फ्रेड पी। स्लोन फाउंडेशन, इंटेल और राष्ट्रीय विज्ञान संस्था, DARPA, नेशनल इंस्टीट्यूट ऑफ हेल्थ, NASA और संघीय विमानन प्रशासन जैसी एजेंसियों से फंड आवश्यक है।. Mozilla, Firefox वेब ब्राउज़र के निर्माता, ने H1 2019 के लिए अपने अनुसंधान अनुदान के साथ, जूलिया को ब्राउज़र में लाने वाली परियोजना के लिए आधिकारिक जूलिया टीम के एक सदस्य को प्रायोजित किया, फ़ायरफ़ॉक्स के लिए अर्थ और अन्य वेब ब्राउज़र।    गिटहब पर व्यक्तिगत दाताओं द्वारा जूलिया भाषा का भी समर्थन किया जाता है।

जूलिया कंपनी
जूलियाहब, इंक. की स्थापना 2015 में जूलिया कम्प्यूटिंग, इंक. के रूप में वायरल बी. शाह, दीपक विंची, एलन एडेलमैन, जेफ बेजानसन, स्टीफन कारपिंस्की और वापस क्यों द्वारा की गई थी। जून 2017 में, जूलिया संगणनीयता ने 4.6 अमेरिकी डॉलर जुटाएजनरल कैटालिस्ट और संस्थापक सामूहिक से सीड फंडिंग में मिलियन, उसी महीने अल्फ्रेड पी. स्लोन फाउंडेशन द्वारा खुला स्रोत सॉफ्टवेयर का समर्थन करने के लिए $910,000 प्रदान किया गया था। जूलिया समुदाय में विविधता को बढ़ावा देने के लिए $160,000 सहित ओपन-सोर्स जूलिया विकास, और दिसंबर 2019 में कंपनी को $1.1 मिलाइमारतों में हीटिंग, वेंटिलेशन और एयर कंडीशनिंग (HVAC) सिस्टम की कुल ऊर्जा खपत को कम करने के लिए एक न्यूरल कंपोनेंट यंत्र अधिगम टूल विकसित करने के लिए अमेरिकी सरकार से मिलियन फंडिंग। जुलाई 2021 में, जूलिया कम्प्यूटिंग ने घोषणा की कि उन्होंने डोरिल्टन वेंचर्स के नेतृत्व में $24 मिलियन सीरीज़ ए राउंड जुटाए हैं, जिसका मालिक भी है Formula 1 टीम विलियम्स ग्रां प्री इंजीनियरिंग, जिसने जूलिया कम्प्यूटिंग के साथ भागीदारी की। विलियम्स के वाणिज्यिक निदेशक ने कहा: सर्वश्रेष्ठ-इन-क्लास क्लाउड तकनीक बनाने वाली कंपनियों में निवेश करना डोरिल्टन और जूलिया के बहुमुखी मंच के लिए एक रणनीतिक फोकस है, अनुकरण और मॉडलिंग में क्रांतिकारी क्षमताओं के साथ, हमारे व्यापार के लिए बेहद प्रासंगिक है। हम जूलिया संगणनीयता को दुनिया के सबसे तकनीकी रूप से उन्नत खेल में एम्बेड करने के लिए तत्पर हैं।

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

भाषा की प्रमुख विशेषताएं हैं:
 * एकाधिक प्रेषण: तर्क प्रकारों के संयोजनों में फ़ंक्शन व्यवहार को परिभाषित करने की क्षमता प्रदान करना
 * गतिशील प्रकार सिस्टम: प्रलेखन, अनुकूलन और प्रेषण के लिए प्रकार
 * प्रदर्शन प्रकार प्रणाली के करीब आ रहा है | सांख्यिकीय रूप से टाइप की गई भाषाएँ जैसे सी
 * एक अंतर्निहित पैकेज प्रबंधक
 * लिस्प (प्रोग्रामिंग भाषा)-जैसी मैक्रोज़ और अन्य मेटाप्रोग्रामिंग सुविधाएं
 * कॉल सी (प्रोग्रामिंग लैंग्वेज) बिना रैपर या विशेष अप्लिकेशन प्रोग्रामिंग अंतरफलक के सीधे कार्य करता है
 * अन्य भाषाओं के साथ इंटरफेस करने की क्षमता, उदा। PythonCall.jl Python को या उससे कॉल करने की अनुमति देता है (PyCall.jl के साथ भी संभव है), आर RCall.jl के साथ, और Java/Scala JavaCall.jl के साथ
 * शेल (संगणनीयता) जैसी क्षमताएं अन्य प्रक्रियाओं को प्रबंधित करने के लिए
 * समानांतर संगणनीयता और वितरित संगणनीयता के लिए डिज़ाइन किया गया
 * कोरूटिन्स: हल्का हरा धागा
 * यूज़र-डिफ़ाइंड प्रकार बिल्ट-इन जितने कॉम्पैक्ट होते हैं
 * विभिन्न तर्क प्रकारों के लिए कूट का स्वत: निर्माण
 * संख्यात्मक और अन्य प्रकार के लिए एक्स्टेंसिबल रूपांतरण और प्रचार
 * यूनिकूट के लिए समर्थन, जिसमें UTF-8 सम्मिलित है, परन्तु इन्हीं तक सीमित नहीं है

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

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

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

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

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

जूलिया की व्यापकता का एक उदाहरण, Unitful.jl पैकेज भाषा में माप की भौतिक इकाई के लिए समर्थन जोड़ता है।

इंटरेक्शन
जूलिया आधिकारिक वितरण में एक इंटरैक्टिव कमांड-लाइन रीड-ईवल-प्रिंट लूप (आरईपीएल) सम्मिलित है, खोजने योग्य इतिहास, कमांड-लाइन पूर्णता, और समर्पित सहायता और शेल (संगणनीयता) मोड के साथ, जिसका उपयोग कूट को जल्दी से प्रयोग और परीक्षण करने के लिए किया जा सकता है। निम्नलिखित टुकड़ा नमूना सत्र उदाहरण का प्रतिनिधित्व करता है जहां स्ट्रिंग स्वचालित रूप से प्रिंटलाइन द्वारा संयोजित होती हैं: <वाक्यविन्यास लैंग = jlcon> जूलिया> पी (एक्स) = 2x^2 + 1; f(x, y) = 1 + 2p(x)y जूलिया> प्रिंट्लन (हैलो वर्ल्ड!, मैं क्लाउड पर हूं, एफ (0, 4), क्योंकि जूलिया पहचानने योग्य सिंटैक्स का समर्थन करता है!) हैलो वर्ल्ड! मैं क्लाउड 9 पर हूं क्योंकि जूलिया पहचानने योग्य सिंटैक्स का समर्थन करती है! 

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

<वाक्यविन्यास लैंग = कंसोल> $ जूलिया <फ़ाइल का नाम> 

जूलिया UTF-8 का उपयोग करती है, उदा. स्रोत कूट के लिए, जिसका अर्थ कई ऑपरेटरों के लिए एक विकल्प के रूप में सामान्य गणित प्रतीकों की अनुमति भी है, जैसे कि ∈ के लिए  ऑपरेटर, के साथ टाइप करने योग्य   फिर दबाना  (यानी LaTeX कूट का उपयोग करता है, या केवल कॉपी-पेस्ट करके भी संभव है, उदा। √ and ∛ वर्गमूल और घनमूल कार्यों के लिए संभव)। जूलिया को यूनिकूट 14.0 (2021 से, और 1.9-DEV नवीनतम यूनिकूट 15.0 का समर्थन करता है) के लिए समर्थन प्राप्त है ), विश्व की भाषाओं के लिए, यहां तक ​​कि स्रोत कूट के लिए भी, उदा. चर नाम (अंग्रेज़ी का उपयोग नहीं करते समय दूसरों के पढ़ने के लिए कूट के लिए अनुशंसित नहीं है जैसे पैकेज नाम)। जूलिया को प्रोजेक्ट ज्यूपिटर का समर्थन प्राप्त है, जो एक ऑनलाइन इंटरैक्टिव नोटबुक वातावरण है। और Pluto.jl, एक प्रतिक्रियाशील नोटबुक (जहां नोटबुक को शुद्ध जूलिया फ़ाइलों के रूप में सहेजा जाता है), पूर्व प्रकार के लिए एक संभावित प्रतिस्थापन। इसके अलावा पॉज़िट (पूर्व में RStudio Inc) का क्वार्टो पब्लिशिंग सिस्टम जूलिया, पायथन, आर और ऑब्जर्वेबल जावास्क्रिप्ट का समर्थन करता है (उन भाषाओं को कंपनी द्वारा आधिकारिक समर्थन प्राप्त है, और यहां तक ​​कि एक ही नोटबुक दस्तावेज़ में एक साथ बुना जा सकता है, अधिक भाषाएँ अनौपचारिक रूप से समर्थित हैं)। आरईपीएल को अतिरिक्त मोड के साथ बढ़ाया जा सकता है, और पैकेज के साथ किया गया है, उदा। SQL मोड के साथ, डेटाबेस एक्सेस के लिए, और RCall.jl एक जोड़ता है R mode, R (प्रोग्रामिंग लैंग्वेज) के साथ कार्य करने के लिए।

अन्य भाषाओं के साथ प्रयोग
जूलिया अन्य भाषाओं के साथ व्यवहार में है (उदाहरण के लिए लोकप्रिय उपयोग में शीर्ष 10-20 भाषाओं में से अधिकांश)। जूलिया के  कीवर्ड का उपयोग व्यक्तिगत रूप से साझा लाइब्रेरी कार्यों को कॉल करने के लिए किया जाता है (जैसे सी या फोरट्रान में लिखे जाने के लिए), और पैकेज अन्य भाषाओं को कॉल करने की अनुमति देने के लिए उपलब्ध हैं (जो सी-निर्यात प्रदान नहीं करते हैं) सीधे कार्य करता है) उदा। Python (PythonCall.jl के साथ), R, MATLAB, C# (और अन्य .NET भाषाएँ DotNET.jl के साथ, उनमें से JdotNET के साथ), JavaScript, Java (और अन्य JVM भाषाएँ, जैसे JavaCall.jl के साथ Scala)। और अन्य भाषाओं के पैकेज जूलिया को कॉल करने की अनुमति देते हैं, उदा। पायथन, आर, जंग (प्रोग्रामिंग भाषा), रूबी या सी # से। जैसे juliacall (PythonCall.jl का हिस्सा, pyjulia एक अलग विकल्प है) के साथ Python से कॉल करने के लिए और R. जूलिया के लिए एक अलग जूलियाकॉल पैकेज का उपयोग हार्डवेयर के लिए भी किया गया है, यानी VHDL को संकलित करने के लिए, एक उच्च-स्तरीय संश्लेषण के रूप में (HLS) टूल (उदाहरण के लिए फील्ड-प्रोग्रामेबल गेट ऐरे)। 

जूलिया के पास HTML (और HTTP के लिए भी), XML, JSON और BSON जैसी मार्कअप भाषाओं का समर्थन करने वाले पैकेज हैं, और डेटाबेस के लिए (जैसे PostgreSQL, मोंगो, Oracle, TimesTen सहित, MySQL, SQLite, Microsoft SQL सर्वर, अमेज़ॅन रेडशिफ्ट, वर्टिका, ओडीबीसी) और सामान्य रूप से वेब का उपयोग।

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

कार्यान्वयन
जूलिया का कोर जूलिया और सी (प्रोग्रामिंग लैंग्वेज) में लागू किया गया है, एलएलवीएम निर्भरता के लिए सी ++ के साथ। कूट पार्सिंग और कूट-लोअरिंग वर्तमान में FemtoLisp, एक योजना (प्रोग्रामिंग भाषा) बोली में कार्यान्वित की जाती हैं। हालांकि, FemtoLisp पार्सर को प्योर-जूलिया पैकेज जूलिया सिंटेक्स.जेएल के साथ रनटाइम पर स्विच आउट किया जा सकता है, जो गति में सुधार करता है और विभिन्न मामलों में पार्सर त्रुटि संदेशों में काफी सुधार करता है, और FemtoLisp पार्सर को संस्करण 1.10 से बदल देगा। एलएलवीएम कंपाइलर इंफ्रास्ट्रक्चर प्रोजेक्ट का उपयोग सभी सामान्य रूप से उपयोग किए जाने वाले प्लेटफॉर्म के लिए अनुकूलित यन्त्र कूट उत्पन्न करने के लिए कंपाइलर # बैक एंड के रूप में किया जाता है। कुछ अपवादों के साथ, जूलिया में मानक लाइब्रेरी लागू किया गया है।

वर्तमान और भविष्य के प्लेटफॉर्म
जूलिया के पास टियर 1 macOS समर्थन है, जिसका अर्थ Intel-आधारित Macs के लिए है, परन्तु नए Apple M1-आधारित Macs के लिए भी है, या तो रोसेट्टा 2 एमुलेशन में चल रहा है, या, तब, जूलिया 1.8 के साथ टियर 2 नेटिव (गैर-रोसेटा) समर्थन के साथ (जूलिया के पुराने एलटीएस संस्करण के विपरीत जिसमें केवल टियर 3 (प्रायोगिक) समर्थन है; विंडोज 10 का अभी तक कोई आधिकारिक समर्थन नहीं है)। उस समर्थन पर कार्य (यानी बिना अनुकरण के) ज्यादातर किया जाता है, और कई कार्यक्रम जूलिया 1.8.0 के साथ कार्य करते हैं। जूलिया 1.8.0 से पहले कार्य करने का दावा करती थी Rosetta 2 के (स्वचालित) उपयोग के माध्यम से एम1 एमआईसी पर (कम प्रदर्शन पर) ठीक है (जिसे जूलिया का अनुकरण करने की आवश्यकता है).

जूलिया के चार सपोर्ट टियर हैं। P6 (माइक्रोआर्किटेक्चर) सबआर्किटेक्चर को पूरी तरह से लागू करने वाले सभी IA-32 प्रोसेसर समर्थित हैं और सभी 64-बिट एक्स 86-64, अर्थात लगभग एक दशक से कम पुराने सभी समर्थित हैं। एआरएमवी8 (एएआरसीसीएच64) प्रोसेसर दूसरे स्तर पर समर्थित हैं, और एआरएमवी7 और एआरएमवी6 (AArch32) जूलिया 1.0.x के लिए कुछ चेतावनियों (निचले स्तर) के साथ समर्थित हैं और बाद के संस्करणों के लिए आधिकारिक निष्पादनयोग्य भी थे, जबकि 32-बिट ARM समर्थन को बाद में डाउनग्रेड किया गया था टियर 3 तक (हालांकि, जूलिया 1.5.1 के लिए अनौपचारिक बायनेरिज़ उपलब्ध हैं ). ग्राफिक्स प्रसंस्करण इकाइयों पर सैकड़ों पैकेज सामान्य-उद्देश्य संगणनीयता हैं। जीपीयू-त्वरित: सीयूडीए (यानी एनवीडिया जीपीयू; समानांतर थ्रेड एक्ज़ीक्यूशन लागू करना) में बाहरी पैकेज की मदद से टियर 1 सपोर्ट है। अन्य त्वरक का समर्थन करने वाले अतिरिक्त पैकेज भी हैं, जैसे कि Google की टेंसर प्रोसेसिंग यूनिट, और कुछ इंटेल (एकीकृत) जीपीयू, वन एपीआई (गणना त्वरण) के माध्यम से | वन एपीआई.जेआई, और एएमडी के जीपीयू का समर्थन है उदाहरण :ओपनसीएल; और AMD आरओसीएम स्टैक के लिए प्रायोगिक समर्थन। जूलिया का डाउनलोड पेज सभी आधिकारिक रूप से समर्थित प्लेटफॉर्म के लिए निष्पादन योग्य (और स्रोत) प्रदान करता है।

कुछ प्लेटफार्मों पर, जूलिया को विशिष्ट निर्माण विकल्पों के साथ स्रोत कूट (जैसे, मूल रास्पबेरी पाई) से संकलित करने की आवश्यकता हो सकती है, जो किया गया है और अनौपचारिक पूर्व-निर्मित बायनेरिज़ (और निर्माण निर्देश) उपलब्ध हैं। जूलिया बनाया गया है छोटे रस्प्बेर्री पिस से लेकर टॉप-1 सुपरकंप्यूटर फुगकू (सुपरकंप्यूटर) के एआरएम-आधारित फुजिस्तु ए64Fएक्स तक कई एआरएम प्लेटफार्मों के लिए। पॉवर पी सी (64-बिट) में टियर 3 सपोर्ट है, जिसका अर्थ है कि यह.

जूलिया अब रस्पबियन में समर्थित है जबकि समर्थन नए Pis के लिए बेहतर है, उदाहरण के लिए, एआरएमवी7 या नए के साथ; जूलिया सपोर्ट को रास्पबेरी पाई फाउंडेशन द्वारा बढ़ावा दिया जाता है। JSExpr.jl के माध्यम से वेब ब्राउज़र/जावास्क्रिप्ट के लिए भी समर्थन है; और वेब ब्राउज़र की वैकल्पिक भाषा, वेब असेंबली को न्यूनतम समर्थन प्राप्त है कई आगामी बाहरी जूलिया परियोजनाओं के लिए।

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

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

वैज्ञानिक संगणनीयता
रेफरी>{{Cite web |date=27 September 2021 |title=एचईपी मिनी-कार्यशाला के लिए जूलिया|url=https://indico.cern.ch/event/1074269/ |access-date=2022-08-23 |website=indico.cern.c h |quote=जूलिया और Ω{{sup|-}}_b → Ξ{{sup|+}}_c K{{sup|-}} π{{sup|-}}} का पहला अवलोकन} लार्ज हैड्रान कोलाइडर (एलएचसीबी प्रयोग) से डेटा का विश्लेषण करने के लिए।
 * क्लाइमेट मॉडलिंग एलायंस ने जलवायु परिवर्तन के प्रभावों और चुनौतियों के बारे में जानकारी प्रदान करने के लिए अपनी अगली पीढ़ी के वैश्विक जलवायु मॉडल को लागू करने के लिए जूलिया का चयन किया।
 * CERN जूलिया का उपयोग करता है

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

अंतरिक्ष अभियांत्रिकी

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

अन्य उल्लेखनीय उपयोग
फेडरल रिजर्व बैंक ऑफ न्यूयॉर्क ने 2015 में जूलिया में व्यापक आर्थिक मॉडल (मैटलैब से पोर्ट किए गए) और 2021 में कोविड-19 के झटके का अनुमान लगाने के लिए बनाया
 * काली चट्टान, वित्तीय समय श्रृंखला के लिए दुनिया का सबसे बड़ा संपत्ति प्रबंधक
 * अवीवा, यूनाइटेड किंगडम का सबसे बड़ा सामान्य बीमाकर्ता, बीमांकिक गणनाओं के लिए * मेटर कॉर्पोरेशन, प्रकाशित चुनाव परिणामों के सत्यापन के लिए
 * समष्टि अर्थमिति के लिए नोबेल पुरस्कार विजेता थॉमस जे सार्जेंट

यह भी देखें

 * संख्यात्मक-विश्लेषण सॉफ्टवेयर की तुलना
 * सांख्यिकीय पैकेजों की तुलना
 * विभेदक प्रोग्रामिंग
 * कूदना – जूलिया में एम्बेडेड गणितीय अनुकूलन के लिए एक बीजगणितीय मॉडलिंग भाषा

अग्रिम पठन

 * Tobin A Driscoll and Richard J. Braun (Aug. 2022). "Fundamentals of Numerical Computation: Julia Edition". SIAM. ISBN 978-1-611977-00-4.
 * C. T. Kelley (2022). "Solving Nonlinear Equations with Iterative Methods: Solvers and Examples in Julia", SIAM. ISBN 978-1-611977-26-4.
 * Tobin A Driscoll and Richard J. Braun (Aug. 2022). "Fundamentals of Numerical Computation: Julia Edition". SIAM. ISBN 978-1-611977-00-4.
 * C. T. Kelley (2022). "Solving Nonlinear Equations with Iterative Methods: Solvers and Examples in Julia", SIAM. ISBN 978-1-611977-26-4.
 * C. T. Kelley (2022). "Solving Nonlinear Equations with Iterative Methods: Solvers and Examples in Julia", SIAM. ISBN 978-1-611977-26-4.