मैं यूआई (डेस्कटॉप, वेब नहीं) और आंतरिक हिम्मत दोनों करता हूं।
जो राशि मुझे पसंद है या किसी को पसंद नहीं है, वह इस बात पर निर्भर करता है कि मैं डोमेन-विशिष्ट-भाषा (डीएसएल) जैसी किसी चीज़ का उपयोग करके कितना प्राप्त कर सकता हूं।
यूआई डोमेन में, मैं उपयोगकर्ताओं को क्या प्रस्तुत कर रहा हूं, और मुझे उनसे जो जानकारी मिल रही है, उसकी जटिलता ऐसी है कि मैं पागल हो जाऊंगा अगर मुझे विशिष्ट टूल का उपयोग करना पड़ा, जैसे फॉर्म डिजाइनर, बहुत सारे इवेंट हैंडलर, एमवीसी , वह सब "कला की स्थिति" सामान। शुक्र है, दशकों पहले मुझे पता चला कि मुझे लगता है कि एक बेहतर तरीका है, जो इसके लिए एक डीएसएल बनाने के लिए है, और इसमें काम करना है। वर्तमान में मैं इसे डायनेमिक डायलॉग कहता हूं, और यह एक नियंत्रण संरचना पर आधारित है जिसे मैं डिफरेंशियल एक्जिक्यूशन कहता हूं । अच्छी खबर यह है कि दी गई कार्यक्षमता के लिए, स्रोत कोड मोटे तौर पर परिमाण का एक क्रम है, जिससे मुझे UI में बहुत अधिक कार्यक्षमता डालने की अनुमति मिलती है। बुरी खबर यह है, जितना मैंने इसे सिखाने की कोशिश की है, मुझे प्रौद्योगिकी को हस्तांतरित करने का बहुत सौभाग्य नहीं मिला है।
गैर-यूआई डोमेन में, मैंने कई उत्पादों से सबक लिया, जो कमांड लाइन से प्रयोग करने योग्य DSLs के रूप में शुरू हुआ, जिस पर बाद में UI का ग्राफ्ट किया गया था। वह विशेषज्ञ उपयोगकर्ता को कुछ ऐसा देता है जहां वे UI को बायपास कर सकते हैं, जबकि आकस्मिक उपयोगकर्ता को वे आकस्मिक रूप से उपयोग कर सकते हैं। (उदाहरण: R, SPlus, Matlab, SAS, WinBugs।) तो हमारे उत्पाद में विशेषज्ञों के लिए एक कमांड-लाइन भाषा है। मुझे ऐसी चीजों को विकसित करना पसंद है, जो एक पार्सर, कोड जनरेटर, प्री-कंपाइलर और रन-टाइम मॉडलिंग इंजन के साथ है। उस पर खर्च किया गया प्रयास यूआई पर खर्च किए गए प्रयास की तुलना में कम से कम 10 की शक्ति है।
यूआई प्रयास का एक कारण इतना है कि अभी भी बहुत कुछ "गोंद" है जो एक डीएसएल के साथ नहीं किया जा सकता है - डेटा ग्रिड का प्रबंधन, डेटा सॉर्ट करने के सभी प्रकार, सभी सामान जो जम्हाई "दरार" में आते हैं शुद्ध UI और अंतर्निहित भाषा के बीच।
तो आपका सवाल था "कुछ प्रोग्रामर यूआई के विकास के हिस्से से नफरत क्यों करते हैं?"। मुझे केवल उस "गोंद" के कारण घृणा है, जिसके लिए मेरे पास डीएसएल नहीं है।