जैसे-जैसे सिस्टम और एप्लिकेशन बदलते हैं, प्रोग्रामिंग भाषाएं उद्योग और अनुसंधान दोनों में विकसित होती रहती हैं। आज विभिन्न भाषाओं, वाक्य रचना और विशेषताओं के साथ प्रोग्रामिंग भाषाओं की एक विस्तृत विविधता है। डेवलपर अब क्लाइंट की पसंद या अपनी भाषा के आधार पर किसी भाषा का उपयोग कर सकते हैं। 1967 से शुरू हुई भाषा प्रौद्योगिकी ने अब भी कुछ सबसे लोकप्रिय प्रोग्रामिंग भाषाओं को जन्म दिया है। 1990 के दशक के मध्य में इंटरनेट का तीव्र विकास प्रोग्रामिंग भाषा की दुनिया के लिए एक प्रमुख प्रोत्साहन था।
जैसे-जैसे प्रौद्योगिकी और विज्ञान विकसित होते हैं, प्रोग्रामर और प्रोग्रामिंग भाषाओं को इसके साथ विकसित और विकसित होना पड़ता है। इनमें से अधिकांश परिवर्तन उपभोक्ताओं की मांग से प्रभावित हुए हैं। जैसे-जैसे कंप्यूटर और प्रौद्योगिकी अधिक व्यापक होती गई, उपभोक्ताओं को प्रौद्योगिकी का उपयोग करना आसान और आवश्यक था। इसने प्रोग्रामर्स को सॉफ्टवेयर लिखने के नए तरीके बनाने का काम सौंपा, भाषाओं के साथ आने के लिए बेहतर और आसान सॉफ्टवेयर बनाने के लिए खुद को आसान बनाने के लिए।
पिछले दशक के दौरान प्रोग्रामिंग भाषाएं
पिछले 10 वर्षों में, भाषाएं अधिक इंटरनेट केंद्रित हो गई हैं और कई मिश्रित प्रतिमान और विशेषताएं पेश करती हैं। प्रोग्रामिंग भाषाओं का लक्ष्य अब प्रोग्रामर्स के लिए प्रोग्रामिंग को आसान और तेज उपयोग करना है। यह टर्न-अराउंड समय और विचारों के आरओआई को बढ़ाने के लिए है। इस समय अवधि में, C#, F#, Groovy, Scala, Factor, Clojure, और Go सामने आए और अपने साथ पिछली भाषाओं और वर्चुअल मशीनों पर निर्मित समृद्ध बहु-प्रतिमान फीचर सेट लाए। एक उदाहरण सी # होगा, यह एक अनिवार्य, कार्यात्मक और तार्किक प्रोग्रामिंग भाषा है कि आप इसका उपयोग कैसे करते हैं।
अधिकांश भाग के लिए, जावा या सी जैसी बड़ी भाषाओं के लिए बहुत कुछ नहीं बदला है। लेकिन पर्ल और विजुअल बेसिक के साथ, C++ धीमी गिरावट पर है। आज की अग्रणी तकनीकों के लिए उपयोग की जाने वाली प्रोग्रामिंग भाषाएं बढ़ रही हैं, जैसे कि आईफोन और पायथन के कारण ऑब्जेक्टिव-सी। भाषा के हर संशोधन के साथ इन प्रवृत्तियों में बहुत उतार-चढ़ाव होता है और इन भाषाओं में नए लाइब्रेरीज और प्रौद्योगिकियों को लागू किया जाता है। जावा सर्वोच्च शासन करता प्रतीत होता है, और संभवतः इस शीर्षक को कई और वर्षों तक धारण करेगा, जब तक कि कोई ऐसा मंच न हो जो इसे सत्ता में मिला सके। निकटतम सी #, सी, और पायथन हैं, और जैसे-जैसे ये भाषाएं बढ़ती हैं और अधिक व्यापक हो जाती हैं, वे जावा के हिस्से में खाना शुरू कर देंगे।
परिवर्तन का कारण क्या है?
तो यह फोकस क्यों बदल गया है? ठीक है, जबकि सी और C++ शायद इन साइटों के लिए आवश्यक भार और सुविधाओं को संभाल सकते हैं, एक ही काम करने के लिए सॉफ़्टवेयर लिखने में समय और कठिनाई और उसी तरह स्केल करना बहुत बड़ा होगा। C और C++ में एक ही प्रोग्राम को लिखने के लिए संभवत: हजारों और लाइन कोड और कोडिंग फ़ंक्शंस के कार्यान्वयन की आवश्यकता होगी जो पहले से ही अन्य भाषाओं में निर्मित हैं। इसके साथ ही, बढ़ती हार्डवेयर शक्ति और लचीलेपन के साथ, हमारे कंप्यूटर इन उच्च स्तरीय भाषाओं को निम्न स्तर की भाषाओं से न्यूनतम अंतर के साथ संभाल सकते हैं। TinyP2P एक बेहतरीन उदाहरण है। यह एक P2P प्रोग्राम है जिसे Python की 15 लाइन में लिखा गया है। कुछ ऐसा जो आम तौर पर अन्य प्रोग्रामिंग भाषाओं में 100 से अधिक लाइनें लेता है, 15 में हासिल किया गया था। यह प्रमुख कारणों में से एक है, प्रोग्रामिंग में आसानी।
अंतिम पहलू पैसा है। एक महीने में काम करने के लिए 2-3 प्रोग्रामर को भुगतान करना बहुत सस्ता है, 6+ प्रोग्रामर को 6 महीने में काम करने के लिए। हार्डवेयर और अन्य चीजें भी हैं जो इन भाषाओं में अधिक मापनीयता के कारण सस्ते कार्यान्वयन की अनुमति देती हैं। आपको कम पर अधिक चलाने की अनुमति देता है।
अब थोड़ा पीछे मुड़ें, प्रोग्रामिंग के शुरुआती दिनों में, अधिकांश नवाचार केवल यह देखना चाहते थे कि वे कंप्यूटर के साथ क्या कर सकते हैं। प्रोग्रामिंग भाषाएं अच्छी तरह से परिभाषित नहीं थीं, और लगातार बदल रही थीं। प्रोग्रामर उपभोक्ताओं के लिए प्रोग्रामिंग नहीं कर रहे थे, लेकिन कंप्यूटिंग की सीमाओं को आगे बढ़ाने के लिए। चूंकि अधिकांश प्रोग्रामर भी इंजीनियर थे, उन्हें प्रौद्योगिकी के कामकाज का अधिक गहन ज्ञान था, और हार्डवेयर स्तर पर उन्हें अधिक आसानी से हेरफेर करने में सक्षम थे। इसने उन्हें बहुत अधिक प्रयास के बिना किसी न किसी, बहुत निम्न स्तर की भाषाओं का उपयोग करने की अनुमति दी, क्योंकि वे समझ गए थे कि वे क्या कर रहे थे।
2022 में सीखने के लिए सर्वश्रेष्ठ प्रोग्रामिंग भाषाएँ
जैसे-जैसे तकनीक बढ़ रही है और तेजी से बदल रही है, नई प्रोग्रामिंग भाषाएं भी दिन की रोशनी देख रही हैं और पुरानी की जगह ले रही हैं। प्रतियोगिता दिन-ब-दिन तीव्र गति से बढ़ती जा रही है। प्रोग्रामिंग की दौड़ में बने रहने के लिए, डेवलपर्स को प्रोग्रामिंग में नवीनतम रुझानों और शीर्ष प्रोग्रामिंग भाषाओं के ज्ञान के साथ अद्यतन रहने की आवश्यकता है।
इस लेख में, हम 2022 और उसके बाद की शीर्ष 10 प्रोग्रामिंग भाषाओं पर चर्चा करेंगे।
1. पायथन
पायथन एक व्याख्यात्मक, वस्तु-उन्मुख, गतिशील शब्दार्थ के साथ उच्च-स्तरीय प्रोग्रामिंग भाषा है। इसकी उच्च-स्तरीय डेटा संरचना, गतिशील टाइपिंग और डायनेमिक बाइंडिंग के साथ मिलकर, इसे रैपिड एप्लिकेशन डेवलपमेंट के साथ-साथ मौजूदा घटकों को एक साथ जोड़ने के लिए एक स्क्रिप्टिंग या गोंद भाषा के रूप में उपयोग के लिए बहुत आकर्षक बनाती है। पायथन का सरल, सीखने में आसान सिंटैक्स पठनीयता पर जोर देता है और इसलिए प्रोग्राम रखरखाव की लागत को कम करता है। पायथन मॉड्यूल और पैकेज का समर्थन करता है, जो प्रोग्राम मॉड्यूलरिटी और कोड पुन: उपयोग को प्रोत्साहित करता है। पायथन इंटरप्रेटर और व्यापक मानक लाइब्रेरी सभी प्रमुख प्लेटफार्मों के लिए बिना किसी शुल्क के स्रोत या बाइनरी रूप में उपलब्ध हैं, और स्वतंत्र रूप से वितरित किए जा सकते हैं।
अक्सर, प्रोग्रामर पाइथन के साथ प्यार में पड़ जाते हैं क्योंकि इससे उत्पादकता में वृद्धि होती है। चूंकि कोई संकलन चरण नहीं है, संपादन-परीक्षण-डीबग चक्र अविश्वसनीय रूप से तेज़ है। पायथन प्रोग्राम को डिबग करना आसान है: एक बग या खराब इनपुट कभी भी सेगमेंटेशन गलती का कारण नहीं बनता है। इसके बजाय, जब दुभाषिया एक त्रुटि का पता लगाता है, तो यह एक अपवाद उठाता है। जब प्रोग्राम अपवाद को नहीं पकड़ता है, तो इंटरप्रेटर एक स्टैक ट्रेस प्रिंट करता है।
एक स्रोत स्तर डीबगर स्थानीय और वैश्विक चर के निरीक्षण, मनमानी अभिव्यक्तियों का मूल्यांकन, ब्रेकपॉइंट्स सेट करने, एक समय में कोड के माध्यम से एक पंक्ति के माध्यम से कदम उठाने की अनुमति देता है, और इसी तरह। डिबगर पायथन में ही लिखा गया है, जो पायथन की आत्मनिरीक्षण शक्ति की गवाही देता है। दूसरी ओर, अक्सर किसी प्रोग्राम को डीबग करने का सबसे तेज़ तरीका स्रोत में कुछ प्रिंट स्टेटमेंट जोड़ना होता है: तेज़ संपादन-परीक्षण-डीबग चक्र इस सरल दृष्टिकोण को बहुत प्रभावी बनाता है।
पायथन की विशेषताएं
पायथन की प्रमुख विशेषताएं निम्नलिखित हैं:
- आसान भाषा
पायथन एक आसान भाषा है। इसे पढ़ना, लिखना, सीखना और समझना आसान है।
- पायथन में एक सहज सीखने की अवस्था है। सीखना आसान है।
- पायथन का एक सरल सिंटैक्स है और पायथन कोड को समझना आसान है।
- चूंकि इसे समझना आसान है, आप किसी और के कोड को आसानी से पढ़ और समझ सकते हैं।
- पायथन अपने सरल सिंटैक्स के कारण लिखना भी आसान है।
क्योंकि यह एक आसान भाषा है, इसका उपयोग स्कूलों और विश्वविद्यालयों में छात्रों को प्रोग्रामिंग से परिचित कराने के लिए किया जाता है। पायथन स्टार्टअप और बड़ी कंपनियों दोनों के लिए है।
- पठनीय
पायथन भाषा को डेवलपर्स के जीवन को आसान बनाने के लिए डिज़ाइन किया गया है। पायथन कोड पढ़ना एक अंग्रेजी वाक्य पढ़ने जैसा है। यह उन प्रमुख कारणों में से एक है जो पायथन को शुरुआती लोगों के लिए सर्वश्रेष्ठ बनाता है।
अन्य प्रोग्रामिंग भाषाओं के विपरीत, पायथन कर्ली ब्रेसिज़ के बजाय इंडेंटेशन का उपयोग करता है। यह कोड को साफ और समझने में आसान बनाता है।
- व्याख्या की गई भाषा
पायथन एक व्याख्या की गई भाषा है। यह IDLE (इंटरएक्टिव डेवलपमेंट एनवायरनमेंट) के साथ आता है। यह एक इंटरप्रेटर है और आरईपीएल संरचना (रीड-इवैल्युएट-प्रिंट-लूप) का अनुसरण करता है। यह एक समय में एक लाइन के आउटपुट को निष्पादित और प्रदर्शित करता है।
इसलिए जब आप एक लाइन चला रहे होते हैं तो यह त्रुटियों को प्रदर्शित करता है और त्रुटि के लिए संपूर्ण स्टैक ट्रेस प्रदर्शित करता है।
- गतिशील रूप से टाइप की गई भाषा
पायथन जावा की तरह स्थिर रूप से टाइप नहीं किया गया है। पायथन जावा की तरह स्थिर रूप से टाइप नहीं किया गया है। दुभाषिया इसे अभिव्यक्ति के भागों के प्रकार के आधार पर रनटाइम पर निर्धारित करता है। यह प्रोग्रामर के लिए आसान है लेकिन रनटाइम त्रुटियाँ पैदा कर सकता है।
पायथन डक-टाइपिंग का अनुसरण करता है। इसका अर्थ है, “यदि यह बत्तख की तरह दिखता है, बत्तख की तरह तैरता है और बत्तख की तरह झूमता है, तो यह बत्तख होना चाहिए।”
- ऑब्जेक्ट ओरिएंटेड
पायथन ऑब्जेक्ट-ओरिएंटेड है लेकिन कार्यात्मक और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग दोनों का समर्थन करता है। पायथन में सब कुछ एक ऑब्जेक्ट है।
इसमें ओओपी (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग) अवधारणाएं हैं जैसे विरासत और बहुरूपता।
- लोकप्रिय और बड़े समुदाय का समर्थन
स्टैक ओवरफ्लो और मीटअप पर पायथन सबसे बड़े समुदायों में से एक है। यदि आपको सहायता की आवश्यकता है, तो समुदाय आपके प्रश्नों का उत्तर देगा।
उनके पास पहले से ही पायथन के बारे में कई सवालों के जवाब हैं।
- ओपन सोर्स
पायथन ओपन-सोर्स है और इसे सुधारने के लिए समुदाय हमेशा इसमें योगदान दे रहा है। यह मुफ़्त है और इसका स्रोत कोड जनता के लिए स्वतंत्र रूप से उपलब्ध है। आप आधिकारिक पायथन वेबसाइट से पायथन डाउनलोड कर सकते हैं।
- बड़ी मानक लाइब्रेरी
मानक पुस्तकालय बड़ा है और इसमें सामान्य और महत्वपूर्ण कार्यक्षमता वाले कई पैकेज और मॉड्यूल हैं। यदि आपको इस मानक पुस्तकालय में उपलब्ध किसी चीज़ की आवश्यकता है, तो आपको इसे शुरू से लिखने की आवश्यकता नहीं है। इस वजह से आप ज्यादा जरूरी चीजों पर फोकस कर सकते हैं।
यदि आप और भी अधिक कार्यक्षमता चाहते हैं तो आप PyPI (पायथन पैकेज इंडेक्स) से पैकेज भी स्थापित कर सकते हैं।
- प्लेटफार्म-इंडिपेंडेंट
पायथन प्लेटफॉर्म-इंडिपेंडेंट है। यदि आप कोई प्रोग्राम लिखते हैं, तो यह विंडोज, मैक और लिनक्स जैसे विभिन्न प्लेटफॉर्म पर चलेगा। आपको उन्हें प्रत्येक प्लेटफ़ॉर्म के लिए अलग से लिखने की आवश्यकता नहीं है।
- एक्स्टेंसिबल और एम्बेड करने योग्य
पायथन एक्स्टेंसिबल है। आप अपने पायथन कोड में C++ जैसी अन्य भाषाओं के कोड का उपयोग कर सकते हैं। यह एम्बेड करने योग्य भी है। आप अपने पायथन कोड को अन्य भाषाओं जैसे C++ में एम्बेड कर सकते हैं।
- जीयूआई समर्थन
आप GUI (ग्राफिकल यूजर इंटरफेस) बनाने के लिए पायथन का उपयोग कर सकते हैं। इसके लिए आप tkinter, PyQt, wxPython या Pyside का इस्तेमाल कर सकते हैं।
पायथन में इसके लिए उपलब्ध बड़ी संख्या में GUI फ्रेमवर्क और कई अन्य क्रॉस-प्लेटफ़ॉर्म समाधान हैं। यह प्लेटफ़ॉर्म-विशिष्ट तकनीकों से जुड़ता है।
- उच्च स्तरीय भाषा
पायथन एक उच्च-स्तरीय भाषा है और C++ मध्य-स्तर की भाषा है। यह समझना आसान है और उपयोगकर्ता के करीब है। आपको सिस्टम आर्किटेक्चर को याद रखने या मेमोरी को प्रबंधित करने की आवश्यकता नहीं है।
पायथन के अनुप्रयोग
पायथन आज की कई वास्तविक दुनिया की समस्याओं में आवेदन पाता है:
- वेब डेवलपमेंट
पायथन वेब विकास के लिए कई विकल्प प्रदान करता है। उदाहरण के लिए, आपके पास वेब फ्रेमवर्क विकसित करने के लिए Django, पिरामिड, फ्लास्क और बोतल है और यहां तक कि प्लोन और Django CMS जैसे उन्नत सामग्री प्रबंधन सिस्टम भी हैं। ये वेब ढांचे मानक पुस्तकालयों और मॉड्यूल से भरे हुए हैं जो सामग्री प्रबंधन, डेटाबेस इंटरैक्शन और HTTP, एसएमटीपी, एक्सएमएल, जेएसओएन, एफ़टीपी, आईएमएपी, और पीओपी जैसे इंटरनेट प्रोटोकॉल के साथ इंटरफेसिंग जैसे कार्यों को सरल बनाते हैं।
पायथन वेब फ्रेमवर्क को उनकी सुरक्षा, मापनीयता और लचीलेपन के लिए जाना जाता है। इसे जोड़ने के लिए, पायथन का पैकेज इंडेक्स अनुरोध, ब्यूटीफुल सूप, पैरामिको, फीडपार्सर और ट्विस्टेड पायथन जैसे उपयोगी पुस्तकालयों के साथ आता है।
- गेम डेवलपमेंट
जैसा कि हमने पहले उल्लेख किया है, पायथन कई उपयोगी एक्सटेंशन (लाइब्रेरीज) से भरा हुआ है जो इंटरेक्टिव गेम के विकास के लिए काम में आते हैं। उदाहरण के लिए, PySoy (एक 3D गेम इंजन जो Python 3 का समर्थन करता है) और PyGame जैसे लाइब्रेरीज दो पायथन-आधारित लाइब्रेरी हैं जिनका व्यापक रूप से खेल के विकास के लिए उपयोग किया जाता है। पाइथन बैटलफील्ड 2, फ्रेट्स ऑन फायर, वर्ल्ड ऑफ टैंक्स, डिज्नीज टूनटाउन ऑनलाइन, वेगा स्ट्राइक और सिविलाइजेशन- IV जैसे लोकप्रिय खेलों की नींव है।
खेल के विकास के अलावा, गेम डिज़ाइनर विशिष्ट कार्यों जैसे कि स्तरीय डिज़ाइन या डायलॉग ट्री निर्माण को सरल बनाने के लिए उपकरण विकसित करने के लिए पायथन का उपयोग कर सकते हैं, और उन टूल का उपयोग उन कार्यों को प्रारूपों में निर्यात करने के लिए भी कर सकते हैं जिनका उपयोग प्राथमिक गेम इंजन द्वारा किया जा सकता है। इसके अलावा, कई गेम इंजनों द्वारा पायथन का उपयोग एक स्क्रिप्टिंग भाषा के रूप में किया जाता है।
- वैज्ञानिक और संख्यात्मक अनुप्रयोग
अपने विशाल लाइब्रेरी आधार के कारण, पायथन वैज्ञानिक और संख्यात्मक कंप्यूटिंग में एक महत्वपूर्ण उपकरण बन गया है। वास्तव में, पायथन उन अनुप्रयोगों के लिए कंकाल प्रदान करता है जो गणना और वैज्ञानिक डेटा प्रोसेसिंग से संबंधित हैं। FreeCAD (3D मॉडलिंग सॉफ्टवेयर) और Abaqus (परिमित तत्व विधि सॉफ्टवेयर) जैसे ऐप्स को पायथन में कोडित किया गया है।
वैज्ञानिक और संख्यात्मक गणना के लिए कुछ सबसे उपयोगी पायथन पैकेज में शामिल हैं:
- SciPy (साइंटिफिक न्यूमेरिक लाइब्रेरी)
- पांडा (डेटा एनालिटिक्स लाइब्रेरी)
- आईपीथॉन (कमांड शैल)
- न्यूमेरिक पायथन (फंडामेंटल न्यूमेरिक पैकेज)
- प्राकृतिक भाषा टूलकिट (गणितीय और पाठ विश्लेषण)
- आर्टिफिशियल इंटेलिजेंस और मशीन लर्निंग
एआई और एमएल मॉडल और प्रोजेक्ट पारंपरिक सॉफ्टवेयर मॉडल से स्वाभाविक रूप से अलग हैं। जब हम एआई/एमएल परियोजनाओं के बारे में बात करते हैं, तो उपयोग किए जाने वाले उपकरण और प्रौद्योगिकियां और आवश्यक कौशल पारंपरिक सॉफ्टवेयर परियोजनाओं के विकास में उपयोग किए जाने वाले कौशल से बिल्कुल अलग होते हैं। एआई/एमएल अनुप्रयोगों के लिए ऐसी भाषा की आवश्यकता होती है जो स्थिर, सुरक्षित, लचीली हो और ऐसे उपकरणों से लैस हो जो ऐसी परियोजनाओं की विभिन्न अनूठी आवश्यकताओं को संभाल सकें। पायथन में ये सभी गुण हैं, और इसलिए, यह डेटा विज्ञान पेशेवरों की सबसे पसंदीदा भाषाओं में से एक बन गया है और डेटा विज्ञान पाठ्यक्रमों में पायथन एक आवश्यक उपकरण है।
पायथन की सादगी, निरंतरता, मंच की स्वतंत्रता, संसाधनपूर्ण पुस्तकालयों का बड़ा संग्रह और एक सक्रिय समुदाय इसे एआई और एमएल अनुप्रयोगों के विकास के लिए एक आदर्श उपकरण बनाता है। एआई और एमएल के लिए कुछ बेहतरीन पायथन पैकेज हैं:
- उन्नत कंप्यूटिंग के लिए SciPy
- सामान्य प्रयोजन के डेटा विश्लेषण के लिए पांडा
- डेटा-विज़ुअलाइज़ेशन के लिए सीबॉर्न
- केरस, टेन्सरफ्लो और स्किकिट-लर्न फॉर एमएल
- उच्च-प्रदर्शन वैज्ञानिक कंप्यूटिंग और डेटा विश्लेषण के लिए NumPy
इन पुस्तकालयों के अलावा, अन्य पायथन-आधारित पुस्तकालय भी हैं जैसे NLTK, Coffee, PyTorch, और Accord.NET जो AI और ML परियोजनाओं के लिए उपयोगी हैं।
- डेस्कटॉप जीयूआई
पायथन न केवल एक अंग्रेजी-जैसे सिंटैक्स का दावा करता है, बल्कि इसमें एक मॉड्यूलर आर्किटेक्चर और कई ऑपरेटिंग सिस्टम पर काम करने की क्षमता भी है। ये पहलू, इसके समृद्ध टेक्स्ट प्रोसेसिंग टूल के साथ, पायथन को डेस्कटॉप-आधारित जीयूआई अनुप्रयोगों के विकास के लिए एक उत्कृष्ट विकल्प बनाते हैं।
पायथन कई GUI टूलकिट और फ्रेमवर्क प्रदान करता है जो डेस्कटॉप एप्लिकेशन डेवलपमेंट को आसान बनाते हैं। PyQt, PyGtk, Kivy, Tkinter, WxPython, PyGUI, और PySide कुछ बेहतरीन Python-आधारित GUI फ्रेमवर्क हैं जो डेवलपर्स को अत्यधिक कार्यात्मक ग्राफिकल यूजर इंटरफेस (GUI) बनाने की अनुमति देते हैं।
- सॉफ्टवेयर डेवलपमेंट
पायथन पैकेज और एप्लिकेशन का उद्देश्य सॉफ्टवेयर विकास की प्रक्रिया को सरल बनाना है। वैज्ञानिक और संख्यात्मक कंप्यूटिंग से जुड़े जटिल अनुप्रयोगों के विकास से लेकर डेस्कटॉप और वेब अनुप्रयोगों के विकास तक, पायथन यह सब कर सकता है। यही कारण है कि सॉफ्टवेयर डेवलपर्स निर्माण नियंत्रण, परीक्षण और प्रबंधन के लिए एक समर्थन भाषा के रूप में पायथन का उपयोग करते हैं।
उदाहरण के लिए, स्कैन को स्पष्ट रूप से बिल्ड कंट्रोल के लिए डिज़ाइन किया गया है, बिल्डबॉट और अपाचे गंप स्वचालित निरंतर संकलन और परीक्षण के लिए अनुमति देते हैं, और राउंडअप और ट्रैक बग ट्रैकिंग और प्रोजेक्ट प्रबंधन के लिए बहुत अच्छे हैं।
पायथन डेटा विश्लेषण और विज़ुअलाइज़ेशन का भी समर्थन करता है, जिससे अतिरिक्त प्रयास और समय के निवेश को घटाकर कस्टम समाधान बनाने की प्रक्रिया को और सरल बनाया जाता है।
- उद्यम-स्तर/व्यावसायिक अनुप्रयोग
एंटरप्राइज़-स्तरीय सॉफ़्टवेयर या व्यावसायिक अनुप्रयोग मानक अनुप्रयोगों से बहुत अलग हैं, क्योंकि पूर्व में पठनीयता, एक्स्टेंसिबिलिटी और स्केलेबिलिटी जैसी सुविधाओं की मांग होती है। अनिवार्य रूप से, व्यावसायिक अनुप्रयोगों को व्यक्तिगत ग्राहकों की आवश्यकताओं के बजाय किसी संगठन की आवश्यकताओं को पूरा करने के लिए डिज़ाइन किया गया है।
इस प्रकार, इन अनुप्रयोगों को मौजूदा डेटाबेस और गैर-वेब ऐप्स जैसे लीगेसी सिस्टम के साथ एकीकृत करने में सक्षम होना चाहिए। चूंकि व्यावसायिक अनुप्रयोग विकसित किए जाते हैं, किसी संगठन के ऑपरेटिंग मॉडल की विशिष्ट आवश्यकताओं को पूरा करने के लिए कस्टम आवश्यकताओं को ध्यान में रखते हुए, संपूर्ण विकास प्रक्रिया बहुत जटिल हो जाती है।
यह वह जगह है जहाँ पायथन एक महत्वपूर्ण बदलाव ला सकता है। पायथन उच्च प्रदर्शन, मापनीयता, लचीलापन और पठनीयता पूरी तरह कार्यात्मक और कुशल व्यावसायिक अनुप्रयोगों को विकसित करने के लिए आवश्यक विशेषताएं हैं। इसके अलावा, पायथन के पास व्यावसायिक अनुप्रयोग विकास के लिए अन्य उपकरण हैं, जैसे:
- ओडू, एक ऑल-इन-वन प्रबंधन सॉफ्टवेयर जो उद्यम प्रबंधन अनुप्रयोगों का एक पूरा सूट बनाता है
- ट्राइटन, एक त्रि-स्तरीय, उच्च-स्तरीय, सामान्य-उद्देश्य एप्लिकेशन प्लेटफॉर्म, व्यावसायिक अनुप्रयोगों के निर्माण के लिए एक और शानदार उपकरण है
- शिक्षा कार्यक्रम और प्रशिक्षण पाठ्यक्रम
यदि कोई शुरुआती-अनुकूल प्रोग्रामिंग भाषा है, तो वह पायथन है। हमने इसे पहले भी कई बार कहा है, और हम इसे दोहरा रहे हैं – पायथन का एक बहुत ही सीधा सिंटैक्स है जो अंग्रेजी भाषा के समान है। इसमें सीखने की अवस्था कम है और इसलिए, शुरुआती लोगों के लिए एक उत्कृष्ट विकल्प है। पायथन की आसान सीखने की अवस्था और सादगी दो मुख्य कारण हैं कि यह शुरुआती और उन्नत दोनों स्तरों पर शैक्षिक कार्यक्रमों में सबसे अधिक उपयोग की जाने वाली प्रोग्रामिंग भाषाओं में से एक है।
हालाँकि, पायथन केवल एक परिचयात्मक भाषा के रूप में महान नहीं है – यहाँ तक कि दुनिया भर के पेशेवर डेवलपर्स और कोडर्स भी पायथन पर बहुत अधिक भरोसा करते हैं।
- भाषा विकास
इन वर्षों में, बू, स्विफ्ट, कॉफ़ीस्क्रिप्ट, कोबरा और ओकैमल जैसी कई नई प्रोग्रामिंग भाषाओं के विकास के पीछे पायथन का डिज़ाइन और मॉड्यूल आर्किटेक्चर प्रेरणा रहा है। ये सभी भाषाएं ऑब्जेक्ट मॉडल, सिंटैक्स और इंडेंटेशन जैसे आधार पर पायथन के साथ कई समानताएं साझा करती हैं।
- ऑपरेटिंग सिस्टम
हाँ, आपने सही पढ़ा है। पायथन कई ऑपरेटिंग सिस्टमों के पीछे भी गुप्त घटक है, जो सबसे लोकप्रिय लिनक्स वितरण है। लिनक्स-आधारित उबंटू के यूबिकिटी इंस्टालर और फेडोरा और रेडहैट एंटरप्राइज के एनाकोंडा इंस्टालर को पायथन में कोडित किया गया है। यहां तक कि Gentoo Linux भी Python Portage (पैकेज प्रबंधन प्रणाली) का लाभ उठाता है। आमतौर पर, ऑपरेटिंग सिस्टम को डिजाइन और विकसित करने के लिए पायथन को सी प्रोग्रामिंग भाषा के साथ जोड़ा जाता है।
- वेब स्क्रैपिंग अनुप्रयोग
वेबसाइटों और वेब पेजों से बड़ी मात्रा में डेटा निकालने के लिए पायथन एक अच्छा उपकरण है। खींचा गया डेटा आम तौर पर विभिन्न वास्तविक दुनिया की प्रक्रियाओं में उपयोग किया जाता है, जिसमें नौकरी लिस्टिंग, मूल्य तुलना, आर एंड डी, आदि शामिल हैं।
ब्यूटीफुल सूप, मैकेनिकल सूप, स्क्रेपी, एलएक्सएमएल, पायथन रिक्वेस्ट, सेलेनियम और उरलिब कुछ बेहतरीन पायथन-आधारित वेब स्क्रैपिंग टूल हैं।
- इमेज प्रोसेसिंग और ग्राफिक डिजाइन एप्लीकेशन
ऊपर वर्णित सभी उपयोगों के साथ, पायथन इमेज प्रोसेसिंग और ग्राफिक डिज़ाइन अनुप्रयोगों में एक अद्वितीय उपयोग केस भी ढूंढता है। प्रोग्रामिंग भाषा का उपयोग विश्व स्तर पर इंकस्केप, जीआईएमपी, पेंट शॉप प्रो और स्क्रिबस जैसे 2डी इमेजिंग सॉफ्टवेयर के डिजाइन और निर्माण के लिए किया जाता है। इसके अलावा, पायथन का उपयोग कई 3D एनीमेशन पैकेज जैसे ब्लेंडर, हौदिनी, 3ds मैक्स, माया, सिनेमा 4D और लाइटवेव में किया जाता है।
2. जावास्क्रिप्ट
जावास्क्रिप्ट एक क्रॉस-प्लेटफ़ॉर्म, ऑब्जेक्ट-ओरिएंटेड स्क्रिप्टिंग भाषा है जिसका उपयोग वेबपेजों को इंटरैक्टिव बनाने के लिए किया जाता है (जैसे, जटिल एनिमेशन, क्लिक करने योग्य बटन, पॉपअप मेनू, आदि)। जावास्क्रिप्ट के अधिक उन्नत सर्वर साइड संस्करण भी हैं जैसे कि Node.js, जो आपको फ़ाइलों को डाउनलोड करने की तुलना में वेबसाइट में अधिक कार्यक्षमता जोड़ने की अनुमति देता है (जैसे कि कई कंप्यूटरों के बीच वास्तविक समय सहयोग)। एक मेजबान वातावरण (उदाहरण के लिए, एक वेब ब्राउज़र) के अंदर, जावास्क्रिप्ट को अपने पर्यावरण की वस्तुओं से जोड़ा जा सकता है ताकि उन पर प्रोग्रामेटिक नियंत्रण प्रदान किया जा सके।
जावास्क्रिप्ट में वस्तुओं का एक मानक पुस्तकालय होता है, जैसे कि ऐरे, दिनांक और गणित, और भाषा तत्वों का एक मुख्य सेट जैसे ऑपरेटर, नियंत्रण संरचनाएं और बयान। कोर जावास्क्रिप्ट को अतिरिक्त वस्तुओं के साथ पूरक करके विभिन्न उद्देश्यों के लिए बढ़ाया जा सकता है; उदाहरण के लिए:
क्लाइंट-साइड जावास्क्रिप्ट ब्राउज़र और उसके डॉक्यूमेंट ऑब्जेक्ट मॉडल (डीओएम) को नियंत्रित करने के लिए वस्तुओं की आपूर्ति करके मूल भाषा का विस्तार करता है। उदाहरण के लिए, क्लाइंट-साइड एक्सटेंशन किसी एप्लिकेशन को HTML फॉर्म पर तत्वों को रखने और माउस क्लिक, फॉर्म इनपुट और पेज नेविगेशन जैसी उपयोगकर्ता घटनाओं का जवाब देने की अनुमति देता है।
सर्वर-साइड जावास्क्रिप्ट सर्वर पर जावास्क्रिप्ट चलाने के लिए प्रासंगिक वस्तुओं की आपूर्ति करके मूल भाषा का विस्तार करता है। उदाहरण के लिए, सर्वर-साइड एक्सटेंशन किसी एप्लिकेशन को डेटाबेस के साथ संचार करने की अनुमति देते हैं, एक आमंत्रण से दूसरे एप्लिकेशन तक जानकारी की निरंतरता प्रदान करते हैं, या सर्वर पर फ़ाइल जोड़तोड़ करते हैं।
इसका मतलब है कि ब्राउज़र में, जावास्क्रिप्ट वेबपेज (डीओएम) के दिखने के तरीके को बदल सकता है। और, इसी तरह, सर्वर पर Node.js जावास्क्रिप्ट ब्राउज़र में लिखे गए कोड से कस्टम अनुरोधों का जवाब दे सकता है।
जावास्क्रिप्ट की विशेषताएं
जावास्क्रिप्ट सबसे लोकप्रिय भाषाओं में से एक है जिसमें वेब विकास के लिए कई विशेषताएं शामिल हैं। यह जीथब के अनुसार शीर्ष प्रोग्रामिंग भाषाओं में से एक है और हमें यह समझने के लिए जावास्क्रिप्ट की विशेषताओं को ठीक से जानना चाहिए कि यह क्या करने में सक्षम है।
कुछ विशेषताएं हल्की, गतिशील, कार्यात्मक और व्याख्या की गई हैं। अब हम जावास्क्रिप्ट की कुछ महत्वपूर्ण विशेषताओं पर चर्चा करने जा रहे हैं:
- लाइटवेट स्क्रिप्टिंग भाषा
जावास्क्रिप्ट एक हल्की स्क्रिप्टिंग भाषा है क्योंकि इसे केवल ब्राउज़र पर डेटा हैंडलिंग के लिए बनाया गया है। चूंकि यह एक सामान्य प्रयोजन वाली भाषा नहीं है, इसलिए इसमें पुस्तकालयों का एक सीमित समूह है। साथ ही चूंकि यह केवल क्लाइंट-साइड निष्पादन के लिए है और वह भी वेब अनुप्रयोगों के लिए, इसलिए जावास्क्रिप्ट की हल्की प्रकृति एक महान विशेषता है।
- गतिशील टाइपिंग
जावास्क्रिप्ट गतिशील टाइपिंग का समर्थन करता है जिसका अर्थ है कि चर के प्रकार संग्रहीत मूल्य के आधार पर परिभाषित किए जाते हैं। उदाहरण के लिए, यदि आप एक चर x घोषित करते हैं तो आप या तो एक स्ट्रिंग या एक संख्या प्रकार मान या एक सरणी या एक वस्तु संग्रहीत कर सकते हैं। इसे डायनामिक टाइपिंग के रूप में जाना जाता है।
इसे समझने के लिए, जावा जैसी भाषाओं में, हम स्पष्ट रूप से उल्लेख करते हैं कि एक विशेष चर एक निश्चित प्रकार के डेटा को संग्रहीत करेगा, जबकि जावास्क्रिप्ट में हमें एक चर घोषित करते समय डेटा प्रकार प्रदान करने की आवश्यकता नहीं है। जावास्क्रिप्ट में, हमें केवल इसके प्रकार की चिंता किए बिना एक चर घोषित करने के लिए चर नाम से पहले var या let कीवर्ड का उपयोग करना होगा।
- ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग सपोर्ट
ES6 से शुरू होकर, वर्ग और OOP की अवधारणा को और अधिक परिष्कृत किया गया है। इसके अलावा, जावास्क्रिप्ट में, जावास्क्रिप्ट में ओओपी के साथ दो महत्वपूर्ण सिद्धांत ऑब्जेक्ट क्रिएशन पैटर्न (एनकैप्सुलेशन) और कोड रीयूज पैटर्न (इनहेरिटेंस) हैं। हालांकि जावास्क्रिप्ट डेवलपर शायद ही कभी इस सुविधा का उपयोग करते हैं, यह सभी के लिए एक्सप्लोर करने के लिए है।
- कार्यात्मक शैली
इसका तात्पर्य यह है कि जावास्क्रिप्ट एक कार्यात्मक दृष्टिकोण का उपयोग करता है, यहां तक कि ऑब्जेक्ट भी कंस्ट्रक्टर फ़ंक्शंस से बनाए जाते हैं और प्रत्येक कंस्ट्रक्टर फ़ंक्शन एक अद्वितीय ऑब्जेक्ट-प्रकार का प्रतिनिधित्व करता है। इसके अलावा, जावास्क्रिप्ट में कार्यों को वस्तुओं के रूप में इस्तेमाल किया जा सकता है और अन्य कार्यों को भी पारित किया जा सकता है।
- प्लेटफार्म इंडिपेंडेंट
इसका तात्पर्य है कि जावास्क्रिप्ट प्लेटफॉर्म-स्वतंत्र है या हम कह सकते हैं कि यह पोर्टेबल है; जिसका सीधा सा मतलब है कि आप बस एक बार स्क्रिप्ट लिख सकते हैं और इसे कहीं भी और कभी भी चला सकते हैं। सामान्य तौर पर, आप स्क्रिप्ट के आउटपुट को प्रभावित किए बिना अपने जावास्क्रिप्ट एप्लिकेशन लिख सकते हैं और उन्हें किसी भी प्लेटफॉर्म या किसी भी ब्राउज़र पर चला सकते हैं।
- प्रोटोटाइप-आधारित भाषा
जावास्क्रिप्ट एक प्रोटोटाइप-आधारित स्क्रिप्टिंग भाषा है। इसका मतलब है कि जावास्क्रिप्ट कक्षाओं या विरासत के बजाय प्रोटोटाइप का उपयोग करता है। जावा जैसी भाषाओं में, हम एक क्लास बनाते हैं और फिर हम उन क्लास के लिए ऑब्जेक्ट बनाते हैं। लेकिन जावास्क्रिप्ट में, हम ऑब्जेक्ट प्रोटोटाइप को परिभाषित करते हैं और फिर इस ऑब्जेक्ट प्रोटोटाइप का उपयोग करके अधिक ऑब्जेक्ट बनाए जा सकते हैं।
- व्याख्या की गई भाषा
जावास्क्रिप्ट एक व्याख्या की गई भाषा है जिसका अर्थ है कि जावास्क्रिप्ट के अंदर लिखी गई स्क्रिप्ट को लाइन दर लाइन संसाधित किया जाता है। इन लिपियों की व्याख्या एक जावास्क्रिप्ट इंटरप्रेटर द्वारा की जाती है जो वेब ब्राउज़र का एक अंतर्निहित घटक है। लेकिन इन दिनों क्रोम में V8 इंजन जैसे ब्राउज़र में कई जावास्क्रिप्ट इंजन जावास्क्रिप्ट कोड के लिए समय संकलन में उपयोग करते हैं।
- एसिंक प्रोसेसिंग
जावास्क्रिप्ट प्रॉमिस का समर्थन करता है जो एसिंक्रोनस अनुरोधों को सक्षम बनाता है जिसमें एक अनुरोध शुरू किया जाता है और जावास्क्रिप्ट को प्रतिक्रिया के लिए इंतजार नहीं करना पड़ता है, जो कई बार अनुरोध प्रसंस्करण को अवरुद्ध करता है। साथ ही ES8 से शुरू होकर, जावास्क्रिप्ट में Async फ़ंक्शन भी समर्थित हैं, ये फ़ंक्शन एक-एक करके निष्पादित नहीं होते हैं, बल्कि उन्हें समानांतर रूप से संसाधित किया जाता है, जिसका प्रसंस्करण समय पर सकारात्मक प्रभाव पड़ता है, जिससे यह काफी हद तक कम हो जाता है।
- क्लाइंट-साइड सत्यापन
यह एक ऐसी सुविधा है जो जावास्क्रिप्ट में हमेशा से उपलब्ध है और अभी भी व्यापक रूप से उपयोग की जाती है क्योंकि प्रत्येक वेबसाइट में एक ऐसा फॉर्म होता है जिसमें उपयोगकर्ता मान दर्ज करते हैं, और यह सुनिश्चित करने के लिए कि उपयोगकर्ता सही मान दर्ज करते हैं, हमें उचित सत्यापन को जगह में रखना चाहिए, दोनों पर क्लाइंट-साइड और सर्वर-साइड पर। क्लाइंट-साइड सत्यापन को लागू करने के लिए जावास्क्रिप्ट का उपयोग किया जाता है।
- ब्राउज़र में अधिक नियंत्रण
क्लाइंट-साइड भाषा होने के कारण जावास्क्रिप्ट कई सुविधाएँ प्रदान करता है जो डेवलपर्स को ब्राउज़र और सर्वर के बीच प्रसंस्करण को विभाजित करने में मदद करता है इसलिए ब्राउज़र पर ही बुनियादी प्रसंस्करण, सत्यापन, कुकीज़ का उपयोग करके अस्थायी डेटा बचत आदि करके सर्वर पर लोड को कम करता है।
जावास्क्रिप्ट के अनुप्रयोग
जावास्क्रिप्ट पूरी दुनिया में व्यापक रूप से उपयोग की जाने वाली प्रोग्रामिंग भाषा है। इसके पास दुनिया में सबसे बड़ा ओपन-सोर्स पैकेज रिपॉजिटरी (एनपीएम) है। सर्वर कोड (Node.js), उत्पादकता ऐप, 3D गेम, रोबोट, IoT डिवाइस सहित, हर प्रकार का सॉफ़्टवेयर जावास्क्रिप्ट का उपयोग करता है। जावास्क्रिप्ट ने बहुत समय पहले जावा द्वारा निर्धारित लक्ष्य हासिल कर लिया है: एक बार लिखें, कहीं भी दौड़ें। विभिन्न खंडों में विभिन्न जावास्क्रिप्ट उपयोग हैं, आइए एक-एक करके उन पर चर्चा करें।
- वेब डेवलपमेंट
जावास्क्रिप्ट एक क्लाइंट स्क्रिप्टिंग भाषा है जिसका उपयोग वेब पेज बनाने के लिए किया जाता है। यह नेटस्केप में विकसित एक स्टैंडअलोन भाषा है। इसका उपयोग तब किया जाता है जब किसी वेबपेज को गतिशील बनाना होता है और रोलओवर, रोल आउट और कई प्रकार के ग्राफिक्स जैसे पृष्ठों पर विशेष प्रभाव जोड़ना होता है। यह ज्यादातर सभी वेबसाइटों द्वारा सत्यापन के उद्देश्य से उपयोग किया जाता है। सत्यापन के अलावा, यह बाहरी अनुप्रयोगों जैसे पीडीएफ दस्तावेजों, चल रहे विगेट्स, फ्लैश अनुप्रयोगों का समर्थन आदि का समर्थन करता है। जब भी उपयोगकर्ता को पूरे पृष्ठ को पुनः लोड किए बिना इसकी आवश्यकता होती है तो यह सामग्री को दस्तावेज़ में लोड कर सकता है।
- वेब अनुप्रयोग
प्रौद्योगिकी के साथ ब्राउज़र और पर्सनल कंप्यूटर में इस हद तक सुधार हुआ है कि मजबूत वेब एप्लिकेशन बनाने के लिए एक भाषा की आवश्यकता होती है। जब कोई उपयोगकर्ता Google मानचित्र में मानचित्र की खोज करता है तो उपयोगकर्ता को केवल माउस को क्लिक करने और खींचने की आवश्यकता होती है। सभी विस्तृत दृश्य केवल एक क्लिक से दिखाई दे रहे हैं। यह जावास्क्रिप्ट के कारण संभव है। यह सर्वर को संदेश भेजे बिना ब्राउज़र के साथ इंटरैक्ट करता है। जावास्क्रिप्ट एप्लिकेशन प्रोग्रामिंग इंटरफेस (एपीआई) का उपयोग करता है जो कोड को अतिरिक्त शक्तियां प्रदान करते हैं।
- प्रस्तुतियों
जावास्क्रिप्ट एक वेबसाइट के रूप में प्रस्तुतीकरण बनाने की सुविधा भी प्रदान करता है। जावास्क्रिप्ट वेब-आधारित स्लाइड डेक बनाने के लिए RevealJS और BespokeJS लाइब्रेरी प्रदान करता है। Reveal.js HTML का उपयोग करके कुछ सबसे सुंदर और इंटरैक्टिव डेक बनाता है। एक उपयोगकर्ता आसानी से नेस्टेड स्लाइड सम्मिलित कर सकता है। यहां तक कि अगर उपयोगकर्ता को प्रोग्रामिंग भाषा की जानकारी नहीं है तो वे आसानी से ऑनलाइन इतनी मदद से एक साइट बना सकते हैं।
ये प्रस्तुतियां स्पर्श अनुकूलित हैं और मोबाइल उपकरणों, फोन और टैबलेट के साथ बढ़िया काम करती हैं। इन सबके साथ जावास्क्रिप्ट विभिन्न संक्रमण शैलियों, विषयों और स्लाइड पृष्ठभूमि भी प्रदान करता है। यह सभी सीएसएस रंग स्वरूपों का समर्थन करता है। जावास्क्रिप्ट विभिन्न प्रकार की विशेषताओं के साथ Bespoke.js प्लगइन भी प्रदान करता है। इनमें उत्तरदायी स्केलिंग, एनिमेटेड बुलेट सूचियां, और कोड उदाहरणों के लिए सिंटैक्स हाइलाइटिंग शामिल हैं। यह ऐसे विषय प्रदान करता है जो पॉलिश हैं और बहुत आकर्षक नहीं हैं। Bespoke.js को प्रारंभ करने का सबसे तेज़ तरीका जनरेटर का उपयोग करना है। यह उपयोगकर्ता को आपकी प्रस्तुति के लिए शीर्षक सेट करने और आवश्यक प्लगइन्स प्राप्त करने के लिए प्रश्नों के एक सेट के माध्यम से जाने की अनुमति देता है।
- सर्वर अनुप्रयोग
Node JS को तेज और स्केलेबल नेटवर्क एप्लिकेशन बनाने के लिए क्रोम के Javascript रनटाइम पर बनाया गया है। यह इवेंट-संचालित, हल्के और कुशल अनुप्रयोगों का उपयोग करता है जिन्हें सर्वर की सहायता से सिस्टम पर वितरित किया जाना है। जावास्क्रिप्ट का उपयोग HTTP अनुरोधों को संभालने और सामग्री उत्पन्न करने के लिए किया जाता है। जब कोई उपयोगकर्ता क्लाइंट पर जावास्क्रिप्ट में मोटे एप्लिकेशन लिख रहा होता है तो उपयोगकर्ता सर्वर पर जावास्क्रिप्ट में तर्क भी लिख सकता है ताकि एक भाषा से दूसरी भाषा में संज्ञानात्मक छलांग लगाई जा सके।
- वेब सर्वर
Node JS का उपयोग करके एक वेब सर्वर बनाया जा सकता है। Node JS के फायदे यह हैं कि यह घटना-संचालित है और पिछली कॉल की प्रतिक्रिया की प्रतीक्षा नहीं करेगा। यह अगली कॉल पर चला जाता है और पिछली कॉल के लिए प्रतिक्रिया प्राप्त होने पर सूचनाएं प्राप्त करने के लिए ईवेंट का लाभ उठाता है। Node JS पर बने सर्वर बहुत तेज़ होते हैं और बफ़रिंग का उपयोग नहीं करते हैं और डेटा के हिस्से को स्थानांतरित करते हैं।
इसके अलावा, यह इवेंट लूपिंग के साथ सिंगल थ्रेडेड है जिसका उपयोग नॉन-ब्लॉकिंग तरीके से किया जाता है। HTTP मॉड्यूल createServer() विधि का उपयोग करके सर्वर बनाने में मदद कर सकता है। जब भी कोई पोर्ट 8080 तक पहुंचने का प्रयास करता है तो यह विधि निष्पादित होती है। इसके जवाब में, HTTP सर्वर को HTML प्रदर्शित करना चाहिए और HTTP शीर्षलेख में शामिल किया जाना चाहिए। इसे ‘npm install -g http-server’ टाइप करके आसानी से इंस्टॉल किया जा सकता है और इसे http-server कमांड टाइप करके शुरू किया जा सकता है।
- गेम्स
न केवल वेबसाइटें बल्कि जावास्क्रिप्ट का उपयोग भी अवकाश के लिए गेम बनाने में मदद करता है। जावास्क्रिप्ट और HTML5 का संयोजन जावास्क्रिप्ट को खेल के विकास में भी लोकप्रिय बनाता है। यह ईज जेएस लाइब्रेरी प्रदान करता है जो समृद्ध ग्राफिक्स के साथ काम करने के लिए सरल समाधान प्रदान करता है। इसमें एक एपीआई भी है जो सभी फ्लैश डेवलपर्स के लिए एक पदानुक्रमित प्रदर्शन सूची से परिचित है। एक उपयोगकर्ता एक स्टेज बना सकता है और यह प्रदर्शन सूची को अपने लक्षित कैनवास पर प्रस्तुत करेगा। ईज जेएस में स्प्राइट्स नामक 2डी बिटमैप्स भी हैं जो ट्रांसफॉर्मेशन के लिए लक्ष्य को प्रस्तुत करने के लिए सीधे तैयार किए जाते हैं।
- कला
वेब पेज पर जावास्क्रिप्ट ड्राइंग ग्राफिक्स में HTML5 का उपयोग करना आसान हो गया है। सभी दो और त्रि-आयामी आकृतियों को एक कैनवास पर आसानी से खींचा जा सकता है और इसने सभी विभिन्न डिजिटल कला परियोजनाओं के लिए ब्राउज़र को एक नए माध्यम के रूप में खोल दिया है। एक कैनवास की कोई सीमा नहीं होती है और कोई सामग्री नहीं होती है और इसलिए उपयोगकर्ता को अपनी कला बनाने देता है।
- स्मार्टवॉच एप्लीकेशन
जावास्क्रिप्ट सबसे अधिक उपयोग की जाने वाली भाषा है क्योंकि इसका उपयोग सभी संभावित उपकरणों और अनुप्रयोगों में किया जा रहा है। जावास्क्रिप्ट का उपयोग पेबल जेएस नामक एक पुस्तकालय प्रदान करता है जिसका उपयोग स्मार्टवॉच अनुप्रयोगों में किया जाता है। यह ढांचा उन अनुप्रयोगों के लिए काम करता है जिनके कामकाज के लिए इंटरनेट की आवश्यकता होती है। कंकड़ का उपयोग करने से एक डेवलपर जावास्क्रिप्ट का उपयोग करके कई घड़ियों के लिए एक एप्लिकेशन बना सकता है।
- मोबाइल एप्लीकेशन
सबसे महत्वपूर्ण बात जो जावास्क्रिप्ट के उपयोग से की जा सकती है वह है वेब संदर्भों के बिना अनुप्रयोगों का निर्माण। मोबाइल ज्यादातर ऐप्पल और एंड्रॉइड में उपलब्ध होने के कारण इन्हें बनाने के लिए दो अलग-अलग भाषाओं का उपयोग किया जाता है। इन उपकरणों के दोनों प्लेटफार्मों पर एक बार लिखना और इसका उपयोग करना संभव होना चाहिए। PhoneGap वह ढांचा है जो इसे सक्षम बनाता है। इसके अलावा हाल ही में हमारे पास रिएक्ट नेटिव है जो इस उद्देश्य को पूरा करता है। इसके अलावा हाल ही में हमारे पास रिएक्ट नेटिव है जो इस उद्देश्य को पूरा करता है। इसलिए जावास्क्रिप्ट के उपयोग का उपयोग क्रॉस वातावरण में संबंधित अनुप्रयोगों को तैनात और डाउनलोड करने के लिए किया जा सकता है।
- फ्लाइंग रोबोट
कई व्यावसायिक रूप से उपलब्ध क्वाडकॉप्टर, कुछ एक साधारण OS के साथ, Node.js को स्थापित करना संभव बनाते हैं। इसका मतलब है कि आप जावास्क्रिप्ट के साथ उड़ने वाले रोबोट को प्रोग्राम कर सकते हैं। जावास्क्रिप्ट इस ग्रह पर सबसे सुलभ प्रोग्रामिंग भाषा है, जिसमें कई विशेषताएं हैं। इसलिए, यह देखना अच्छा है कि यह अनुप्रयोगों की इतनी विस्तृत श्रृंखला बना रहा है।
3. जावा
जावा प्रोग्रामिंग भाषा सन माइक्रोसिस्टम्स द्वारा 1990 के दशक की शुरुआत में विकसित की गई थी। यद्यपि यह मुख्य रूप से इंटरनेट-आधारित अनुप्रयोगों के लिए उपयोग किया जाता है, जावा एक सरल, कुशल, सामान्य-उद्देश्य वाली भाषा है। जावा मूल रूप से कई प्लेटफार्मों पर चलने वाले एम्बेडेड नेटवर्क अनुप्रयोगों के लिए डिज़ाइन किया गया था। यह एक पोर्टेबल, वस्तु-उन्मुख, व्याख्या की गई भाषा है।
जावा बेहद पोर्टेबल है। हार्डवेयर सुविधाओं या ऑपरेटिंग सिस्टम की परवाह किए बिना, वही जावा एप्लिकेशन किसी भी कंप्यूटर पर समान रूप से चलेगा, जब तक कि इसमें जावा दुभाषिया है। पोर्टेबिलिटी के अलावा, जावा का एक अन्य प्रमुख लाभ सुरक्षा सुविधाओं का सेट है जो जावा प्रोग्राम चलाने वाले पीसी को न केवल गलत कोड के कारण होने वाली समस्याओं से बचाता है बल्कि दुर्भावनापूर्ण प्रोग्राम (जैसे वायरस) से भी बचाता है। आप इंटरनेट से डाउनलोड किए गए जावा एप्लेट को सुरक्षित रूप से चला सकते हैं, क्योंकि जावा की सुरक्षा विशेषताएं इस प्रकार के एप्लेट्स को पीसी की हार्ड ड्राइव या नेटवर्क कनेक्शन तक पहुंचने से रोकती हैं। एक एप्लेट आमतौर पर एक छोटा जावा प्रोग्राम होता है जो एक HTML पेज के भीतर एम्बेड किया जाता है।
जावा को एक संकलित और व्याख्या की गई भाषा दोनों माना जा सकता है क्योंकि इसके स्रोत कोड को पहले बाइनरी बाइट-कोड में संकलित किया जाता है। यह बाइट-कोड जावा वर्चुअल मशीन (JVM) पर चलता है, जो आमतौर पर एक सॉफ्टवेयर-आधारित दुभाषिया है। संकलित बाइट-कोड का उपयोग दुभाषिया (वर्चुअल मशीन) को छोटा और कुशल बनाने की अनुमति देता है (और लगभग उतना ही तेज़ है जितना कि सीपीयू देशी, संकलित कोड चला रहा है)। इसके अलावा, यह बाइट-कोड जावा को इसकी पोर्टेबिलिटी देता है: यह किसी भी JVM पर चलेगा जो कंप्यूटर हार्डवेयर या सॉफ़्टवेयर कॉन्फ़िगरेशन की परवाह किए बिना सही ढंग से कार्यान्वित किया गया है। अधिकांश वेब ब्राउज़र (जैसे माइक्रोसॉफ्ट इंटरनेट एक्सप्लोरर या नेटस्केप कम्युनिकेटर) में जावा एप्लेट चलाने के लिए एक जेवीएम होता है।
C++ (एक अन्य ऑब्जेक्ट-ओरिएंटेड भाषा) की तुलना में, जावा कोड थोड़ा धीमा चलता है (JVM के कारण) लेकिन यह अधिक पोर्टेबल है और इसमें बेहतर सुरक्षा विशेषताएं हैं। वर्चुअल मशीन एक अविश्वसनीय जावा प्रोग्राम और सॉफ्टवेयर चलाने वाले पीसी के बीच अलगाव प्रदान करती है। जावा का सिंटैक्स C++ के समान है लेकिन भाषाएँ काफी भिन्न हैं। उदाहरण के लिए, जावा प्रोग्रामर को ऑपरेटर ओवरलोडिंग को लागू करने की अनुमति नहीं देता है जबकि C++ करता है। इसके अलावा, जावा एक गतिशील भाषा है जहां आप किसी प्रोग्राम को चलाते समय सुरक्षित रूप से संशोधित कर सकते हैं, जबकि सी ++ इसकी अनुमति नहीं देता है।
यह उन नेटवर्क अनुप्रयोगों के लिए विशेष रूप से महत्वपूर्ण है जो किसी भी डाउनटाइम को वहन नहीं कर सकते। साथ ही, सभी मूल जावा डेटा प्रकार पूर्वनिर्धारित होते हैं और प्लेटफ़ॉर्म-निर्भर नहीं होते हैं, जबकि कुछ डेटा प्रकार C या C++ (जैसे कि int प्रकार) में उपयोग किए जाने वाले प्लेटफ़ॉर्म के साथ बदल सकते हैं। Java प्रोग्राम C++ समकक्षों की तुलना में अधिक उच्च संरचित हैं। सभी कार्य (या जावा मेथड्स) और जावा में एक्ज़ीक्यूटेबल स्टेटमेंट्स को एक क्लास के अंदर रहना चाहिए, जबकि C++ फंक्शन डेफिनिशन्स और कोड की लाइन्स को क्लासेस के बाहर मौजूद रहने देता है (जैसे कि C-स्टाइल प्रोग्राम्स में)। वैश्विक डेटा और विधियाँ जावा में एक वर्ग के बाहर नहीं रह सकती हैं, जबकि C++ इसकी अनुमति देता है। ये प्रतिबंध, हालांकि कभी-कभी बोझिल होते हैं, जावा कार्यक्रमों की अखंडता और सुरक्षा को बनाए रखने में मदद करते हैं और उन्हें पूरी तरह से वस्तु-उन्मुख होने के लिए मजबूर करते हैं।
जावा की विशेषताएं
जावा प्रोग्रामिंग भाषा निर्माण का प्राथमिक उद्देश्य इसे एक पोर्टेबल, सरल और सुरक्षित प्रोग्रामिंग भाषा बनाना था। इसके अलावा, कुछ उत्कृष्ट विशेषताएं भी हैं जो इस भाषा की लोकप्रियता में महत्वपूर्ण भूमिका निभाती हैं। जावा की विशेषताओं को जावा buzzwords के रूप में भी जाना जाता है।
जावा भाषा की सबसे महत्वपूर्ण विशेषताओं की सूची नीचे दी गई है।
- सरल
जावा सीखना बहुत आसान है, और इसका सिंटैक्स सरल, साफ और समझने में आसान है। सन माइक्रोसिस्टम के अनुसार जावा भाषा एक सरल प्रोग्रामिंग भाषा है क्योंकि:
- जावा सिंटैक्स C++ पर आधारित है (इसलिए प्रोग्रामर के लिए इसे C++ के बाद सीखना आसान है)।
- जावा ने कई जटिल और शायद ही कभी उपयोग की जाने वाली सुविधाओं को हटा दिया है, उदाहरण के लिए, स्पष्ट संकेत, ऑपरेटर ओवरलोडिंग, आदि।
- गैर-संदर्भित वस्तुओं को हटाने की कोई आवश्यकता नहीं है क्योंकि जावा में एक स्वचालित कचरा संग्रह है।
- ऑब्जेक्ट-ओरिएंटेड
जावा एक ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज है। जावा में सब कुछ एक वस्तु है। ऑब्जेक्ट-ओरिएंटेड का अर्थ है कि हम अपने सॉफ़्टवेयर को विभिन्न प्रकार की वस्तुओं के संयोजन के रूप में व्यवस्थित करते हैं जिसमें डेटा और व्यवहार दोनों शामिल होते हैं।
ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOPs) एक कार्यप्रणाली है जो कुछ नियम प्रदान करके सॉफ़्टवेयर विकास और रखरखाव को सरल बनाती है।
ओओपी की मूल अवधारणाएं हैं:
- ऑब्जेक्ट (Object)
- क्लास (Class)
- इनहेरिटेंस (Inheritance)
- पॉलीमॉरफिस्म (Polymorphism)
- अब्स्ट्रक्शन (Abstraction)
- एन्काप्सुलेशन (Encapsulation)
- पोर्टेबल
जावा पोर्टेबल है क्योंकि यह आपको जावा बाइटकोड को किसी भी प्लेटफॉर्म पर ले जाने की सुविधा देता है। इसे किसी कार्यान्वयन की आवश्यकता नहीं है।
- प्लेटफार्म इंडिपेंडेंट
जावा प्लेटफॉर्म स्वतंत्र है क्योंकि यह C, C++, आदि जैसी अन्य भाषाओं से अलग है, जिन्हें प्लेटफॉर्म विशिष्ट मशीनों में संकलित किया जाता है जबकि जावा एक बार लिखने, कहीं भी चलने वाली भाषा है। एक प्लेटफॉर्म हार्डवेयर या सॉफ्टवेयर वातावरण है जिसमें एक प्रोग्राम चलता है।
दो प्रकार के प्लेटफ़ॉर्म हैं: सॉफ़्टवेयर-आधारित और हार्डवेयर-आधारित। जावा एक सॉफ्टवेयर आधारित प्लेटफॉर्म प्रदान करता है।
जावा प्लेटफ़ॉर्म अधिकांश अन्य प्लेटफ़ॉर्म से इस अर्थ में भिन्न है कि यह एक सॉफ़्टवेयर-आधारित प्लेटफ़ॉर्म है जो अन्य हार्डवेयर-आधारित प्लेटफ़ॉर्म के शीर्ष पर चलता है। इसके दो घटक हैं:
- क्रम पर्यावरण
- एपीआई (एप्लिकेशन प्रोग्रामिंग इंटरफेस)
जावा कोड को कई प्लेटफार्मों पर निष्पादित किया जा सकता है, उदाहरण के लिए, विंडोज, लिनक्स, सन सोलारिस, मैक/ओएस, आदि। जावा कोड को कंपाइलर द्वारा संकलित किया जाता है और बाइटकोड में परिवर्तित किया जाता है। यह बाइटकोड एक प्लेटफ़ॉर्म-स्वतंत्र कोड है क्योंकि इसे कई प्लेटफ़ॉर्म पर चलाया जा सकता है, अर्थात, एक बार लिखें और कहीं भी चलाएँ (WORA)।
- सुरक्षित
जावा अपनी सुरक्षा के लिए सबसे ज्यादा जाना जाता है। जावा के साथ, हम वायरस मुक्त सिस्टम विकसित कर सकते हैं। जावा सुरक्षित है क्योंकि:
- कोई स्पष्ट सूचक नहीं
- जावा प्रोग्राम वर्चुअल मशीन सैंडबॉक्स के अंदर चलते हैं
- क्लासलोडर: जावा में क्लासलोडर जावा रनटाइम एनवायरनमेंट (जेआरई) का एक हिस्सा है जिसका उपयोग जावा कक्षाओं को गतिशील रूप से जावा वर्चुअल मशीन में लोड करने के लिए किया जाता है। यह स्थानीय फ़ाइल सिस्टम की कक्षाओं के लिए पैकेज को नेटवर्क स्रोतों से आयात किए गए पैकेज से अलग करके सुरक्षा जोड़ता है।
- बाइटकोड सत्यापनकर्ता: यह अवैध कोड के लिए कोड अंशों की जांच करता है जो वस्तुओं तक पहुंच अधिकारों का उल्लंघन कर सकते हैं।
- सुरक्षा प्रबंधक: यह निर्धारित करता है कि एक वर्ग किन संसाधनों तक पहुँच सकता है जैसे स्थानीय डिस्क पर पढ़ना और लिखना।
जावा इन प्रतिभूतियों को डिफ़ॉल्ट रूप से प्रदान करता है। कुछ सुरक्षा एसएसएल, जेएएएस, क्रिप्टोग्राफी, आदि के माध्यम से एक एप्लिकेशन डेवलपर द्वारा स्पष्ट रूप से प्रदान की जा सकती है।
- मज़बूत
मजबूत का अंग्रेजी में मतलब मजबूत है. जावा मजबूत है क्योंकि:
- यह मजबूत स्मृति प्रबंधन का उपयोग करता है।
- सुरक्षा समस्याओं से बचने वाले संकेतकों की कमी है।
- जावा स्वचालित कचरा संग्रह प्रदान करता है जो जावा वर्चुअल मशीन पर उन वस्तुओं से छुटकारा पाने के लिए चलता है जिनका उपयोग अब जावा एप्लिकेशन द्वारा नहीं किया जा रहा है।
- जावा में एक्सेप्शन हैंडलिंग और टाइप चेकिंग मैकेनिज्म हैं। ये सभी बिंदु जावा को मजबूत बनाते हैं।
- वास्तुकला तटस्थ
जावा वास्तुकला तटस्थ है क्योंकि कोई कार्यान्वयन निर्भर विशेषताएं नहीं हैं, उदाहरण के लिए, आदिम प्रकारों का आकार निश्चित है।
C प्रोग्रामिंग में, int डेटा प्रकार 32-बिट आर्किटेक्चर के लिए 2 बाइट्स मेमोरी और 64-बिट आर्किटेक्चर के लिए 4 बाइट्स मेमोरी लेता है। हालाँकि, यह जावा में 32 और 64-बिट आर्किटेक्चर दोनों के लिए 4 बाइट्स मेमोरी रखता है।
- उच्च प्रदर्शन
जावा अन्य पारंपरिक व्याख्या की गई प्रोग्रामिंग भाषाओं की तुलना में तेज़ है क्योंकि जावा बाइटकोड मूल कोड के “करीब” है। यह अभी भी संकलित भाषा (जैसे, C++) की तुलना में थोड़ा धीमा है। जावा एक व्याख्या की गई भाषा है, इसलिए यह संकलित भाषाओं की तुलना में धीमी है, जैसे, C, C++, आदि।
- मल्टीथ्रेडेड
एक धागा एक अलग कार्यक्रम की तरह है, जो समवर्ती रूप से क्रियान्वित होता है। हम जावा प्रोग्राम लिख सकते हैं जो कई थ्रेड्स को परिभाषित करके एक साथ कई कार्यों से निपटते हैं। मल्टी-थ्रेडिंग का मुख्य लाभ यह है कि यह प्रत्येक थ्रेड के लिए मेमोरी पर कब्जा नहीं करता है। यह एक साझा स्मृति क्षेत्र साझा करता है। मल्टीमीडिया, वेब एप्लिकेशन आदि के लिए थ्रेड महत्वपूर्ण हैं।
- वितरित
जावा वितरित किया जाता है क्योंकि यह उपयोगकर्ताओं को जावा में वितरित एप्लिकेशन बनाने की सुविधा प्रदान करता है। वितरित एप्लिकेशन बनाने के लिए RMI और EJB का उपयोग किया जाता है। जावा की यह विशेषता हमें इंटरनेट पर किसी भी मशीन से विधियों को कॉल करके फाइलों तक पहुंचने में सक्षम बनाती है।
- गतिशील
जावा एक गतिशील भाषा है। यह कक्षाओं के गतिशील लोडिंग का समर्थन करता है। इसका मतलब है कि कक्षाएं मांग पर भरी हुई हैं। यह अपनी मूल भाषाओं, यानी C और C++ के कार्यों का भी समर्थन करता है।
जावा गतिशील संकलन और स्वचालित स्मृति प्रबंधन (कचरा संग्रह) का समर्थन करता है।
जावा के अनुप्रयोग
आज जावा प्रोग्रामिंग भाषा सबसे व्यापक रूप से उपयोग की जाने वाली भाषाओं में से एक है जो सॉफ्टवेयर की दुनिया में तेजी से उभर रही है। हम लगभग सभी क्षेत्रों में जावा भाषा के कई अनुप्रयोग पाते हैं, चाहे वह एप्लिकेशन हो या वेब डेवलपमेंट, बिग डेटा, आर्टिफिशियल इंटेलिजेंस, मोबाइल डेवलपमेंट आदि।
- डेस्कटॉप जीयूआई एप्लीकेशन
जावा भाषा बहुत सारी सुविधाएँ प्रदान करती है जो हमें GUI अनुप्रयोगों को विकसित करने में मदद करती है। जावा एडब्ल्यूटी, स्विंग एपीआई या जावा फाउंडेशन क्लासेस, या नवीनतम जावाएफएक्स (जावा 8 से आगे) प्रदान करता है। ये एपीआई/विशेषताएं उन्नत ट्री-आधारित या यहां तक कि 3डी ग्राफिकल अनुप्रयोगों सहित उन्नत जीयूआई अनुप्रयोगों को विकसित करने में हमारी सहायता करती हैं।
जावा का उपयोग करके विकसित किए गए वास्तविक-विश्व डेस्कटॉप उपकरण:
- एक्रोबेट रीडर
- थिँकफ्री
- वेब अनुप्रयोग
जावा वेब विकास के साथ-साथ सर्वलेट्स, स्ट्रट्स, स्प्रिंग, हाइबरनेट, जेएसपी आदि के लिए सुविधाएँ प्रदान करता है जो हमें अत्यधिक सुरक्षित और प्रोग्राम करने में आसान सॉफ़्टवेयर विकसित करने की अनुमति देता है।
जावा का उपयोग करते हुए वास्तविक दुनिया के वेब उपकरण:
- अमेज़न
- ब्रॉडलीफ
- वेफेयर
- मोबाइल एप्लीकेशन
जावा भाषा J2ME नाम की एक सुविधा प्रदान करती है जो मोबाइल एप्लिकेशन बनाने के लिए एक क्रॉस-प्लेटफ़ॉर्म ढांचा है जो जावा-समर्थित स्मार्टफोन और फीचर फोन पर चल सकता है।
लोकप्रिय मोबाइल ऑपरेटिंग सिस्टमों में से एक एंड्रॉइड को जावा-आधारित एंड्रॉइड एसडीके का उपयोग करके विकसित किया गया है।
लोकप्रिय जावा आधारित मोबाइल ऐप:
- नेटफ्लिक्स
- टिंडर
- गूगल अर्थ
- उबर
- उपक्रम अनुप्रयोग
जावा उद्यम कार्यक्रमों को विकसित करने के लिए पहली पसंद है क्योंकि इसकी शक्तिशाली विशेषताएं उच्च प्रदर्शन प्रदान करती हैं। प्रदर्शन के अलावा, जावा अनुप्रयोगों को अधिक शक्तिशाली, सुरक्षित और आसानी से मापनीय भी बनाता है।
जावा भाषा में जावा एंटरप्राइज एडिशन (जावा ईई) प्लेटफॉर्म है जो स्क्रिप्टिंग और एंटरप्राइज सॉफ्टवेयर, नेटवर्क टूल्स और वेब सेवाओं को चलाने के लिए एपीआई और रनटाइम पर्यावरण सुविधाओं के साथ आता है।
Oracle के अनुसार, लगभग 97% एंटरप्राइज़ कंप्यूटर जावा पर चल रहे हैं। जावा द्वारा प्रदान किए गए उच्च प्रदर्शन और तेज कंप्यूटिंग के परिणामस्वरूप अधिकांश उद्यम अनुप्रयोगों को जावा में विकसित किया गया है।
जावा का उपयोग कर रीयल-टाइम एंटरप्राइज़ एप्लिकेशन:
- एंटरप्राइज रिसोर्स प्लानिंग (ईआरपी) सिस्टम
- ग्राहक संसाधन प्रबंधन (सीआरएम) सिस्टम
- वैज्ञानिक अनुप्रयोग
जावा में शक्तिशाली सुरक्षा और मजबूती विशेषताएं हैं जो इसे वैज्ञानिक अनुप्रयोगों के विकास के लिए लोकप्रिय बनाती हैं। जावा शक्तिशाली गणितीय गणना भी प्रदान करता है जो विभिन्न प्लेटफार्मों पर समान परिणाम देता है।
सबसे लोकप्रिय जावा आधारित वैज्ञानिक उपकरण:
- मैटलैब
- वेब सर्वर और एप्लिकेशन सर्वर
पूरे जावा पारिस्थितिकी तंत्र में आज के समय में कई एप्लिकेशन और वेब सर्वर हैं। वेब सर्वरों में, हमारे पास Apache Tomcat, Project Jigsaw, Rimfaxe Web Server (RWS), Jo! आदि पर हावी है।
इसी तरह वेबस्फेयर, जेबॉस और वेबलॉजिक आदि जैसे एप्लिकेशन सर्वर उद्योग में व्यावसायिक रूप से हावी हो रहे हैं।
- एम्बेडेड सिस्टम्स
एंबेडेड सिस्टम निम्न-स्तरीय सिस्टम हैं जो बड़े इलेक्ट्रोमैकेनिकल सिस्टम का एक हिस्सा बनाते हैं। ये छोटे चिप्स, प्रोसेसर आदि हैं और इन्हें एकीकृत प्रणाली भी कहा जाता है।
जावा मजबूत टूल का उत्पादन कर सकता है जो एप्लिकेशन अपवादों को कुशलता से संभाल सकता है और तेज़ भी है क्योंकि यह निम्न-स्तरीय प्रोग्राम विकसित करने के लिए बेहतर है।
जावा का उपयोग करते हुए एंबेडेड सिस्टम एप्लिकेशन:
- सिम कार्ड
- ब्लू-रे डिस्क प्लेयर
- वित्त उद्योग में सर्वर ऐप्स
बैंक, निवेशकों जैसे वित्तीय संस्थानों को अपने दैनिक कारोबार को चलाने के लिए विभिन्न सॉफ्टवेयर प्रोग्रामों की आवश्यकता होती है जैसे फ्रंट और बैक ऑफिस इलेक्ट्रॉनिक ट्रेडिंग सिस्टम, राइटिंग सेटलमेंट और कन्फर्मेशन सिस्टम, डेटा प्रोसेसिंग आदि।
जावा का उपयोग ज्यादातर इन उपकरणों के लिए सर्वर-साइड एप्लिकेशन लिखने के लिए किया जाता है जो एक सर्वर से डेटा प्राप्त करते हैं, इसे संसाधित करते हैं, और संसाधित डेटा को अन्य सर्वर या प्रक्रियाओं को भेजते हैं।
अधिकांश प्रमुख वित्तीय संस्थान जैसे बार्कलेज, सिटी ग्रुप, गोल्डमैन सैक, आदि अपने व्यवसाय के लिए जावा-आधारित सॉफ़्टवेयर टूल का उपयोग करते हैं।
- सॉफ्टवेयर उपकरण
विकास के लिए उपयोग किए जाने वाले कई सॉफ्टवेयर टूल्स जावा में लिखे गए हैं। उदाहरण के लिए, एक्लिप्स, इंटेलीज आईडीईए और नेट बीन्स जैसे आईडीई सभी जावा में लिखे और विकसित किए गए हैं।
ये आज भी उपयोग किए जाने वाले सबसे लोकप्रिय डेस्कटॉप GUI आधारित उपकरण हैं। पहले स्विंग और एडब्ल्यूटी ऐसी विशेषताएं थीं जो ज्यादातर सॉफ्टवेयर विकसित करने के लिए उपयोग की जाती थीं लेकिन आजकल जावाएफएक्स अधिक लोकप्रिय हो गया है।
- ट्रेडिंग एप्लीकेशन
लोकप्रिय ट्रेडिंग एप्लिकेशन म्यूरेक्स, जो कई बैंकों में फ्रंट टू बैंक कनेक्टिविटी के लिए उपयोग किया जाता है, जावा में लिखा गया है।
- J2ME ऐप्स
आईओएस और एंड्रॉइड आधारित मोबाइल हैंडसेट के अलावा, नोकिया और सैमसंग के ऐसे हैंडसेट हैं जो J2ME का उपयोग करते हैं। J2ME ब्लू-रे, कार्ड और सेट-टॉप बॉक्स आदि जैसे उत्पादों के साथ भी लोकप्रिय है। Nokia पर उपलब्ध लोकप्रिय एप्लिकेशन WhatsApp J2ME में उपलब्ध है।
- बिग डेटा टेक्नोलॉजीज
आज सॉफ्टवेयर उद्योग में बिग डेटा सबसे लोकप्रिय और ट्रेंडिंग टॉपिक है। बिग डेटा जटिल डेटा सेट से जानकारी का विश्लेषण और व्यवस्थित रूप से निकालने से संबंधित है।
एक खुला ढांचा जो बड़े डेटा से जुड़ा होता है उसे Hadoop कहा जाता है और यह पूरी तरह से जावा में लिखा जाता है। स्वचालित कचरा संग्रहण, स्मृति वितरण और स्टैक प्रावधान प्रणाली जैसी सुविधाएँ, जावा को अन्य तकनीकों पर बढ़त मिलती है। हम सुरक्षित रूप से कह सकते हैं कि जावा बिग डेटा का भविष्य है।
रीयल-टाइम जावा आधारित बिग डेटा प्रौद्योगिकियां:
- हडूप
- अपाचे HBase
- Elasticsearch
- Accumulo
4. C++
C++ एक ऑब्जेक्ट-ओरिएंटेड कंप्यूटर भाषा है जिसे उल्लेखनीय कंप्यूटर वैज्ञानिक ब्योर्न स्ट्रॉस्ट्रॉप द्वारा C भाषा के परिवार के विकास के हिस्से के रूप में बनाया गया है। इसे डेवलपर्स को स्मृति और सिस्टम संसाधनों पर उच्च स्तर का नियंत्रण प्रदान करने के लिए C के क्रॉस-प्लेटफ़ॉर्म सुधार के रूप में विकसित किया गया था।
कुछ लोग C++ को “क्लासेज के साथ C” कहते हैं क्योंकि यह सी प्रोग्रामिंग भाषा ढांचे के लिए परिभाषित कक्षाओं के उपयोग सहित ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग सिद्धांतों का परिचय देता है। समय के साथ, C++ न केवल कंप्यूटर प्रोग्रामिंग में, बल्कि ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग कैसे काम करता है, इसके बारे में नए प्रोग्रामर को सिखाने में एक बहुत ही उपयोगी भाषा बनी हुई है। हालांकि, यह न केवल वस्तु-उन्मुख का समर्थन करता है, बल्कि प्रक्रियात्मक और कार्यात्मक भी है। इसकी उच्च लचीलेपन और मापनीयता के लिए धन्यवाद, C++ का उपयोग सॉफ्टवेयर, एप्लिकेशन, ब्राउज़र, ग्राफिकल यूजर इंटरफेस (जीयूआई), ऑपरेटिंग सिस्टम और गेम की एक विस्तृत श्रृंखला विकसित करने के लिए किया जा सकता है।
आज C++ को इसकी उल्लेखनीय सुवाह्यता के लिए बहुत सराहा जाता है जो डेवलपर्स को ऐसे प्रोग्राम बनाने की अनुमति देता है जो विभिन्न ऑपरेटिंग सिस्टम या प्लेटफॉर्म पर बहुत आसानी से चल सकते हैं। उच्च-स्तरीय भाषा होने के बावजूद, चूंकि C++ अभी भी C के करीब है, इसलिए मशीनी भाषा के साथ घनिष्ठ संबंध के कारण इसे निम्न-स्तरीय हेरफेर के लिए इस्तेमाल किया जा सकता है।
C++ की विशेषताएं
C++ की विशेषताएं निम्नलिखित हैं:
- ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग
सी के विपरीत, एक प्रक्रियात्मक भाषा, C++ एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (ओओपी) भाषा है। OOP एक प्रोग्राम को कुशलता से मॉड्यूलर बनाने और बनाए रखने में मदद करता है। यह कोड स्पष्टता, कोड पठनीयता, समस्या निवारण में सुधार करता है और बिना किसी महत्वपूर्ण पुनर्गठन के संशोधनों को शामिल करना आसान बनाता है। इसके अलावा, OOP पांच वास्तविक अवधारणाओं के आधार पर वास्तविक समय की समस्याओं को निष्पादित करने के लिए वस्तुओं के उपयोग को नियोजित करता है।
C++ को TIOBE इंडेक्स, 2019 द्वारा चौथा स्थान दिया गया है। C++ सुविधाएँ अनगिनत लाभ प्रदान करती हैं जिनका व्यापक रूप से और प्रभावी ढंग से उपयोग किया गया है। इनमें मोबाइल ऐप डेवलपमेंट, गेम डेवलपमेंट, सॉफ़्टवेयर डेवलपमेंट (जैसे, Adobe Premiere, इमेज रेडी), वेब ब्राउज़र डेवलपमेंट (जैसे, Google Chrome, Mozilla Firefox) और कोर बैंकिंग एप्लिकेशन (जैसे, Infosys Finacle) शामिल हैं।
- डेटा एब्स्ट्रैक्शन: अगर हम प्रोग्रामिंग को कायापलट की प्रक्रिया के समान मानते हैं, तो डेटा एब्स्ट्रैक्शन को कोकून के रूप में देखा जा सकता है। इसका उद्देश्य अंतिम उपयोगकर्ता से अप्रासंगिक जानकारी छिपाना है। अंतिम-उपयोगकर्ता को डेटा कोड में आंतरिक परिवर्तनों या इसे प्राप्त करने के लिए लागू की गई विधि से खुद को चिंतित करने की आवश्यकता नहीं है। किसी भी जटिल, आंतरिक विवरण को छोड़कर, कार्यक्रम के सुचारू संचालन के लिए आवश्यक केवल आवश्यक डेटा ही उपयोगकर्ता के लिए गोपनीय है।
- डेटा एनकैप्सुलेशन: यदि डेटा एब्स्ट्रैक्शन उद्देश्य है, तो डेटा एनकैप्सुलेशन इसे प्राप्त करने की तकनीक है। एनकैप्सुलेशन का उपयोग करते हुए, प्रासंगिक डेटा और उससे जुड़े तरीकों और कार्यों को एक साथ एक विशेष ब्लॉक में बांधा जाता है।
- डेटा हाइडिंग: हालांकि डेटा एनकैप्सुलेशन के समानार्थी रूप से उपयोग किया जाता है, फिर भी एक मौलिक अंतर मौजूद है। डेटा एनकैप्सुलेशन डेटा के आवश्यक पहलुओं पर ध्यान केंद्रित करने के बारे में है। इसके विपरीत, डेटा छिपाने का उद्देश्य डेटा को अनधिकृत पहुंच से सुरक्षित करके एक विशेष प्रोग्राम कोड को सुरक्षित करना है।
- इनहेरिटेंस: इनहेरिटेंस एक निर्मित बाल वर्ग (व्युत्पन्न वर्ग) बनाने के लिए संदर्भित करता है, जो अपने मूल वर्ग के गुणों और कार्यात्मकताओं (या आधार वर्ग) को प्राप्त करता है। इनहेरिटेंस कोड की पुन: प्रयोज्यता की गारंटी देता है। दूसरे शब्दों में, यदि किसी कोड में सुधार करना है, तो कोड को स्क्रैच से फिर से लिखने की कोई आवश्यकता नहीं है। यह कार्यक्रम की अतिरेक को कम करने में मदद करता है और एक वर्ग से दूसरे वर्ग में संपत्तियों के आसान हस्तांतरण/प्रतिकृति/प्रतिलिपि की सुविधा प्रदान करता है।
- पॉलीमॉरफिस्म: व्युत्पत्ति रूप से, पॉलीमॉरफिस्म को ‘पॉली’ (अर्थ ‘कई’) और ‘मॉर्फिज्म’ (अर्थ, ‘रूप’) के रूप में विखंडित किया जा सकता है। इसलिए, पॉलीमॉरफिस्म एक से अधिक रूपों में डेटा प्रदर्शित करके लचीली प्रोग्रामिंग की सुविधा प्रदान करता है। यह आमतौर पर या तो ऑपरेटर ओवरलोडिंग या फ़ंक्शन ओवरलोडिंग के रूप में लागू किया जाता है। ऑपरेटरों और कार्यों का उपयोग जितनी आवश्यक हो उतनी वस्तुओं के साथ किया जा सकता है।
- मशीन इंडिपेंडेंट
यहां, मशीन इंडिपेंडेंट (या पोर्टेबिलिटी) एक ऑपरेटिंग वातावरण से दूसरे ऑपरेटिंग वातावरण में निर्देश स्थानांतरित करने की क्षमता को संदर्भित करता है। C++ WORA के सिद्धांत को नियोजित करता है (एक बार लिखें, कहीं भी चलाएँ)। उदाहरण के लिए, यदि आप Microsoft Windows में कोई प्रोग्राम लिखते हैं, और किसी कारणवश, आपको LINUX पर स्विच करना पड़ता है, तो आपका मूल प्रोग्राम कोड उसी तरह काम करेगा। हालाँकि, C++ प्लेटफ़ॉर्म-स्वतंत्र नहीं है। इसका तात्पर्य यह है कि संकलक एक ओएस-निर्भर .exe फ़ाइल उत्पन्न करेगा, जिसे विभिन्न ऑपरेटिंग सिस्टम पर नहीं चलाया जा सकता है।
- सरल
C++ उपयोगकर्ता के अनुकूल (यूजर फ्रेंडली) है। यह एक संरचित और व्यापक दृष्टिकोण प्रदान करता है, एक सिंटैक्स के साथ जो सी को बारीकी से प्रतिबिंबित करता है। वास्तव में, C++ को लोकप्रिय रूप से “क्लासेज के साथ सी” के रूप में जाना जाता है। C++ एक बॉटम-अप दृष्टिकोण प्रदान करता है, जैसे कि किसी भी परियोजना के विकास को उसकी संबंधित तार्किक इकाइयों और भागों में विघटित किया जा सकता है। इसके अतिरिक्त, यह इन-बिल्ट लाइब्रेरी फ़ंक्शंस और विभिन्न प्रकार के डेटा प्रकारों का एक समृद्ध सेट प्रदान करता है।
- इंटरमीडिएट स्तर की प्रोग्रामिंग भाषा
एक मध्यवर्ती स्तर की भाषा के रूप में, यह निम्न-स्तरीय (मशीन-स्तरीय) भाषा और उच्च-स्तरीय भाषा दोनों की विशेषताओं का समर्थन करती है। यह कम गूढ़ है और मानव-पठनीय और मानव-समझ में आने वाली भाषा, यानी अंग्रेजी के साथ निकटता से जुड़ा हुआ है।
- कंपाइलर-आधारित
C++ को एक संकलित भाषा के रूप में डिजाइन किया गया है। इसका मतलब यह है कि इसे आम तौर पर मशीनी भाषा में अनुवादित किया जाता है जिसे सिस्टम सीधे समझ सकता है। परिणामी उत्पन्न कार्यक्रम इस प्रकार अत्यधिक कुशल और पाइथन या जावा की तुलना में अपेक्षाकृत तेज़ है, जो दुभाषिया-आधारित है।
- गतिशील स्मृति आवंटन
C++ में मेमोरी को दो भागों-स्टैक और हीप में विभाजित किया जा सकता है। स्टैक उस मेमोरी को संदर्भित करता है जिसे फ़ंक्शन के अंदर घोषित चर के लिए आवंटित किया जाता है। इसके विपरीत, ढेर अप्रयुक्त स्मृति को संदर्भित करता है जिसे गतिशील रूप से आवंटित किया जा सकता है। उदाहरण के लिए, यदि आप किसी परिभाषित चर में जानकारी संग्रहीत करने के लिए स्मृति आवश्यकता से अनजान हैं, तो स्मृति आकार को रनटाइम के दौरान मैन्युअल रूप से निर्धारित किया जा सकता है। यह नए ऑपरेटर नामक एक विशेष ऑपरेटर का उपयोग करके प्राप्त किया जाता है, जो आवंटित स्थान का पता देता है। यदि जरूरत नहीं है, तो आप मेमोरी को हटाने के लिए डिलीट ऑपरेटर का उपयोग कर सकते हैं।
- एकीकरण और एक्स्टेंसिबिलिटी
C++ में कई टूल, जैसे स्टाइल और कोडिंग कन्वेंशन चेकर्स, कोड ऑप्टिमाइज़र, प्रोग्राम विज़ुअलाइज़र और इंक्रीमेंटल कंपाइलर, लगातार अपडेट किए जाने वाले डेटाबेस पर भरोसा करते हैं जिसमें सोर्स प्रोग्राम से निकाली गई सिमेंटिक जानकारी होती है। इसके अतिरिक्त, नई प्रोग्रामिंग तकनीकें विस्तार की आवश्यकता पैदा करती हैं। C++ में नई सुविधाओं और ज्ञान प्राप्ति को आसानी से अपनाने और एकीकृत करने की क्षमता है।
C++ के अनुप्रयोग
C++ के कुछ वास्तविक-विश्व अनुप्रयोग निम्नलिखित हैं:
- गेम्स: C++ हार्डवेयर के करीब है, संसाधनों में आसानी से हेरफेर कर सकता है, सीपीयू गहन कार्यों पर प्रक्रियात्मक प्रोग्रामिंग प्रदान करता है और तेज है। यह 3D गेम की जटिलताओं को दूर करने में भी सक्षम है और बहुपरत नेटवर्किंग प्रदान करता है। C++ के ये सभी लाभ गेमिंग सिस्टम के साथ-साथ गेम डेवलपमेंट सूट को विकसित करने के लिए इसे प्राथमिक विकल्प बनाते हैं।
- GUI आधारित अनुप्रयोग: C++ का उपयोग अधिकांश GUI आधारित और डेस्कटॉप अनुप्रयोगों को आसानी से विकसित करने के लिए किया जा सकता है क्योंकि इसमें आवश्यक सुविधाएँ हैं। C++ में लिखे गए कुछ एप्लिकेशन इस प्रकार हैं:
- Adobe Systems: Adobe सिस्टम के अधिकांश अनुप्रयोग जिनमें Illustrator, Photoshop, आदि शामिल हैं, C++ का उपयोग करके विकसित किए गए हैं।
- विन एम्प मीडिया प्लेयर: माइक्रोसॉफ्ट का विन एम्प मीडिया प्लेयर एक लोकप्रिय सॉफ्टवेयर है जो दशकों से हमारी सभी ऑडियो/वीडियो जरूरतों को पूरा कर रहा है। यह सॉफ्टवेयर C++ में विकसित किया गया है।
- डेटाबेस सॉफ्टवेयर: C++ का उपयोग डेटाबेस मैनेजमेंट सॉफ्टवेयर लिखने में भी किया जाता है। दो सबसे लोकप्रिय डेटाबेस MySQL और Postgres C++ में लिखे गए हैं।
- MySQL सर्वर: MySQL, सबसे लोकप्रिय डेटाबेस सॉफ़्टवेयर में से एक है जो कई वास्तविक दुनिया के अनुप्रयोगों में व्यापक रूप से उपयोग किया जाता है, C++ में लिखा गया है। यह दुनिया का सबसे लोकप्रिय ओपन सोर्स डेटाबेस है। यह डेटाबेस C++ में लिखा गया है और अधिकांश संगठनों द्वारा इसका उपयोग किया जाता है।
- ऑपरेटिंग सिस्टम: तथ्य यह है कि सी ++ एक जोरदार टाइप और तेज़ प्रोग्रामिंग भाषा है जो इसे ऑपरेटिंग सिस्टम लिखने के लिए एक आदर्श उम्मीदवार बनाती है। इसके अलावा, C++ में सिस्टम-लेवल फंक्शन्स का एक विस्तृत संग्रह है जो लो-लेवल प्रोग्राम को लिखने में भी मदद करता है।
- Apple OS: Apple OS X के कुछ हिस्से C++ में लिखे गए हैं। इसी तरह, iPod के कुछ हिस्से भी C++ में लिखे जाते हैं।
- माइक्रोसॉफ्ट विंडोज ओएस: माइक्रोसॉफ्ट के अधिकांश सॉफ्टवेयर सी ++ (विजुअल सी ++ के जैसा) का उपयोग करके विकसित किए गए हैं। विंडोज 95, एमई, 98 जैसे एप्लिकेशन; XP, आदि C++ में लिखे गए हैं। इसके अलावा IDE Visual Studio, Internet Explorer, Microsoft Office भी C++ में लिखे जाते हैं।
- ब्राउजर: ब्राउजर का इस्तेमाल ज्यादातर C++ में रेंडरिंग के लिए किया जाता है। रेंडरिंग इंजन को निष्पादन में तेज होने की आवश्यकता है क्योंकि अधिकांश लोग वेब पेज के लोड होने की प्रतीक्षा करना पसंद नहीं करते हैं। C++ के तेज़ प्रदर्शन के साथ, अधिकांश ब्राउज़रों का रेंडरिंग सॉफ़्टवेयर C++ में लिखा होता है।
- मोज़िला फ़ायरफ़ॉक्स: मोज़िला इंटरनेट ब्राउज़र फ़ायरफ़ॉक्स एक ओपन-सोर्स प्रोजेक्ट है और पूरी तरह से सी ++ में विकसित किया गया है।
- थंडरबर्ड: फ़ायरफ़ॉक्स ब्राउज़र की तरह, मोज़िला के ईमेल क्लाइंट, थंडरबर्ड को भी C++ में विकसित किया गया है। यह भी एक ओपन सोर्स प्रोजेक्ट है।
- Google एप्लिकेशन: Google एप्लिकेशन जैसे Google फ़ाइल सिस्टम और क्रोम ब्राउज़र C++ में लिखे गए हैं।
- उन्नत संगणना और ग्राफिक्स: C++ एक ऐसे अनुप्रयोग को विकसित करने में उपयोगी है जिसके लिए उच्च-प्रदर्शन छवि प्रसंस्करण, वास्तविक समय भौतिक सिमुलेशन और मोबाइल सेंसर अनुप्रयोगों की आवश्यकता होती है जिन्हें उच्च प्रदर्शन और गति की आवश्यकता होती है।
- एलियास सिस्टम: एलियास सिस्टम से माया 3 डी सॉफ्टवेयर C++ में विकसित किया गया है और इसका उपयोग एनीमेशन, आभासी वास्तविकता, 3 डी ग्राफिक्स और वातावरण के लिए किया जाता है।
- बैंकिंग अनुप्रयोग: C++ समवर्ती में सहायता करता है, यह बैंकिंग अनुप्रयोगों के लिए डिफ़ॉल्ट विकल्प बन जाता है जिसके लिए बहु-थ्रेडिंग, संगामिति और उच्च प्रदर्शन की आवश्यकता होती है। इंफोसिस फिनेकल – एक लोकप्रिय कोर बैंकिंग एप्लिकेशन है जो बैकएंड प्रोग्रामिंग भाषाओं के रूप में C++ का उपयोग करता है।
- क्लाउड/डिस्ट्रीब्यूटेड सिस्टम: क्लाउड स्टोरेज सिस्टम जो आजकल बड़े पैमाने पर उपयोग किए जाते हैं, हार्डवेयर के करीब काम करते हैं। C++ ऐसे सिस्टम को लागू करने के लिए एक डिफ़ॉल्ट विकल्प बन जाता है क्योंकि यह हार्डवेयर के करीब है। C++ मल्टीथ्रेडिंग समर्थन भी प्रदान करता है जो समवर्ती अनुप्रयोगों और लोड सहनशीलता का निर्माण कर सकता है। ब्लूमबर्ग एक वितरित RDBMS एप्लिकेशन है जिसका उपयोग निवेशकों को वास्तविक समय की वित्तीय जानकारी और समाचार प्रदान करने के लिए किया जाता है। जबकि ब्लूमबर्ग का RDBMS C में लिखा गया है, इसका विकास पर्यावरण और पुस्तकालयों का सेट C++ में लिखा गया है।
- कंपाइलर्स: विभिन्न उच्च-स्तरीय प्रोग्रामिंग भाषाओं के कंपाइलर्स या तो C या C++ में लिखे जाते हैं। इसका कारण यह है कि C और C++ दोनों निम्न-स्तरीय भाषाएं हैं जो हार्डवेयर के करीब हैं और अंतर्निहित हार्डवेयर संसाधनों को प्रोग्राम और हेरफेर करने में सक्षम हैं।
- एंबेडेड सिस्टम: स्मार्टवॉच, मेडिकल उपकरण सिस्टम जैसे विभिन्न एम्बेडेड सिस्टम प्रोग्राम के लिए C ++ का उपयोग करते हैं क्योंकि यह हार्डवेयर स्तर के करीब है और अन्य उच्च-स्तरीय प्रोग्रामिंग भाषाओं की तुलना में बहुत कम-स्तरीय फ़ंक्शन कॉल प्रदान कर सकता है।
- एंटरप्राइज़ सॉफ़्टवेयर: C++ का उपयोग कई एंटरप्राइज़ सॉफ़्टवेयर के साथ-साथ फ़्लाइट सिमुलेशन और रडार प्रोसेसिंग जैसे उन्नत अनुप्रयोगों को विकसित करने में किया जाता है।
- लाइब्रेरीज: जब हमें बहुत उच्च-स्तरीय गणितीय गणनाओं की आवश्यकता होती है, तो प्रदर्शन और गति महत्वपूर्ण हो जाती है। इसलिए अधिकांश लाइब्रेरी अपनी मुख्य प्रोग्रामिंग भाषा के रूप में C++ का उपयोग करते हैं। अधिकांश उच्च-स्तरीय मशीन भाषा पुस्तकालय बैकएंड के रूप में C++ का उपयोग करते हैं। C++ अन्य प्रोग्रामिंग भाषाओं की तुलना में तेज़ है और समवर्ती के साथ मल्टीथ्रेडिंग का भी समर्थन करता है। इस प्रकार अनुप्रयोगों में जहां समवर्ती के साथ गति की आवश्यकता होती है, C++ विकास के लिए सबसे अधिक मांग वाली भाषा है। गति और प्रदर्शन के अलावा, C++ हार्डवेयर के भी करीब है और हम C++ निम्न-स्तरीय फ़ंक्शंस का उपयोग करके हार्डवेयर संसाधनों में आसानी से हेरफेर कर सकते हैं। इस प्रकार C++ उन अनुप्रयोगों में स्पष्ट विकल्प बन जाता है जिनके लिए निम्न-स्तरीय जोड़तोड़ और हार्डवेयर प्रोग्रामिंग की आवश्यकता होती है।
5. स्विफ्ट
स्विफ्ट प्रोग्रामिंग भाषा Apple द्वारा डिज़ाइन की गई एक सामान्य-उद्देश्य, ओपन-सोर्स प्रोग्रामिंग भाषा है। भाषा पायथन से प्रभावित है, जो इसे तेज और सहज बनाती है। स्विफ्ट का उपयोग मुख्य रूप से देशी आईओएस और मैकओएस विकास के लिए किया जाता है। लिंक्डइन, लिफ़्ट और वर्डप्रेस सहित कई लोकप्रिय ऐप स्विफ्ट में लिखे गए हैं। यदि आप iOS के विकास में रुचि रखते हैं, तो स्विफ्ट सीखने के लिए एक बेहतरीन भाषा है।
स्विफ्ट आईपैडओएस, मैकओएस, टीवीओएस, वॉचओएस और आईओएस विकास के लिए एक बहु-प्रतिमान, सामान्य-उद्देश्य, ओपन-सोर्स प्रोग्रामिंग भाषा है। इसे 2014 में Apple द्वारा डेवलपर्स को iOS ऐप विकसित करने के लिए एक शक्तिशाली भाषा देने के लिए बनाया गया था। Swift.org के अनुसार, भाषा को सुरक्षित, तेज और अभिव्यंजक होने के लिए डिज़ाइन किया गया था। इसका उद्देश्य C-आधारित भाषाओं के लिए एक प्रतिस्थापन होना है। स्विफ्ट भाषा लगातार विकसित हो रही है, और समुदाय का विकास जारी है। स्विफ्ट सोर्स कोड GitHub पर पाया जा सकता है, जिससे किसी के लिए भी कोड को एक्सेस करना आसान हो जाता है।
स्विफ्ट की विशेषताएं
स्विफ्ट की विशिष्ट विशेषताएं निम्नलिखित हैं:
- शक्तिशाली जेनरिक
जेनरिक आपको लचीले, पुन: प्रयोज्य कार्यों और प्रकारों को लिखने की अनुमति देता है जो किसी भी प्रकार के साथ काम कर सकते हैं।
- मूल त्रुटि प्रबंधन
स्विफ्ट रनटाइम पर त्रुटियों को फेंकने, पकड़ने, प्रचार करने और हेरफेर करने के लिए समर्थन प्रदान करता है।
- संरचनाएं और कक्षाएं
स्विफ्ट आपको एक फ़ाइल में एक संरचना या वर्ग को परिभाषित करने की अनुमति देता है, और बाहरी इंटरफ़ेस अन्य कोड के उपयोग के लिए उपलब्ध कराया जाता है।
- प्रोटोकॉल एक्सटेंशन
स्विफ्ट आपको वैश्विक कार्यों या व्यक्तिगत अनुरूपताओं के बजाय स्वयं प्रोटोकॉल पर व्यवहार को परिभाषित करने की अनुमति देता है।
- मेमोरी सुरक्षा
स्विफ्ट स्वचालित रूप से मेमोरी का प्रबंधन करती है और आपके कोड में असुरक्षित व्यवहार को होने से रोकती है।
- स्मृति प्रबंधन
स्वचालित संदर्भ गणना (एआरसी) के साथ, स्विफ्ट हमारे ऐप के मेमोरी उपयोग को ट्रैक और प्रबंधित करता है। इसका अर्थ है कि हमें स्वयं स्मृति प्रबंधन के बारे में चिंता करने की आवश्यकता नहीं है।
- लचीली गणना
स्विफ्ट एनम पैटर्न मिलान का समर्थन करते हैं और इसमें पेलोड हो सकते हैं।
- पैकेज प्रबंधक
स्विफ्ट पैकेज मैनेजर एक क्रॉस-प्लेटफ़ॉर्म टूल है जिसका उपयोग हम स्विफ्ट लाइब्रेरी और निष्पादन योग्य बनाने, चलाने, परीक्षण करने और पैकेज करने के लिए कर सकते हैं।
- डिबगिंग
स्विफ्ट एलएलडीबी डीबगर का उपयोग करता है, जो आपको एकीकृत डिबगिंग, सुसंगत स्वरूपण, विफलता पुनर्प्राप्ति और अभिव्यक्ति मूल्यांकन को सक्षम करने के लिए एक आरईपीएल और डीबगर प्रदान करता है।
- स्रोत और बाइनरी संगतता
स्विफ्ट के नवीनतम संस्करण में ऐप्स के लिए बाइनरी संगतता है। स्विफ्ट पुस्तकालय प्रत्येक ऑपरेटिंग सिस्टम रिलीज में शामिल हैं, इसलिए आपके ऐप्स ओएस में पुस्तकालय के नवीनतम संस्करण का उपयोग करेंगे, और आपका कोड पुन: संकलित किए बिना चल सकता है।
- ट्यूपल्स
Tuples allow us to create and share value groupings. हम कई मानों को एक मान के रूप में वापस करने के लिए टुपल्स का उपयोग कर सकते हैं।
- क्लोजर सिंटैक्स
स्विफ्ट में एक हल्का क्लोजर सिंटैक्स है, जिसमें अव्यवस्था-मुक्त सिंटैक्स और स्पष्ट शैली को सक्षम करने के लिए अनुकूलन हैं।
स्विफ्ट के अनुप्रयोग
स्विफ्ट ने सबसे लोकप्रिय ऐप्पल प्रोग्रामिंग भाषा के रूप में ऑब्जेक्टिव-सी को जल्दी से पीछे छोड़ दिया। आइए देखें कि इसका उपयोग कैसे किया जाता है।
- आईफोन और आईपैड ऐप डेवलपमेंट: वास्तव में केवल दो भाषाएं हैं जिन्हें आपको चुनना चाहिए यदि आप एक आईफोन ऐप बनाना चाहते हैं जो अच्छा प्रदर्शन करता है और आईओएस, ऑब्जेक्टिव-सी और स्विफ्ट के साथ निर्बाध रूप से काम करता है। जब इस विकल्प की बात आती है, तो अधिकांश डेवलपर स्विफ्ट को भाषा की आधुनिक विशेषताओं के कारण चुनते हैं जो प्रोग्रामिंग को आसान बनाते हैं। साथ ही, ऐप्पल के मुताबिक, स्विफ्ट ऑब्जेक्टिव-सी की तुलना में 2.6 गुना तेज है। मोबाइल फोन के माध्यम से इंटरनेट का उपयोग करने वाले अधिक लोगों के साथ, व्यवसायों के लिए मोबाइल उपस्थिति आवश्यक है। स्विफ्ट आईफोन ऐप्स के लिए सबसे लोकप्रिय प्रोग्रामिंग भाषा है और आईओएस डेवलपर बनने के लिए एक आवश्यकता है।
- MacOS डेस्कटॉप ऐप डेवलपमेंट: जबकि iOS के लिए ऐप स्विफ्ट के लिए सबसे लोकप्रिय उपयोग हो सकता है, फिर भी लोग काम करने के लिए डेस्कटॉप और लैपटॉप का उपयोग करते हैं। यदि आप मैक के लिए एक डेस्कटॉप ऐप बनाना चाहते हैं, तो आप कई अन्य सामान्य-उद्देश्य प्रोग्रामिंग भाषाओं में से एक का उपयोग कर सकते हैं या ऐप्पल की पुरानी भाषा, ऑब्जेक्टिव-C का उपयोग कर सकते हैं। लेकिन ज्यादातर Apple डेवलपर स्विफ्ट को पसंद करते हैं। और स्विफ्ट अन्य भाषाओं की तुलना में MacOS पर बेहतर चलती है क्योंकि इसे ऐसा करने के लिए डिज़ाइन किया गया था। इस वजह से आप पाएंगे कि ऐप स्टोर में ऐप्स का बड़ा हिस्सा स्विफ्ट में लिखा हुआ है।
- ऐप वॉच डेवलपमेंट: 100 मिलियन से अधिक लोगों के पास ऐप्पल वॉच है। यूएस में 35% से अधिक iPhone उपयोगकर्ताओं के पास Apple वॉच भी है। घड़ियाँ बदल गई हैं, और वॉच ऐप्स बहुत माँग में हैं। घड़ियाँ अब केवल समय बताने के लिए नहीं हैं। कई लोगों के लिए, वे हर समय जानकारी को संभाल कर रखने का एक अपूरणीय तरीका हैं, तब भी जब उनका फ़ोन पास में न हो। घड़ियों में फोन की तुलना में अधिक विशेषताएं होती हैं क्योंकि वे आपके शरीर के सीधे संपर्क में होती हैं और आपकी हृदय गति और गतिविधि को मापने के लिए बायोमेट्रिक डेटा प्रदान कर सकती हैं। स्विफ्ट के साथ, आप ऐप्पल वॉच पर चलने वाले ऐप बना सकते हैं, जो उपयोगकर्ता के आईफोन के साथ इंटरैक्ट कर सकते हैं, बायोमेट्रिक डेटा एकत्र कर सकते हैं, और बहुत कुछ कर सकते हैं।
- ऐप टीवी डेवलपमेंट: टीवीओएस के लिए ऐप विकसित करने के लिए स्विफ्ट का भी उपयोग किया जाता है, ऑपरेटिंग सिस्टम जो ऐप्पल टीवी चलाता है। स्विफ्ट के साथ, आप 4K रिज़ॉल्यूशन, डॉल्बी विजन, एचडीआर 10 और डॉल्बी एटमॉस के साथ दृश्य अनुभव बना सकते हैं – और इन ऐप को चलाने के लिए एक ऐप्पल टीवी की भी आवश्यकता नहीं है। ऐप्पल टीवी ऐप आईफोन, आईपैड, आईपॉड टच और मैक में बनाया गया है। ऐप्पल टीवी ऐप का उपयोग करके, आप ऐप को अधिकांश स्मार्ट टीवी पर स्ट्रीम कर सकते हैं। टीवीओएस के माध्यम से खेल के विकास के लिए भी स्विफ्ट का उपयोग किया जाता है। पिक्चर इन पिक्चर, मल्टी यूजर क्षमताएं, और गेम कंट्रोलर सपोर्ट टीवीओएस में बनाया गया है, जिससे स्विफ्ट डेवलपर्स को आधुनिक वीडियो गेम बनाने की क्षमता मिलती है।
- स्विफ्ट के अन्य उपयोग: स्विफ्ट का उपयोग ऐप्पल उत्पादों के लिए विकासशील ऐप्स तक ही सीमित नहीं है। इसे एक सामान्य प्रयोजन वाली भाषा के रूप में डिजाइन किया गया था। 2016 में संस्करण 2.2 के जारी होने के बाद से, स्विफ्ट लिनक्स ऑपरेटिंग सिस्टम पर चल सकती है। 2020 में संस्करण 5.3 के जारी होने के बाद, स्विफ्ट विंडोज ऑपरेटिंग सिस्टम के लिए उपलब्ध है। यह अब एक क्रॉस-प्लेटफ़ॉर्म प्रोग्रामिंग भाषा है जिसका उपयोग शीर्ष तीन ऑपरेटिंग सिस्टम पर किया जा सकता है। इसका मतलब है कि वेब सेवाओं और यहां तक कि वेब एप्लिकेशन बनाने के लिए स्विफ्ट का उपयोग किया जा रहा है और भविष्य में, डेवलपर्स इसके लिए और भी अधिक उपयोग कर सकते हैं।
6. C#
C# (C Sharp) प्रोग्राम .NET पर चलते हैं, एक वर्चुअल एक्ज़ीक्यूशन सिस्टम जिसे कॉमन लैंग्वेज रनटाइम (CLR) कहा जाता है और क्लास लाइब्रेरी का एक सेट है। CLR Microsoft द्वारा कॉमन लैंग्वेज इन्फ्रास्ट्रक्चर (CLI) का कार्यान्वयन है, जो एक अंतरराष्ट्रीय मानक है। सीएलआई निष्पादन और विकास वातावरण बनाने का आधार है जिसमें भाषाएं और पुस्तकालय एक साथ निर्बाध रूप से काम करते हैं।
C# में लिखा गया स्रोत कोड एक मध्यवर्ती भाषा(IL) में संकलित किया गया है जो CLI विनिर्देश के अनुरूप है। आईएल कोड और संसाधन, जैसे बिटमैप्स और स्ट्रिंग्स, असेंबली में संग्रहीत होते हैं, आमतौर पर .dll के विस्तार के साथ। असेंबली में एक मेनिफेस्ट होता है जो असेंबली के प्रकार, संस्करण और संस्कृति के बारे में जानकारी प्रदान करता है।
जब सी # प्रोग्राम निष्पादित किया जाता है, तो असेंबली सीएलआर में लोड हो जाती है। सीएलआर आईएल कोड को मूल मशीन निर्देशों में बदलने के लिए जस्ट-इन-टाइम (जेआईटी) संकलन करता है। सीएलआर स्वचालित कचरा संग्रहण, अपवाद प्रबंधन और संसाधन प्रबंधन से संबंधित अन्य सेवाएं प्रदान करता है। सीएलआर द्वारा निष्पादित कोड को कभी-कभी “प्रबंधित कोड” कहा जाता है। “अप्रबंधित कोड,” को मूल मशीन भाषा में संकलित किया जाता है जो एक विशिष्ट प्लेटफॉर्म को लक्षित करता है।
भाषा अंतरसंचालनीयता .NET की एक प्रमुख विशेषता है। सी # कंपाइलर द्वारा निर्मित आईएल कोड सामान्य प्रकार विशिष्टता (सीटीएस) के अनुरूप है। C# से उत्पन्न IL कोड उस कोड के साथ इंटरैक्ट कर सकता है जो F#, Visual Basic, C++ के .NET संस्करणों से उत्पन्न हुआ था। 20 से अधिक अन्य सीटीएस-संगत भाषाएं हैं। एक एकल असेंबली में विभिन्न .NET भाषाओं में लिखे गए कई मॉड्यूल हो सकते हैं। प्रकार एक दूसरे को संदर्भित कर सकते हैं जैसे कि वे एक ही भाषा में लिखे गए हों।
रन टाइम सेवाओं के अलावा, .NET में व्यापक पुस्तकालय भी शामिल हैं। ये पुस्तकालय कई अलग-अलग कार्यभार का समर्थन करते हैं। वे नामस्थानों में व्यवस्थित हैं जो उपयोगी कार्यक्षमता की एक विस्तृत विविधता प्रदान करते हैं। पुस्तकालयों में फ़ाइल इनपुट और आउटपुट से लेकर स्ट्रिंग हेरफेर से लेकर एक्सएमएल पार्सिंग तक, वेब एप्लिकेशन फ्रेमवर्क से लेकर विंडोज फॉर्म कंट्रोल तक सब कुछ शामिल है। सामान्य सी# अनुप्रयोग सामान्य “नलसाजी” कार्यों को संभालने के लिए व्यापक रूप से .NET क्लास लाइब्रेरी का उपयोग करता है।
C# की विशेषताएं
C# बहुत सारी सुविधाएँ प्रदान करता है जैसे:
- सरल
C# इस अर्थ में एक सरल भाषा है कि यह एक संरचित दृष्टिकोण (समस्या को भागों में तोड़ने के लिए), पुस्तकालय कार्यों का एक समृद्ध सेट, डेटा प्रकार इत्यादि प्रदान करता है।
- आधुनिक प्रोग्रामिंग भाषा
C# प्रोग्रामिंग वर्तमान प्रवृत्ति पर आधारित है और यह स्केलेबल, इंटरऑपरेबल और मजबूत अनुप्रयोगों के निर्माण के लिए बहुत शक्तिशाली और सरल है।
- ऑब्जेक्ट ओरिएंटेड
C# एक ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज है। OOPs विकास और रखरखाव को आसान बनाता है जबकि प्रक्रिया-उन्मुख प्रोग्रामिंग भाषा में यह प्रबंधन करना आसान नहीं है कि क्या परियोजना का आकार बढ़ने पर कोड बढ़ता है।
- टाइप सेफ
सी # टाइप सेफ कोड केवल उस मेमोरी लोकेशन तक पहुंच सकता है जिसे निष्पादित करने की अनुमति है। इसलिए यह प्रोग्राम की सुरक्षा में सुधार करता है।
- इंटरोऑपरेबिलिटी
इंटरऑपरेबिलिटी प्रक्रिया C# प्रोग्राम को लगभग कुछ भी करने में सक्षम बनाती है जो मूल C++ एप्लिकेशन कर सकता है।
- स्केलेबल और अपडेट करने योग्य
C# एक स्वचालित स्केलेबल और अद्यतन करने योग्य प्रोग्रामिंग भाषा है। अपने एप्लिकेशन को अपडेट करने के लिए हम पुरानी फाइलों को हटाते हैं और उन्हें नए के साथ अपडेट करते हैं।
- कॉम्पोनेन्ट ओरिएंटेड
C# एक कंपोनेंट ओरिएंटेड प्रोग्रामिंग लैंग्वेज है। यह अधिक मजबूत और अत्यधिक स्केलेबल अनुप्रयोगों को विकसित करने के लिए उपयोग की जाने वाली प्रमुख सॉफ्टवेयर विकास पद्धति है।
- संरचित प्रोग्रामिंग भाषा
C# इस अर्थ में एक संरचित प्रोग्रामिंग भाषा है कि हम फ़ंक्शन का उपयोग करके प्रोग्राम को भागों में तोड़ सकते हैं। इसलिए, इसे समझना और संशोधित करना आसान है।
- समृद्ध लाइब्रेरी
C# बहुत सारे इनबिल्ट फंक्शन प्रदान करता है जो विकास को तेज करता है।
- तेज़ गति
C# भाषा का संकलन और निष्पादन समय तेज है।
C# के अनुप्रयोग
अन्य सामान्य-उद्देश्य प्रोग्रामिंग भाषाओं की तरह, C# का उपयोग कई अलग-अलग प्रोग्राम और एप्लिकेशन बनाने के लिए किया जा सकता है: मोबाइल ऐप, डेस्कटॉप ऐप, क्लाउड-आधारित सेवाएं, वेबसाइट, एंटरप्राइज़ सॉफ़्टवेयर और गेम। बहुत सारे और बहुत सारे खेल। जबकि C# उल्लेखनीय रूप से बहुमुखी है, ऐसे तीन क्षेत्र हैं जिनमें इसका सबसे अधिक उपयोग किया जाता है।
- वेबसाइट डेवलपमेंट
C# का उपयोग अक्सर .NET प्लेटफॉर्म या ओपन-सोर्स सॉफ़्टवेयर पर पेशेवर, गतिशील वेबसाइटों को विकसित करने के लिए किया जाता है। इसलिए, भले ही आप Microsoft आर्किटेक्चर के प्रशंसक न हों, फिर भी आप पूरी तरह कार्यात्मक वेबसाइट बनाने के लिए C# का उपयोग कर सकते हैं। क्योंकि यह भाषा वस्तु-उन्मुख है, इसका उपयोग अक्सर ऐसी वेबसाइटों को विकसित करने के लिए किया जाता है जो अविश्वसनीय रूप से कुशल, आसानी से मापनीय और बनाए रखने के लिए आसान होती हैं।
- विंडोज़ अनुप्रयोग
C# माइक्रोसॉफ्ट द्वारा माइक्रोसॉफ्ट के लिए बनाया गया था, इसलिए यह देखना आसान है कि यह विंडोज डेस्कटॉप अनुप्रयोगों के विकास के लिए सबसे लोकप्रिय क्यों है। C# अनुप्रयोगों को अपने सर्वोत्तम रूप से कार्य करने के लिए Windows .NET ढांचे की आवश्यकता होती है, इसलिए इस भाषा के लिए सबसे मजबूत उपयोग का मामला उन अनुप्रयोगों और प्रोग्रामों को विकसित करना है जो Microsoft प्लेटफ़ॉर्म के आर्किटेक्चर के लिए विशिष्ट हैं।
- गेम्स
क्या आपको गेम बनाने में दिलचस्पी है? C# गेमिंग के लिए सबसे अच्छी प्रोग्रामिंग भाषाओं में से एक हो सकता है। यूनिटी गेम इंजन पर रिमवर्ल्ड जैसे प्रशंसक-पसंदीदा गेम बनाने के लिए इस भाषा का भारी उपयोग किया जाता है।
बस अगर आप पहले से ही जागरूक नहीं थे, तो यूनिटी अब तक का सबसे लोकप्रिय गेम इंजन उपलब्ध है, जिस पर उद्योग के एक तिहाई से अधिक सर्वश्रेष्ठ और सबसे अधिक खेले जाने वाले गेम बनाए गए थे। C# यूनिटी इंजन के साथ मूल रूप से एकीकृत होता है और इसका उपयोग वस्तुतः किसी भी आधुनिक मोबाइल डिवाइस या कंसोल पर किया जा सकता है, जो कि ज़ामरीन जैसी क्रॉस-प्लेटफ़ॉर्म तकनीक के लिए धन्यवाद है।
7. कोटलिन
कोटलिन एक सांख्यिकीय रूप से टाइप की गई, सामान्य-उद्देश्य वाली प्रोग्रामिंग भाषा है जिसमें प्रकार का अनुमान है। यह एंड्रॉइड एप्लिकेशन विकसित करने के लिए व्यापक रूप से उपयोग किया जाता है। कोटलिन को जावा के साथ पूरी तरह से इंटरऑपरेट करने के लिए डिज़ाइन किया गया है, और इसके मानक लाइब्रेरी का जेवीएम संस्करण जावा क्लास लाइब्रेरी पर निर्भर करता है, लेकिन प्रकार का अनुमान इसके सिंटैक्स को अधिक संक्षिप्त बनाने की अनुमति देता है। कोटलिन मुख्य रूप से जेवीएम को लक्षित करता है लेकिन जावास्क्रिप्ट या देशी कोड को भी संकलित करता है। कोटलिन को कोटलिन फाउंडेशन के माध्यम से जेटब्रेन और गूगल द्वारा प्रायोजित किया जाता है।
कोटलिन की विशेषताएं
कोटलिन की लोकप्रियता का कारण इसकी अनूठी विशेषताओं के कारण है। आइए अब विभिन्न विशेषताओं के विवरण में आते हैं।
- संक्षिप्त
कोटलिन जावा की तुलना में अधिक संक्षिप्त है और आपको जावा की तुलना में कोड की लगभग 40% कम पंक्तियाँ लिखनी होंगी।
- इंटरोऑपरेबिलिटी
कोटलिन प्रोग्रामिंग भाषा जावा के साथ अत्यधिक अंतःक्रियाशील है। जावा प्रोजेक्ट में आपको कभी भी कोटलिन का उपयोग करने में कोई कठिनाई नहीं होगी।
- सुविधा संपन्न
कोटलिन कई उन्नत सुविधाएँ प्रदान करता है जैसे कि ऑपरेटर ओवरलोडिंग, लैम्ब्डा एक्सप्रेशन, स्ट्रिंग टेम्प्लेट, आदि।
- आसान
कोटलिन प्रोग्रामिंग भाषा सीखने में आसान है। यदि आप जावा पृष्ठभूमि से आते हैं, तो आपको कोटलिन सीखना आसान होगा।
- कम त्रुटि-प्रवण
कोटलिन एक सांख्यिकीय रूप से टाइप की गई प्रोग्रामिंग भाषा है, जो आपको संकलन-समय पर त्रुटियों को पकड़ने में सक्षम बनाती है, क्योंकि सांख्यिकीय रूप से टाइप की गई प्रोग्रामिंग भाषाएं संकलन-समय पर टाइप चेकिंग करती हैं।
कोटलिन के अनुप्रयोग
कोटलिन निम्नलिखित क्षेत्रों में एप्लीकेशन पाता है:
- नेटिव ऐप डेवलपमेंट
कोटलिन/नेटिव कोटलिन कोड को देशी बायनेरिज़ में संकलित करने की एक तकनीक है जो बिना वर्चुअल मशीन के चल सकती है। कोटलिन / नेटिव में कोटलिन कंपाइलर के लिए एलएलवीएम-आधारित बैकएंड और कोटलिन मानक पुस्तकालय का मूल कार्यान्वयन शामिल है।
Kotlin/Native को मुख्य रूप से उन प्लेटफॉर्म के लिए संकलन की अनुमति देने के लिए डिज़ाइन किया गया है, जिन पर वर्चुअल मशीन वांछनीय या संभव नहीं हैं, जैसे एम्बेडेड डिवाइस या iOS। यह उन स्थितियों के लिए आदर्श है जब एक डेवलपर को एक स्व-निहित प्रोग्राम तैयार करने की आवश्यकता होती है जिसके लिए अतिरिक्त रनटाइम या वर्चुअल मशीन की आवश्यकता नहीं होती है।
- डेस्कटॉप ऐप डेवलपमेंट
तकनीकी रूप से कोई भी प्रोग्राम जिसे आप जावा में लिख सकते हैं उसे कोटलिन में भी लिखा जा सकता है। कोटलिन के लिए विशेष रूप से तैयार किए गए फ्रेमवर्क का उपयोग करते समय यह और भी बेहतर होता है। अधिक विशेष रूप से, कोटलिन/जेवीएम जावा बाइटकोड के लिए संकलित करता है, इसलिए आप जेवीएम चलाने वाले किसी भी वातावरण को लक्षित करने के लिए कोटलिन का उपयोग कर सकते हैं जो इस बाइटकोड की व्याख्या करता है (बशर्ते लक्ष्य बाइटकोड संस्करण जेवीएम की तरह जावा में हो)।
- मल्टी-प्लेटफ़ॉर्म प्रोग्रामिंग
मल्टीप्लेटफार्म प्रोग्रामिंग के लिए समर्थन कोटलिन के प्रमुख लाभों में से एक है। यह मूल प्रोग्रामिंग के लचीलेपन और लाभों को बनाए रखते हुए विभिन्न प्लेटफार्मों के लिए समान कोड लिखने और बनाए रखने में लगने वाले समय को कम करता है।
- सर्वर-साइड डेवलपमेंट
सर्वर-साइड एप्लिकेशन विकसित करने के लिए कोटलिन बहुत उपयुक्त है। यह आपको मौजूदा जावा-आधारित प्रौद्योगिकी स्टैक के साथ पूर्ण संगतता बनाए रखते हुए संक्षिप्त और अभिव्यंजक कोड लिखने की अनुमति देता है, सभी एक सहज सीखने की अवस्था के साथ।
- डेटा साइंस ऐप डेवलपमेंट
डेटा पाइपलाइन बनाने से लेकर मशीन लर्निंग मॉडल बनाने तक, डेटा के साथ काम करने के लिए कोटलिन एक बढ़िया विकल्प हो सकता है:
- कोटलिन संक्षिप्त, पठनीय और सीखने में आसान है।
- स्थिर टाइपिंग और शून्य सुरक्षा विश्वसनीय, रखरखाव योग्य कोड बनाने में मदद करती है जो समस्या निवारण में आसान है।
- एक जेवीएम भाषा होने के नाते, कोटलिन आपको बेहतरीन प्रदर्शन और आजमाए हुए और सच्चे जावा पुस्तकालयों के पूरे पारिस्थितिकी तंत्र का लाभ उठाने की क्षमता प्रदान करता है।
8. Go
Go, जिसे अक्सर GoLang कहा जाता है, को Google में उपयोग की जाने वाली अन्य भाषाओं के खिलाफ गर्मागर्म आलोचनाओं का जवाब देने के लिए डिज़ाइन किया गया था। वास्तव में, Go के डिजाइनरों के पास Go के माध्यम से विकसित किए गए सरलीकरणों की एक लंबी सूची के साथ C++ के प्रति एक उल्लेखनीय दुश्मनी है।
अधिकांश Go डेवलपर्स पायथन और रूबी से आते हैं, C++ से नहीं। जोड़ने के लिए, Go के कई तत्व अन्य भाषाओं से प्रेरित हैं। उदाहरण के लिए, Go C से स्थिर टाइपिंग और रन-टाइम दक्षता और पायथन और जावास्क्रिप्ट से पठनीयता और उपयोगिता उधार लेता है।
Go की सभी विशेषताएं इसके प्राथमिक लाभ – स्थिरता में योगदान करती हैं। उदाहरण के लिए, स्थिर टाइपिंग चरों के स्पष्ट आरंभीकरण की आवश्यकता नहीं होने के कारण लचीलेपन को बढ़ावा देती है। यह रनटाइम त्रुटियों की रोकथाम में खेलता है, रनटाइम दक्षता में सुधार करता है।
C के समान ही, आप Go में मेमोरी सेफ्टी, गारबेज कलेक्शन, स्ट्रक्चरल टाइपिंग और कंसीडर भी पा सकते हैं।
संरचनात्मक टाइपिंग घोषणाओं के बजाय संरचना के माध्यम से वर्ग का निर्धारण करके Go उपयोगकर्ताओं के प्रति अधिक लचीलेपन का विस्तार करती है। कचरा संग्रह अप्रयुक्त स्मृति को साफ करके स्मृति सुरक्षा को प्रोत्साहित करता है।
Concurrency दर्शाता है कि एक ही समय में कई प्रक्रियाएं हो सकती हैं, जिसका अर्थ है कि प्रोग्रामिंग प्रक्रियाएं असाधारण गति से निष्पादित होती हैं।
Go के कुछ अन्य लाभों में इसकी उच्च-प्रदर्शन नेटवर्किंग और बहु-प्रसंस्करण शामिल हैं। यह समग्र तेज कंप्यूटिंग के लिए भी अनुमति देता है। और निश्चित रूप से, ये सुविधाएँ कोड के साथ खड़ी होती हैं जिसे उपयोग में आसान और पढ़ने में आसान बनाया जाता है।
गो की विशेषताएं
गो की मुख्य विशेषताएं निम्नलिखित हैं:
- ओपन सोर्स
गोलंग प्रोग्रामिंग भाषा की सबसे महत्वपूर्ण विशेषता यह है कि यह ओपन-सोर्स है। इसका मतलब है, कोई भी बेहतर कोड को तस्वीर में लाने और संबंधित बग्स को ठीक करने के लिए कोड को डाउनलोड और प्रयोग कर सकता है।
- स्टेटिक टाइपिंग
गो एक सांख्यिकीय रूप से टाइप की गई प्रोग्रामिंग भाषा है और एक तंत्र के साथ काम करती है जो टाइप रूपांतरण और संगतता स्तर का ध्यान रखते हुए कोड को सटीक रूप से संकलित करना संभव बनाती है। यह डेवलपर्स को गतिशील रूप से टाइप की जाने वाली भाषाओं से जुड़ी चुनौतियों से मुक्ति देता है।
- कंकर्रेंसी सपोर्ट
गो प्रोग्रामिंग भाषा की प्रमुख विशेषताओं में से एक इसका समवर्ती समर्थन है। गोलंग, अन्य प्रोग्रामिंग भाषाओं के विपरीत, आसान और ट्रैक करने योग्य समवर्ती विकल्प प्रदान करता है। इससे ऐप डेवलपर्स के लिए अनुरोधों को तेज गति से पूरा करना आसान हो जाता है, आवंटित संसाधनों और नेटवर्क को पहले खाली कर दिया जाता है, और बहुत कुछ।
- शक्तिशाली मानक लाइब्रेरी और उपकरण सेट
यह प्रोग्रामिंग भाषा भी एक मजबूत मानक लाइब्रेरी के साथ भरी हुई है। ये पुस्तकालय पर्याप्त घटकों की पेशकश करते हैं जो डेवलपर्स को तीसरे पक्ष के पैकेज की ओर मुड़ने से बचाते हैं।
इसके अलावा, यह उपकरणों की एक विस्तृत श्रृंखला प्रदान करता है जो विकास प्रक्रिया को कुशल बनाता है। यह भी शामिल है:
- Gofmt: यह स्वचालित रूप से आपके गो कोड को प्रारूपित करता है, जो अंततः पठनीयता पर एक बड़ा प्रभाव डालता है।
- Gorun: इस टूल का उपयोग इसे चलाने के लिए स्रोत कोड में ‘बैंग लाइन’ जोड़ने के लिए किया जाता है, या एक समान कोड फ़ाइल को स्पष्ट रूप से चलाने के लिए उपयोग किया जाता है। पायथन में लिखे गए कोड के साथ प्रयोग करते समय इसका उपयोग अक्सर गो डेवलपर्स द्वारा किया जाता है।
- Goget: गोगेट टूल गिटहब से लाइब्रेरीज को डाउनलोड करता है और उन्हें आपके गोपाथ में सहेजता है ताकि आप आसानी से अपने ऐप प्रोजेक्ट में लाइब्रेरीज को आयात कर सकें।
- Godoc: टूल टिप्पणियों सहित गो सोर्स कोड को पार्स करता है और HTML या प्लेन टेक्स्ट फॉर्मेट में डॉक्यूमेंटेशन बनाता है। किए गए डाक्यूमेंट्स को कोड के साथ कसकर जोड़ा जाता है और इसे एक क्लिक के साथ आसानी से नेविगेट किया जा सकता है।
- परीक्षण क्षमता
गो भाषा ऐप कोड लिखने के साथ-साथ यूनिट टेस्ट लिखने का अवसर भी प्रदान करती है। इसके अलावा, यह कोड कवरेज, बेंचमार्क परीक्षणों को समझने और अपना कोड दस्तावेज़ बनाने के लिए उदाहरण कोड लिखने के लिए समर्थन प्राप्त करता है।
- कचरा संग्रहण
प्रोग्रामिंग भाषा कचरा संग्रहण की असाधारण शक्ति भी प्रदान करती है। मतलब, डेवलपर्स को पॉइंटर्स को खाली करने या लटकने वाले पॉइंटर्स से जुड़ी स्थिति के बारे में चिंता करने की ज़रूरत नहीं है।
गो के अनुप्रयोग
गोलंग का उपयोग करने वाली 7 सबसे बड़ी कंपनियां हैं:
- Google: गोलंग को Google इंजीनियरों द्वारा डिजाइन किया गया था और इसका उपयोग अक्सर आंतरिक परियोजनाओं के लिए किया जाता है। इस तरह से Google Chrome और Google Earth को बनाया गया था। इसका उपयोग YouTube और Google App Engine में भी किया जाता है।
- उबेर: गोलंग का उपयोग करने वाली सबसे बड़ी कंपनियों में से एक उबर है। इसका उपयोग वहां जियोफेंस सेवा के लिए किया जाता है, जो उपयोगकर्ता के स्थान और उत्पाद की उपलब्धता को पूरा करता है। जियोफेंस विशेष आवश्यकताओं के साथ क्षेत्र को सटीक रूप से परिभाषित करना संभव बनाता है (उदाहरण के लिए हवाई अड्डों जैसे स्थानों को ध्यान में रखते हुए) और गतिशील कीमतों को लागू करना।
- ट्विच: ट्विच में, गो का उपयोग सबसे अधिक लोड किए गए सिस्टम के लिए किया जाता है। इसकी सादगी, सुरक्षा, दक्षता और पठनीयता के लिए इसकी सराहना की जाती है, जिसका अर्थ है कि यह लाइव वीडियो और बड़ी संख्या में उपयोगकर्ताओं की एक साथ चैट प्रदर्शित करते समय आने वाली समस्याओं का पूरी तरह से प्रबंधन करता है।
- डेलीमोशन: डेलीमोशन एक वीडियो स्ट्रीमिंग वेबसाइट है। गोलंग के लिए धन्यवाद, दूसरों के बीच, एपीआई के स्वचालन में सुधार हुआ है। यह भाषा बड़ी संख्या में स्वचालन परीक्षण करना संभव बनाती है, जो अन्यथा भारी भार का कारण बनती है। सभी गोलांग की सादगी और इसके प्रदर्शन के साथ-साथ स्थिर प्रकार की जाँच की संभावना के कारण।
- सेंडग्रिड: सेंडग्रिड एक क्लाउड आधारित ईमेल सेवा है जो लेनदेन संबंधी संदेशों के वितरण में विशेषज्ञता रखती है और गोलंग का उपयोग करने वाली सबसे बड़ी कंपनियों में से एक है। यह मुख्य रूप से खरीद की पुष्टि भेजने, ऑफ़र भेजने, आने वाले संदेशों को संसाधित करने और ग्राहक पूछताछ को अग्रेषित करने के लिए ज़िम्मेदार है। कंपनी गो को प्राथमिक प्रोग्रामिंग भाषा के रूप में उपयोग करती है। इस भाषा के फायदे इसे एक दिन में 500 मिलियन से अधिक संदेशों को कुशलतापूर्वक संसाधित करने की अनुमति देते हैं।
- ड्रॉपबॉक्स: ड्रॉपबॉक्स, क्लाउड कंप्यूटिंग सेवाओं के नेताओं में से एक, गोलंग का उपयोग करने वाली एक प्रमुख कंपनी का एक और बेहतरीन उदाहरण है। इसे अपने सिस्टम को अधिक कुशल तरीके से स्केल करने के लिए इस भाषा की आवश्यकता है।
- साउंडक्लाउड: साउंडक्लाउड के लिए, वास्तविक समय में स्थिर विश्लेषण करने की क्षमता भी महत्वपूर्ण थी, जो कि स्थिर टाइपिंग और गो द्वारा सक्षम तेज संकलन के लिए संभव था।
9. रूबी
रूबी का आविष्कार युकिहिरो “मत्ज़” मात्सुमोतो ने किया था, जो एक जापानी कंप्यूटर प्रोग्रामर है, 1990 के दशक के मध्य में। मात्सुमोतो उस समय कई प्रोग्रामिंग भाषाओं के विशेषज्ञ थे, जिनमें पर्ल, एफिल, स्मॉलटाक, लिस्प और एडा शामिल थे। रूबी का निर्माण करते समय, उन्होंने इन सभी भाषाओं के सर्वोत्तम तत्वों को संयोजित करने का प्रयास किया।
रूबी को सार्वजनिक रूप से 1995 में रिलीज़ किया गया था, लेकिन 2006 में बहुत बाद तक इसे व्यापक स्वीकृति नहीं मिली। तब से, रूबी ने बड़े पैमाने पर वैश्विक उपयोगकर्ता आधार को आकर्षित किया है, जिसमें कई अलग-अलग उद्योगों के प्रोग्रामर दुनिया के कुछ बेहतरीन एप्लिकेशन बनाने के लिए इसका इस्तेमाल करते हैं। रूबी से संबंधित सम्मेलनों के लिए प्रमुख शहरों में समर्पित कोडर्स के बड़े समूह भी हैं।
सबसे अच्छी बात यह है कि रूबी पूरी तरह से मुफ़्त है – न केवल उपयोग करने के लिए बल्कि खुला स्रोत भी। इसे अपनी इच्छानुसार कॉपी, संशोधित और वितरित किया जा सकता है।
रूबी ऑन रेल्स वेब डेवलपमेंट फ्रेमवर्क 2005 में जारी किया गया था, और कई मायनों में, यह रूबी की प्रसिद्धि का दावा बन गया। रूबी ऑन रेल्स ने वेब विकास के तरीके में क्रांति ला दी, जिससे पहले की तुलना में बहुत कम समय में जटिल और उपयोगकर्ता के अनुकूल वेब एप्लिकेशन बनाना संभव हो गया।
रूबी ऑन रेल्स समय की कमी वाले स्टार्टअप उद्यमियों के साथ एक त्वरित हिट बन गई, क्योंकि इसने छोटी टीमों को बड़े एप्लिकेशन को जल्दी से बनाने की अनुमति दी। रूबी ऑन रेल्स का उपयोग करने वाली कुछ प्रमुख साइटों में आज Shopify, Square, Instacart, Twitch, SoundCloud, GitHub, Kickstarter, Ask.fm और यहां तक कि Hulu शामिल हैं।
रूबी एक अत्यधिक लचीली प्रोग्रामिंग भाषा है। रूबी में कोडिंग करने वाले डेवलपर्स भाषा के काम करने के तरीके में बदलाव कर सकते हैं। यह C या C++ जैसे संकलित एक की बजाय पायथन की तरह एक व्याख्या की गई भाषा है।
लेकिन पाइथन के विपरीत, जो हर समस्या के लिए एक ही, स्पष्ट समाधान पर ध्यान केंद्रित करता है, रूबी प्रोजेक्ट समस्या-समाधान के लिए कई अलग-अलग दृष्टिकोण अपनाने की कोशिश करता है। जैसा कि आपने अनुमान लगाया होगा, आपकी परियोजना के आधार पर दोनों विधियों के फायदे और नुकसान हैं।
रूबी को इतना उपयोगकर्ता के अनुकूल बनाने वाली एक विशेषता यह है कि यह प्रोग्रामर से बहुत सारे विवरण छुपाता है। यह रूबी के साथ प्रोग्रामिंग को C और C++ जैसी अधिक जटिलता वाली अन्य मुख्यधारा की भाषाओं का उपयोग करने से कहीं अधिक आसान बनाता है। हालांकि, इसका मतलब यह भी है कि कोड में बग ढूंढना अधिक कठिन हो सकता है।
सुविधाजनक रूप से, रूबी में आपके द्वारा लिखा गया कोड विंडोज, मैकओएस और लिनक्स सहित पोर्ट किए बिना किसी भी प्रमुख ऑपरेटिंग सिस्टम पर चलेगा।
रूबी की विशेषताएं
रूबी में कई विशेषताएं हैं। उनमें से कुछ इस प्रकार हैं:
- ऑब्जेक्ट-ओरिएंटेड
रूबी पूरी तरह से ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज है। प्रत्येक मूल्य एक ऑब्जेक्ट है। प्रत्येक वस्तु का एक क्लास होता है और प्रत्येक क्लास का एक सुपर क्लास होता है। प्रत्येक कोड के अपने गुण और फंक्शन्स होते हैं। रूबी स्मॉलटाक भाषा से प्रभावित है। वस्तुओं पर लागू होने वाले नियम पूरे रूबी पर लागू होते हैं।
- लचीलापन
रूबी एक लचीली भाषा है क्योंकि आप इसमें मौजूदा भागों को आसानी से हटा सकते हैं, फिर से परिभाषित कर सकते हैं या जोड़ सकते हैं। यह अपने उपयोगकर्ताओं को अपनी इच्छानुसार इसके भागों को स्वतंत्र रूप से बदलने की अनुमति देता है।
- मिक्सिन्स
रूबी में केवल एकल इनहेरिटेंस की विशेषता है। रूबी में क्लासेज के साथ-साथ मॉड्यूल भी हैं। एक मॉड्यूल में विधियां हैं लेकिन कोई इन्सटेंसेस नहीं है। इसके बजाय, एक मॉड्यूल को एक क्लास में मिलाया जा सकता है, जो उस मॉड्यूल की विधि को क्लास में जोड़ता है। यह इनहेरिटेंस के समान है लेकिन बहुत अधिक लचीला है।
- विज़ुअल अपीयरेंस
रूबी आमतौर पर अंग्रेजी कीवर्ड पसंद करती है और रूबी को सजाने के लिए कुछ विराम चिह्नों का उपयोग किया जाता है। इसे परिवर्तनीय घोषणा की आवश्यकता नहीं है।
- डायनामिक टाइपिंग और डक टाइपिंग
रूबी एक गतिशील प्रोग्रामिंग भाषा है। रूबी प्रोग्राम संकलित नहीं हैं। सभी वर्ग, मॉड्यूल और विधि परिभाषाएँ कोड द्वारा निर्मित होती हैं जब यह चलता है।
रूबी चर शिथिल टाइप की जाने वाली भाषा है, जिसका अर्थ है कि कोई भी चर किसी भी प्रकार की वस्तु को धारण कर सकता है। जब किसी ऑब्जेक्ट पर एक विधि को कॉल किया जाता है, तो रूबी ऑब्जेक्ट के प्रकार के बावजूद केवल नाम को देखता है। यह डक टाइपिंग है। यह आपको ऐसी क्लासेज बनाने की अनुमति देता है जो अन्य क्लास होने का दिखावा करती हैं।
- एक्सेप्शन हैंडलिंग
रूबी में, स्थिरांक वास्तव में स्थिर नहीं होते हैं। यदि पहले से ही आरंभिक स्थिरांक को स्क्रिप्ट में संशोधित किया जाएगा, तो यह केवल एक चेतावनी को ट्रिगर करेगा लेकिन आपके प्रोग्राम को नहीं रोकेगा।
- कचरा संग्रहण
रूबी अपने चर, विधि, स्थिरांक और वर्ग के लिए कुछ नामकरण परंपराओं को परिभाषित करती है।
- कोन्सटांत्स: एक बड़े अक्षर से शुरू होता है।
- ग्लोबल वेरिएबल: डॉलर चिह्न ($) से शुरू होता है।
- इंस्टेंस वेरिएबल: @ चिह्न से शुरू होता है।
- क्लास चर: @@ चिह्न से प्रारंभ होता है।
- मेथड नाम: बड़े अक्षर से शुरू करने की अनुमति है।
- स्टेटमेंट डेलीमीटर्स
एक पंक्ति में एकाधिक कथनों के बीच में अर्धविराम होना चाहिए, लेकिन एक पंक्ति के अंत में नहीं।
- कीवर्ड आर्ग्यूमेंट्स
पायथन की तरह, रूबी विधियों को भी कीवर्ड आर्ग्यूमेंट्स का उपयोग करके परिभाषित किया जा सकता है।
- मेथड नेम्स
विधियों को एक प्रश्न चिह्न (?) या विस्मयादिबोधक चिह्न (!) के साथ समाप्त करने की अनुमति है। परंपरा के अनुसार, प्रश्नों का उत्तर देने वाली विधियाँ एक प्रश्न चिह्न के साथ समाप्त होती हैं और वे विधियाँ जो इंगित करती हैं कि विधि विस्मयादिबोधक चिह्न के साथ वस्तु की स्थिति को बदल सकती है।
- सिंगलटन मेथड्स
रूबी सिंगलटन विधियां प्रति-वस्तु विधियां हैं। वे केवल उस वस्तु पर उपलब्ध हैं जिस पर आपने इसे परिभाषित किया है।
- मिसिंग मेथड
यदि कोई विधि खो जाती है, तो रूबी मेथड_मिसिंग विधि को खोई हुई विधि के नाम से बुलाती है।
- केस सेंसिटिव
रूबी एक केस-सेंसिटव भाषा है। लोअरकेस अक्षर और अपरकेस अक्षर अलग हैं।
रूबी के अनुप्रयोग
रूबी का उपयोग वेब अनुप्रयोगों के निर्माण के लिए सबसे अधिक किया जाता है। हालाँकि, यह पायथन के समान एक सामान्य-उद्देश्य वाली भाषा है, इसलिए इसमें डेटा विश्लेषण, प्रोटोटाइप और अवधारणाओं के प्रमाण जैसे कई अन्य अनुप्रयोग हैं।
- वेब डेवलपमेंट
लोकप्रिय वेब विकास ढांचे रूबी ऑन रेल्स के कारण वेब विकास रूबी के प्रसिद्धि के दावों में से एक है। रूबी ऑन रेल्स को पहली बार 2005 में रिलीज़ किया गया था, और इसने वेब विकास के तरीके को बदल दिया। रूबी ऑन रेल्स जैसे ढांचे से पहले, डेवलपर्स को वेब एप्लिकेशन बनाने के लिए कोड लिखने में बहुत अधिक समय व्यतीत करना पड़ता था।
रूबी ऑन रेल्स वेब डेवलपर्स को वेब एप्लिकेशन बनाने के लिए आवश्यक सब कुछ देता है। रेल उन सम्मेलनों का उपयोग करता है जो प्रत्येक रेल ऐप की संरचना को परिभाषित करते हैं, इसलिए डेवलपर्स अपनी परियोजनाओं को कॉन्फ़िगर करने में कम समय व्यतीत कर सकते हैं। इसमें कोड जेनरेटर हैं जो आपके एप्लिकेशन के कुछ हिस्सों को एक साधारण कमांड के साथ उत्पन्न करेंगे, इसलिए डेवलपर्स कम कोड लिखते हैं।
रूबी ऑन रेल्स के तेजी से विकास ने इसे स्टार्टअप्स के लिए एक लोकप्रिय विकल्प बना दिया क्योंकि इसने डेवलपर्स की एक छोटी टीम को बड़े एप्लिकेशन को जल्दी से बनाने की अनुमति दी। कुछ साइटों के बारे में आपने रूबी ऑन रेल्स के बारे में सुना होगा जिनमें गिथब, शॉपिफाई, किकस्टार्टर, ट्विच, इंस्टाकार्ट, ज़ेंडेस्क, साउंडक्लाउड, Ask.fm, हुलु और स्क्वायर शामिल हैं।
- स्टेटिक साइट जनरेशन
अधिकांश वेबसाइटें सर्वर-साइड कोड का उपयोग करती हैं जो HTML उत्पन्न करता है और जब आप किसी पृष्ठ पर जाते हैं तो इसे आपके ब्राउज़र में प्रस्तुत करते हैं। आपके द्वारा देखे गए URL पर कोई वास्तविक HTML फ़ाइल नहीं है।
एक स्थिर साइट जनरेटर अभी भी कोड का उपयोग करता है, लेकिन यह एक ही समय में एक वेबसाइट के सभी पेज जेनरेट करता है। फिर उन पृष्ठों को एक सर्वर पर परिनियोजित किया जाता है, और जब आप किसी URL पर जाते हैं, तो आपको एक स्थिर HTML फ़ाइल दी जाती है। स्थिर साइट जेनरेटर के साथ निर्मित वेब साइट तेज़, कुशल, सुरक्षित और परिनियोजित करने में आसान हैं। वे उन साइटों के लिए भी उपयोगी हैं जहां सामग्री बार-बार नहीं बदलती है।
रूबी में लिखा गया, जेकिल पहला स्थिर साइट जनरेटर था और अभी भी सबसे लोकप्रिय है। Github के संस्थापक, टॉम प्रेस्टन-वर्नर ने Jekyll को बनाया और इसे Github पर सामग्री प्रकाशित करने का डिफ़ॉल्ट तरीका बनाया। उसके बाद जेकिल की लोकप्रियता में तेजी आई, और कई अन्य प्रोग्रामर ने प्रोग्रामिंग भाषाओं की भीड़ में अपने स्वयं के स्थिर साइट जनरेटर के साथ पीछा किया।
- DevOps और स्वचालन
रूबी का व्यापक रूप से DevOps, स्वचालन और वेबसाइट परिनियोजन के लिए उपयोग किया जाता है। हरोकू एक लोकप्रिय वेब ऐप परिनियोजन प्लेटफ़ॉर्म है जो उन उपयोगकर्ताओं के लिए भी ऐप लॉन्च करना त्वरित और आसान बनाता है जो देवओप्स से अपरिचित हैं। जब इसे पहली बार पेश किया गया था, तो स्टार्टअप हरोकू में आते थे क्योंकि इसने छोटी टीमों को एक समर्पित DevOps इंजीनियर के बिना अपने अनुप्रयोगों का परीक्षण, तैनाती और मंचन करने की अनुमति दी थी। अब हेरोकू कई भाषाओं का समर्थन करता है, लेकिन मूल रूप से यह केवल रूबी का समर्थन करता है।
Vagrant कमांड लाइन से वर्चुअल मशीन के प्रबंधन के लिए एक उपकरण है। यह डेवलपर्स को किसी भी ऑपरेटिंग सिस्टम पर चलने वाले विशिष्ट ऑपरेटिंग सिस्टम के लिए विकसित परियोजनाओं को कोड और चलाने की अनुमति देता है। उदाहरण के लिए, एक डेवलपर अपने मैक या विंडोज लैपटॉप पर लिनक्स पर चलने के लिए बनाई गई सेवाओं का निर्माण कर सकता है और सुनिश्चित कर सकता है कि यह तैनात होने पर सही ढंग से चलेगा। वैग्रांट रूबी में लिखा गया है, और वैग्रांट डेवलपमेंट एनवायरनमेंट को रूबी के साथ कॉन्फ़िगर किया जाना चाहिए।
शेफ और कठपुतली ऐसे उपकरण हैं जिनका उपयोग DevOps इंजीनियर वेब एप्लिकेशन और सर्वर के कॉन्फ़िगरेशन को स्वचालित और प्रबंधित करने के लिए करते हैं। शेफ या कठपुतली का उपयोग करके, इंजीनियर एक साधारण कॉन्फ़िगरेशन फ़ाइल के साथ एप्लिकेशन वातावरण को परिभाषित कर सकते हैं और फिर उस कॉन्फ़िगरेशन का उपयोग किसी भी प्लेटफ़ॉर्म पर बिना किसी मैन्युअल चरण के एप्लिकेशन के इंस्टेंस को लॉन्च करने के लिए कर सकते हैं।
- वेब सर्वर
वेब सर्वर बनाने के लिए आप रूबी का भी उपयोग कर सकते हैं। पैसेंजर, यूनिकॉर्न और प्यूमा रूबी में लिखे गए वेब सर्वर हैं। वे कच्चे आने वाले HTTP अनुरोधों को संसाधित करते हैं, उन्हें बैकएंड वेब अनुप्रयोगों को सही करने के लिए भेजते हैं, और फिर एप्लिकेशन से वापस भेजे गए HTTP प्रतिक्रिया को संभालते हैं। रूबी वेब एप्लिकेशन सर्वर रूबी में लिखे गए वेब डेवलपमेंट फ्रेमवर्क के साथ हाथ से काम करते हैं।
- डाटा प्रासेसिंग
रूबी डेटा प्रोसेसिंग, सफाई और फ़िल्टरिंग के लिए भी एक बेहतरीन भाषा है। रूबी का बिल्ट-इन मैप, रिड्यूस और सेलेक्ट फंक्शन शक्तिशाली उपकरण हैं जिनका उपयोग कई डेटा प्रोसेसिंग समस्याओं को हल करने के लिए किया जाता है।
- वेब स्क्रैपिंग और क्रॉलिंग
रूबी के पास कई तरह के पैकेज उपलब्ध हैं जो वेब पेजों से डेटा निकालना आसान बनाते हैं। वेसल जैसे रूबी लाइब्रेरीज का उपयोग वेब पेजों को क्रॉल और डाउनलोड करने के लिए किया जाता है। एक अन्य लोकप्रिय रूबी लाइब्रेरी, नोकोगिरी का उपयोग तब उन पृष्ठों से HTML को पार्स करने के लिए किया जाता है, जिन्हें डेटा विश्लेषण के लिए प्रयोग करने योग्य बनाने के लिए संरचित तरीके से पृष्ठ के विशिष्ट भागों को निकालने के लिए क्रॉल किया गया है।
10. R
आप जिन कंप्यूटर प्रोग्रामिंग भाषाओं के बारे में सीखते हैं उनमें से कई सामान्य उद्देश्य वाली होती हैं। आप उनका उपयोग सभी प्रकार के एप्लिकेशन बनाने के लिए कर सकते हैं। हालाँकि, अन्य प्रोग्रामिंग भाषाएँ एक विशिष्ट कार्य के लिए डिज़ाइन की जाती हैं और प्रसिद्ध हो जाती हैं क्योंकि वे उस कार्य को अधिक कुशलता से करती हैं या प्रोग्रामिंग को समाधान को आसान बनाती हैं। R इन विशिष्ट प्रोग्रामिंग भाषाओं में से एक है।
R एक प्रोग्रामिंग भाषा है जो सांख्यिकीविदों द्वारा सांख्यिकी के लिए बनाई गई है, विशेष रूप से डेटा के साथ काम करने के लिए। यह व्यापार विश्लेषकों, डेटा विश्लेषकों, डेटा वैज्ञानिकों और वैज्ञानिकों द्वारा व्यापक रूप से उपयोग किए जाने वाले सांख्यिकीय कंप्यूटिंग और डेटा विज़ुअलाइज़ेशन के लिए एक भाषा है। आइए R भाषा के अधिक विवरण देखें कि यह क्या अलग बनाता है।
R इस मायने में अद्वितीय है कि यह सामान्य-उद्देश्य नहीं है। यह बहुत सी चीजें करने की कोशिश करके समझौता नहीं करता है। यह कुछ चीजें बहुत अच्छी तरह से करता है, मुख्य रूप से सांख्यिकीय विश्लेषण और डेटा विज़ुअलाइज़ेशन। जबकि आप पायथन जैसी भाषाओं के लिए डेटा विश्लेषण और मशीन लर्निंग लाइब्रेरी पा सकते हैं, R के मूल में कई सांख्यिकीय कार्य हैं। आप भाषा के साथ जो कोर डेटा विश्लेषण कर सकते हैं, उसके लिए किसी तीसरे पक्ष के पुस्तकालयों की आवश्यकता नहीं है।
लेकिन इस विशिष्ट उपयोग के मामले में भी, इसका उपयोग हर उस उद्योग में किया जाता है जिसके बारे में आप सोच सकते हैं क्योंकि एक आधुनिक व्यवसाय डेटा पर चलता है। पिछले डेटा का उपयोग करके, डेटा वैज्ञानिक और डेटा विश्लेषक किसी व्यवसाय के स्वास्थ्य का निर्धारण कर सकते हैं और व्यवसाय के नेताओं को उनकी कंपनी के भविष्य में कार्रवाई योग्य अंतर्दृष्टि प्रदान कर सकते हैं।
सिर्फ इसलिए कि R विशेष रूप से सांख्यिकीय विश्लेषण के लिए उपयोग किया जाता है और डेटा विज़ुअलाइज़ेशन का मतलब यह नहीं है कि इसका उपयोग सीमित है। इसके विपरीत, यह एक व्यापक रूप से उपयोग की जाने वाली प्रोग्रामिंग भाषा है। प्रयोग के परिणामों का विश्लेषण करने के लिए शिक्षाविद, वैज्ञानिक और शोधकर्ता इसका उपयोग करते हैं। इसके अलावा, सभी आकार और हर उद्योग के व्यवसाय इसका उपयोग अपने द्वारा उत्पन्न दैनिक डेटा की बढ़ती मात्रा से अंतर्दृष्टि निकालने के लिए करते हैं।
R की विशेषताएं
डेटा वैज्ञानिकों और विश्लेषकों के लिए R कई चीजें कर सकता है। ये प्रमुख विशेषताएं हैं जो R को सांख्यिकीय भाषाओं की भीड़ से अलग करती हैं:
- ओपन सोर्स
R एक ओपन-सोर्स सॉफ्टवेयर वातावरण है। यह मुफ़्त है और इसे उपयोगकर्ता और परियोजना की आवश्यकताओं के अनुसार समायोजित और अनुकूलित किया जा सकता है। आप सुधार कर सकते हैं और अतिरिक्त कार्यक्षमताओं के लिए पैकेज जोड़ सकते हैं। R स्वतंत्र रूप से उपलब्ध है। आप सीख सकते हैं कि R कैसे इनस्टॉल करें, डाउनलोड करें और इसका अभ्यास शुरू करें।
- मजबूत ग्राफिकल क्षमताएं
R उत्पादन गुणवत्ता विज़ुअलाइज़ेशन के साथ स्थिर ग्राफिक्स का उत्पादन कर सकता है और इंटरैक्टिव ग्राफिक क्षमताओं को प्रदान करने वाले पुस्तकालयों का विस्तार कर सकता है। यह डेटा विज़ुअलाइज़ेशन और डेटा प्रतिनिधित्व को बहुत आसान बनाता है। संक्षिप्त चार्ट से लेकर विस्तृत और संवादात्मक प्रवाह आरेख तक, सभी R के प्रदर्शनों की सूची के भीतर हैं। आर में आकर्षक ग्राफिकल विज़ुअलाइज़ेशन देखें।
- अत्यधिक सक्रिय समुदाय
R के पास एक ओपन-सोर्स लाइब्रेरी है जो इसके उपयोगकर्ताओं की बढ़ती संख्या द्वारा समर्थित है। R एनवायरनमेंट लगातार बढ़ रहा है। यह वृद्धि इसके बड़े उपयोगकर्ता-आधार के कारण है।
- पैकेजों का विस्तृत चयन
CRAN या कॉम्प्रिहेंसिव R आर्काइव नेटवर्क में 10,000 से अधिक विभिन्न पैकेज और एक्सटेंशन हैं जो डेटा साइंस में सभी प्रकार की समस्याओं को हल करने में मदद करते हैं। उच्च गुणवत्ता वाले इंटरैक्टिव ग्राफिक्स, वेब अनुप्रयोग विकास, मात्रात्मक विश्लेषण या मशीन सीखने की प्रक्रिया, हर परिदृश्य के लिए एक पैकेज उपलब्ध है। आर में खगोल विज्ञान, जीव विज्ञान, आदि जैसे सभी प्रकार के विषयों के लिए पैकेजों का एक विशाल सागर है। जबकि R का उपयोग मूल रूप से शैक्षणिक उद्देश्यों के लिए किया जाता था, अब इसका उपयोग उद्योगों में भी किया जा रहा है।
- व्यापक एनवायरनमेंट
R के पास एक बहुत व्यापक विकास वातावरण है जिसका अर्थ है कि यह सांख्यिकीय कंप्यूटिंग के साथ-साथ सॉफ्टवेयर विकास में मदद करता है। R एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है। इसमें R-शाइनी नामक एक मजबूत पैकेज भी है जिसका उपयोग पूर्ण वेब ऐप्स बनाने के लिए किया जा सकता है। डेटा विश्लेषण और डेटा विज़ुअलाइज़ेशन के साथ, R का उपयोग अत्यधिक इंटरैक्टिव ऑनलाइन डेटा-संचालित कहानी कहने के लिए किया जा सकता है।
- जटिल सांख्यिकीय गणना
R का उपयोग विभिन्न प्रकार की डेटा वस्तुओं पर सरल और जटिल गणितीय और सांख्यिकीय गणना करने के लिए किया जा सकता है। यह बड़े डेटा सेट पर भी ऐसे ऑपरेशन कर सकता है।
- वितरित अभिकलन
वितरित कंप्यूटिंग में, प्रसंस्करण समय को कम करने और दक्षता बढ़ाने के लिए कार्यों को कई प्रसंस्करण नोड्स के बीच विभाजित किया जाता है। R में ddR और multiDplyr जैसे पैकेज हैं जो इसे बड़े डेटा सेट को संसाधित करने के लिए वितरित कंप्यूटिंग का उपयोग करने में सक्षम बनाता है।
- कंपाइलर के बिना रनिंग कोड
R एक इंटरप्रेटेड भाषा है जिसका अर्थ है कि इसे कोड से प्रोग्राम बनाने के लिए कंपाइलर की आवश्यकता नहीं है। R सीधे प्रदान किए गए कोड को निचले-स्तरीय कॉल और पूर्व-संकलित कोड में व्याख्या करता है।
- डेटाबेस के साथ इंटरफेसिंग
R में कई पैकेज होते हैं जो इसे Roracle, Open Database Connectivity Protocol, RmySQL, आदि जैसे डेटाबेस के साथ इंटरैक्ट करने में सक्षम बनाते हैं।
- डेटा वैरायटी
R विभिन्न प्रकार के संरचित और असंरचित डेटा को संभाल सकता है। यह डेटाबेस के साथ बातचीत के कारण विभिन्न डेटा मॉडलिंग और डेटा संचालन सुविधाएं भी प्रदान करता है।
- मशीन लर्निंग
R का उपयोग मशीन लर्निंग के लिए भी किया जा सकता है। जब मशीन सीखने की बात आती है तो आर का सबसे अच्छा उपयोग अन्वेषण के मामले में या एक बार के मॉडल का निर्माण करते समय होता है।
- डाटा व्रान्गलिंग
डेटा व्रान्गलिंग सुविधाजनक गणना और आगे के विश्लेषण को सक्षम करने के लिए जटिल और असंगत डेटा सेट को साफ करने की प्रक्रिया है। यह बहुत समय लेने वाली प्रक्रिया है। अपने व्यापक उपकरणों के लाइब्रेरीज के साथ डेटाबेस मैनीपुलेशन और व्रान्गलिंग के लिए इस्तेमाल किया जा सकता है।
- क्रॉस-प्लेटफार्म सपोर्ट
R मशीन-इंडिपेंडेंट है। यह क्रॉस-प्लेटफ़ॉर्म ऑपरेशन का समर्थन करता है। इसलिए, इसका उपयोग कई अलग-अलग ऑपरेटिंग सिस्टम पर किया जा सकता है।
- अन्य प्रोग्रामिंग भाषाओं के साथ संगत
जबकि इसके अधिकांश फंक्शन R में ही लिखे गए हैं, C, C++ या FORTRAN का उपयोग कम्प्यूटेशनल रूप से भारी कार्यों के लिए किया जा सकता है। Java, .NET, Python, C, C++, और FORTRAN का उपयोग सीधे वस्तुओं में हेरफेर करने के लिए भी किया जा सकता है।
- डेटा हैंडलिंग और स्टोरेज
R डेटा संग्रहण के सभी स्वरूपों के साथ एकीकृत है जिसके कारण डेटा प्रबंधन आसान हो जाता है।
- वेक्टर अरिथमेटिक
वेक्टर R में सबसे बुनियादी डेटा संरचना है, और अधिकांश अन्य डेटा संरचनाएं वैक्टर से ली गई हैं। R वैक्टर और वेक्टर अंकगणित का उपयोग करता है और मूल्यों के बड़े सेट को संसाधित करने के लिए बहुत अधिक लूपिंग की आवश्यकता नहीं होती है। यह R को और अधिक कुशल बनाता है।
- अन्य डाटा प्रोसेसिंग प्रौद्योगिकियों के साथ संगतता
R को अन्य डेटा प्रोसेसिंग और वितरित कंप्यूटिंग तकनीकों जैसे Hadoop और Spark के साथ आसानी से जोड़ा जा सकता है। R. R और Hadoop का उपयोग करके बड़े डेटासेट को संसाधित करने के लिए स्पार्क क्लस्टर का दूरस्थ रूप से उपयोग करना संभव है, साथ ही Hadoop के बड़े पैमाने पर डेटा प्रोसेसिंग को संयोजित करने और R की सांख्यिकीय कंप्यूटिंग शक्ति के साथ कंप्यूटिंग क्षमताओं को वितरित करने के लिए जोड़ा जा सकता है।
R के अनुप्रयोग
R नवीनतम अत्याधुनिक उपकरणों में से एक है। आज लाखों विश्लेषक, शोधकर्ता और फेसबुक, गूगल, बिंग, एक्सेंचर, विप्रो जैसे ब्रांड जटिल मुद्दों को हल करने के लिए आर का उपयोग कर रहे हैं। R के अनुप्रयोग केवल एक क्षेत्र तक सीमित नहीं हैं, हम बैंकिंग, ई-कॉमर्स, वित्त और कई अन्य क्षेत्रों में R का उपयोग देख सकते हैं। यह लेख आपको आर प्रोग्रामिंग भाषा के वास्तविक जीवन की उपमाओं से परिचित कराएगा।
डेटा साइंस के क्षेत्र में R प्रोग्रामिंग लैंग्वेज के कुछ महत्वपूर्ण अनुप्रयोग हैं:
- वित्त
वित्तीय उद्योग में डेटा विज्ञान का व्यापक रूप से उपयोग किया जाता है। इस भूमिका के लिए R सबसे लोकप्रिय टूल है। ऐसा इसलिए है क्योंकि R एक उन्नत सांख्यिकीय सूट प्रदान करता है जो सभी आवश्यक वित्तीय कार्यों को करने में सक्षम है।
आर की मदद से, वित्तीय संस्थान नकारात्मक जोखिम माप करने, जोखिम प्रदर्शन को समायोजित करने और कैंडलस्टिक चार्ट, घनत्व प्लॉट, ड्रॉडाउन प्लॉट आदि जैसे विज़ुअलाइज़ेशन का उपयोग करने में सक्षम हैं।
आर मूविंग एवरेज, ऑटोरिग्रेशन और टाइम-सीरीज़ विश्लेषण के लिए उपकरण भी प्रदान करता है जो वित्तीय अनुप्रयोगों की जड़ बनाता है। एएनजेड और पोर्टफोलियो प्रबंधन जैसी फर्मों में क्रेडिट जोखिम विश्लेषण के लिए आर का व्यापक रूप से उपयोग किया जा रहा है।
वित्त उद्योग भी आर की समय-श्रृंखला सांख्यिकीय प्रक्रियाओं का लाभ उठा रहे हैं, ताकि उनके शेयर बाजार के आंदोलन को मॉडल किया जा सके और शेयरों की कीमतों की भविष्यवाणी की जा सके। R अपने पैकेज जैसे quantmod, pdfech, TFX, pwt, आदि के माध्यम से वित्तीय डेटा माइनिंग के लिए सुविधाएं भी प्रदान करता है। R आपके लिए ऑनलाइन संपत्तियों से डेटा निकालना आसान बनाता है। RShiny की मदद से, आप अपने वित्तीय उत्पादों को विशद और आकर्षक विज़ुअलाइज़ेशन के माध्यम से भी प्रदर्शित कर सकते हैं।
- बैंकिंग
वित्तीय संस्थानों की तरह, बैंकिंग उद्योग क्रेडिट जोखिम मॉडलिंग और जोखिम विश्लेषण के अन्य रूपों के लिए R का उपयोग करते हैं।
बैंक बंधक हेयरकट मॉडल का भारी उपयोग करते हैं जो उन्हें ऋण चूक के मामले में संपत्ति पर कब्जा करने की अनुमति देता है। मॉर्गेज हेयरकट मॉडलिंग में बिक्री मूल्य वितरण, बिक्री मूल्य की अस्थिरता और अपेक्षित कमी की गणना शामिल है। इन उद्देश्यों के लिए, R अक्सर एसएएस जैसे मालिकाना उपकरणों के साथ प्रयोग किया जाता है।
ग्राहक गुणवत्ता, ग्राहक विभाजन और प्रतिधारण के विश्लेषण की सुविधा के लिए आर का उपयोग हडूप के साथ संयोजन में भी किया जाता है।
बैंक ऑफ अमेरिका वित्तीय रिपोर्टिंग के लिए R का उपयोग करता है। R की मदद से, BOA के डेटा वैज्ञानिक वित्तीय नुकसान का विश्लेषण करने और R के विज़ुअलाइज़ेशन टूल का उपयोग करने में सक्षम हैं।
- हेल्थ केयर
जेनेटिक्स, बायोइनफॉरमैटिक्स, ड्रग डिस्कवरी, एपिडेमियोलॉजी स्वास्थ्य सेवा के कुछ ऐसे क्षेत्र हैं जो आर का भारी उपयोग करते हैं। आर की मदद से, ये कंपनियां डेटा को क्रंच करने और जानकारी को संसाधित करने में सक्षम हैं, जो आगे के विश्लेषण और डेटा प्रोसेसिंग के लिए एक आवश्यक पृष्ठभूमि प्रदान करती हैं।
दवा की खोज जैसे अधिक उन्नत प्रसंस्करण के लिए, आर का व्यापक रूप से पूर्व-नैदानिक परीक्षण करने और दवा-सुरक्षा डेटा का विश्लेषण करने के लिए उपयोग किया जाता है। यह अपने उपयोगकर्ताओं को खोजपूर्ण डेटा विश्लेषण और विशद विज़ुअलाइज़ेशन टूल करने के लिए एक सूट भी प्रदान करता है।
आर अपने बायोकंडक्टर पैकेज के लिए भी लोकप्रिय है जो जीनोमिक डेटा के विश्लेषण के लिए विभिन्न प्रकार्य प्रदान करता है। आर का उपयोग महामारी विज्ञान के क्षेत्र में सांख्यिकीय मॉडलिंग के लिए भी किया जाता है, जहां डेटा वैज्ञानिक बीमारियों के प्रसार का विश्लेषण और भविष्यवाणी करते हैं।
- सोशल मीडिया
डेटा साइंस और R में कई शुरुआती लोगों के लिए, सोशल मीडिया एक डेटा खेल का मैदान है। सेंटीमेंट एनालिसिस और सोशल मीडिया डेटा माइनिंग के अन्य रूप कुछ महत्वपूर्ण सांख्यिकीय उपकरण हैं जिनका उपयोग आर के साथ किया जाता है।
डेटा साइंस के लिए सोशल मीडिया भी एक चुनौतीपूर्ण क्षेत्र है क्योंकि सोशल मीडिया वेबसाइटों पर प्रचलित डेटा ज्यादातर प्रकृति में असंरचित है। R का उपयोग सोशल मीडिया एनालिटिक्स के लिए, संभावित ग्राहकों को विभाजित करने और उन्हें अपने उत्पादों को बेचने के लिए लक्षित करने के लिए किया जाता है।
इसके अलावा, सोशल मीडिया एनालिटिक्स में खनन उपयोगकर्ता भावना एक और लोकप्रिय श्रेणी है। आर की मदद से, कंपनियां सांख्यिकीय उपकरण मॉडल करने में सक्षम हैं जो उपयोगकर्ता भावनाओं का विश्लेषण करती हैं, जिससे उन्हें अपने अनुभवों को बेहतर बनाने की अनुमति मिलती है।
SocialMediaMineR एक लोकप्रिय R पैकेज है जो कई URL ले सकता है और सोशल मीडिया पर उनकी पहुंच की लोकप्रियता को बढ़ा सकता है। इसके अलावा, कंपनियां सोशल मीडिया बाजार का विश्लेषण करने और उपयोगकर्ता के लिए लीड उत्पन्न करने के लिए R का उपयोग करती हैं।
- ई-कॉमर्स
ई-कॉमर्स उद्योग डेटा साइंस का उपयोग करने वाले सबसे महत्वपूर्ण क्षेत्रों में से एक है। R एक मानक उपकरण है जिसका उपयोग ई-कॉमर्स में किया जा रहा है।
चूंकि इन इंटरनेट-आधारित कंपनियों को विभिन्न प्रकार के डेटा, संरचित और असंरचित, साथ ही स्प्रेडशीट और डेटाबेस (एसक्यूएल और नोएसक्यूएल) जैसे अलग-अलग डेटा स्रोतों से निपटना पड़ता है, आर इन उद्योगों के लिए एक प्रभावी विकल्प साबित होता है।
ई-कॉमर्स कंपनियां अपने ग्राहकों को क्रॉस-सेलिंग उत्पादों का विश्लेषण करने के लिए R का उपयोग करती हैं। क्रॉस-सेलिंग में, हम ग्राहक को अतिरिक्त उत्पाद सुझाते हैं जो उनकी मूल खरीदारी को पूरा करते हैं। इस प्रकार के सुझावों और सिफारिशों का सबसे अच्छा विश्लेषण R.
ग्राहकों द्वारा की गई खरीद का विश्लेषण करने के साथ-साथ उत्पाद की बिक्री की भविष्यवाणी करने के लिए रैखिक मॉडलिंग जैसी विभिन्न सांख्यिकीय प्रक्रियाएं आवश्यक हैं। इसके अलावा, कंपनियां अपने उत्पादों के पृष्ठों पर ए/बी परीक्षण विश्लेषण करने के लिए आर का उपयोग करती हैं।
- उत्पादन
Ford, Modelez, और John Deere जैसी निर्माण कंपनियां ग्राहक भावना का विश्लेषण करने के लिए R का उपयोग करती हैं। यह उन्हें ट्रेंडिंग उपभोक्ता हितों के अनुसार अपने उत्पाद को अनुकूलित करने में मदद करता है और बाजार की बदलती मांग के साथ अपने उत्पादन की मात्रा का मिलान करने में भी मदद करता है। वे अपनी उत्पादन लागत को कम करने और मुनाफे को अधिकतम करने के लिए R का भी उपयोग करते हैं।
निष्कर्ष
भविष्य को देखते हुए, हम आसानी से प्रोग्रामिंग को उस चीज़ में विकसित होते हुए देख सकते हैं जो औसत उपयोगकर्ता कर सकता है, ड्रैग एंड ड्रॉप इंटरफ़ेस का उपयोग करके, और बस थोड़ा सा तर्क और तर्क। इसके लिए तकनीक पहले से मौजूद है, और उनकी प्रारंभिक अवस्था में कई परियोजनाएं हैं जिनका उद्देश्य ऐसा इंटरफ़ेस प्रदान करना है। इनमें से एक है, Google का ऐप इन्वेंटर, जो आपको केवल UI तत्वों को खींचकर और छोड़ कर, फिर कार्यक्षमता बनाने के लिए ग्राफ़ आधारित तर्क मानचित्र का उपयोग करके एक Android ऐप बनाने देता है।
वे जो ऐप्स बनाते हैं वे बहुत अनोखे या शक्तिशाली नहीं हैं, लेकिन ये पहले चरण हैं। हालांकि इस प्रकार की प्रोग्रामिंग निकट भविष्य में किसी भी समय ले ली जाती है, लेकिन सॉफ्टवेयर लिखने के लिए कंप्यूटर साइंस की डिग्री वाले प्रोग्रामर की आवश्यकता अभी भी मौजूद रहेगी। लेकिन वह दिन दूर नहीं जब औसत उपभोक्ता प्रोग्रामर होगा। तब जनता की कल्पना की सीमा ही हमारी नाकाबंदी है।