वास्तविक दुनिया में डी प्रोग्रामिंग भाषा? [बन्द है]


138

क्या कोई वास्तविक दुनिया के अनुप्रयोगों के लिए डी का उपयोग कर रहा है? यदि हां, तो आप इसके लिए क्या उपयोग कर रहे हैं? मुझे D पर लिखी गई वेब पर कुछ भी बड़ा नहीं मिल रहा है।

ज्ञात बड़े उपयोगकर्ताओं की कमी के बावजूद, डी मुझे बहुत ही आशाजनक भाषा लगती है, और TIOBE के अनुसार , यह काफी लोकप्रिय है।


11
हाल ही में घोषित dlang मंचों में , फेसबुक अब उत्पादन में डी का उपयोग कर रहा है।
sghill

कुछ भी बड़ा नहीं है क्योंकि बड़े जटिल अनुप्रयोगों के निर्माण के लिए D स्वयं बहुत गरीब है। यह सतह पर बहुत अच्छा लगता है, लेकिन एक बार जब आप कुछ भी करने की कोशिश करते हैं तो सभी दरारें दिखना शुरू हो जाती हैं और प्रशंसक लड़कों द्वारा वाणिज्यिक दर्शकों के लिए उचित संरचित सॉफ्टवेयर बनाने की बहुत कम इच्छा होती है (मुझे यकीन है कि पैसे का बहुत कुछ करना है यह लेकिन ऐसा नेतृत्व और संगठन करता है)। यह कमांड लाइन उपयोगिता या 5k लाइन एल्गोरिदम लिखने के लिए एक बात है, लेकिन एक बहुत ही जटिल व्यवसाय ऐप बनाने के लिए पूरी तरह से अलग है जिसमें कई क्षेत्र जैसे कि गुई, ऑडियो आदि शामिल हैं
स्ट्रेटो

यकीन है कि आप एक साथ कुछ हैक कर सकते हैं लेकिन यह वाणिज्यिक नहीं है। एक व्यवसाय अपने समय / धन को किसी ऐसी चीज में निवेश करने वाला नहीं है जो इतनी परतदार है। कोई उचित आईडीई नहीं है और मेरे द्वारा उपयोग किए जाने वाले हर एक ने मुझे बस कुछ चीज़ों को काटने के लिए तैयार किया है। यह एप्लिकेशन को ठीक से डिबग करने के लिए लगभग 10 गुना धीमा है क्योंकि त्रुटि संदेश भयानक हैं, डीबगर या तो आपके खिलाफ काम नहीं करता है या काम करता है, आधुनिक सुविधाओं की हम उम्मीद करते हैं कि वे अस्तित्वहीन या गरीब हैं, और पुस्तकालय फ्यूबर्ड है क्योंकि इसमें कोई तार्किक संरचना नहीं है (चीजों को "मनमाने ढंग से" स्थानांतरित किया जाता है, "नामकरण" और "डिटैबर" जैसी अजीब नामकरण योजनाएं)
स्ट्रेटो

मुझे लगता है कि यह यिन / यांग है। डी में कुछ चीजें आश्चर्यजनक हैं और कुछ भी करीब नहीं आता है (अभी तक) ... लेकिन दूसरी तरफ इस चीज में असफलता बहुत मजबूत है। एक ही उन चीजों को खोजता है जब वे वास्तव में तुच्छ या एल्गोरिदम सामान के बजाय वास्तविक एप्लिकेशन लिखने का समय रखते हैं। जब तक डी संगठन इसे एक साथ नहीं मिलाता है, तब तक उन्हें कितना समय लगेगा? 10, 20 वर्ष?) वास्तविक व्यवसाय इसमें निवेश नहीं करेंगे। समय पैसा है और कोई भी व्यवसाय किसी ऐप को डिबग करने के लिए 10 गुना लंबा समय नहीं बिताना चाहता है क्योंकि आईडीई सूंघने के लिए नहीं है।
स्ट्रेटो

@ स्ट्रेटो का क्या मतलब है? dlang.org/orgs-using-d.html
Bauss

