2008-09-16 8 views
12

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

+1

हम उन सवालों को पसंद करते हैं जिन्हें उत्तर दिया जा सकता है, न केवल चर्चा की गई। –

+6

जो इस साइट का एक प्रमुख गिरावट है। –

उत्तर

22

एक समस्या यह है कि XSLT जटिल दिखता है। किसी भी डेवलपर को भाषा संरचनाएं लेने में सक्षम होना चाहिए क्योंकि अधिकांश अन्य भाषाओं में एनालॉग हैं। समस्या यह है कि संरचनाएं और डेटा बिल्कुल वही दिखते हैं जो दोनों के बीच अंतर करना मुश्किल बनाता है जो XSLT को अन्य languges की तुलना में पढ़ने में अधिक कठिन बनाता है।

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

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

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

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

+0

मैं जो कुछ कहता हूं उससे सहमत हूं, लेकिन बहुभाषी कार्यान्वयन में जहां आप पूरी तरह से भाषा में एक्सएसएलटी चट्टानों को बदलने के लिए सब कुछ नहीं कर रहे हैं, जो कि इसके बाद के लिए है। – dacracot

+0

आपके पहले बिंदु का परिणाम यह है कि आपको "i <10" "i <10" से बच जाना चाहिए। यह मामूली है, लेकिन क्या यह आपकी त्वचा को क्रॉल नहीं करता है? यह मेरा है – 13ren

+0

मैं 13रेन से सहमत हूं, एक्सएसएलटी खुद को सिंटेक्टिक चीनी में उधार नहीं देता है। –

3

एक्सएसएल मुख्यधारा है और व्यापक रूप से अपनाया गया है। आप किस अन्य भाषा का जिक्र कर रहे हैं? एक्सएसएल एक प्रोग्रामिंग भाषा नहीं है, सिर्फ एक परिवर्तन भाषा है, इसलिए यह काफी हद तक सीमित है।

+0

प्रोग्रामिंग भाषा का गठन क्या करता है ... xslt में पैरामीटर के साथ लूप, शर्तें, चर, सब-रूटीन हैं ... यह कहने जैसा होगा कि pl/sql प्रोग्रामिंग भाषा नहीं है क्योंकि इसका दायरा ओरेकल डेटाबेस तक ही सीमित है। मुझे लगता है कि यह विशेष रूप से परिवर्तन के लिए एक भाषा है। – dacracot

+1

एक्सएसएलटी भी ट्यूरिंग-पूर्ण है, देखें http://www.dpawson.co.uk/xsl/sect4/turing.html –

3

खैर (मैं ... हो सकता है कि क्योंकि यह एक दर्द XSLTs लिखने के लिए है ... मैं कुछ XSLTs कुछ महीने पहले लिखने के लिए थी और मैं नुकीले कोष्ठक का सपना देख रहा था ...

<Really> 
    <No> 
     <fun/> 
    </No> 
</Really>   

पता है, यह कोई xslt नहीं है)

4

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

3

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

4

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

+3

परिवर्तनीय चर की अनुपस्थिति एक निरीक्षण नहीं है, क्योंकि आपका उत्तर ऐसा प्रतीत होता है, बल्कि काफी जानबूझकर। सामान्य रूप से कार्यात्मक प्रोग्रामिंग, अन्य चीजों के साथ, अपरिवर्तनीय मूल्यों के बारे में घूमती है, और इसमें कई लाभ होते हैं। –

9

एक्सएसएलटीएस कार्यात्मक प्रोग्रामिंग का उपयोग करता है - कुछ प्रोग्रामर का उपयोग नहीं किया जाता है (इसलिए कुछ लोग इसे गैर-अंतर्ज्ञानी मानते हैं)।

1

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

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

1

एक्सएसएलटी बहुत शक्तिशाली है, लेकिन समस्या के बारे में सोचने का एक अलग तरीका आवश्यक है। शुरुआती संस्करणों में उपयोगी डेटा कार्यक्षमता प्रदान न करके उसने अपने लिए जीवन भी कठिन बना दिया। उदाहरण के लिए एक ToUpper() शैली विधि लें, आप आमतौर पर इसे कुछ प्रकार के साथ कार्यान्वित करते हैं:

<xsl:variable name="lcletters">abcdefghijklmnopqrstuvwxyz</xsl:variable> 
<xsl:variable name="ucletters">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable> 

<xsl:value-of select="translate($toconvert,$lcletters,$ucletters)"/> 

कोडिंग का सबसे आसान तरीका नहीं है!

3

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

एक्सएसएलटी कुछ आसान बनाता है, लेकिन यह अन्य चीजों को बहुत कठिन बनाता है।

2

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

1

