दृष्टिबाधित में, एक्सएएमएल को एक्सएमएल पर एक गलती या एक अच्छे दृष्टिकोण पर आधारित है?


16

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

XML व्युत्पन्न भाषा में GUI का वर्णन करने के लिए दो प्रमुख विकल्प हैं। एक ऐसा करना है जो WinForms ने किया और वास्तविक कोड में इसका वर्णन किया। इसके साथ कई समस्याएं हैं, हालांकि यह पूरी तरह से लाभ-रहित नहीं है ( XAML की तुलना इस दृष्टिकोण से करने के लिए एक प्रश्न )। अन्य प्रमुख विकल्प विशेष रूप से हाथ में काम के लिए तैयार एक पूरी तरह से नया वाक्यविन्यास डिजाइन करना है । यह आमतौर पर एक डोमेन-विशिष्ट भाषा के रूप में जाना जाता है ।

तो, भविष्य की पीढ़ियों के लिए एक सबक के रूप में, और क्या यह XML पर XAML को आधार बनाने के लिए एक अच्छा विचार था, या यह एक कस्टम-डिज़ाइन डोमेन-विशिष्ट भाषा के रूप में बेहतर होता? यदि हम एक और भी बेहतर यूआई फ्रेमवर्क डिजाइन कर रहे थे, तो क्या हमें एक्सएमएल या कस्टम डीएसएल चुनना चाहिए?

चूंकि यथास्थिति के बारे में सकारात्मक रूप से सोचना बहुत आसान है, विशेष रूप से एक जो समुदाय द्वारा काफी पसंद किया जाता है, मैं कुछ उदाहरण कारण दूंगा कि XML के शीर्ष पर निर्माण को गलती क्यों माना जा सकता है।

XML के लिए एक भाषा को बंद करना एक बात है, इसके लिए: यह पार्स करने के लिए बहुत आसान है (कोर पार्सर पहले से ही उपलब्ध है), 3 डी डेवलपर्स के लिए लिखने के लिए बहुत, बहुत कम डिज़ाइन कार्य और वैकल्पिक पार्सर भी लिखना बहुत आसान है।

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

यह भी कहा जाता है कि चूंकि हर कोई XML जानता है, XAML को कम सीखने की आवश्यकता होती है। कड़ाई से यह कहना सच है, लेकिन वाक्यविन्यास सीखना एक नया यूआई फ्रेमवर्क सीखने में बिताए समय का एक छोटा अंश है; यह फ्रेमवर्क की अवधारणाएं हैं जो वक्र को खड़ी करती हैं। इसके अलावा, XML- आधारित भाषा की idiosyncracies वास्तव में "सीखने की जरूरत" टोकरी में जोड़ सकती है।

क्या ये नुकसान पार्सिंग की आसानी से कम हो गए हैं? क्या अगले शांत ढांचे को परंपरा को जारी रखना चाहिए, या एक भयानक DSL डिजाइन करने के लिए समय का निवेश करना चाहिए जो मौजूदा टूल द्वारा पार्स नहीं किया जा सकता है और जिसका सिंटैक्स सभी को सीखना होगा?

पीएस हर कोई XAML और WPF को भ्रमित नहीं करता है , लेकिन कुछ करते हैं। एक्सएएमएल एक्सएमएल जैसी चीज है। WPF बाइंडिंग, थीमिंग, हार्डवेयर त्वरण और अन्य बहुत सारे सामानों के समर्थन के साथ ढांचा है।


3
हां, इसे XML पार्सर द्वारा पार्स किया जा सकता है, लेकिन सार्थक रूप से / पूरी तरह से नहीं। उदाहरण के लिए, यह डेटा स्रोतों और संपत्ति मैपिंग को परिभाषित करने के लिए स्ट्रिंग विशेषताओं का उपयोग करता है।
कोनराड रुडोल्फ

5
आप एक विकल्प के रूप में क्या प्रस्ताव करते हैं? किसी विशेष तकनीक की उपयुक्तता के बारे में किसी भी चर्चा को उपयुक्त प्रतिस्थापन प्रौद्योगिकियों को संबोधित करना होगा।
रॉबर्ट हार्वे

2
XAML समकक्षों के बिना नहीं है, आप जानते हैं। XUL, Glade और QML सभी एक ही विचार के आसपास आधारित हैं। मुझे लगता है कि आप XAML को गलत तरीके से गा रहे हैं।
user16764

