लिनक्स एप्लिकेशन अक्सर उस भाषा को क्यों डालते हैं जिसे सारांश में लिखा गया था?


19

अनुप्रयोगों के प्रदर्शन के दौरान, विंडोज और मैक ज्यादातर सुविधाओं के बारे में बात करते हैं। दूसरी ओर, लिनक्स अनुप्रयोगों में, सुविधाओं के बजाय इसे (और पुस्तकालयों के साथ) लिखने के लिए किस भाषा का उपयोग किया गया था, इसके बारे में अधिक विवरण हैं। ऐसा क्यों है?

मैं समझ सकता था कि जीटीके + बनाम क्यूटी के बीच अंतर केवल डेस्कटॉप एकीकरण आवश्यकताओं के कारण फर्क पड़ता है, लेकिन सी बनाम सी ++ बनाम पायथन बनाम असेंबली बनाम आदि? वास्तव में?

उदाहरण के लिए: फू C / GTK + में लिखा गया एक साधारण ब्ला ब्ला है।


2
मैं यह उल्लेख करना चाहूंगा कि कई विंडोज़ ऐप्स ओपन सोर्स नहीं हैं ... अक्सर वे निर्भरता के साथ पैक किए जाते हैं, जिनकी उन्हें ज़रूरत होती है, भले ही वे ओपन सोर्स हों। एक उदाहरण पिजिन है। काम के लिए पिजिन के लिए आपको विंडोज़ पर अलग से gtk डाउनलोड नहीं करना है। आप यह देख सकते हैं कि विंडोज़ पर भाषा तब होती है जब उसे बाहरी निर्भरता की आवश्यकता होती है, हालांकि मैं इस समय किसी भी उदाहरण के बारे में सोच भी नहीं सकता क्योंकि ऐसा लगता है कि बाहरी निर्भरता की आवश्यकता नहीं करने के लिए सबसे कठिन है।
xenoterracide

जवाबों:


21

मुझे लगता है कि पारंपरिक लिनक्स उपयोगकर्ता (एक geeky टिंकरर जो वास्तव में स्वयं द्वारा सिस्टम स्थापित करता है) इस तरह की जानकारी (इस उपकरण के पीछे क्या तकनीक है) के बारे में परवाह करता है। मैं भी उन geeky लोगों में से एक हूं, जो उदाहरण के लिए, पैकेज को स्थापित करने और उपयोग करने से बचना होगा क्योंकि यह कुछ ऐसी तकनीक का उपयोग करता है जो मुझे पसंद नहीं है। कुछ इस तरह के व्यवहार को धर्म कहते हैं। मूर्ख नहीं है?

वैसे भी मैं दो कारणों से सोच सकता हूं:

  • पैकेज़ उन लिनक्स उपयोगकर्ताओं की तुलना में geeky (यदि अधिक नहीं) के रूप में हैं, तो उन्होंने ऐसी जानकारी जोड़ने के लिए एक अच्छा विचार पाया।

  • मुझे लगता है कि जब ये पैकेजर्स अपने पैकेज के विवरण पर इस तरह की जानकारी डालते हैं, तो वे संभवतः इसे प्रचार के कुछ रूप के रूप में कर रहे हैं। यह कई बार काम करता है (इसने मुझ पर काफी काम किया)।

यह सिर्फ एक अनुमान है।


हाँ, मुझे लगता है कि आपके पास यहाँ एक अच्छी बात है। * निक्स संस्कृति वास्तव में एक संस्कृति है।
जॉर्डन पार्मर

1
"हे, किस भाषा में क्रोमियम लिखा गया है?"
ग्रीनल्डमैन

@ मैकियास: मुझ में गीक मुझे पैकेज की निर्भरता पर ध्यान देता है, जहां यह गीक सबसे अधिक बार भाषा का पता लगाएगा। वास्तव में, यह गीक इतना धार्मिक है कि जब भी वह किसी वेबसाइट पर जाता है, तो वह इस बात से नाराज हो जाता है कि वह इस बात की जल्दी से जांच नहीं कर सकता कि अपरिचित उपकरण किस भाषा में लिखा गया है। यदि यह <अपरिवर्तित भाषा डालें>, तो यह गीक भाग जाता है, और यदि है तो <पसंदीदा भाषा डालें>, geek का पूर्वाग्रह दिखाता है।
tshepang 6

