वेब सॉफ़्टवेयर का भविष्य HTML-over-WebSocket है
(alistapart.com)-
SPA + API + JSON डेवलपमेंट और रिलीज़ साइकल को धीमा कर देते हैं
-
दावा है कि bidirectional WebSocket का उपयोग करके server rendering, तेज़ prototyping, सहज SEO, और तेज़ feature development संभव है
→ बदलने वाला HTML या साधारण टेक्स्ट socket के ज़रिए भेजें
→ क्लाइंट पर जटिल value validation और error objects की जगह सर्वर validation करे
→ उपयोगकर्ता जुड़ा है या नहीं, यह socket connection सक्रिय है या नहीं, इससे जाँचें
→ multi-user chat या document collaboration जैसी चीज़ें भी आसानी से support की जा सकती हैं
-
Rails की वापसी: Turbolinks, Stimulus, StimulusReflex, CableReady, और GitHub का ViewComponent
-
Basecamp का Hotwire भी इसी तकनीक का उपयोग करता है
7 टिप्पणियां
लगता है कि
dotnetका server-side blazor भी कुछ ऐसा ही काम करता है। लेकिन इसे प्रोडक्शन में सच में इस्तेमाल करके देखें तो कई बार यह काफ़ी थकाऊ साबित होता है...Electron में server और client दोनों को साथ जोड़कर deploy करने के अलावा, मुझे इसमें कोई खास फ़ायदा समझ नहीं आया।
क्या आप शायद अपने ठोस उपयोग अनुभव के बारे में बता सकते हैं?
लेकिन API endpoint एक बार बना दिया जाए तो उसे mobile, web, desktop—सब जगह इस्तेमाल किया जा सकता है, इसलिए उसकी बहुउपयोगिता अच्छी है; ऐसे में WebSocket को भविष्य कहा जा सकता है या नहीं, यह थोड़ा स्पष्ट नहीं लगता।
Elixir Phoenix LiveView, या RoR Stimulus Reflex भी काफ़ी मिलते-जुलते कॉन्सेप्ट हैं,
Chris McCord के बारे में यह बात भी कही जाती है कि Rails में बनाते समय structural समस्याओं की वजह से वे Elixir पर चले गए थे.
बार-बार वही चीज़ घुमाने की आवाज़...
ऐसा भी एक तर्क है, इस तरह देखना अच्छा रहेगा।
मैं इस बात से सहमत हूँ कि JavaScript हर जगह इस्तेमाल होने लगा है, जिससे SPA, SSR जैसी बहुत-सी शब्दावली बढ़ गई है और चीज़ें जरूरत से ज़्यादा जटिल हो गई हैं।
दो-तरफ़ा प्रोसेसिंग के लिए WebSocket का इस्तेमाल ज़्यादा बढ़ेगा, ऐसा लगता है, लेकिन मुझे लगता है कि Hotwire से भी अधिक सुविधाजनक कुछ आने की उम्मीद करनी चाहिए।
(हो सकता है कि मुझे ठीक से पता न हो) लेकिन हाल में एक बात मुझे थोड़ी मज़ेदार लगी। React+Laravel web app में अगर सिर्फ server side बदला हो, तो deploy में version marker और बदली हुई code की कुछ lines ही होती हैं, लेकिन अगर front-end बदल जाए तो front-end app को build करना पड़ता है और deployment size तुलनात्मक रूप से काफी बड़ा हो जाता है, तो हँसी आ जाती है। और अस्थायी तौर पर कोई urgent customization लागू करना भी मुश्किल होता है। शायद ऐसा इसलिए भी लग रहा है क्योंकि मैं इसकी तुलना अपने पहले के development experience से कर रहा हूँ।