Borgo - Go में compile होने वाली एक statically typed language
(github.com/borgo-lang)Borgo programming language का परिचय
- ऐसी application development language चाहिए जो Go से ज़्यादा expressive हो, लेकिन Rust जितनी complex न हो
- Go सरल और intuitive है, लेकिन अक्सर लगता है कि यह और अधिक type safety दे सकता था
- Rust के साथ काम करना अच्छा है (कम से कम single-threaded code के मामले में), लेकिन यह बहुत व्यापक और जटिल है, और कभी-कभी काफ़ी painful भी
- Borgo एक नई language है जो Go में transpile होती है, और मौजूदा Go packages के साथ पूरी तरह compatible है
- Borgo का syntax Rust जैसा है, जिसमें semicolon optional है
मुख्य विशेषताएँ
- algebraic data types और pattern matching
nilकी जगह Option का उपयोग- multiple return values की जगह Result का उपयोग
?operator के साथ error handling
लोकल में चलाना
- Borgo, Rust में लिखा गया है, इसलिए
cargoकी ज़रूरत है - मौजूदा फ़ोल्डर की सभी
.brgfiles को compile करने के लिए:$ cargo run -- build
- compiler
.gofiles generate करता है, और उन्हें सामान्य रूप से चलाया जा सकता है
GN⁺ की राय
- Rust एक शक्तिशाली language है, लेकिन इसका learning curve काफ़ी steep है और adoption barrier भी ऊँचा है। Borgo, Rust के फ़ायदों को Go ecosystem में इस्तेमाल करने की एक दिलचस्प कोशिश लगती है। हालांकि, यह अभी शुरुआती चरण में है, इसलिए ecosystem सीमित होने की संभावना है
- Option और Result के ज़रिए
nilऔर error handling को बेहतर बनाना, और?operator से error handling को आसान करना, ऐसे हिस्से हैं जो Go developers की आम परेशानियों को कम कर सकते हैं - मौजूदा Go libraries को वैसे ही इस्तेमाल कर पाना एक बड़ा फ़ायदा है। लेकिन Rust syntax अपनाने की वजह से Go developers को इसके साथ सहज होने में समय लग सकता है
- चूँकि यह transpile approach है, इसलिए debugging या runtime performance जैसे मामलों में native Go code की तुलना में कमज़ोरी हो सकती है। बड़े पैमाने के production code में इसे लागू करना अभी थोड़ा जल्दी लग सकता है
- जैसे Kotlin ने JVM ecosystem में अपनी हिस्सेदारी बढ़ाई है, वैसे ही Borgo को Go के लिए एक ठोस solution बनने के लिए code quality, developer productivity, learning curve जैसे कई पहलुओं में लगातार सुधार की ज़रूरत होगी। अगर इसका विकास लगातार होता रहा, तो यह Go ecosystem का एक आकर्षक alternative बन सकता है
1 टिप्पणियां
Hacker News टिप्पणियाँ
सारांश:
implका उपयोग करके method definition, channel और goroutine syntax,zeroValue()built-in function आदिpub/privatekeywords लाना भी सकारात्मक माना गया