C / C ++ के लिए अनिवार्य आधुनिक विकल्प [बंद]


38

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

जो मुझे C (या C ++) के उपयोग की सोच की ओर ले जाता है, हालाँकि ये दोनों दाँत में लंबे समय तक हैं। मैंने लंबे समय तक इस्तेमाल नहीं किया है। मुझे लगा कि पिछले 20 वर्षों में किसी ने शायद कुछ ऐसा बनाया है जो काफी लोकप्रिय है, और इसमें संकलित करने के लिए अच्छा है।

उच्च प्रदर्शन संकलित कोड लिखने के लिए C से अधिक आधुनिक विकल्प क्या हैं?

अगर सी ++ 15 साल पहले की तुलना में एक अलग जानवर है, तो मैं इस पर विचार करूंगा, मुझे लगता है कि मुझे एक धारणा थी कि इसमें कुछ अंतर्निहित समस्याएं थीं।

समानांतरकरण महत्वपूर्ण होगा, लेकिन संभवतः कई मशीनों में नहीं।


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

11
क्या आप "प्रदर्शन महत्वपूर्ण होगा" भाग पर विस्तार से बता सकते हैं? यह आलोचनात्मक क्यों होगा? क्या आपने अभी तक कुछ भी मापा है?
जेसपर

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

5
@ जेरेमीफ़ेंच: लेकिन आप झूठी धारणा के आधार पर सवाल पूछ रहे हैं, यह प्रदर्शन => स्थिर संकलन है।
vartec

4
क्या यह मूल्य के लिए हैस्केल वर्तमान में ज्यादातर मामलों में सी ++ के लिए मेरे प्रतिस्थापन के रूप में कार्य करता है।
जॉन पुरडी

जवाबों:


54

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

जंग के अलावा वास्तव में कोई अन्य लोकप्रिय विकल्प नहीं हैं जो मूल कोड के लिए संकलित हैं। डेल्फी और डी भी, ज़ाहिर है, लेकिन वे उतने तेज़, लोकप्रिय या उपयोग नहीं किए गए हैं। Google की Go भाषा एक उम्मीदवार हो सकती है, लेकिन यह अभी भी बहुत युवा है और इसका उद्देश्य कुछ अलग डोमेन है।

हालाँकि, ध्यान दें कि C # (Microsoft प्लेटफ़ॉर्म को मानते हुए) और Java शायद यह सब धीमा नहीं है, भले ही वे एक वर्चुअल मशीन के शीर्ष पर चल रहे हों; कोड का जस्ट-इन-टाइम संकलन कुछ अनुकूलन कर सकता है जो पारंपरिक फॉरवर्ड-ऑफ-टाइम कंपाइलर प्रोग्राम स्टेट और पर्यावरण की जानकारी की कमी के कारण आवेदन करने में सक्षम नहीं हैं।

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


5
मैं यह नहीं कहूंगा कि C कार्यक्षमता "पदावनत" है, एक आधिकारिक अर्थ में - बस यह कि C ++ में C लाइब्रेरी फ़ंक्शंस, कच्चे पॉइंटर्स या C-सरणियों का उपयोग करने का लगभग कोई कारण नहीं है।
चार्ल्स साल्विया

20
झूठी प्रदर्शन के लिए 'संकलन के लिए आवश्यक है' के खिलाफ बात करने के लिए +1।
तेलस्टिन ऑग

3
@ GBjbaanb विजुअल स्टूडियो के साथ और विंडोज के तहत MinGW के साथ संकलन करने की कोशिश करता है और इसके साथ शुभकामनाएँ: | एक ऐसे व्यक्ति को समझाने की भी कोशिश करें जो आपको इस उपकरण में से एक संकलित पुस्तकालय देता है जो एबीआई के बारे में कुछ भी नहीं जानता है कि वह गलत है और उसे आपको उस पुस्तकालय का स्रोत देना चाहिए या सीखना चाहिए कि कैसे पुनर्मूल्यांकन करें और सही ऐनक दें । हॉरर, कभी-कभी।
user827992

