जब आप "एम्बेडेड विकास" कहते हैं, तो ध्यान रखें कि आपको परियोजना के पैमाने पर विचार करना होगा।
एक माइक्रोकंट्रोलर के पैमाने पर प्रोग्रामिंग या एएसआईसी के लिए फर्मवेयर पर प्रोग्रामिंग करते समय, आप सी और असेंबली दृश्य पर हावी होते हैं। एम्बेडेड डेवलपर्स इन भाषाओं में "विशेषज्ञ" होते हैं क्योंकि उनके लिए कंपाइलर्स लगभग हर एम्बेडेड लक्ष्य प्लेटफॉर्म के लिए उपलब्ध हैं। यदि आपका प्रोजेक्ट माइग्रेट करता है, तो एक एआरएम कोर के साथ एक चिप के लिए एक पावरपीसी कोर के साथ एक चिप, आप पूरी तरह से भरोसा कर सकते हैं कि आपके सी कोड को बंदरगाह पर अत्यधिक मुश्किल नहीं होगी। कुछ चिप्स में अन्य भाषाओं के लिए कंपाइलर्स उपलब्ध होते हैं, लेकिन आमतौर पर वे परिणामस्वरूप बाइनरी की दक्षता के मामले में सी कंपाइलर से मेल नहीं खाते हैं। चूंकि एम्बेडेड सिस्टम अक्सर संसाधनों पर कम होते हैं, इसलिए सिस्टम डिज़ाइनर अपना कोड जितना संभव हो उतना कुशल बनाना चाहते हैं (एक कारण यह है कि आप असेंबली भाषा कोड क्यों देखते हैं)। मैंने सी ++, पास्कल, बेसिक और अन्य जैसी भाषाओं के लिए विकास उपकरण उपलब्ध कराए हैं, लेकिन वे आमतौर पर विशिष्ट उपकरण हैं जो उपलब्ध सी कंपाइलर्स की दक्षता से मेल खाने के लिए पर्याप्त परिपक्व नहीं हैं। इन भाषाओं के लिए डिबगिंग टूल्स सी/असेंबली के लिए उपलब्ध चीज़ों की तुलना में भी मुश्किल हो जाते हैं।
आपने सेट-टॉप बॉक्स का भी उल्लेख किया है। इस पैमाने पर एम्बेडेड सिस्टम 7-8 साल पहले डेस्कटॉप कंप्यूटर की समतुल्य शक्ति पैक कर सकते हैं। उनकी उपलब्ध रैम, स्टोरेज स्पेस, और प्रसंस्करण शक्ति उन्हें उच्च-स्तरीय भाषाओं के लिए पूर्ण-विशेषीकृत ऑपरेटिंग सिस्टम और दुभाषियों को चलाने की अनुमति देती है। इन और अधिक शक्तिशाली प्रणालियों पर आप अभी भी सी और असेंबली भाषा का उपयोग करेंगे (ड्राइवर कोड के लिए, यदि कुछ और नहीं), लेकिन अन्य भाषाओं (जैसे जावा, लुआ, टीसीएल, रूबी, आदि) अधिक से अधिक आम हो रहे हैं। व्याख्या की गई भाषाओं का उपयोग करना एक मंच से दूसरे तक पोर्टिंग कोड को और भी आसान बनाता है, जब तक कि प्लेटफॉर्म में भाषा दुभाषिया के ऊपरी हिस्से को संभालने के लिए पर्याप्त संसाधन हों। कोई निम्न-स्तरीय कोड जो हार्डवेयर (ड्राइवर) के साथ सीधे इंटरफेस करता है, अभी भी आमतौर पर असेंबली या सी का उपयोग करता है क्योंकि उच्च-स्तरीय भाषाओं में हमेशा इस तरह की चीज करने की क्षमता नहीं होती है। एम्बेडेड ऑपरेटिंग सिस्टम के शीर्ष पर एप्लिकेशन के रूप में चल रहे कुछ भी आम तौर पर एक एमुलेटर या वर्चुअल मशीन के अंदर विकसित और परीक्षण किए जा सकते हैं, और इसलिए आप डेवलपर के साथ सहज होने वाली किसी भी भाषा में बहुत से कोड विकसित किए जायेंगे।
टीएलडीआर संस्करण: सी लोकप्रिय है क्योंकि यह एक बहुमुखी भाषा है जो लगभग सभी डेवलपर परिचित हैं। असेंबली लोकप्रिय है क्योंकि यह उन तरीकों से कम-स्तर की हार्डवेयर पहुंच की अनुमति देता है जो अन्यथा मुश्किल या असंभव होंगी। जावा जैसे व्याख्या/पटकथाएं अधिक लोकप्रिय हो रही हैं, लेकिन इन भाषाओं के लिए दुभाषियों की संसाधन आवश्यकताएं कुछ एम्बेडेड सिस्टम को संभालने के लिए बहुत अधिक हो सकती हैं। सी और असेंबली भाषाओं के लिए विकास/डिबगिंग उपकरण की गुणवत्ता की गुणवत्ता और विविधता इन विकल्पों को आकर्षक बनाती है।
+1। मुझे समझ में नहीं आता कि कोई भी इसे क्यों वोट देगा, इसे अकेले आक्रामक के रूप में चिह्नित करें। मुझे लगता है कि वे चाहते हैं कि आप सी के साथ रहें :) –
मैं इस तरह प्रतिक्रिया नहीं करता। बस उसे भूरे रंग में फीका दें। – Svante
लॉल, एक और आक्रामक चिह्न। कुछ लोगों के पास एक गुच्छा में अपने जाँघिया होते हैं। –