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

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

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

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

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

दोनों जूलिया 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 के लिए भी है, या तो Rosetta 2 एमुलेशन में चल रहा है, या, तब, जूलिया 1.8 के साथ टियर 2 नेटिव (गैर-रोसेटा) समर्थन के साथ (जूलिया के पुराने एलटीएस संस्करण के विपरीत जिसमें केवल टियर 3 (प्रायोगिक) समर्थन है; विंडोज 10 का अभी तक कोई आधिकारिक समर्थन नहीं है)। उस समर्थन पर काम (यानी बिना अनुकरण के) ज्यादातर किया जाता है, और कई कार्यक्रम जूलिया 1.8.0 के साथ काम करते हैं। जूलिया 1.8.0 से पहले काम करने का दावा करती थी Rosetta 2 के (स्वचालित) उपयोग के माध्यम से M1 Mac पर (कम प्रदर्शन पर) ठीक है (जिसे जूलिया का अनुकरण करने की आवश्यकता है).

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

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

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

जूलिया एआरएम को संकलित कर सकती है; इस प्रकार, सिद्धांत रूप में, Android ऐप्स को Android सॉफ़्टवेयर डेवलपमेंट #Android NDK के साथ बनाया जा सकता है, लेकिन अभी के लिए जूलिया को केवल अप्रत्यक्ष रूप से Android (ऑपरेटिंग सिस्टम) के तहत चलाने के लिए बनाया गया है, यानी Android पर Ubuntu chroot के साथ। जबकि जूलिया को डिफ़ॉल्ट रूप से एक ऑपरेटिंग सिस्टम की आवश्यकता होती है, और बिना 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 जूलिया का उपयोग करता है

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

एयरोस्पेस इंजीनियरिंग

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

अन्य उल्लेखनीय उपयोग
फेडरल रिजर्व बैंक ऑफ न्यूयॉर्क ने 2015 में जूलिया में व्यापक आर्थिक मॉडल (MATLAB से पोर्ट किए गए) और 2021 में COVID-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.