मैं एक लंबे समय से वेब प्रोग्रामिंग कर रहा हूं, और कहीं न कहीं, मैंने इस बात पर ध्यान दिया कि हम आज क्या कर रहे हैं (या हम इस तरह से चीजें करने के लिए कैसे आए)?
मैंने बुनियादी एएसपी वेब विकास के साथ शुरुआत की, और पृष्ठ पर बहुत जल्दी, प्रदर्शन और व्यापार तर्क मिलाया गया। क्लाइंट-साइड डेवलपमेंट में विभिन्न बेतहाशा (VBScript, जावास्क्रिप्ट के विभिन्न स्वाद), और सर्वर-साइड सत्यापन के बारे में हमारे पास बहुत चेतावनी थी (और इसलिए मैं क्लाइंट-साइड लॉजिक से दूर रहा)।
मैं तब थोड़ी देर के लिए कोल्डफ्यूजन में चला गया। कोल्डफ्यूज़न शायद पहला वेब डेवलपमेंट फ्रेमवर्क था जिसने अपने टैग का उपयोग करके डिस्प्ले और बिजनेस लॉजिक को अलग किया। यह मुझे बहुत स्पष्ट लग रहा था, लेकिन बहुत ही क्रियात्मक, और कोल्डफ्यूजन उच्च बाजार की मांग में नहीं था, और इसलिए मैं आगे बढ़ गया।
मैं फिर ASP.NET बैंड वैगन पर कूद गया और उनके MVC दृष्टिकोण का उपयोग करना शुरू कर दिया। मुझे यह भी एहसास हुआ कि जावा उद्यम प्रणालियों की एक हाथीदांत टॉवर भाषा प्रतीत होती है, और उनके एमवीसी दृष्टिकोण की भी कोशिश की। बाद में, ASP.NET ने इस MVVM डिज़ाइन पैटर्न को विकसित किया, और जावा (ठीक है, J2EE या JEE) ने भी संघर्ष किया और अपने MVC2 दृष्टिकोण के साथ बाहर आया।
लेकिन आज, मुझे पता चला है कि बैकएंड प्रोग्रामिंग वह जगह नहीं है जहां उत्साह और प्रगति अब है। इसके अलावा, सर्वर साइड आधारित MVC प्रथा अप्रचलित लगती हैं (क्या लोग वास्तव में JSTL का उपयोग करते हैं?)। आज, अधिकांश परियोजनाओं में जो मैं चालू हूं, मुझे पता चला कि जावास्क्रिप्ट फ्रेमवर्क और क्लाइंट-साइड विकास वह जगह है जहां सभी रोमांचक और अभिनव प्रगति की जा रही है।
सर्वर से क्लाइंट-साइड डेवलपमेंट के लिए यह आंदोलन क्यों हुआ है? मैंने अपनी JEE परियोजनाओं में से एक की सरल रेखा गणना की, और जावा की तुलना में जावास्क्रिप्ट में कोड की अधिक पंक्तियाँ हैं (तीसरे पक्ष के पुस्तकालयों को छोड़कर)। मुझे लगता है कि जावा या सी # जैसी प्रोग्रामिंग भाषाओं का उपयोग करने वाले अधिकांश बैकएंड विकास केवल एक आरईएस-जैसे इंटरफ़ेस का उत्पादन करने के लिए है, और यह कि डिस्प्ले, विज़ुअलाइज़ेशन, डेटा इनपुट / आउटपुट, उपयोगकर्ता इंटरैक्शन, आदि ... के सभी कठिन प्रयासों को संबोधित किया जा रहा है। कोणीय, बैकबोन, एम्बर, नॉकआउट आदि जैसे क्लाइंट-साइड ढांचे के माध्यम से ...
पूर्व jQuery के युग के दौरान, मैंने बहुत सारे आरेखों को देखा जहां n-स्तरीय विकास में MVC में M, V और C के बीच एक स्पष्ट, वैचारिक रेखा थी। पोस्ट- jQuery, ये रेखाएँ कहाँ खींची गई हैं? ऐसा लगता है कि एमवीसी और एमवीवीएम जावास्क्रिप्ट कोड, क्लाइंट-साइड में ठीक हैं।
जो मैं जानना चाहता हूं, हमने ऐसा परिवर्तन क्यों किया (सर्वर-साइड प्रोग्रामिंग से लेकर क्लाइंट-साइड तक, संकलित भाषाओं के अनुकूल भाषाओं से लेकर स्क्रिप्टिंग भाषाओं तक, जरूरी से कार्यात्मक प्रोग्रामिंग तक, ये सभी एक साथ हुए हैं। ) और इस संक्रमण / बदलाव से क्या समस्याएं हल हुईं?