जवाबों:


77

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

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

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

लेकिन जब तक घास-मूल उपयोगकर्ताओं की एक बड़ी संख्या नहीं है, तब तक बड़े कॉर्पोरेट उपयोगकर्ताओं के संदेह में बहुत कुछ नहीं होगा।


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

@JesseBrands क्या आप फ़ोबोस या टैंगो का उपयोग करते हैं?
qed

88

मैं डी। में बायोइंफॉर्मेटिक्स का काम करता हूं। मेरे लिए, डी के बारे में महत्वपूर्ण बात यह है कि यह ट्रेडऑफ के लिए बहुत ही उच्च स्तरीय दृष्टिकोण लेता है और कम रिटर्न के सिद्धांत को मान्यता देता है।

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

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

इसी तरह, डी सुरक्षा बनाम लचीलेपन के लिए एक बहुत ही स्तरीय-प्रमुख दृष्टिकोण लेता है। यह मानता है कि प्रोग्रामर मूल रूप से जानते हैं कि वे क्या कर रहे हैं, लेकिन गलतियाँ करते हैं।

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

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


2
मॉनिटर ऑब्जेक्ट क्या है? मुझे इसके लिए परिणाम नहीं मिल रहे हैं।
सामरसा

2
मुझे C ++ की तुलना में D भाषा बहुत पसंद है। तेज़ संकलन समय, कम कोड का उपयोग करने की क्षमता, कोई हेडर फ़ाइलें नहीं, आदि समस्या, हालाँकि, यह है कि किसी को भी गंभीर GUI काम करने की कमी है। ज़रूर, मैं GtkD का उपयोग कर सकता हूं, लेकिन कोशिश करें और फैंसी चार्ट की एक श्रृंखला बनाएं। मैं एक GUI के लिए क्रोमियम के साथ काम करने का वादा करने वाला काम देखता हूं, लेकिन यह परियोजना काफी हद तक अविभाजित है और उस स्थान पर अधिक खिलाड़ियों की जरूरत है। मैं उम्मीद कर रहा हूं कि बदलाव होंगे, लेकिन मैं यहां सितंबर 2015 में देख रहा हूं
Volomike

ऑब्जेक्ट मॉनिटर बकवास है **। यह पूरी विधि को बंद कर देता है, यह वास्तव में बेकार है ...
dev1223

@Volomike मैं भी हाल ही में डी को देख रहा हूं और इसी तरह इसके साथ ग्राफिकल इंटरफेस टूल बनाना कठिन हो गया है। वर्तमान में मेरे पास डी के साथ सुरुचिपूर्ण जीयूआई उपकरण बनाने के लिए कोई डिफैक्टो समाधान नहीं है और यह एक ऐसी चीज है जिससे मैं जल्द ही निपटना शुरू कर सकता हूं।
१४'१६ को डाइमिग्युएल

32

मैं एक छोटी सी कंपनी के बारे में जानता हूं जिसने एक मेल सर्वर उत्पाद बाजार में भेजा है। उनके पास परियोजना पर पूर्णकालिक काम करने वाले कम से कम 2 लोग थे।

इसके अलावा, आईटी व्यवसाय में एक प्रमुख खिलाड़ी के पास बड़ी आंतरिक परियोजनाओं में डी का उपयोग करने वाले कई कर्मचारी हैं।

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

मैंने शायद कुछ को छोड़ दिया है, जिनके बारे में मुझे पता होना चाहिए था, और शायद कुछ के बारे में मैंने नहीं सुना है, लेकिन यह अभी भी मौजूद है, जैसा कि ऊपर कम या ज्यादा है जो मैं समुदाय के माध्यम से खुद को जानता हूं।

मेरी वर्तमान आय का एक छोटा प्रतिशत D से आता है।


क्या आप कृपया संगठनों को नामांकित कर सकते हैं? इन परियोजनाओं के बारे में अधिक जानना अच्छा होगा।
नबर

28