5
@paxRoman: आप C ++ में छोटे प्रोग्राम लिख सकते हैं, और उन्हें सी। में अधिक सुरक्षित रूप से लिख सकते हैं
kevin cline

3
@JBRWilkinson जहां तक ​​मुझे जानकारी है, ऑब्जेक्टिव-सी की लोकप्रियता एप्पल के प्लेटफॉर्म के बाहर मौजूद नहीं है।
zxcdw

19

वहाँ भी है Ada , जो मूल कोड के लिए संकलित है, और अपने मानक पुस्तकालय की सीमा के भीतर विभिन्न प्लेटफार्मों में पोर्टेबल है। भाषा जीवित और अच्छी तरह से है, वर्तमान में सबसे हालिया भाषा मानक अद्यतन के साथ (Ada 2012 के रूप में जाना जाता है)।

आद्या के साथ अपरिचित लोगों के लिए त्वरित सारांश:

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

1
एडा टास्क (पैरेललिसिस!)
एनडब्ल्यूएस

6
+1: मैंने कुछ ऐडा सीखने की कोशिश की है और मुझे लगता है कि यह एक बहुत मजबूत और साफ भाषा है। अफ़सोस की बात है कि अन्य प्रोग्रामिंग भाषाओं के लिए इतने सारे काम नहीं हैं।
जियोर्जियो

3
अच्छा उल्लेख है, मैं कुछ और 'आधुनिक' की तलाश में था लेकिन मैं Ada के बारे में भूल गया था
जेरेमी फ्रेंच

4
@ जेरेमी फ्रेंच: आप अधिक आधुनिक 'भाषा' में ऐसी कौन सी विशेषताएँ खोज रहे हैं, जो अडा प्रस्तुत नहीं करती है?
जियोर्जियो

17

अगर सी ++ 15 साल पहले की तुलना में एक अलग जानवर है, तो मैं इस पर विचार करूंगा, मुझे लगता है कि मुझे एक धारणा थी कि इसमें कुछ अंतर्निहित समस्याएं थीं।

15 साल पहले, कोई सी ++ मानक नहीं था। दूसरा एक पिछले साल प्रकाशित किया गया है। 98 मानक के प्रकाशन के बाद 5 वर्षों में C ++ सर्वोत्तम प्रथाओं में बहुत बदलाव आया, और वे 11 के प्रकाशन के साथ फिर से बदल रहे हैं।


12

क्यों लोग हमेशा नई भाषाओं की तलाश करने पर जोर देते हैं?

सी ++:

  • TIOBE द्वारा नंबर 4 भाषा है, लेकिन C के साथ संयुक्त होने पर सभी प्रतियोगिता को स्टंप करता है
  • बहुत सारी रूपरेखाएँ हैं
  • में कोड करना बहुत आसान है
  • धुन करना बहुत आसान है
  • बहुत परफ़ॉर्मर है
  • बहुत सुरक्षित है
  • बहुत अच्छा उद्योग समर्थन है
  • क्रॉस प्लेटफॉर्म है
  • सही तरीके से किए जाने पर अतिरिक्त वीएम / फ्रेमवर्क / तैनाती की गड़बड़ी की जरूरत नहीं है
  • आसानी से आपको नौकरी मिल जाएगी
  • बहुत पुराने सिस्टम पर लॉन्च करने के लिए .so / .dll बनाने के लिए सभी आवश्यक सामान हैं
  • समस्या निवारण के लिए आसान है
  • बहुत भावबोधक
  • बहुत गतिशील है
  • और अन्य दिलचस्प सामान का गुच्छा

C ++ का एकमात्र नकारात्मक पहलू यह है कि आपको थोड़ा सीखना होगा। बस।

