यह क्यों मायने रखता है कि HTML और CSS प्रोग्रामिंग लैंग्वेज नहीं हैं?


158

यहाँ उदाहरण:

अगर मुझे वेब एप्लिकेशन बनाने में दिलचस्पी है, तो मुझे कौन सी भाषाओं का पता होना चाहिए?

हां, मैं समझता हूं कि HTML और CSS ट्यूरिंग-पूर्ण नहीं हैं। हां, मैं समझता हूं कि वे घोषणात्मक हैं, अनिवार्य भाषा नहीं। लेकिन जब लोग इन भाषाओं के बारे में सवाल पूछते हैं तो लोग हमेशा इस पांडित्य (और यकीनन स्पष्ट) तथ्य के साथ सिर पर क्यों चढ़े रहते हैं?


32
यह केवल मुझे परेशान करता है जब लोग इसे फिर से शुरू करने पर लगाते हैं। यह केवल बदतर है जब उन्होंने जावास्क्रिप्ट को "भाषा के अनुभव:" के तहत जावास्क्रिप्ट के बगल में रखा।
जोश के

19
यह मेरे लिए बहुत स्पष्ट लगता है: अगर मुझे यह पता लगाने की आवश्यकता है कि कैसे काम पर रखा जाए, या किसी विशेष कार्य को कैसे सौंपा जाए, तो मुझे यह जानना होगा कि उनके पास क्या कौशल है। यदि असाइनमेंट में एक एल्गोरिथ्म को लागू करना शामिल है, तो मैं इसे किसी ऐसे व्यक्ति को नहीं देने जा रहा हूं जिसकी केवल HTML / CSS में पृष्ठभूमि है। मैं किसी ऐसे व्यक्ति को असाइन नहीं करने जा रहा हूं जिसके पास केवल पृष्ठभूमि लेखन कमांड लाइन सी प्रोग्राम है जो जटिल वेब पृष्ठों का एक गुच्छा लिखने के लिए है जिन्हें कई ब्राउज़रों पर काम करना है। मुझे नहीं पता कि आप लोगों को काम पर रखने या प्रबंधित करने की स्थिति में हैं, लेकिन आप बहुत से ऐसे लोगों में भाग लेते हैं जो इन कार्यों को करने के लिए विनिमेय हैं।
चार्ल्स ई। ग्रांट

8
डेटा सिर्फ गूंगा कोड है और कोड सिर्फ स्मार्ट डेटा है: stackoverflow.com/questions/871833/…
क्रिस्टोफर हम्मारस्ट्रॉम्म

14
लोग ओपी के प्रश्न को समझने में असफल हो रहे हैं जो अधिक कुंद शब्दों में होगा: "ऐसा क्यों है कि एक निश्चित प्रकार का टवीट, सामान्यीकृत 'भाषाओं के बारे में चर्चा में,' सीएसएस को एक प्रोग्रामिंग भाषा नहीं है। ? " सबसे पहले, duh। धन्यवाद। कोई भी जो जानता है कि मामूली जावास्क्रिप्ट चाल का एक मुट्ठी भर भी वह प्राप्त करने जा रहा है। क्या CSS की महारत का मतलब किसी प्रोग्रामर से है जिसका वहां होना और उस पर महारत हासिल करना है? अरे हाँ। हाँ यह करता है। मुझे परवाह नहीं है अगर हम अगले मंगल रोवर की प्रोग्रामिंग कर रहे हैं, तो यह एक निश्चित टाई-ब्रेकर है।
एरिक रेपेने

7
इस संदर्भ में सोचने के लिए XSLT एक दिलचस्प मामला है ...
Dan Diplo

जवाबों:


300

क्या अंतर है, वास्तव में?

एक प्रोग्रामिंग भाषा और इन अन्य भाषाओं के बीच वास्तविक और महत्वपूर्ण अंतर यह है:

HTML और CSS प्रस्तुति का वर्णन करते हैं , जबकि प्रोग्रामिंग भाषाएं फ़ंक्शन का वर्णन करती हैं

मैं यह वर्णन करने का इरादा रखता हूं कि यह अंतर क्यों मायने रखता है, लेकिन इस मुद्दे पर वह पैतृकता कभी-कभी गलत होती है।

एक सच्ची कहानी :

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

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

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

मुझे यह कहते हुए खुशी हो रही है कि प्रश्न में प्रबंधक को समझा गया था कि मेरा दृष्टिकोण वह था जो उसकी वास्तविक व्यावसायिक आवश्यकताओं को पूरा करता था।

प्रस्तुति का महत्व :

अक्सर एक निहितार्थ होता है कि एचटीएमएल, सीएसएस आदि में कौशल किसी भी तरह "वास्तविक" प्रोग्रामिंग भाषाओं में कौशल से नीच हैं। यह एक गंभीर गलती है।

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

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

इसलिए, प्रस्तुति-उन्मुख भाषा (HTML, CSS) महत्वपूर्ण हैं। उन लोगों द्वारा जोड़ा गया मूल्य जो इन उपकरणों का प्रभावी ढंग से उपयोग कर सकते हैं, उन्हें कम करके आंका नहीं जाना चाहिए।

वास्तविक प्रोग्रामिंग भाषाओं का महत्व

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

(संयोग से, महत्वपूर्ण बात टीसी है। घोषणात्मक बनाम अनिवार्यता यहां एक लाल-हेरिंग है। एसक्यूएल, उदाहरण के लिए, घोषणात्मक है, लेकिन यह एक उचित प्रोग्रामिंग भाषा भी है क्योंकि यह टीसी है।)

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