3
मुझे लगता है कि XAML का सबसे बड़ा लाभ यह नहीं है कि इसे XML पार्सर्स द्वारा पार्स किया जा सकता है। इसके बजाय यह है कि एक्सएएमएल एक्सएमएल के समान है, और अधिकांश डेवलपर्स पहले से ही जानते हैं कि एक्सएमएल के साथ कैसे काम करना है, और इसलिए सीखने की अवस्था बहुत कम है।
जूजोस कंटोवैनिस

2
@JuozasKontvainis यदि "काम" से आपका मतलब है "इसे अपने उपकरण में पार्स करें" तो हाँ। यदि आपका मतलब है "इसके द्वारा वर्णित एक यूआई लिखें" तो परिचित वाक्यविन्यास ऐसा लग सकता है कि यह मदद करता है, लेकिन वास्तविक रूप से, आपको अभी भी सीखने की ज़रूरत है कि अंदर की विशेषताओं को क्या रखा जाए (क्योंकि यह एक्सएमएल नहीं है), और यह अब तक सबसे कठिन है। बात, मेरे व्यक्तिगत अनुभव में। एक नया वाक्यविन्यास सीखना, खासकर अगर यह सरल और अच्छी तरह से डिज़ाइन किया गया है, तो मेरी राय में, तुच्छ है।
रोमन स्टार्कोव

जवाबों:


4

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

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

ActiveX को Microsoft उपकरणों तक पहुंच की आवश्यकता होती है, जो अच्छी तरह से अप्रचलित हैं। तो वायु सेना और इंटर-रेंज इंस्ट्रूमेंटेशन ग्रुप एक डेटा डिस्प्ले मार्कअप लैंग्वेज के साथ आ रहा है, जो XML आधारित है। यह चिकित्सकों को अपनी पसंद के संपादक में XML मार्कअप का उपयोग करके डिस्प्ले डिजाइन करने की अनुमति देगा। जाना पहचाना?

कोई भी यह तर्क नहीं देता है कि XML अपने दोषों के बिना नहीं है। लेकिन यह सबसे अच्छी बात है कि यह तब तक के लिए उपलब्ध है, जब तक कि कुछ बेहतर न हो जाए।

यह भी देखें
कि XML क्यों नहीं चूसती है


3
क्या आप इस बात से सहमत होंगे कि एक ही तर्क समान चीजों पर समान रूप से लागू होता है, जैसे, YACC व्याकरण विवरण, TeX, regexes, Verilog और शायद LISP? हम इनमें से प्रत्येक के लिए विशेष वाक्य रचना के साथ आए। वे उसी तरह से लाभान्वित होंगे जैसे आप पहले पैराग्राफ में सूचीबद्ध करते हैं। फिर क्या यह पालन नहीं करता है कि उनके लिए XML का उपयोग करना सही बात होगी, क्योंकि XML आपके द्वारा बताए गए लक्ष्यों को पूरा करता है?
रोमन स्टार्कोव

केवल XML को व्यापक रूप से एक सार्वभौमिक डेटा मेटा-मानक के रूप में पहचाना जाता है, जिससे आप अपनी इच्छानुसार कई व्यक्तिगत डेटा मानक बना सकते हैं। पानी के कीचड़ से बचने के लिए, मैंने पहला पैराग्राफ हटा दिया है।
रॉबर्ट हार्वे

एस-एक्सप्रेशन कभी भी मेटाडेटा मानक के रूप में नहीं पकड़े गए, शायद इसलिए कि उन सभी मूर्खतापूर्ण कोष्ठकों को पसंद नहीं करते। सर्वव्यापकता यहाँ सम्मोहक कारक है; उन सभी वैकल्पिक वाक्यविन्यासों का उल्लेख आपने XML में किया है, यदि आप बहुत इच्छुक हैं।
रॉबर्ट हार्वे

2
उन सभी को YAML और JSON में भी दर्शाया जा सकता है (और इसके विपरीत)।
तिमवी