मैं वेब विकास के लिए डी का उपयोग करता हूं और यह सी / सी ++ की तुलना में काफी अधिक उत्पादक साबित हुआ। माणिक / php / अजगर के आधार पर बहुत सारे ढांचे हैं, निश्चित रूप से। लेकिन जब आप कुछ ऐसा अनोखा विकसित करना चाहते हैं जिसमें सी के रूप में भी तेज होना है और लगभग उतना ही आसान है जितना आप कई स्क्रिप्ट भाषाओं में करते हैं, तो डी एक अच्छा विकल्प है।


3
क्या मैं पूछ सकता हूँ? आप किस ढांचे या पुस्तकालय का उपयोग करते हैं?
ज़ेलनोवा

26

मैं लूप (HIL) परीक्षण वातावरण में हार्डवेयर के लिए D का उपयोग करता हूं। यह मोटर वाहन क्षेत्र में सॉफ्टवेयर परीक्षण के लिए है। डी का उपयोग यहां किया जा सकता है, क्योंकि एक सिस्टम प्रोग्रामिंग भाषा के रूप में इसका उपयोग वास्तविक समय के कार्यक्रमों (एक लिनक्स वास्तविक समय विस्तार आरटीएआई-एलएक्सआरटी में आईआरक्यू हैंडलर) के लिए संभव है।

SWT / JFace के चल रहे पोर्ट के साथ मैं और अधिक काम करने की योजना बना रहा हूं और डी में वह काम करूंगा जो मैंने पहले जावा में किया था।



19

मैं संकलन समय कोड अनुवाद के बारे में अनुसंधान में डी का उपयोग कर रहा हूं। Tuples और mixins के साथ संयुक्त उन्नत templating कोड अनुवाद बहुत आसान बनाता है और एक अलग उपकरण की आवश्यकता के बिना संकलन समय के दौरान कोड अनुवाद के लिए अनुमति देता है।

डी में मेटा-प्रोग्रामिंग के साथ अपने कार्यक्रमों को बढ़ाने के लिए डी का उपयोग करने वाले भौतिकविदों के कुछ उदाहरण हैं।

वीडियो - सम्मेलन की बात, भौतिक विज्ञानी उपयोग के स्रोत साइट को नहीं खोज सका।


मेरी एक समान परियोजना, डी में भी dsource.org/projects/scrapple/browser/trunk/dparser/dparse.d
BCS

17

हमारा पूरा (हाई-ट्रैफिक) नेटवर्क इन्फ्रास्ट्रक्चर केवल D1 और टैंगो पर आधारित है। हम बर्लिन में एक युवा स्टार्टअप कंपनी हैं: sociomantic.com


14

मेरा वर्तमान कार्य कार्य सी # डी का अनुवाद करने के लिए एक प्रणाली है। यह एक सॉफ्टवेयर प्रणाली विकसित करने के लिए लाभ परियोजना के हिस्से के रूप में है।



7

ऐसा लगता है कि रेमेडी गेम्स में उनके खेलों के लिए एक बड़ा D2 कोडबेस है (cf। D Alongside a Game Engine by Manu Evans - DConf 2013)।

वे एक बड़ी कंपनी हैं, यह जानते हुए कि एक बड़ी कंपनी डी का उपयोग कर रही है, बहुत अच्छी है।


7

एबीए गेम्स द्वारा जारी किए गए बहुत सारे गेम डी 1.x में लिखे गए हैं, हालांकि मुझे लगता है कि कंसोल पोर्ट को सी ++ में फिर से लिखना होगा।

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


क्या आप कृपया इस बारे में अधिक विशिष्ट हो सकते हैं कि कौन से खेल डी का उपयोग करके बनाए गए हैं?
नबंर

7

मैंने लिखा (और मैं अभी भी बनाए रख रहा हूं और विकसित कर रहा हूं) विभिन्न हार्डवेयर टेस्टिंग स्टेशनों से टेस्टर प्रोटोकॉल के रूपांतरण के लिए एक सॉफ्टवेयर है, जो ट्रेसेबिलिटी और सामान की तरह मानकीकृत आउटपुट प्रारूप में है।