जैसा कि मेरी कहानी में हाइलाइट किया गया है, HTML और उसके ilk का उपयोग प्रस्तुतिकरण के लिए किया जाता है। वास्तविक प्रोग्रामिंग भाषाओं का उपयोग कार्यक्षमता का उत्पादन करने के लिए किया जाता है।

प्रोग्रामर्स को इस बारे में पांडित्य क्यों है?

  1. प्रोग्रामर अपने कौशल को विकसित करने में बहुत समय, प्रयास और पैसा खर्च करते हैं। लोग स्वाभाविक रूप से उन चीजों को महत्व देते हैं जिनमें वे निवेश करते हैं ("आपका दिल जहां आपका पैसा है")।
  2. प्रोग्रामर अक्सर यूआई डिजाइनरों द्वारा हासिल किए गए तेजी से परिणाम की तुलना में परिणामों का उत्पादन करने में लगने वाले समय को उचित ठहराने की आवश्यकता महसूस करते हैं। ऐसा करने के लिए, उन्हें दो समूहों के बीच अंतर करने की आवश्यकता है जो वास्तव में करते हैं
  3. क्योंकि नियोक्ताओं को सही लोगों को सही नौकरियों पर लागू करने की आवश्यकता है। जब तक हम (अक्सर तकनीकी) मतभेदों को स्पष्ट नहीं करते हैं, प्रबंधक आसानी से गलत कॉल करते हैं।
  4. क्योंकि ऊपर उल्लिखित वास्तविक और मूलभूत अंतर है।

क्या हमेशा पांडित्य होना उचित है?

आइए इसका सामना करते हैं, प्रोग्रामर के रूप में हम स्वाभाविक रूप से पांडित्य हैं । यह क्षेत्र के अनुसार होता है। यह मदद नहीं करता है कि जब गैर-प्रोग्रामर हम क्या करते हैं यह समझने में नाकाम रहे हैं तो हम में से कई को जला दिया गया है।

फिर भी (और ईमानदार होने के लिए, यह मेरी प्राकृतिक प्रवृत्ति के खिलाफ जाता है), मुझे नहीं लगता कि जब भी वे हर छोटे से अधिक अंतर पर खिसकते हैं, तो हमें लोगों को बाहर बुलाने की आवश्यकता होती है

यहां महत्वपूर्ण बातें संदर्भ और परिप्रेक्ष्य हैं

मुझे बताया गया है कि, एक जीवविज्ञानी के दृष्टिकोण से, एक टमाटर एक फल है। लेकिन जब मैं उन्हें सुपरमार्केट में खरीदता हूं, तो मैं उन्हें सब्जियों के बीच देखता हूं। क्यों? क्योंकि तकनीकी अंतर उस विशेष संदर्भ में मायने नहीं रखता है। इसके अलावा, भेद वास्तव में उनकी उपयोगिता के रास्ते में मिलेगा : यदि मैं पर्याप्त रूप से टमाटर को फलों के सलाद में शामिल करने के लिए पर्याप्त था, उदाहरण के लिए।

कंप्यूटर भाषाओं के साथ भी ऐसा ही है। ऐसे समय होते हैं जब प्रोग्रामिंग भाषाओं और अन्य भाषाओं के बीच अंतर वास्तव में मायने रखता है । अक्सर, हालांकि, हम सभी पूरी तरह से प्रभावी ढंग से संवाद कर सकते हैं जब बस उन सभी को एक साथ गांठ लगाते हैं। ओपी द्वारा जुड़े प्रश्न के मामले में, यह वास्तव में मायने नहीं रखता था कि कौन सी भाषाएं वास्तविक प्रोग्रामिंग भाषाएं थीं और जो नहीं थीं। भेद को इंगित करना किसी भी तरह से चर्चा को आगे नहीं बढ़ाता है। शुक्र है, एक छोटे से शोर को जोड़ने के अलावा (और एक दिलचस्प चर्चा के लिए उत्तेजना बन गया!) ओपी द्वारा जुड़ा हुआ वंशावली थोड़ा परिणाम था। हालांकि, इसकी सबसे खराब स्थिति में, पैदल सेना नकारात्मक भावनाओं को उत्तेजित कर सकती है और रिश्तों को नुकसान पहुंचा सकती है ... कम से कम मेरी पत्नी के अनुसार।
:-)

प्रोग्रामरों के बीच पैदल सेना से कैसे निपटें

मेरे एक उपदेशक मित्र ने एक बार धर्मोपदेश दिया था:

क्या यह मरने लायक पहाड़ी है?

वह उन जनरलों का जिक्र कर रहे थे जो रणनीतिक मूल्यांकन करते हैं कि किन लड़ाईयों में लड़ने लायक है: क्या लाभ लागत के लायक हैं?

  • क्या वास्तव में इस अंतर को बनाने के लिए चर्चा के प्रवाह को बाधित करना लायक है?
  • क्या मेरा पांडित्य अहंकार की भावना से या अतीत की चोट से है?
  • क्या मेरी टिप्पणी दूसरों के कौशल के साथ-साथ मेरे स्वयं के भी मूल्य हैं?

बेशक, ऐसे समय होते हैं जब भेद करने की आवश्यकता होती है। मेरा उद्देश्य यह है कि जब मैं कोई योगदान करता हूं, तो यह हमारे सामूहिक प्रयासों में मूल्य जोड़ देगा।