इसकी तुलना अन्य भाषाओं से करें जो एक या अधिक हैं:

  • संकीर्ण रूप से समर्थित (OCML, फोरट्रान, ...)
  • धीमा (जावा, जावास्क्रिप्ट)
  • प्रायोगिक (सिल्वरलाइट)
  • एक चलती लक्ष्य (.NET 1/2/3/4/5? अब कौन सा अंतिम है?)
  • प्लेटफ़ॉर्म लॉक (.NET)
  • खराब फ्रेमवर्क सपोर्ट (फोरट्रान)
  • छोटे समुदायों (शीर्ष 10 के बाहर कुछ भी)
  • समस्या निवारण के लिए दुःस्वप्न हैं (उच्च स्तरीय मूर्खतापूर्ण अवधारणाओं और सामान के साथ कुछ भी)
  • ग्राहकों की मशीन (JVM / .NETVM) पर 500MB की जरूरत

IMHO, हम जितनी कम भाषाओं का उपयोग करेंगे और समर्थन करेंगे, स्थिति उतनी ही बेहतर होगी।

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

मुझे पता है कि लोग इसे कम करेंगे, लेकिन इसके बारे में सोचें, वास्तव में।


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

20
बहुत अभिव्यंजक और बहुत गतिशील ध्वनि की तरह सी + + लक्षण नहीं है, गतिशील भाषाओं की तुलना में।
vartec

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

13
@gbjbaanb मैं C ++ प्रोग्रामर हूं। एक बार फिर, मुझे नहीं लगता कि C ++ आसान है। और इस टिप्पणी धागे को C ++ चैट के साथ-साथ कुछ फ्रॉन्स भी मिले। तो ऐसा नहीं है। और सी ++ गोचा और अन्य भाषाओं के गोच में अंतर यह है कि यदि आप अन्य भाषाओं में उनके बारे में नहीं जानते हैं, तो आप शायद ठीक हो जाएंगे। C ++ में, आप टोस्ट हैं। और यहां तक ​​कि अगर आप उनके बारे में जानते हैं, तो आप अभी भी एक त्रुटि के लिए संकलन त्रुटियों के कई स्क्रीन पृष्ठ प्राप्त कर सकते हैं (आज फिर मेरे साथ हुआ)। और भले ही त्रुटि को ठीक करने के लिए सरल था (एक टाइपो), उस सब के माध्यम से पार्स करने में समय लगता है।
कोनराड रुडोल्फ

6
लोकप्रिय भाषा कब से अच्छी रही है? PHP बेहद लोकप्रिय है और कोई भी गंभीर व्यक्ति यह नहीं सोचता है कि यह "अच्छी" भाषा है, यहां तक ​​कि इसके आला के लिए भी। लोकप्रिय भाषाओं के बारे में केवल "अच्छी" बात यह है कि कुछ डोमेन को प्रोग्राम करने में आसान बनाने के लिए बहुत सारे पुस्तकालय हैं। सी ++ खुद ही निराशा से भर जाता है।
weberc2

11

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

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

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


16
मुझे लगता है कि सी और सी ++ सॉफ्टवेयर डिजाइन पर होरे की टिप्पणी को स्पष्ट करते हैं: या तो इसे इतना सरल बनाएं कि स्पष्ट रूप से कोई कमी न हो, या इसे इतना जटिल बना दें कि कोई स्पष्ट कमी न हो।
TM50

1
किसी भाषा के कितने पुराने या उलझे होने के बावजूद बफर के किसी न किसी रूप के कारण सुरक्षा की कमजोरियाँ एक "अच्छी बात" का शोषण करती हैं? और, क्या यह वास्तव में बार-बार दुरुपयोग के बाद एक स्थापित विवाह को जारी रखने का तर्क देने से अलग है?
user2864740

@ user2864740 आप जो सुझाव दे रहे हैं वह तलाक है क्योंकि पत्नी पुरानी है और आप एक नया, रोमांचक मॉडल चाहते हैं ... मैं कहता हूं कि आपके पास जो है उसके साथ रहना चाहिए क्योंकि आप झगड़े और झगड़े जानते हैं। कितनी नई, शांत, भाषाएँ बफर अतिप्रवाह जैसी समस्याओं को हल करती हैं और फिर बफ़र करने के लिए सूक्ष्म तरीके हैं? तो क्या बेहतर है - अतिप्रवाह जिसे आप आलसी नहीं होने या सही निर्माण का उपयोग करने से रोक सकते हैं, या आप जिस में गिरते हैं क्योंकि आप नहीं जानते थे?
gbjbaanb