सभी एक साथ कोड की 5k लाइनों पर, डी 1.x और फोबोस लाइब्रेरी के साथ लिखे गए हैं।

डी सीखने में बहुत आसान है, और कुछ ख़राबियों (फोबोस लाइब्रेरी में) की अवहेलना करना कार्यक्रम के लिए एक वास्तविक आनंद है।


6

मैंने वैश्विक अनुकूलन एल्गोरिथम विकसित करने पर अपनी शोध परियोजना के लिए डी का उपयोग किया। मैंने इसे तंत्रिका नेटवर्क के प्रशिक्षण की समस्या पर लागू किया। यह आपके ऊपर है कि क्या आप इसे "वास्तविक दुनिया" कहना चाहते हैं।


स्रोत कोड या कुछ जानकारी उपलब्ध है जो आपने किया था?
नबर


6

मैं संस्करण के दूसरे मानक D2 का उपयोग करता हूं। मैंने वास्तविक समय के अनुप्रयोगों (3 डी इंजन, उदाहरण के लिए) लिखा था।

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

निश्चित रूप से मेरी पसंदीदा भाषा, और मुझे पूरा यकीन है कि यह एक प्रयोग की जाने वाली भाषा होगी।


क्या डी का उपयोग करके आपके द्वारा बनाई गई किसी चीज़ का स्रोत कोड देखना संभव है?
नबर

उस टिप्पणी के बाद से कुछ समय हो गया है! मैं अब ज्यादातर रूस्त और हास्केल में कोडिंग कर रहा हूं, लेकिन मेरे पास कुछ प्रोजेक्ट हैं। मेरे गिठुब पर कुछ सामान है, लेकिन मुझे नहीं लगता कि यह खुदाई के लायक है। वह टिप्पणी 4 साल पुरानी है! मुझे इस सब की वर्तमान स्थिति पर एक नजर
डालनी चाहिए

4

मुझे लगता है कि हम इस प्रश्न के तत्काल उत्तर की कमी में कुछ पढ़ सकते हैं और वह यह है कि बहुत से / कोई भी एक से अधिक स्टिकओवरफ़्लो उत्तरदाता डी का उपयोग नहीं कर रहे हैं। मैं भी TIOBE सूची में अपनी रैंकिंग के स्तर के बारे में थोड़ा आश्चर्यचकित था कि आप करने के लिए लिंक।

यह कहते हुए कि, वाल्टर ब्राइट अब काफी सालों से भाषा पर काम कर रहे हैं और मुझे लगता है कि उनके पास काफी संख्या में 'अनुयायी' हैं, जो याद करते हैं कि उन्होंने 90 के दशक में Zortech C ++ कंपाइलर के साथ क्या अच्छा काम किया था। मैं यह भी ध्यान देता हूं कि भाषा अब कार्यात्मक दिशा की ओर झुकती हुई प्रतीत होती है।


3
वास्तव में अभी इस वेब साइट पर डी की खोज करना असंभव है। "डी" या "डी प्रोग्रामिंग" की खोज "नो हिट्स" कहती है, और "डी" के लिए टैग पर खोज करने से उन टैगों की एक पृष्ठबद्ध सूची होती है जिनमें "डी" होता है लेकिन स्वयं द्वारा कोई "डी" नहीं। ताकि इसके साथ भी कुछ हो सके।
बैक्सीसिमो

20
टैग आधारित खोज प्राप्त करने के लिए खोज बॉक्स में [d] खोज करें।
ग्रीग लिंड

2

डी की आधिकारिक वेबसाइट उन संगठनों को शामिल करती है जो वर्तमान में डी का उपयोग कर रहे हैं।

http://dlang.org/orgs-using-d.html

डी विकि भी संगठनों की एक सूची प्रदान करता है, लेकिन यह पुराना है।

बस ध्यान से DCONf वार्ता देखें।

लगभग सभी लोग किसी न किसी कंपनी के लिए काम करते हैं, और वे काम पर डी का उपयोग करते हैं।


0

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

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


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.