यही है, आखिरकार, हर असली प्रोग्रामर की नौकरी ।


4
मुझे नहीं लगा कि SQL ट्यूरिंग-पूर्ण था, जब तक आप T-SQL या PL / SQL के बारे में बात नहीं कर रहे हैं।
FrustratedWithFormsDesigner

@FrustratedWithFormsDesigner: आप सही कह रहे हैं! मुझे उस पर लेने के लिए धन्यवाद। (हालांकि, मैं जो बिंदु खड़ा कर रहा हूं - वह घोषणात्मक भाषाएं टीसी हो सकती हैं)
क्रामि

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

4
+1: जोएल स्पोलस्की के पास एक दिलचस्प ब्लॉग पोस्ट है जो फ़ंक्शन बनाम आकर्षक GUI के साथ समस्या उठाती है। विशेष रूप से कार्यशीलता नहीं होने पर 100% समाप्त और बहुत आकर्षक जीयूआई दिखाने के खतरे। यदि आप इसे पढ़ते हैं तो एक अच्छा पाठ। joelonsoftware.com/articles/fog0000000356.html
लियो

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

116

एक सिविल या मैकेनिकल इंजीनियर को बताएं कि आपने "सॉफ्टवेयर इंजीनियरिंग" का अध्ययन किया है और वे आपको बताएंगे कि "सॉफ्टवेयर इंजीनियरिंग" वास्तविक इंजीनियरिंग नहीं है ।

एक एफ -16 पायलट को बताएं कि आप सेसना को मनोरंजन के लिए उड़ाते हैं और वह आपको बताएगा कि आप असली पायलट नहीं हैं।

एक डॉक्टर को बताएं कि आप एक हाड वैद्य हैं और वह आपको बताएगा ... ठीक है, चलो वहाँ मत जाओ :-)

मुझे लगता है कि यह ज्यादातर ऐसा है कि लोग अपने पेशे के विचार को ढोंगियों या ऐसे लोगों द्वारा घुसपैठ करना पसंद नहीं करते हैं जो वास्तव में "योग्य" नहीं हैं।

अब, निष्पक्ष होने के लिए, यह काफी स्पष्ट है कि HTML और CSS प्रोग्रामिंग लैंग्वेज नहीं हैं। वे कोई और प्रोग्रामिंग भाषा नहीं हैं जो .docx प्रारूप एक प्रोग्रामिंग भाषा है, और यह दावा करने के लिए कि आप एक प्रोग्रामर हैं यदि आप सभी जानते हैं कि HTML और CSS निश्चित रूप से गलत है। लेकिन मुझे लगता है कि उत्तर में कुछ घबराहट के लिए जिम्मेदार ठहराया जा सकता है जो मैंने ऊपर कहा था।

साथ ही, आपके द्वारा लिंक किए गए प्रश्न में, प्रश्नकर्ता ने HTML और CSS को "भाषा" कहा, न कि "प्रोग्रामिंग भाषा"। HTML एक मार्कअप भाषा है और CSS एक भाषा भी है (मुझे नहीं पता कि आप किस तरह की भाषा "CSS" को कहते हैं, हालाँकि?), इसलिए मुझे लगता है कि उन्हें "भाषा" कहकर पुकारना थोड़ा अनुचित था। "...


7
"मुझे नहीं पता कि आप किस तरह की भाषा" सीएसएस "कहेंगे, हालांकि?" - एक चुटकी "शैली विवरण भाषा" पर करना होगा।
ओकोडो डे

28
@ acidzombie24: "HTML" में "L" किसके लिए है?
डीन हार्डिंग

8
यदि इसमें वाक्य रचना और शब्दार्थ है, तो यह दावा करना बहुत कठिन है कि यह भाषा नहीं है। HTML और CSS दोनों भाषाएं इन मानदंडों के अनुसार हैं (जैसा कि अंग्रेजी, एस्पेरांतो, क्लिंगन और यकीनन यूएमएल हैं)। उनमें से कोई भी "प्रोग्रामिंग" भाषा नहीं है, हालांकि।
Zach

6
@ हार्ड हार्डिंग - हाइपर टेक्स्ट मार्कअप लेगोस?
वर्चुओसीमीडिया

4
CSS शैली का वर्णन करने के लिए एक DSL (डोमेन विशिष्ट भाषा) है (अर्थात यह डोमेन दृश्य सौंदर्यशास्त्र है)
पॉल

9

यह वास्तव में मेरे लिए बहुत मायने नहीं रखता।

लेकिन मैं मानता हूं कि जिनके लिए यह करता है, उनमें HTML, CSS, XML, आदि और रियल प्रोग्रामिंग लैंग्वेज ™ के बीच का अंतर निर्माण सामग्री के रूप में लकड़ी और पेंट के बीच के अंतर की तरह है। आप लकड़ी के साथ पेंट की तरह चीजों का निर्माण नहीं कर सकते हैं, और इसी तरह आप HTML के साथ प्रोग्राम नहीं कर सकते हैं जैसे आप एक आरपीएल के साथ कर सकते हैं।

हालांकि, कुछ वार्तालापों के लिए, इस तरह का अंतर करना अप्रासंगिक हो सकता है और इसलिए पांडित्यपूर्ण और कष्टप्रद है।