4
प्रौद्योगिकी के बारे में एक व्यावहारिक उदाहरण जो एक समस्या हो सकती है वह मोनो / .NET है क्योंकि Microsoft के पास उस क्षेत्र में बहुत सारे पेटेंट हैं और "अनफ्रेंडली" होने के बारे में एक लंबा इतिहास है ... इसलिए यह अजीब नहीं है कि कुछ लोग चाहेंगे भविष्य की समस्याओं से बचने के लिए इस तरह की बातों को जानें।
जोहान

1
सिस्टम व्यवस्थापक के दृष्टिकोण से, क्या लिखा जाता है एक परियोजना अक्सर निर्धारित करती है कि कौन सी निर्भरताएं उपलब्ध होनी चाहिए।
जेएम बेकर

12

मेरी समझ से यह चार सॉफ्टवेयर फ्रीडम में से दूसरे से संबंधित है :

यह अध्ययन करने की स्वतंत्रता कि कार्यक्रम कैसे काम करता है, और इसे बदलने के लिए वह करें जो आप चाहते हैं (स्वतंत्रता 1)। स्रोत कोड तक पहुंच इसके लिए एक पूर्व शर्त है।

भाषा (या अन्य तकनीकी विशेषताओं) को सार्वजनिक करना लोगों को चुनने की क्षमता का समर्थन करता है, और उन लोगों द्वारा परियोजनाओं में भागीदारी को प्रोत्साहित करता है जो उन भाषाओं में कुशल हैं।


10

यह आंशिक रूप से ऐतिहासिक हो सकता है। यहां तक ​​कि इतने दूर के अतीत में भी व्यक्तिगत सिस्टम प्रशासकों के लिए यह सामान्य नहीं था कि वे अपने सिस्टम पर चलने वाली हर चीज को बनाए और स्थापित करें।

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

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


2
एक सभ्य उदाहरण जो मैं सोच रहा हूं, वह एक वेबमैप है जिसे रेडमिन कहा जाता है। यह रूबी ऑन रेल्स के साथ लिखा गया है, न तो रूबी और न ही रेल आमतौर पर डिफ़ॉल्ट रूप से सिस्टम पर प्रदान की जाती है। जावा एप भी इस तरह के हैं।
xenoterracide

10

जसोनव्रीयन के उत्तर के विस्तार में :

यदि आप उस भाषा को नाम देते हैं, जिसमें यह लिखा गया था, तो इसे प्राप्त करने वाला व्यक्ति यह अनुमान लगा सकता है कि पैच प्रदान करना कितना कठिन होगा, या कुछ अंतर्दृष्टि प्राप्त करना, या कार्यक्रम का विस्तार करना।

बेशक यह केवल समझ में आता है अगर आप एक प्रोग्रामर हैं।

आपने सारांश कहाँ देखा? रिपॉजिटरी में, या .deb या .rpm जैसे पैकेज?

यदि आप इसे स्रोत से बनाते हैं, तो जानकारी को पहचानने में मदद मिल सकती है, चाहे आपको अन्य सामान (कंपाइलर, लाइब्रेरी, बिल्ड-टूल्स) स्थापित करने हों।


बस Ubuntu रिपॉजिटरी (सॉफ्टवेयर सेंटर के माध्यम से) के माध्यम से ब्राउज़िंग। लगभग सभी सारांश में पहले वाक्य के भीतर भाषा शामिल है। मुझे यह अजीब लगता है कि अधिकांश लिनक्स डेवलपर्स वास्तव में उपयोगकर्ताओं के बजाय अन्य लिनक्स डेवलपर्स के लिए विकसित हो रहे हैं।
जॉर्डन पार्मर

