विषय
किसी भी प्रोग्रामिंग भाषा का लक्ष्य एक महंगे पेपरवेट कंप्यूटर को उपयोगी डेटा प्रोसेसिंग और स्टोरेज डिवाइस में बदलना है। इस कार्य को करने के लिए चुनी गई भाषा को दक्षता और उपयोग में आसानी के बीच संतुलित होना चाहिए। मशीन भाषा दोनों कारकों के लिए स्पेक्ट्रम के सिरों का प्रतिनिधित्व करती है।
मशीन भाषा
मशीनी भाषा निर्देशों का एक ही सेट पैदा करती है जो एक अनुवादक के बिना एक कंप्यूटर समझता है। कंप्यूटर ऑडियो और वीडियो चलाने, प्रक्रिया करने और डेटा संग्रहीत करने, इंटरनेट के साथ संवाद करने और अन्य विशिष्ट कार्यों को करने में सक्षम हैं, निर्देशों के एक सेट का जवाब देते हैं जो केवल लोगों और शून्य को पहचानता है। केवल लोगों और शून्य के साथ कोड की सैकड़ों लाइनें लिखना एक थकाऊ काम है जो सी और जावा जैसी उच्च-स्तरीय भाषाओं की लोकप्रियता में योगदान देता है।
प्रारंभिक लाभ
IBM का पहला पर्सनल कंप्यूटर 512 KB की रैंडम एक्सेस मेमोरी और 360 KB की फ्लॉपी डिस्क ड्राइव से लैस था। ऑपरेटिंग सिस्टम को फ़्लॉपी डिस्क से मेमोरी में लोड करने के बाद, डेटा को प्रोसेस करने के लिए सक्रिय प्रोग्राम के लिए, आमतौर पर 100 केबी से कम रैम के एक छोटे से क्षेत्र को छोड़कर, शेष मेमोरी स्पेस में प्रोग्राम लोड किए जाते थे। उस समय के दौरान, एक प्रोग्रामर की प्राथमिक चिंता संक्षिप्त और कुशल कोड बनाने की थी। इन कंप्यूटरों पर सबसे अधिक उपयोग किया जाने वाला प्रोग्रामिंग टूल मशीन भाषा था, जो कि BASIC या C. में लिखे गए संस्करण से काफी छोटा हो सकता है। असेंबली भाषा का उपयोग करना भी थोड़ा आसान था।
मंच पर निर्भरता
मशीन भाषा सीधे कंप्यूटर के हार्डवेयर की ओर इशारा करती है, जिससे प्रोग्रामर को प्रोग्राम चलाने के हर पहलू का पूरा नियंत्रण मिल जाता है। इस दृष्टिकोण का नुकसान यह है कि प्रोग्रामर को प्रभावी कोड लिखने के लिए एकीकृत सर्किट (चिपसेट) के प्रत्येक सेट की वास्तुकला को जानना चाहिए। जब कोई घटक जैसे कि वीडियो कार्ड या डिस्क नियंत्रक को बदल दिया जाता है, तो नए डिवाइस को पहचानने और उपयोग करने के लिए कोड को अपडेट किया जाना चाहिए।
उच्च स्तरीय भाषाएं
बाइनरी कोड में चिप-लेवल निर्देश लिखने की कठिनाई से मशीन भाषा की गति और कम मेमोरी उपयोग के लाभ से बाहर हैं। रैम के गीगाबाइट्स और स्टोरेज के टेराबाइट्स की उपलब्धता ने आधुनिक व्यक्तिगत कंप्यूटरों पर संक्षिप्त और कुशल कोड की आवश्यकता को समाप्त कर दिया है। उच्च-स्तरीय भाषाओं में लिखे गए कार्यक्रमों की अतिरिक्त मेमोरी और भंडारण की मांग, जैसे कि सी और जावा, अब एक विकास मंच चुनने के लिए एक कारक नहीं हैं। अधिकांश आधुनिक सॉफ्टवेयर परियोजनाओं में गति और दक्षता के लिए उपयोग और रखरखाव में आसानी पसंदीदा कारक हैं।