2
इस पूरे तर्क में एक बड़ी समस्या यह है कि XAML वास्तव में डेटा नहीं है। निश्चित रूप से, इसे सिर्फ एक ऑब्जेक्ट ग्राफ के रूप में माना जा सकता है, लेकिन इस तरह की सोच शायद इसलिए बहुत से लोगों को पसंद नहीं है और क्यों यह इस तरह के सीखने की अवस्था है। "अरे चलो एक ऑब्जेक्ट ग्राफ बनाते हैं, एर, मेरा मतलब एक यूजर इंटरफेस है"। मुझे नहीं पता कि इसे कैसे बेहतर बनाया जा सकता है, लेकिन मुझे विश्वास है कि यह हो सकता है।
अर्लज़

2

XML को आपकी आपत्तियों का GUI वर्णन भाषा के रूप में उपयोग करने से कोई लेना-देना नहीं है; वे XML सिंटैक्स के साथ काम करने के बारे में सभी शिकायतें हैं जो XML के किसी भी रूप में समान रूप से लागू होती हैं।

तो ऐसा लगता है कि आप XML को पसंद नहीं करते हैं।

आप सही हैं, यह हाथ से संपादन के लिए इष्टतम विकल्प नहीं हो सकता है, लेकिन एक जीयूआई विवरण भाषा के लिए मैं कुछ प्रतिवाद करूंगा:

  1. (आईएमएचओ), जीयूआई ग्राफिकल हैं और इसे ग्राफिकल रूप से निर्धारित किया जाना चाहिए। फ़ाइल प्रारूप वास्तव में उतना महत्वपूर्ण नहीं है, क्योंकि आपको वास्तव में इसे हाथ से संपादित नहीं करना चाहिए। (स्रोत-नियंत्रण के लिए पाठ-आधारित अच्छा है, लेकिन वाचालता कोई समस्या नहीं है।)

  2. पार्सर उपलब्ध होने के अलावा, XML को मान्य करना भी आसान है: आप DTD या XML स्कीमा लिख ​​सकते हैं और फिर यह बताने के लिए जेनेरिक टूल का उपयोग कर सकते हैं कि क्या आपकी फ़ाइल कानूनी है। यह GUI वर्णन भाषा के लिए बहुत उपयोगी होने जा रहा है। JSON या YAML में भी ऐसा करना सीधा नहीं है।

  3. यदि आप सीधे XAML लिखने से वास्तव में नाखुश हैं, तो आपको नया प्रारूप विकसित करने से रोकने और फिर XAML में संकलन करने से कुछ नहीं होता है। उदाहरण के लिए, आप JSON से XAML तक एक सीधी मैपिंग के साथ आ सकते हैं, इसलिए आपके पास JSON का लाइटर सिंटैक्स (और कमेंट-आउट करने की क्षमता) हो सकता है, और जब आप अपना ऐप बनाते हैं तो XAML जेनरेट करते हैं। लोग शायद ही कभी HTML को सीधे लिखते हैं, लेकिन HTML अभी भी एक बढ़िया प्रारूप है।


1
मुझे एक्सएमएल पसंद है; मैं इसे हाथ से लिखना पसंद नहीं करता। 1. हां, उन्हें होना चाहिए, लेकिन वास्तविकता यह है कि विजुअल स्टूडियो वास्तव में इसे बंद नहीं कर सकता है। 3. यह इस बात की चर्चा का विषय है कि क्या XAML, एक बुरा विचार था। हाँ, कोई कर सकता है, लेकिन अगर XAML एक बुरा विकल्प नहीं था, तो किसी को क्या करने की आवश्यकता होगी ?
रोमन स्टार्कोव

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

0

यह प्रश्न व्यक्तिपरक है, इसलिए मुझे लगता है कि मेरी व्यक्तिगत पसंद के आधार पर उत्तर देना उचित है।

XML को पढ़ना मुश्किल है। उदाहरण के लिए, इस लिंक को खोलें और XML और YAML की तुलना करने के लिए "नमूना" पर क्लिक करें। उत्तरार्द्ध स्पष्ट रूप से बहुत अधिक मानव पठनीय है।

यदि आप GUI का वर्णन करने के लिए XML का उपयोग करना चाहते हैं, तो आप बेहतर तरीके से शापित होंगे कि आप पर्याप्त उपकरण प्रदान करेंगे ताकि मनुष्यों को XML को देखना न पड़े।

स्पष्ट रूप से XPF उस संबंध में विफल रहा है।

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