@ j0rd4n एक ubuntu उपयोगकर्ता नहीं है जो आप सॉफ्टवेयर पैकेज का उदाहरण दे सकते हैं? मेरा मतलब है कि वे वास्तव में फ़ायरफ़ॉक्स के वर्णन में सी डालते हैं? मैं अनुमान लगाऊंगा कि लिनक्स पर कुछ 90% सॉफ़्टवेयर का अर्थ उन उपयोगकर्ताओं के लिए नहीं है जो यह एक पुस्तकालय है। इसके अलावा ... आपको महसूस नहीं हुआ कि लिनक्स डेवलपर्स खुद के लिए विकसित होते हैं? यह दुख की बात है लेकिन सच है ... एक पर्ल प्रोग्रामर के रूप में मैं मैं अभी तक एक अंत उपयोगकर्ता के लिए कुछ भी नहीं लिखा है :(
xenoterracide

मैं इंटरफ़ेस भाषा के रूप में जर्मन के साथ ubuntu का उपयोग करता हूं, इसलिए यह केवल कुछ उदाहरणों का हवाला देने के लिए हम में से कुछ की मदद करेगा, लेकिन मैं आपको आश्वासन दे सकता हूं: synaptics में, नए सॉफ़्टवेयर के लिए इंस्टॉलेशन टूल, मैंने एक परीक्षण किया और 5 पैकेज उठाए - और उनमें से एक भी नहीं मिला, जिस भाषा में यह लिखा गया था, उसका उल्लेख करते हुए।
उपयोगकर्ता अज्ञात

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

6

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

इस बात का वर्णन होने से कि किस भाषा में कुछ समय बर्बाद होता है।


4

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


उबंटू रिपॉजिटरी में पैकेज विवरणों की एक अद्भुत मात्रा है कि पहले पांच शब्दों में भाषा शामिल है। मैं खुद एक डेवलपर हूं, लेकिन मुझे कभी नहीं लगा कि मेरे उपयोगकर्ता परवाह करते हैं। हालांकि, मैं समझ सकता था कि खुला स्रोत होने के नाते, इसका और अधिक अर्थ हो सकता है, लेकिन क्या हम लोगों या अन्य डेवलपर्स के लिए विकसित हो रहे हैं?
जॉर्डन पैरा

1
@ j0rd4n डेवलपर भी लोग हैं!
ज़च

3

मेरे दृष्टिकोण से, इस तरह की जानकारी नए योगदानकर्ताओं को आकर्षित करने के लिए आवश्यक है, साथ ही साथ भावी उपयोगकर्ताओं को यह तत्काल विचार देने के लिए कि उनके सिस्टम में एप्लिकेशन को एकीकृत करने के लिए कितना काम करना पड़ सकता है।

  • एक सामान्य पहलू यह है कि एप्लिकेशन चलाते समय पुस्तकालयों का उपयोग किया जाता है ।

कुछ इंस्टॉलेशन कुछ चुनिंदा टूलकिट्स तक ही सीमित हैं, जैसे जीटीके + लेकिन क्यूटी नहीं, या इसके विपरीत। एक प्रशासक के लिए जो एक प्रणाली बनाए रखता है और नियमित रूप से अपने घटकों को लंबे समय तक अपडेट करता है, यह पूरी तरह से एक व्यावहारिक और धार्मिक प्रश्न नहीं हो सकता है।

  • एक अन्य पहलू उपयोग किए गए पुस्तकालयों और आवश्यक शर्तें हैं जो आवेदन को संकलित करने के लिए आवश्यक हैं ।

एक स्रोत-आधारित लिनक्स वितरण के उपयोगकर्ताओं के लिए Ie यह एक बड़ा अंतर बनाता है कि क्या कोई एप्लिकेशन C या उद्देश्य-सी में लिखा गया है, क्योंकि उनके संकलक को पहली जगह में भाषा का समर्थन करने की आवश्यकता है। अन्य भाषाओं में पुस्तकालयों का एक बड़ा ढेर स्थापित करना आवश्यक हो सकता है। फिर सवाल यह है कि, इस एप्लिकेशन को संकलित करने के लिए आप कितने काम करने को तैयार हैं।

  • एक अलग पहलू योगदानकर्ताओं को आकर्षित करने का इरादा है।

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

  • अंत में, स्पष्ट रूप से कुछ भाषाओं के खिलाफ पूर्वाग्रह और पूर्वाग्रह का एक बहुत कुछ है।

मैं सिर्फ इतना ही कहूंगा कि मैंने किसी भी भाषा के बारे में लिखा हुआ भयानक अक्षम सॉफ्टवेयर देखा है। यदि आप मुझसे पूछते हैं, तो दक्षता के लिए, आवेदन की कोड गुणवत्ता उस भाषा में लिखी गई भाषा की तुलना में बहुत अधिक महत्वपूर्ण है।


1

मुझे लगता है कि इसका बहुत कुछ प्रदर्शन विज्ञापन के साथ करना होगा। एक संकलित भाषा में लिखा गया एक आवेदन (C, C ++, ...) एक स्क्रिप्ट भाषा (पर्ल, पाइथन, ...) में लिखे गए एक से एक बेहतर प्रदर्शन करने के लिए एक बिल्ली का बच्चा है।

लेकिन यह संगतता में भी बाँधता है। एक स्क्रिप्टिंग भाषा में लिखे गए एप्लिकेशन में आर्किटेक्चर और OS के बीच अधिक पोर्टेबल होने की संभावना है, जिसमें कोई संशोधन नहीं है।


तो दोनों ही मामलों में आपके पास एक समर्थक और एक तर्क है - जो संतोषजनक नहीं है। संकलित कोड जो बंद स्रोत है विंडोज़ पर भी आम है, इसलिए प्रदर्शन तर्क लिनक्स-प्रोग्राम को अलग नहीं करेगा
उपयोगकर्ता अज्ञात

1
क्या? आपने अभी कोई मतलब नहीं बनाया है। Pro और con वास्तव में आप भाषा को सूचीबद्ध क्यों करेंगे। यदि किसी के पास केवल 'प्रो' है, तो हर कोई इसका उपयोग करेगा। और मैं यह भी नहीं समझ पाया कि आप संकलित कोड और OS के बारे में क्या कहना चाह रहे हैं।
पैट्रिक

मैंने आपके उत्तर को इस तरह से समझा, कि लोग स्पष्ट रूप से प्रदर्शन का विज्ञापन करते हैं, यदि यह C / C ++ में लिखा गया है, और यदि वे C / C ++ में नहीं लिखे गए हैं तो वे पोर्टेबिलिटी का विज्ञापन करते हैं। जो हमेशा एक संवादात्मक तर्क होता है - या तो पोर्टेबिलिटी के खिलाफ, या प्रदर्शन के खिलाफ - दोनों कारणों से, भाषा का उल्लेख नहीं करना। तो कभी-कभी ऐसा क्यों होता है, और अन्य समयों में इसके विपरीत है?
उपयोगकर्ता अज्ञात

0

आज के डेस्कटॉप / सर्वर सिस्टम पर यह इतना प्रासंगिक नहीं हो सकता है, लेकिन एम्बेडेड सिस्टम से लेकर एसएसडी नेटबुक और टैबलेट तक के छोटे सिस्टम के लिए, प्रोग्राम द्वारा उपयोग की जाने वाली भाषा या लाइब्रेरी एक मेक-या-ब्रेक मुद्दा हो सकती है, दोनों आकार और के कारण पोर्टेबिलिटी विचार।

आकार के बारे में: सभी मानक मॉड्यूल और आमतौर पर उपयोग किए जाने वाले ऐड-ऑन मॉड्यूल के साथ एक अतिरिक्त भाषा के लिए एक दुभाषिया जोड़ना, आसानी से भंडारण आवश्यकताओं के लिए सैकड़ों मेगाबाइट जोड़ सकते हैं। वही पुस्तकालय परिवारों के लिए जाता है, विशेष रूप से प्रमुख डेस्कटॉप वातावरण जैसे ग्नोम और केडीई से जुड़े हुए हैं। क्या बुरा है, पर्ल प्रोग्राम्स nको चलाने से n+1स्मृति उपयोग की आवश्यकताओं में इतनी वृद्धि नहीं हो सकती है, क्योंकि बहुत सारी मेमोरी साझा की जा सकती है, लेकिन nपर्ल प्रोग्राम और 0 पायथन प्रोग्राम से जा रही हैnपर्ल प्रोग्राम और 1 पायथन प्रोग्राम के परिणामस्वरूप मेमोरी उपयोग में महत्वपूर्ण वृद्धि होती है। यह तब और भी अधिक हो जाता है जब हर मूर्ख लेखन मुक्त सॉफ्टवेयर की अपनी पसंदीदा स्क्रिप्ट / रेडटूल भाषा होती है, जिसमें वे प्रोग्राम करना चाहते हैं ... पर्ल, पायथन, पीएचपी, रूबी, जावास्क्रिप्ट, बॉर्न शेल, बैश, Csh, ....

पोर्टेबिलिटी के बारे में: बहुत सी व्याख्या की गई भाषा (साथ ही लाइब्रेरी फ्रेमवर्क) उन सुविधाओं का भारी उपयोग करती है जो बड़े लिनक्स डेस्कटॉप / सर्वर सिस्टम पर उपलब्ध हो सकती हैं, लेकिन जरूरी नहीं कि छोटे / एम्बेडेड / एमएमयू-कम सिस्टम पर उपलब्ध हों। .soरनटाइम के दौरान डायनेमिक मॉड्यूल लोडिंग पर निर्भरता ...


आप उन्हें मूर्ख क्यों कहते हैं? वे जिस भाषा को पसंद करते हैं, उसमें कोड क्यों नहीं करेंगे? उन्हें किस भाषा का उपयोग करना चाहिए?
tshepang
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.