1
XML एक बुरा उदाहरण है क्योंकि यह HTML / CSS से अधिक सामान्य है - XSLT, उदाहरण के लिए XML और Turing-complete दोनों है। मुझे लगता है कि एक्सएमएल वास्तव में सिर्फ वाक्यविन्यास के रूप में एक भाषा नहीं है - यह निर्दिष्ट करता है कि टोकन कैसे परिभाषित किए जाते हैं लेकिन उनका मतलब नहीं है।
तिखन जेल्विस

@TikhonJelvis मुझे लगता है कि हम मूल रूप से एक ही बात कह रहे हैं, लेकिन ऐसा करते समय आप मेरी बात साबित कर रहे हैं। एक्सएमएल (एक्सटेन्सिबल मार्कअप लैंग्वेज) चाहे "भाषा" हो या "वाक्यविन्यास" हो, बालों को विभाजित करना ज्यादातर उस बिंदु के लिए अप्रासंगिक है, जैसा कि मैं बना रहा था, और इसलिए ...
एरिक किंग

6

यह एक "महत्वपूर्ण" अंतर नहीं हो सकता है, क्योंकि यकीनन कुछ वेबसाइटों के html / css हिस्से में उतना ही काम हो जाता है जितना कि प्रोग्रामिंग भाग में।

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

यदि एक डिजाइनर का मानना ​​है कि HTML प्रोग्रामिंग कर रहा है, तो उसे एडोब टूल के साथ डिजाइन करने और प्रिंट से संबंधित डिजाइन करने दें; लेकिन विश्वास मत करो कि वह वेब ऐप्स के बारे में कह सकता है।

यदि कोई डेवलपर सोचता है कि वह डिजाइनरों से ऊपर है क्योंकि 'उसकी' भाषाएं ट्यूरिंग-पूर्ण हैं, तो उससे अपेक्षा न करें कि वह डिजाइनर के साथ अच्छे से काम करेगा, या ऐसा होने के बाद उसका कोड 'पूर्व-निर्धारित' हो सकता है।


@ जेवियर: "प्रोग्रामिंग भाषा" की आपकी परिभाषा क्या है?
क्रिस्टोफर हैमरस्ट्रॉम 12

@ क्रिस्तोफ़र हैमरस्ट्रॉम्: यदि औपचारिक परिभाषा देने के लिए दबाया जाता है, तो मैं ट्यूरिंग-पूर्णता के साथ जाता हूं; लेकिन अनौपचारिक रूप से मैं सिर्फ यह कहता हूं कि कुछ इनपुट के जवाब में, एक प्रोग्राम चीजें करता है । आमतौर पर, अगर कोई रन-टाइम if ... thenनिर्माण नहीं है और किसी तरह से चीजों को पहले से अज्ञात संख्या में दोहराने के लिए, मैं यह कहना चाह रहा हूं कि यह प्रोग्रामिंग भाषा नहीं है। बेशक, कुछ फ्रिंज भाषाएं हैं जो परिभाषा को जटिल करती हैं; लेकिन HTML / CSS इससे बहुत दूर हैं ।
जेवियर

@ जेवियर: क्या आप कहेंगे कि कैनोनिकल "हैलो वर्ल्ड" एक प्रोग्राम है, जिसे देखते हुए यह कोई इनपुट नहीं लेता है?
क्रिश्चोफ़र हैमरस्ट्रॉम

