Rust की तरह Python लिखना
(kobzol.github.io)- Rust का उपयोग शुरू करने के बाद, मैंने Python कोडिंग शैली में Rust की कुछ अवधारणाएँ अपनाईं
- जितना संभव हो उतना Type Hint का उपयोग करना
- tuple/dictionary की जगह Dataclasses
- Algebraic data types (ADT)
- newtype pattern
- types का उपयोग करके invariant को encode करना
- Strongly-typed bounding boxes
8 टिप्पणियां
अगर ऐसा ही करना है तो फिर python क्यों इस्तेमाल करें...
(feat. अगर ऐसा ही करना है तो फिर nodejs क्यों इस्तेमाल करें)
लगता है इसमें सिर्फ types ही डाले गए हैं, क्या इसकी Rust से तुलना करना ठीक है?
अगर Python को Rust की तरह लिखना है, तो क्या Rust का इस्तेमाल करना बेहतर नहीं होगा?..
क्या Rust में Tensorflow, PyTorch का इस्तेमाल किया जा सकता है? मान लें कि किया भी जा सकता है, तब भी यह नहीं कहा जा सकता कि उनसे जुड़ी हुई ढेर सारी libraries भी इस्तेमाल की जा सकेंगी। यह बहुत एक-आयामी सोच है।
मेरा मानना है कि किसी भाषा की अच्छी विशेषताओं (कॉन्सेप्ट्स) का उपयोग करना और उस भाषा को सीधे इस्तेमाल करना, हालात के अनुसार अलग-अलग हो सकता है, लेकिन ये दोनों एक ही बात नहीं हैं। भले ही JavaScript में Lisp, Haskell जैसी functional languages की कुछ विशेषताओं का बहुत प्रभावी ढंग से उपयोग किया जाए, फिर भी जहाँ JavaScript इस्तेमाल होती है वहाँ Lisp का उपयोग नहीं किया जा सकता।
स्थिति के अनुसार चुनना पड़ेगा, लेकिन सामान्य तौर पर ये ऐसे approaches हैं जिन्हें मैं recommend करना चाहूँगा।
मुझे Python अच्छी तरह नहीं पता....
अगर इसे इस तरह करें, तो क्या overhead ज़्यादा नहीं बढ़ जाएगा?
कुल मिलाकर बात ज़्यादातर type hint इस्तेमाल करने की है, लेकिन यह runtime पर होने वाली चीज़ नहीं है, इसलिए performance से इसका कोई संबंध नहीं है।
isinstanceजैसी type check वाली चीज़ें न होने की तुलना में थोड़ा असर डालेंगी, लेकिन मेरी जानकारी में वे अंदर ही अंदर cache हो जाती हैं। बहुत बड़े loop में करें तो फ़र्क पड़ सकता है।