@ जीबीजैनब नहीं, मैंने ऐसा कभी नहीं कहा। मैं परिस्थितियों के संदर्भ में सुधार नहीं करने के कारण विशेष रूप से नुकसान के लिए एक उपजाऊ चित्रण कर रहा था । मैं आम तौर पर काफी तर्कसंगत हूं और ट्रेंडिंग टॉपिक्स या टूल के "फैनबोई" चयन के लिए प्रवण नहीं हूं (यह सिर्फ मेरा स्वभाव है)। इसके अलावा, C और C ++ अलग-अलग भाषाएँ हैं; अभी तक वे दोनों एक ही कंबल कारण के लिए उचित हैं। और वह है इस तरह के साथ समस्या यह है।
user2864740

8

C ++ का वर्तमान मानक C ++ 11 है , जो 2011 में प्रकाशित हुआ था। इसलिए यह 20 साल पुराना मानक नहीं है। और बीच में कई मानक रहे हैं। उनमें से प्रत्येक ने कई प्रदर्शन सुधार पेश किए।

कंपाइलर्स में भी लगातार सुधार हो रहा है। वे पहले से कहीं बेहतर हो गए हैं, जितना वे पहले हुआ करते थे।

निष्पादन योग्य प्रारूप भी सुधार हुआ है, 20 साल पहले आप था a.out , अब आपके पास ELF

कुल मिलाकर, सुझाव है कि सी ++ 20 साल में नहीं बदला, सच्चाई से आगे नहीं हो सकता।

इसके अलावा, ध्यान रखें कि C और C ++ बहुत अलग भाषाएं हैं।


2
मेरी धारणा यह थी कि 20 साल पहले पहली बार कल्पना की गई कुछ ऐसी अंतर्निहित वास्तुकला सीमाएँ होंगी जिन्हें केवल एक खाली स्लेट के साथ ही बेहतर बनाया जा सकता था। मुझे लगता है कि यह धारणा गलत रही होगी।
जेरेमी फ्रेंच

4
@ जेरेमीफ़ेंच: x86 आर्किटेक्चर की तरह?
टीएमएन

2
@TMN यह साबित कर रहा है या मेरी धारणा को बाधित कर रहा है?
जेरेमी फ्रेंच

6
मूल x86 आर्किटेक्चर 8080 और NS32032 के साथ प्रतिस्पर्धा करने के लिए 8080 के साथ पीछे की संगतता के बीच एक बुरा समझौता था। खंडित स्मृति ("दूर" और "पास" पॉइंटर्स) के साथ, केवल 4 सामान्य-उद्देश्य रजिस्टर, चर-लंबाई अनुदेश एन्कोडिंग, जेएमपी अनुदेश के 50 से अधिक स्वाद, एक बहु-स्तरीय त्रि-राज्य प्रणाली बस ... और अभी तक, आज भी वही है बुनियादी डिजाइन पहले से कहीं अधिक मजबूत हो रहा है, कई "बेहतर" क्लीन-स्लेट डिजाइन (अल्फा, एमआइपी, पावरपीसी) के बाद यह विस्थापित करने में विफल रहा।
TMN

1
@JeremyFrench, आपकी धारणा गलत नहीं थी, कम से कम C ++ के मामले में। सी ++ 11 विशेषताएं निश्चित रूप से उपयोगी हैं; हालाँकि, इस बिंदु पर वे बकवास के ढेर पर अधिक बकवास हैं। वे आधुनिक भाषाओं की सुविधाओं में निर्माण करने की कोशिश करते हैं, लेकिन मौजूदा सी ++ गंदगी से निपटने के लिए, उनके पास अपवाद होना चाहिए, और उन अपवादों में अपवाद और इतने पर और आगे होंगे।
weberc2