@ जेवियर: विकिपीडिया ( en.wikipedia.org/wiki/… ) पर एक चर्चा के अनुसार , पिक्सेल शैडर भाषाओं के शुरुआती संस्करण ट्यूरिंग-पूर्ण (कोई "सामान्यीकृत पुनरावृत्ति क्षमता" नहीं थे, अर्थात "चीजों को पहले से दोहराने का कोई तरीका" अज्ञात समय ")। ये केवल लोकप्रिय खेलों में ग्राफिक्स प्रोसेसिंग यूनिट की प्रोग्रामिंग में प्रोग्रामर द्वारा उपयोग की जाने वाली भाषाएं थीं। क्या आप अब भी कहेंगे कि वे प्रोग्रामिंग लैंग्वेज नहीं थे?
क्रिस्टोफर हैमरस्ट्रॉम 14

@Christoffer: नमस्कार दुनिया को इनपुट की आवश्यकता है: आपको इसके निष्पादन की शुरुआत करनी होगी यद्यपि पिक्सेल शेडर के बारे में आपका अवलोकन पेचीदा है।
रॉबर्ट हार्वे

5

आप इसे सिर पर मारते हैं जब आपने कहा था "घोषणात्मक, अनिवार्य नहीं"। मार्कअप (यह HTML, सीएसएस, या जो भी हो) चीजों का वर्णन करता है। प्रोग्रामिंग का पूरा बिंदु चीजों को करना है।

मार्कअप का उपयोग करने के लिए आवश्यक कौशल सेट प्रोग्राम के लिए आवश्यक कौशल सेट से पूरी तरह से अलग है।

मार्कअप लिखने से हल की गई समस्याएं प्रोग्रामिंग द्वारा हल की गई समस्याओं के प्रकारों से पूरी तरह से अलग हैं।


16
शुद्ध कार्यात्मक प्रोग्रामिंग भाषा उनकी बहुत ही प्रकृति घोषणात्मक है। तो लिनक, पायथन की सूची की समझ, XAML, XSLT, SQL और Prolog है। जिनमें से सभी bona fide प्रोग्रामिंग लैंग्वेज और / या कॉन्सेप्ट्स हैं। जबकि सबसे प्रोग्रामिंग भाषाओं अनिवार्य कर रहे हैं, यह है नहीं परिभाषित विशेषता। बिल्कुल भी।
कोनराड रुडोल्फ

@KonradRudolph - यदि आपको लगता है कि विशुद्ध रूप से कार्यात्मक प्रोग्रामिंग भाषाएं किसी भी अर्थ में घोषणात्मक हैं, तो आपको उन्हें बहुत अच्छी तरह से नहीं समझना चाहिए।
जोनाथन कास्ट

@jcast यह पूरी तरह से संभव है कि मैं कुछ गलत समझ रहा हूं। लेकिन फिर क्षेत्र में विशेषज्ञों, तो जाहिरा तौर पर; एक सामान्य संदर्भ के लिए, विकिपीडिया वर्गीकृत (विशुद्ध रूप से) कार्यात्मक प्रोग्रामिंग भाषाओं को घोषणात्मक के रूप में वर्गीकृत करता है। एक विशिष्ट उदाहरण के रूप में, एक पॉल बोन, जिसके पास शुद्ध घोषणात्मक भाषाओं पर काम करने के लिए पीएचडी है, भी इस परिभाषा का अनुसरण करता है। मुझे यह जानने के लिए उत्सुक होना चाहिए कि आप किस कारण से परिभाषा में अपराध करते हैं।
कोनराड रुडोल्फ

5

यह कुछ लोगों के लिए मायने रखता है क्योंकि न तो सतह पर रॉकेट विज्ञान हैं, बल्कि इस तथ्य के कारण कि उनके आसपास के आर्काना का एक बड़ा सौदा है, वे आमतौर पर 5 से दर्जनों अलग-अलग वातावरणों में लागू करते हैं जिनके बारे में आप वास्तव में परवाह करते हैं। उस तरह की अप्रत्याशितता और शिल्प पर ध्यान देने से कुछ खास किस्म के टेक पेशेवर डर जाते हैं, जो बिना किसी जोखिम के भयभीत हो जाते हैं और यहां तक ​​कि कुछ भी सीखकर और भी ज्यादा भयभीत हो जाते हैं।

अगर किसी ने मुझसे पूछा कि मुझे कौन सी भाषाएं पता हैं और मैंने सीएसएस को वहां फेंक दिया और उन्होंने कहा "लेकिन यह एक वास्तविक भाषा नहीं है" मैं उनसे पूछूंगा कि वे IE 5, IE 6-8 और IE9 + में एक केंद्र को लंबवत रूप से कैसे संभालेंगे। तब हम गोल कोनों, अल्फा पारदर्शिता के मुद्दों पर आगे बढ़ सकते थे, इन सभी हास्यास्पद तालिकाओं के रूप में असली अपराधी के पीछे-पीछे तर्क जो केवल अभी-अभी शुरू होने वाले हैं वास्तव में अप्रासंगिक हो गए हैं और उबेर-कोडर के लिए दर्जनों और विषय जो शायद एक जानता है भाषा और एक या दो का दावा करता है कि वह 10 साल पहले कॉलेज में लेने के लिए मजबूर होने वाली कक्षाओं के कारण मुश्किल से कार्यात्मक साक्षर है।

वे निश्चित रूप से 'भाषा' हैं। मैं उन्हें 'प्रोग्रामिंग लैंग्वेज नहीं कहूंगा।' मुझे इन भाषाओं में लिखने की प्रक्रिया का वर्णन करने में सहज महसूस होगा।

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


2
+1। मुझे नहीं पता कि मैंने कितनी बार "प्रोग्रामर" सुना है कि HTML / CSS को सरल और वास्तविक प्रोग्रामिंग के रूप में नीचे रखा जाए। फिर, जब वे यह पता नहीं लगा सकते हैं कि उनकी बुलेटेड सूची केवल फ़ायरफ़ॉक्स में ठीक तरह से ऊपर क्यों जाती है, तो वे अपने हाथों को ऊपर उठाते हैं और घोषणा करते हैं कि पूरा वेब आधुनिक सॉफ्टवेयर के लिए अनुपयुक्त है :(
ग्राहम

3

HTML और CSS प्रोग्रामिंग लैंग्वेज नहीं हैं। इससे छुटकारा मिले।

हालाँकि: जावास्क्रिप्ट एक प्रोग्रामिंग भाषा है। मशीन ब्राउज़र है। PHP एक प्रोग्रामिंग लैंग्वेज है। मशीन एक वर्चुअल सर्वर में एक है।

इसलिए यदि आप केवल HTML और CSS का उपयोग कर रहे हैं, तो आप कोई प्रोग्रामिंग नहीं कर रहे हैं (हालाँकि आप कुछ इंजीनियरिंग कर रहे हैं)।

लेकिन अगर आप जावास्क्रिप्ट, PHP, या किसी अन्य स्क्रिप्टिंग भाषा का उपयोग कर रहे हैं। आप प्रोग्रामिंग कर रहे हैं।

वास्तविक प्रोग्रामिंग भाषाओं के लिए के रूप में। यदि आप एक मशीन (वास्तविक एक, या आभासी) पर काम कर रहे हैं। और चीजों को करने के लिए मशीन को बताने के लिए अपने स्वयं के एल्गोरिदम का उपयोग कर रहे हैं। फिर आप एक वास्तविक प्रोग्रामिंग भाषा का उपयोग कर रहे हैं।


6
इसलिए मुझे लगता है कि हम HTML, सीएसएस और एसक्यूएल के साथ वितरण कर सकते हैं क्योंकि, आखिरकार, वे वैसे भी वास्तविक प्रोग्रामिंग भाषा नहीं हैं। वास्तव में, हम आईडीई के साथ भी बहुत दूर हो सकते हैं, क्योंकि कोई भी प्रोग्रामर अपने नमक के लायक कमांड लाइन संपादक के साथ कर सकता है।
रॉबर्ट हार्वे

4
मैंने इस उत्तर को व्यक्तिगत रूप से अस्वीकार नहीं किया है (मुझे लगता है कि -6 पर्याप्त है!), लेकिन मुझे लगता है कि गिरावट का कारण यह होगा कि यह वास्तव में सवाल का जवाब नहीं देता है। सवाल यह नहीं है कि "HTML और CSS प्रोग्रामिंग लैंग्वेज हैं?", सवाल यह है कि "यह क्यों मायने रखता है?"
डीन हार्डिंग

6
@ रॉबर्ट यह पूरी तरह से विश्वसनीय है। "एक्स बेकार है" रिकार्डो के तर्क से पालन नहीं करता है कि "एक्स एक वाई नहीं है"।
मैथ्यू

4
@Lennart Regebro @Robert हार्वे: @Matthew पढ़ें की स्थिति यहाँ बातचीत का केंद्र है - आप एक झूठ के खंडन के साथ श्रेष्ठता की भावना की बराबरी कर रहे हैं। HTML / CSS है असाधारण मुश्किल है, मैं लोगों को मेरे लिए यह कर सकते हैं, जो के रूप में मैं नहीं जहां अच्छा के पास उस पर पर्याप्त हूँ किराया, मैं कौशल की कमी है। यह एक तकनीकी डिजाइन कौशल है, यह प्रोग्रामिंग नहीं है
परिक्रमा

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

3

प्रोग्रामिंग लैंग्वेज एक अनुभवहीन शब्द है क्योंकि यह एक सामान्य शब्द है जिसका उपयोग चिकित्सकों और सामान्य व्यक्ति द्वारा भी किया जाता है। चिकित्सकों का उस शब्द का एक सूक्ष्म अर्थ होता है जहाँ आम तौर पर व्यक्ति नहीं करता है। आम तौर पर उनकी परिभाषा यह है कि अगर इसमें मजाकिया शब्द / वाक्य रचना है जो मुझे तुरंत समझ में नहीं आता है और प्रोग्रामर इसका उपयोग करते हैं तो यह एक प्रोग्रामिंग भाषा होनी चाहिए। निशान से पूरी तरह से नहीं, लेकिन हम सहमत हो सकते हैं कि यह अक्षम है।

बहुत विशिष्ट अर्थों के साथ घोषणात्मक, अत्यावश्यक और पूर्ण रूप से सही होने जैसे शब्द अधिक सटीक हैं। जब आप एक प्रश्न पूछते हैं कि HTML / CSS एक प्रोग्रामिंग भाषा क्यों नहीं है, तो आप एक अधिक सटीक परिभाषा के लिए पूछ रहे हैं कि प्रोग्रामिंग भाषा वास्तव में क्या है। हमें पांडित्य नहीं दिया जा रहा है, लेकिन आपके प्रश्न का उत्तर देने की कोशिश की जा रही है। क्या वे उपयोग करने के लिए सबसे अच्छे शब्द हैं, भले ही आप उन्हें Google समझें कि उनका क्या मतलब है? निर्भर करता है। क्या आप छोटा या लंबा जवाब चाहते हैं। :-)

प्रोग्रामिंग भाषाओं को आमतौर पर प्रोग्रामर द्वारा टर्निंग-पूर्ण होने के बारे में सोचा जाता है, लेकिन इसका क्या मतलब है? इसका मतलब है कि भाषा व्यवहार का वर्णन कर सकती है या चीजों को कैसे करना है। हम औपचारिक रूप से इसे तर्क कहते हैं। HTML / CSS वर्णन कर सकते हैं कि शीर्ष दाएं कोने में स्थित एक बटन है, या 4 कॉलम 5 पंक्तियों के साथ एक तालिका है, पहली दो पंक्तियां पीली हैं, और नीचे की पंक्ति में हरे रंग का पाठ है, और तालिका में प्रत्येक सेल में 5 पिक्सेल हैं सामग्री के चारों ओर रिक्त स्थान।

HTML / CSS क्या नहीं कर सकता है जब आप बटन पर क्लिक करते हैं तो व्यवहार या तर्क व्यक्त करते हैं। यह नहीं कह सकता कि जब मैं उस बटन को क्लिक करता हूं तो उस तालिका से मान प्राप्त करते हैं और उन्हें जोड़ते हैं, और उस मूल्य को तालिका के नीचे एक नई पंक्ति में लिखते हैं। व्यवहार का वर्णन मोटे तौर पर पांडित्य प्राप्त किए बिना टर्निंग-पूर्ण के बराबर है।

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


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

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

1

यहाँ मेरे दो सेंट हैं। HTML और CSS स्पष्ट रूप से प्रोग्रामिंग लैंग्वेज नहीं हैं। उस कारण से, जब मैं "प्रोग्रामिंग लैंग्वेज" के तहत किसी के रिज्यूम पर HTML या CSS देखता हूं, तो बस मुझे बताता है कि यह व्यक्ति नहीं जानता कि वह किस बारे में बात कर रहा है।

इसके अलावा, नहीं, यह वास्तव में कोई फर्क नहीं पड़ता।

वैसे, प्रोग्रामर आमतौर पर पांडित्यपूर्ण होते हैं। वह बस नौकरी के साथ आता है।


4
तो आपके मन में किसी के लिए कोई जगह नहीं है, बस इसके बारे में लगभग अनुमान लगाया जा सकता है क्योंकि वे भाषा के खंड को चिह्नित करने के लिए जगह बर्बाद नहीं करना चाहते हैं? मेरे लिए यह है कि क्या उपयोगी है परे परे तरीका है।
जॉन हॉपकिंस 12

1
+1 जब मैं 'प्रोग्रामिंग' के तहत HTML / CSS के साथ CV देखता हूं, तो मैं आगे नहीं पढ़ता हूं। या तो वह अंतर नहीं जानता (इसलिए मेरे लिए उसका कोई उपयोग नहीं है), या मुझे आशा है कि मुझे अंतर नहीं पता है (इसलिए मैं उसके साथ काम नहीं करना चाहता)
जेवियर

2
@ जौन हॉपकिंस: विस्तार करने के लिए ध्यान देना एक प्रोग्रामर में एक आवश्यक गुण है। प्रोग्रामिंग भाषाओं के तहत HTML डालना अनुमानित नहीं है, यह मैला हो रहा है। यदि आप प्रोग्रामर के रूप में नौकरी के लिए आवेदन कर रहे हैं तो यह बहुत बुरा है।
दीमा

1
@ दायमा: बिल्कुल। अनौपचारिकता ठीक है, कभी-कभी लिखित रूप में भी, व्यापार की बहुत बुनियादी अवधारणाओं में अविश्वास अस्वीकार्य है।
जेवियर

1
यह मज़ाकीय है। रिज्यूमे और इंटरव्यू हमारे उद्योग के सबसे समस्याग्रस्त हिस्सों में से एक हैं। आप कभी नहीं जानते कि कोई व्यक्ति जो अंतर जानता है वह अभी भी "प्रोग्रामिंग भाषाओं" के तहत "एचटीएमएल" डालता है क्योंकि वे डरते हैं कि कुछ एचआर ड्रोन इसे "मार्कअप / डिज़ाइन / आदि" के तहत नोटिस नहीं करेंगे और अपने फिर से शुरू करेंगे। आपको कम से कम उन्हें कॉल करना चाहिए या उन्हें अंदर लाना होगा। यदि वे आपको अपना चेहरा बताते हैं कि वे "एचटीएमएल में प्रोग्राम करते हैं," ठीक है ... यह वास्तव में एक लाल झंडा है। लेकिन फिर से, सोचें कि अब आप अकेले एचटीएमएल 5 में क्या हासिल कर सकते हैं! क्या सच में ऐसा खिंचाव है?
ग्राहम

0

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

मेरी सिफारिश: ऐसे लोगों को नजरअंदाज करने की कोशिश करें जो इस प्रकार के व्यर्थ और कई अर्थों में गलत दावे करते हैं। यह केवल व्याकरण नाजी-इसम का एक रूपांतर है। HTML को प्रोग्रामिंग भाषा कहना किसी भी अर्थ में गलत नहीं है।


7
-1 यह सार्थक है HTML के रूप में है नहीं एक प्रोग्रामिंग भाषा है, यह ऐसी बात का मूल तत्व नहीं है - यह केवल एक पृष्ठ पर लेआउट का वर्णन करता है वही एक्सटेंशन तकनीकी ड्राइंग पर एक किताब एक प्रोग्रामिंग भाषा है से।
परिक्रमा

1
@Orbling: वे डोमेन विशिष्ट घोषणात्मक प्रोग्रामिंग भाषाएं हैं, जो कि इसका सबसे सामान्य अर्थ है। उदाहरण के लिए देखें: en.wikipedia.org/wiki/… तो, क्षमा करें, आप विफल हैं। पूरी तरह से सामान्य और समझदार परिभाषाओं के अनुसार, वे कर रहे हैं भाषाओं प्रोग्रामिंग। और पूरी तरह से अलग, लेकिन समान रूप से समझदार और आम परिभाषाओं के अनुसार वे प्रोग्रामिंग भाषा नहीं हैं। दोनों ही विचार सही हैं। लेकिन जो लोग दूसरों के सिर पर अपनी राय रखते हैं वे असुरक्षित हैं और HTML लोगों से बेहतर महसूस करने की जरूरत है।
लेनरर्ट रेग्रोब

8
"प्रोग्राम" शब्द का एक परिभाषित अर्थ है जो आम तौर पर सहमत होता है। आप HTML के साथ एक कार्यक्रम नहीं बना सकते हैं, इसलिए HTML के साथ कुछ बनाना "प्रोग्रामिंग" नहीं है। जो कोई भी अलग-अलग तर्क देता है वह तर्क दे रहा है कि उनके तर्क में वे जो शब्द इस्तेमाल करते हैं, उनका अर्थ मनमाने ढंग से बदल सकता है, और उस स्थिति में मैं मनमाने ढंग से उनके शब्दों को कुछ भी नहीं बताऊंगा।
मैथ्यू पढ़ें

4
@Orbling: "क्या मैं HTML लोगों के साथ काम करता हूं" नया "मेरा एक दोस्त है {यहाँ अल्पसंख्यक समूह डालें"}?
आनन।