xslt xml से xml के लिए बहुत अच्छा है, जब आपके पास पहले से बचने वाला डेटा और इनपुट और आउटपुट की स्पष्ट परिभाषा है। xml2html जैसी चीजों के लिए इसका उपयोग करना इस तरह के सिरदर्द की तरह लगता है, और लगभग किसी भी गतिशील भाषा और सीएसएस के साथ आउटपुट शैली के साथ कार्यान्वित करना बहुत आसान है।

2

जैसा कि पहले बताया गया था एक्सएसएलटी (जैसे "जावास्क्रिप्ट का अच्छा भाग") एक कार्यात्मक प्रोग्रामिंग भाषा है। अधिकांश पारंपरिक प्रोग्रामर इस स्टेटलेस से नफरत करते हैं। इसके अलावा कई पारंपरिक प्रोग्रामर कोण ब्रैकेट से नफरत करते हैं।

लेकिन, सबसे महत्वपूर्ण बात यह है कि एक्सएसएलटी का सही उपयोग घोषणात्मक-जीयूआई-पीढ़ी और प्लेटफॉर्म अज्ञेय तरीके से वेब सर्वर के लिए डेटा-बाध्यकारी समस्या दोनों हल करता है। माइक्रोसॉफ्ट जैसे विक्रेताओं को इस "असुविधाजनक" शक्ति का जश्न मनाने के लिए प्रेरित नहीं किया जाता है।

हालांकि, मैं तर्क दूंगा कि माइक्रोसॉफ्ट के पास आईडीई (विजुअल स्टूडियो) दुनिया के लिए बेहतरीन एक्सएसएलटी समर्थन है।

6

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

एक बात मैं कभी नहीं समझ सकते हैं क्यों() इस तरह का अनुवाद के रूप में एक समारोह के डिजाइन और xpath में कार्यान्वित wheras ऐसे के रूप में अन्य अधिक उपयोगी कार्यों की जगह किया गया था, , to_upper, to_lower या है - नियमित अभिव्यक्ति नहीं थीं।

माइक्रोसॉफ्ट के एमएसएक्सएमएल के अलावा पार्सर्स के लिए मुझे eXSLT (विस्तारित xslt?) के साथ अनुमान लगाया गया था। मैं कहता हूं कि मुझे लगता है क्योंकि मैंने वास्तव में इसका कभी भी उपयोग नहीं किया क्योंकि इसे एमएसएक्सएमएल के साथ असंगत घोषित किया गया था।

मुझे समझ में नहीं आ रहा है कि एक्सएसएलटी 1.0 इस सिद्धांत के साथ क्यों डिजाइन किया गया था कि 'टेक्स्ट' मैनिपुलेशन भाषा के दायरे में नहीं था जब यह स्पष्ट हो जाता है कि जब भी आप फ़ाइलों को परिवर्तित कर रहे हैं तो आप उन स्ट्रिंग रूपांतरण समस्याओं से बच नहीं सकते हैं (उदाहरण के लिए: अमेरिकी प्रारूप में 31/1/2008 से 2008-01-31 तक फ्रेंच प्रारूप में दी गई अनियमित रूप से गद्देदार तारीख को परिवर्तित करें ... हू ...

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

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

मुझे लगता है कि मैंने सुना है कि उन सभी सीमाओं को एक्सएसएलटी 2.0 विनिर्देश में संबोधित किया गया था, दुख की बात है कि एमएस ने इसे लागू करने और इसके बजाय XQuery को बढ़ावा देने का फैसला किया था। यह दुखद है, उन दोनों को लागू क्यों नहीं करें? मुझे लगता है कि एक्सएसएलटी के पास अभी भी लोकप्रिय होने का एक अच्छा मौका होगा क्योंकि सीएसएस एचटीएमएल के लिए बन गया है। जब आप इसके बारे में सोचते हैं, एक्सएसएलटी सीखने में सबसे कठिन हिस्सा XPath है, बाकी सीएसएस में कैस्केडिंग व्यवहार को समझना उतना मुश्किल नहीं है, और सीएसएस इतना लोकप्रिय हो गया है ...

तो, मेरी राय में, यह है यहां उल्लिखित उन छोटी सी चीजों की कमी और एक्सएसएलटी 2.0 में उन्हें संबोधित करने के लिए जो समय लगेगा (एमएस भी इसे समर्थन नहीं दे रहा है) जिसने अपवित्रता की इस स्थिति को जन्म दिया है। मैं कैसे चाहता हूं कि एमएस ने इसे लागू करने का फैसला किया ...

+0

... अच्छी पोस्ट। +1 –

1

मुझे 'समग्र वेब सेवा आर्किटेक्चर' के लिए यह बहुत अच्छा लगा। कभी-कभी वेब सर्विसेज अंतिम आउटपुट के लिए मिलकर काम करते हैं। जब उन वेबसाइसेस को उनके बीच संवाद करने की आवश्यकता होती है एक्सएमएल तब एक्सएसएलटी एक्सएमएल संदेश को एक फॉर्म से दूसरे रूप में बदल सकता है।

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