Transcript
00:00:00टाइपस्क्रिप्ट ने अभी वर्जन 7 के लिए एक रिलीज़ कैंडिडेट जारी किया है और यह वह वर्जन होगा जहाँ
00:00:04टाइपस्क्रिप्ट, टाइपस्क्रिप्ट नहीं रहेगा। अगर आप इससे अपडेटेड नहीं हैं, तो वे इसे फिर से लिखने पर काम कर रहे हैं
00:00:07टाइपस्क्रिप्ट कंपाइलर को टाइपस्क्रिप्ट से गो (Go) में और जाहिर है कि इसके नतीजे 10 गुना तेज़ हैं
00:00:12वे अगले महीने टाइपस्क्रिप्ट 7 रिलीज़ करने की उम्मीद कर रहे हैं, तो चलिए देखते हैं कि वास्तव में क्या बदला है
00:00:17यह कितना तेज़ है और क्या इसे इंस्टॉल करने से पहले कोई ब्रेकिंग बदलाव हैं जिनके बारे में आपको जानना चाहिए
00:00:26तो अगर आपने इसे गो (Go) में पोर्ट करने की खबर मिस कर दी है, तो उन्होंने यह काम लगभग एक साल पहले शुरू किया था
00:00:29और बात यह है कि उन्हें एहसास हुआ कि जावास्क्रिप्ट कभी भी उस भारी सीपीयू-बाउंड काम के लिए नहीं बनी थी जो
00:00:34एक टाइप चेकर करता है, इसलिए उन्होंने इसे गो (Go) में फिर से लिखना शुरू किया और शुरुआत में ही काफी सफलता मिली, उन्होंने
00:00:39मूल रूप से टाइपस्क्रिप्ट के मौजूदा कार्यान्वयन को लाइन-दर-लाइन पोर्ट करना शुरू किया ताकि टाइप
00:00:44चेकिंग लॉजिक पूरी तरह से समान बना रहे और उसका व्यवहार भी वही हो और आप देख भी सकते थे कि कुछ
00:00:48फंक्शंस भाषा के अलावा लगभग एक जैसे थे, मुझे यह भी पक्का यकीन है कि यह उस समय से पहले की बात है
00:00:52जब आप बस क्लाउड (Claude) को अपने कोडबेस पर पॉइंट करके कह सकते थे कि इसे जिस भाषा में चाहो माइग्रेट कर दो
00:00:56मैं तुम्हारी बात कर रहा हूँ बन (Bun)। पोर्ट के नतीजे खुद बोलते हैं, यहाँ मेरे पास
00:01:00प्लेराइट (Playwright) रेपो है और अगर मैं पुराने टाइपस्क्रिप्ट का उपयोग करके टाइप चेक करूँ तो यहाँ हम देख सकते हैं कि
00:01:04इसे पूरा होने में लगभग छह सेकंड लगते हैं और इसने 1400 फाइलें और पांच लाख लाइनें
00:01:08कोड को प्रोसेस किया। अगर मैं अब इस कमांड के अलावा कुछ भी बदले बिना रिलीज़ कैंडिडेट पर स्विच करूँ
00:01:12तो कुल मिलाकर इसे 0.87 सेकंड लगे, यह एक गंभीर सुधार है। इसने समान मात्रा में
00:01:18त्रुटियाँ पाईं, वही त्रुटियाँ, इसने उन्हीं फाइलों और कोड की लाइनों को चेक किया, तो यह बिल्कुल
00:01:23टाइपस्क्रिप्ट 6 की तरह ही काम करता है। गो (Go) का नेटिव कोड इस तरह के कार्यों के लिए जावास्क्रिप्ट से
00:01:27मौलिक रूप से तेज़ है, लेकिन यह उन्हें शेयर्ड मेमोरी पैरेललिज़्म (shared memory parallelism) का उपयोग करने की भी अनुमति देता है, इसलिए जहाँ जावास्क्रिप्ट कंपाइलर
00:01:32सिंगल थ्रेडेड था, गो (Go) उस टाइप चेकिंग को एक साथ कई कोर पर फैला सकता है। टाइपस्क्रिप्ट
00:01:377 में आप इसे एक फ्लैग के साथ सिंगल थ्रेडेड होने के लिए मजबूर कर सकते हैं, तो शायद आप कुछ डिबगिंग कर रहे हैं
00:01:41या आप सीमित संसाधनों वाली मशीन पर चला रहे हैं और अगर मैं प्लेराइट कोडबेस में ऐसा करूँ
00:01:46यहाँ टाइपस्क्रिप्ट 7 के साथ, हम देख सकते हैं कि सिंगल थ्रेडेड होने पर इसमें लगभग दो सेकंड लगते हैं, जो कि
00:01:50पहले की तुलना में अभी भी तीन गुना तेज़ है। समानांतर में चलाने की बात करें तो, वे एक
00:01:54नया 'चेकर्स' (checkers) फ्लैग भी पेश कर रहे हैं जो वास्तव में आपको यह सेट करने देता है कि कितने टाइप चेकर वर्कर समानांतर में चल सकते हैं
00:01:58और यह डिफ़ॉल्ट रूप से चार पर होता है। यदि आपके पास बहुत सारे सीपीयू कोर हैं तो इसे बढ़ाने से बड़े कोडबेस पर आपके बिल्ड तेज़ हो सकते हैं
00:02:03लेकिन यह अतिरिक्त मेमोरी उपयोग की कीमत पर होगा। अगर मैं इस प्लेराइट रेपो में चेकर्स को 8 पर सेट करूँ
00:02:08जो कि डिफ़ॉल्ट का दोगुना है, तो वास्तव में समय में एक और तिहाई की कमी आती है। एक नया
00:02:12'बिल्डर्स' (builders) फ्लैग भी है प्रोजेक्ट रेफरेंस बिल्ड्स को पैरेललाइज़ करने के लिए, यानी
00:02:16एक साथ कई प्रोजेक्ट्स को बिल्ड करना और यह फ्लैग आपको एक साथ चलने वाले समानांतर बिल्डरों की संख्या को नियंत्रित करने देता है
00:02:20और यह ध्यान देने योग्य है कि यदि आप इसे चेकर्स के साथ जोड़ते हैं जो हमने अभी देखा है, तो मान
00:02:24लीजिए आपके पास चार-चार दोनों हैं, तो इसका मतलब है कि आप एक साथ 16 टाइप चेकर चला सकते हैं। अब इसके अलावा
00:02:29नेटिव कोड बदलावों और समानांतरता के, टाइपस्क्रिप्ट 7 में एक और बड़ा बदलाव इसका वॉच मोड है।
00:02:34जब उन्होंने गो (Go) में पोर्ट किया तो यह थोड़ा मुश्किल था क्योंकि मानक लाइब्रेरी प्रदान नहीं करती
00:02:38इन-बिल्ट फाइल वॉचिंग एपीआई और उन्होंने जिन थर्ड-पार्टी लाइब्रेरीज़ को आज़माया, उनमें स्थिरता, प्रदर्शन
00:02:43और क्रॉस-प्लेटफ़ॉर्म सपोर्ट जैसी समस्याएँ थीं। इसलिए टीम ने पार्सल बंडलर (Parcel bundler) के
00:02:47फाइल वॉचर पर देखा जिसका उपयोग माइक्रोसॉफ्ट वीएस कोड (VS Code) में थोड़ा करती है, लेकिन चूंकि यह सी++ (C++) में था, इसलिए उन्हें
00:02:53उसके उन हिस्सों को भी गो (Go) में पोर्ट करना पड़ा जिनकी उन्हें ज़रूरत थी। अच्छी खबर यह है कि उन्होंने
00:02:57सब कुछ किया और यह वास्तव में सुचारू रूप से और पहले से बेहतर काम कर रहा है। आगे, क्योंकि यह
00:03:01एक बड़ा वर्जन अपग्रेड है, तो आप बहुत सारे ब्रेकिंग बदलावों की उम्मीद कर रहे होंगे, खासकर चूंकि यह एक बड़ा
00:03:05रीराइट है, लेकिन मुझे नहीं लगता कि कोई ब्रेकिंग बदलाव हैं यदि आप टाइपस्क्रिप्ट 6 से 7 में अपग्रेड कर रहे हैं। यदि आप
00:03:105 से 7 पर जाना चाहते हैं, तो काफी सारे बदलाव होंगे। इसलिए ऐसा लगता है कि वे सलाह दे रहे हैं कि आप
00:03:14पहले 6 पर जाएँ, सब कुछ काम करने दें और फिर 7 पर वर्जन अपग्रेड करना कोई समस्या नहीं होनी चाहिए। कुछ
00:03:19बड़े बदलाव जो टाइपस्क्रिप्ट 6 में थे, वे थे es5 टारगेट को हटाना, baseurl को हटाना और मॉड्यूल
00:03:24सिस्टम्स amd, umd और systemjs को डेप्रिकेट करना। उन्होंने strict को डिफ़ॉल्ट रूप से true कर दिया, module को esnext पर डिफ़ॉल्ट कर दिया
00:03:31और target डिफ़ॉल्ट रूप से esnext के तुरंत पहले के वर्तमान स्थिर एक्मास्क्रिप्ट (ecmascript) वर्जन पर सेट हो गया।
00:03:36यह मूल रूप से अतीत को पीछे छोड़ने और टाइपस्क्रिप्ट को आधुनिक बनाने के बारे में था, जो मुझे बहुत पसंद है क्योंकि
00:03:40कभी-कभी हर वर्जन में लेगेसी प्रोजेक्ट्स को सपोर्ट करने की कोशिश करना टूल की प्रगति को
00:03:45धीमा कर सकता है। बाकी ब्लॉग पोस्ट को देखते हुए, ऐसा लगता है कि एकमात्र नया
00:03:49फीचर या बदलाव जो वास्तव में टाइपस्क्रिप्ट भाषा से संबंधित है, वह यह है कि टेम्प्लेट लिटरल (template literal)
00:03:53टाइप्स अब यूनिक कोड पॉइंट को प्रिजर्व करते हैं। संक्षेप में, टाइपस्क्रिप्ट 7 से पहले, टाइपस्क्रिप्ट वास्तव में utf 16 कोड
00:03:59यूनिट्स पर स्प्लिट होता था, इसलिए यह एक इमोजी को आधा काट देता था और आपको यहाँ हेड और टेल
00:04:04के लिए ये अजीब टाइप मिल जाते थे। हालाँकि, टाइपस्क्रिप्ट 7 में, यह वास्तव में पूरे कोड पॉइंट पर स्प्लिट होता है, यानी पूरे कैरेक्टर,
00:04:09तो अब इमोजी प्रिजर्व रहता है और स्प्लिट बिल्कुल वैसा ही होता है जैसा कि आप उम्मीद करेंगे। मैं
00:04:13ईमानदारी से बहुत प्रभावित होऊँगा अगर आप में से किसी ने कभी टाइपस्क्रिप्ट का उपयोग करते समय इसका सामना किया हो।
00:04:18कुल मिलाकर, इन बदलावों से टाइपस्क्रिप्ट का उपयोग करने वाली किसी भी चीज़ को बहुत तेज़ महसूस होना चाहिए, जैसे कि टाइपस्क्रिप्ट
00:04:22आपके एडिटर में, विशेष रूप से बड़े प्रोजेक्ट्स के लिए। स्थिर रिलीज़ लगभग एक महीने में आने की उम्मीद है,
00:04:27लेकिन एक स्थिर प्रोग्रामेटिक एपीआई, यानी वह चीज़ जिसका उपयोग टूलिंग लेखक कंपाइलर के ऊपर निर्माण करने के लिए करते हैं,
00:04:32वर्जन 7.1 में आ रहा है। इस कारण एक कम्पैटिबिलिटी पैकेज भी है, ताकि आप
00:04:36टाइपस्क्रिप्ट 6 और 7 को एक साथ चला सकें बिना किसी टकराव के। मुझे बताएँ कि आप इस सबके बारे में क्या सोचते हैं
00:04:41और मुझे उत्सुकता है कि क्या आपने कभी महसूस किया है कि टाइपस्क्रिप्ट धीमा महसूस हो रहा था, मुझे कमेंट्स में बताएँ
00:04:44और जब आप नीचे हों, तो सब्सक्राइब करें और हमेशा की तरह, अगले वीडियो में मिलते हैं।
Community Posts
No posts yet. Be the first to write about this video!
Write about this video