2
@ लेन्नेर्ट रेग्रोब, एक प्रोग्रामिंग भाषा की हर मानक परिभाषा (विकिपीडिया पर भी) कहती है कि एक प्रोग्रामिंग भाषा एक एल्गोरिथ्म का वर्णन कर सकती है। आप HTML और CSS में एक एल्गोरिथ्म का वर्णन कैसे कर सकते हैं?
चार्ल्स ई। ग्रांट

0

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

कुछ लोग 'वास्तविक' भाषा कहते हैं, जो किसी रिपोर्ट को उत्पन्न करने के लिए डेटा को किसी तरह से संसाधित करेगा। या ऐसा कुछ जिसका इस्तेमाल खेल लिखने के लिए किया जा सकता है। HTML और CSS को अंदर और बाहर जानना एक मूल्यवान कौशल है, लेकिन यह फ्रंट एंड के लिए JS के ज्ञान के साथ बहुत अधिक संयोजित है, और पिछले छोर पर Java, PHP, Perl, Ruby, Python, C / C ++ या C # है।

इसके विपरीत, कोई है जो केवल उन 'वास्तविक' भाषाओं में से एक को जानता है जो बिना किसी वेब फ्रंट एंड प्रौद्योगिकियों के हैं, एक कोडर के रूप में अपने स्वयं के लचीलेपन को बहुत सीमित कर रहे हैं।


