- Zed के सह-स्थापकों Nathan, Max और Antonio के साथ बातचीत में तकनीकी विकल्पों के पीछे के कारणों, Rust के महत्व और पूरी तकनीकी स्टैक को अपने नियंत्रण में रखने के इरादे पर सवाल उठाए गए थे
- टीम ने इन सवालों के जवाब फिर से दिए और करीब एक घंटे की बातचीत का एडिट किया हुआ अंश साझा किया
Atom से Zed तक: 10 साल की यात्रा
- तीनों सह-संस्थापकों ने लगभग 10 साल तक साथ काम किया, और Atom बनाने के बाद Zed बनाने का निर्णय लिया।
- Zed का विज़न, Atom के शुरुआती विज़न का एक अधिक परिष्कृत और स्पष्ट रूप है, और इसके तकनीकी विकल्प सीधे इसी विज़न से जुड़े हैं।
- Rust, GPU acceleration, CRDTs जैसे तकनीकी विकल्प Zed के लक्ष्य हासिल करने में महत्वपूर्ण हैं।
तकनीकी विकल्प और विज़न
- Zed का लक्ष्य एक ऐसा text editor बनाना है जो हल्का हो लेकिन ज़रूरत पड़ने पर IDE जैसी क्षमता दे सके।
- Atom के निर्माण के समय तकनीकी सीमाओं और डेवेलपर्स की तकनीकी परिपक्वता की कमी के कारण इस विज़न को पूरी तरह लागू नहीं किया जा सका।
- Rust के आने से इन सीमाओं को पार करने का मौका मिला।
Atom की सीमाएँ और नई शुरुआत
- Atom का निर्माण करते समय JavaScript की सीमाओं और वेब टेक्नोलॉजी की बाधाओं के कारण परफॉर्मेंस समस्याएँ सामने आईं।
- 2017 में, जब मौजूदा प्लेटफ़ॉर्म की सीमाएँ महसूस हुईं, तब टीम ने Zed को शुरुआत से फिर से बनाने का फैसला लिया।
- Rust और GPU acceleration के साथ परफॉर्मेंस सुधारने का लक्ष्य रखा गया।
Rust का प्रभाव
- Rust उच्च स्तर की abstraction देते हुए भी शानदार परफॉर्मेंस देता है।
- Rust की “zero-cost abstraction” text editor development में महत्वपूर्ण भूमिका निभाती है।
- C++ या C से समान परफॉर्मेंस हासिल की जा सकती है, लेकिन Rust डेवलपर्स के लिए आसान और सुरक्षित development experience देता है।
पूरे स्टैक के स्वामित्व का महत्व
- Zed का विकास दल tree-sitter से लेकर GPUI जैसे GPU-accelerated UI framework तक पूरी tech stack को अपने पास रखता है।
- पूरी stack का ownership एक उद्देश्यपूर्ण चुनाव है, जिससे परफॉर्मेंस और फीचर्स पर पूर्ण control मिल पाता है।
पूर्ण abstraction और तात्कालिकता के बीच संतुलन
- केवल वही बनाएं जितना ज़रूरी है और जितना पर्याप्त हो; और जो कुछ हमने सीखा है, उसके आधार पर जरूरत पड़ने पर चीजों की पुनः समीक्षा करना महत्वपूर्ण है।
- मुख्य हिस्सों में बेहतर quality और परफॉर्मेंस सुनिश्चित करने के लिए पर्याप्त समय निवेश करना चाहिए।
डेवलपर टूल और तकनीक का रिश्ता
- डेवलपर टूल के यूज़र्स तकनीक में ज़्यादा रुचि ले सकते हैं, और चुनी गई तकनीक सीधे यूज़र को मिलने वाली परफॉर्मेंस और फीचर्स को प्रभावित करती है।
- Rust में लिखा Zed डेवलपर्स को योगदान देने में आसान बनाता है, जिससे कम्युनिटी की भागीदारी बढ़ती है।
GN⁺ की राय
- Zed का विकास दिखाता है कि तकनीकी चयन उत्पाद के vision और परफॉर्मेंस को कितना प्रभावित करते हैं। Rust जैसी आधुनिक programming language चुनना developer productivity और उत्पाद की परफॉर्मेंस दोनों को साथ में बेहतर करने की क्षमता दिखाता है।
- पूरी तकनीकी stack का ownership Zed टीम को परफॉर्मेंस ऑप्टिमाइज़ेशन और फीचर डेवलपमेंट में flexibility देता है, जो high-performance text editor बनाने में निर्णायक भूमिका निभाता है।
- डेवलपर टूल के मामले में, चुनी हुई तकनीक अंतिम यूज़र अनुभव पर अधिक प्रभाव डाल सकती है और इससे यह तय हो सकता है कि Zed को डेवलपर कम्युनिटी कैसे अपनाती है। Rust का उपयोग Zed में योगदान को ज़्यादा आकर्षक बनाता है और इससे उत्पाद के growth और विकास पर सकारात्मक असर पड़ता है।
1 टिप्पणियां
Hacker News राय
यूज़र-डिफ़ाइंड UI फ्रेमवर्क अभी शायद मज़ेदार हो सकता है, लेकिन जब accessibility लागू करनी हो तब दिक्कत बन सकता है। बिना performance पर असर डाले custom framework में accessibility जोड़ना आसान नहीं होता, और प्लैटफ़ॉर्म-विशिष्ट काम काफी जटिल हो जाता है। Zed सिर्फ एक साधारण editor नहीं, बल्कि collaboration टूल के रूप में उभर रहा है, इसलिए ज़रूरी है कि हर डेवलपमेंट टीम मेंबर इसका इस्तेमाल कर सके।
Zed टेक्स्ट एडीटर इस्तेमाल करने से पहले यूज़र्स को एक लाइसेंस से सहमत होना पड़ता है। यूज़र कंटेंट को 'User Content' की श्रेणी में रखा गया है, और यह केवल उसी स्थिति में भेजा जाता है जब आप किसी अन्य Zed यूज़र के साथ प्रोजेक्ट साझा करते हैं। Zed का दावा है कि यूज़र कंटेंट तक उसकी पहुँच सिर्फ debugging और solution सुधार के लिए सीमित है।
Zed टेक्स्ट एडीटर बहुत promising लगता है, लेकिन remote host/डेवेलपमेंट कंटेनर सपोर्ट नहीं होने से मैं इसे इस्तेमाल नहीं कर सकता। VSCode में यह फीचर मेरे workflow के लिए बहुत important है; मैं Mac को एक पोर्टल की तरह इस्तेमाल करके VM और कंटेनरों में कोड लिखना पसंद करता हूँ। यह project isolation और security posture दोनों बेहतर बनाता है।
यह इंटरव्यू डेवलपर्स के development approach पर शानदार insight देता है। अलग-अलग angle से development को देखने के तरीके पर बहुत सोचने का मौका मिला।
मैंने Zed का इस्तेमाल नहीं किया, लेकिन José Valim को कोडिंग session live stream करते वक्त Zed use करते देखा है। मैं आम तौर पर VSCode use करता हूँ, लेकिन Zed का 'Find All' फीचर बहुत असरदार लगा। यह VSCode की तरह results window में matching files के सभी snippets दिखाता है, लेकिन Zed में आप सीधे उन्हीं snippets को वहीं edit कर सकते हैं। इसके उलट VSCode में search result क्लिक करके file खोलनी और फिर edit करना पड़ता है।
Zed Windows या Linux पर काम नहीं करता। अगर कभी ये platforms पर चलने लगे तो बताइए।
इंटरव्यू बहुत बढ़िया था, और 'gold-plate' पर कितना सोच-विचार हुआ है, देखकर मैं हैरान हूँ। सबसे अच्छा काम अक्सर दूसरी या उसके बाद की कोशिशों में आता है। Zed की config को script की तरह लिखने की कोई योजना है, ये जानना चाहता हूँ। अभी तक मैंने Zed का ज़्यादा इस्तेमाल नहीं किया, लेकिन Neon जैसे tools VSCode और Atom users के लिए मौजूद हैं।
मैंने Zed try किया और इसे VSCode जैसा पाया। multiplayer फीचर live share से बेहतर है, लेकिन स्विच करने के लिए अभी काफी कुछ और चाहिए। अगर ये XCode की जगह ले सकता है, तो शायद मैं Zed पर ज्यादा झुक जाऊँ। XCode के साथ मैं awkward feel करता हूँ, और Android Studio जैसी iOS dev experience चाहता हूँ।
मैं native apps को prefer करता हूँ लेकिन अभी भी VSCode पर ही काम करना पड़ता है। VSCode में cursor blink पर बहुत ज्यादा power खर्च होता देखना अच्छा नहीं लगा। Zed हल्का और तेज लगता है, लेकिन मैं Mac पर Ubuntu box के साथ remote development और Jupyter Notebook सपोर्ट का आदी हूँ, इसलिए VSCode ठीक से काम करता है। मैं चाहूँगा कि Zed उतना ही विकसित होता रहे जब तक मेरे workflow को सपोर्ट न करने लगे।
मैंने Zed के About page को देखा और लाइव coding feature उपयोगी लग रहा है। यह developers के लिए मज़ेदार project होगा; algorithm लिखना, performance optimize करना और GPU programming जैसी चीजें की जा सकती हैं। लेकिन सवाल ये है कि क्या हमें Vim और terminal multiplexer जितना functional दूसरा text editor चाहिए, अगर वो उनके बराबर नहीं हो सकता?