6

मैं इस भाषा का बड़ा विशेषज्ञ नहीं हूं, लेकिन मुझे लगता है कि ओकेमेल देखने में एक दिलचस्प विकल्प हो सकता है।

OCaml एक संकलित, कार्यात्मक / वस्तु-उन्मुख भाषा है। C ++ के साथ तुलनात्मक प्रदर्शन के लिए C ++ बनाम OCaml: Ray ट्रैसर तुलना देखें । बेशक, यह एक बहुत ही विशिष्ट उदाहरण है और OCaml के प्रदर्शन की बेहतर भावना के लिए अधिक व्यापक परीक्षण करना चाहिए।


क्या डाउनवॉटर कृपया एक संकेत दे सकता है कि यह उत्तर कैसे सुधारा जा सकता है? धन्यवाद।
जियोर्जियो

3

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


2
प्रत्येक वित्त कार्य को मैंने C / C ++ डेवलपर्स को देखा है, न कि जावा को। जावा के साथ अनुभव से, मैं किसी भी उच्च प्रदर्शन को नहीं देख सकता जब तक कि आप उस पर हार्डवेयर का द्रव्यमान नहीं फेंकते।
gbjbaanb

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

3

जब आप कहते हैं कि आपकी परियोजना प्रदर्शन के प्रति संवेदनशील है, तो क्या आपको इसका मतलब है कि कोड की प्रत्येक पंक्ति? या, सामान्य की तरह, एक छोटा सा प्रतिशत है जो प्रदर्शन समालोचनात्मक है, जबकि शेष यह आपके मिल बिजनेस कोड का साधारण रन है?

आपके जवाब के बाद, आपकी परियोजना के लिए बड़ा जोखिम क्या है: कि अंतिम परिणाम बहुत धीमा है, या यह कि आप इसे पहले स्थान पर कभी खत्म नहीं करते हैं?

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


एक बार जब यह जावा, आप इसे धीमा कर सकते हैं अगर यह बहुत धीमी है।
कोडर

6
@ कोडर जावा में एक एफएफआई (जेएनआई) है जो आपको अपनी पसंद की भाषा में 'कहर बरपा' देता है। इसलिए यदि आपने इंटरफेस को अच्छी तरह से डिज़ाइन किया है, तो आप सिर्फ जावा कार्यान्वयन को एक देशी के साथ बदल सकते हैं। जावा मंच अच्छी तरह से सोचा है।
K.Steff

1

Vala जावा और C # के समान है, देशी कोड (या यदि आप चाहें तो C स्रोत कोड) के लिए संकलित करते हैं, और बहुत तेज है । इसके ऑब्जेक्ट-ओरिएंटेड बिट्स के लिए इसे GLib की आवश्यकता होती है, और यह लिनक्स हैकर्स के लिए लिनक्स हैकर्स द्वारा लिखा जाता है, इसलिए यदि आपका डोमेन विंडोज है तो यह बहुत अच्छा नहीं हो सकता है।


1

ऑब्जेक्टिव-सी आधुनिक, संकलित वैकल्पिक सी और सी ++ है। इसमें कचरा-एकत्र और नियतात्मक मेमोरी प्रबंधन दोनों हैं और संदेश-पासिंग OO रनटाइम को प्रदर्शन के लिए अनुकूलित किया गया है।

यह GCC और CLang के माध्यम से उपलब्ध है और GNUStep और Cocotron जैसी एप्लिकेशन लाइब्रेरी हैं जो विभिन्न प्लेटफार्मों पर काम करती हैं।

यदि आप उच्च-प्रदर्शन वाले काम कर रहे हैं, तो मैं यह मानने जा रहा हूं कि यूआई के बजाय नंबर-क्रंचिंग या अन्य डिवाइड-एंड-कॉनकोर काम है, तो इसका मतलब है कि आप यूआई कर सकते हैं जो भाषा में आपके लिए सबसे आसान है, जैसे HTML एक मिनी http सर्वर के माध्यम से।


0

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

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