मैं एक ऐसी भाषा का सुझाव दूंगा जो पूरी तरह से एक कंप्यूटर द्वारा निष्पादित और संचालित हो। मैंने सी कोड डीबग किया है, और सीएसएस शैलियों को डीबग किया है। मैं कुछ निश्चितता के साथ कह सकता हूं कि बाद वाले को पूर्व की तुलना में लंबे समय तक (यदि लंबे समय तक नहीं) लिया जा सकता है (इस बात पर निर्भर करता है कि किसी व्यक्ति ने सूचक के साथ कौन सा भयानक काम किया है जो आप काम करने की कोशिश कर रहे हैं और * & ^ % $ @ ब्राउज़र यह गलत लगता है)। अकेले HTML वास्तव में बहुत कुछ नहीं कहता है, लेकिन सीएसएस की पूर्ण अभिव्यक्ति के साथ युग्मित यह काफी दिलचस्प हो सकता है।
डैनी स्टेपल

2
देवों द्वारा सीएसएस और मार्कअप से निपटने से बुरा कुछ नहीं है जो यह सोचकर चला गया कि यह बच्चे का खेल होगा।
एरिक रिपेन

0

तार्किक "वाम-मस्तिष्क" या रचनात्मक "राइट-ब्रेन" कबूतर / स्टीरियोटाइप कई लोगों के कौशल सेटों का सटीक वर्णन करता है। मेरे अनुभव में, "HTML / CSS एक प्रोग्रामिंग भाषा है" इस बारे में अधिक है कि क्या जो लोग HTML / CSS में अच्छे हैं, वे अन्य प्रोग्रामिंग कार्यों में भी अच्छे हो सकते हैं।

