2010-12-02 14 views
9

आपको लगता है कि यह प्रश्न बेवकूफ है या कुछ नया आईटी छात्र के रूप में, मुझे लगता है कि जब मैं एक भाषा (पूर्व जावा) सीखता हूं, तो मुझे भूल जाता है कि मैंने पहले (पूर्व सी) ... या मैं सिंटैक्स मिश्रित करें .... तो क्यों सब कुछ एक में विलय न करें ताकि विद्यार्थियों को कई भाषाओं को सीखने की आवश्यकता न हो ... फिर बेकार प्रोग्रामिंग भाषाओं को मार दें ... एसक्यूएल जैसे मानक क्यों नहीं बनाते ????इतनी सारी प्रोग्रामिंग भाषाएं क्यों हैं?

+1

क्या आप वाकई यह प्रश्न यहां होना चाहिए? – mih

+0

ठीक है, शुरुआत के लिए, यदि आपने एक भाषा में उपलब्ध सभी भाषाओं की सभी क्षमताओं को बनाया है, तो सभी को हास्केल के तीरों जैसे सीखने शुरू करना होगा http://www.haskell.org/ghc/docs/latest/html/ users_guide/तीर notation.html। क्या आप वाकई चाहते हैं कि आप चाहते हैं? –

+1

यह प्रश्न इतना गहरा नहीं है क्योंकि यहां हर कोई सोचता है। – anonymous

उत्तर

6

विभिन्न भाषाओं को संबोधित या आलिंगन:

  • विभिन्न जरूरतों
  • विभिन्न प्लेटफार्मों
  • अंतर मॉडल (कार्यात्मक, OO आदि)
  • (विशिष्ट क्षेत्रों, विश्वसनीयता, आला कार्यक्रमों आदि को व्यक्त करने में आसानी में प्रदर्शन)
  • विभिन्न इतिहास

कई प्रोग्रामिंग भाषाएं हैं जो " सामान्य उद्देश्य "और अन्य जो किसी विशेष स्थिति के लिए विशिष्ट हैं ... लेकिन" सामान्य उद्देश्य "प्रोग्रामिंग भाषाओं के भीतर भी, कोई भी भाषा अन्य सभी को बदलने के लिए तैयार नहीं है।

ध्यान दें कि एसक्यूएल के आपके उदाहरण के साथ भी, अधिकांश डीबी विक्रेताओं के पास एसक्यूएल में अपना एक्सटेंशन होता है, जिन्हें "यहां एक प्रश्न है, मुझे परिणाम की एक तालिका दें" से परे डेटाबेस लेना आवश्यक है।

+1

तो सिंटैक्स को समान क्यों नहीं बनाते ??? मानक क्यों नहीं बनाते ?? – newbie

+0

@joy: कई भाषाएं साझा * समान * वाक्यविन्यास (उदा। सी, सी ++, जावा, सी #) लेकिन अलग-अलग भाषाओं को अलग-अलग वाक्यविन्यास मॉडल का पता लगाने की अनुमति देना नवाचार को प्रोत्साहित करने का एक हिस्सा है। विभिन्न परियोजनाओं में अलग-अलग आवश्यकताएं होती हैं और निकस होती है: हम "एक आकार में सभी फिट बैठते हैं" दुनिया में नहीं रहते हैं। –

+0

ठीक .. tnx .. तो मुझे लगता है कि मुझे सब कुछ पढ़ने की जरूरत है ... – newbie

2

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

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

आजकल, इतनी प्रसंस्करण शक्ति है कि हम अत्यधिक परिष्कृत प्रोग्रामिंग भाषाओं जैसे जावा और सी # का उपयोग कर सकते हैं जो प्रोग्रामिंग को बहुत सहज बनाते हैं, लेकिन सीपीयू चक्रों के संबंध में बहुत कुशल नहीं हैं।

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

जब आप प्रोग्रामिंग भाषा सीखते हैं, तो आपके लक्ष्य को सिंटैक्स सीखना नहीं चाहिए, बल्कि प्रोग्रामिंग के सिद्धांतों को समझना चाहिए। यदि आपको यह मिल गया है, तो आप अन्य भाषाओं को तुरंत उसी दिशा में सीख सकते हैं जब तक वे समान प्रतिमानों (ऑब्जेक्ट उन्मुख, प्रक्रियात्मक, कार्यात्मक, ...)

2

जबकि 'एक भाषा उन्हें सभी पर शासन करने' का विचार एक दिलचस्प है सैद्धांतिक विचार, किसी भी भाषा जो सभी परिस्थितियों में सभी चीजों के लिए प्रयास करती है, अंततः अपने वजन के नीचे खत्म हो जाएगी।

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

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

मेरे करियर में, मैंने कोबोल, फोरट्रान, सी, पास्कल, वीबी, सी #, वीबी.Net, जावास्क्रिप्ट, और रूबी (एक्सएएमएल, एसक्यूएल, एचटीएमएल, सीएसएस इत्यादि जैसी चीजों का उल्लेख नहीं किया है) में कोड किया है।

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

+0

+1। मैं आपके द्वारा लिखे गए कार्यों से सहमत हूं लेकिन एक अन्य उत्पादकता कारक के बारे में सावधानी बरतता है जिसे अनदेखा किया जा रहा है: एक भाषा से दूसरी भाषा में स्विचिंग, ऑन-डिमांड (और मुझे लगता है कि आप पहले से ही उन भाषाओं को जानते हैं, हमने इसमें फ़ैक्टर नहीं किया है सीखने वक्र अभी तक ...) –

संबंधित मुद्दे