मैंने पिछले 13 वर्षों में जिन वेब डिज़ाइनरों के साथ काम किया है उनमें से अधिकांश ने वेब डेवलपमेंट किया है जो वर्किंग एचटीएमएल और सीएसएस बनाने में सक्षम हैं, लेकिन अधिक प्रोग्रामिंग प्रोग्रामिंग चुनौतियों को संभालने में सक्षम नहीं हैं (सरलतम कट-एंड से अधिक कुछ भी) जावास्क्रिप्ट चिपकाया)। अधिकांश हॉट-शॉट प्रोग्रामर और डेटाबेस डिज़ाइनर दृश्य प्रस्तुति के बारे में पर्याप्त परवाह नहीं करते हैं ताकि HTML / CSS या सामान्य रूप से प्रस्तुति के साथ अच्छा काम किया जा सके। अधिकांश वास्तव में कोशिश करने से इनकार करते हैं।

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

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

यह असामान्य है, लेकिन प्रोग्रामर के लिए कुछ दृश्य डिजाइन या लेआउट कौशल या एक डिजाइनर के लिए कुछ प्रोग्रामिंग कौशल होना असंभव नहीं है। ये लोग विशेष रूप से एक वेब टीम पर मूल्यवान हैं क्योंकि वे एक खाई को पाटने में मदद करते हैं जो हम में से अधिकांश के पास है। लेकिन वे अक्सर रूढ़ियों के अधीन होते हैं, कि HTML / CSS करने में सक्षम होना "वास्तविक प्रोग्रामर" या इसके विपरीत असंभव है। लेकिन उस कुशल प्रोग्रामर के लिए उसी नाविक से बेहतर नाविक, चित्रकार, रसोइया, या कुछ और कौशल होना असंभव नहीं है जो वे अपने खाली समय में अभ्यास करते हैं।

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

HTML / CSS को वास्तविक प्रोग्रामिंग भाषाओं के रूप में बार-बार ट्रैश किया जा सकता है क्योंकि यह सुरक्षित और अधिक सामाजिक रूप से स्वीकार्य है उन लोगों को ट्रेश करने से जो उन गोलार्द्ध को विभाजित नहीं कर सकते हैं जो वे प्रतिनिधित्व करते हैं। बेशक, कुछ लोगों के पास वह अवरोध नहीं हो सकता है। मैंने वास्तव में एक प्रबंधक के साथ काम किया, जो अक्सर कहता था, "उसने लिखा था [विभाग की रीढ़ की हड्डी की कार्यक्षमता यहाँ डालें]? मुझे लगा कि उसने सिर्फ HTML किया है?"

बड़ा अच्छा सवाल!

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