Ten příklad https://rustpython.github.io/demo/ s while je takový Cčkový :)
Pythonovitější by bylo cyklus zapsat:
for count in range(until):
Je v tom trochu rozdíl. Hlavním smyslem gpythonu není vytvořit novou verzi Python interpretru, který budete spouštět z příkazové řádky, ale umožnit spouštět Python skripty z Go kódu. Stejně tak existuje interpret Javascriptu nebo několik interpretrů Lua (pro verze 5.1, 5.2 a 5.3). Díky tomu můžete vytvářet rozšiřující moduly, podobně jak můžete ppomocí Lua modulů rozšiřovat funkčnost třeba Ngnix.
Buď se pletete, nebo jste nepochopil, co jsem psal.
Samozřejmě, že nevidím do hlavy autora, takže asi nelze říct úplně přesný důvod vzniku (zvláště, když to na stránkách neuvádí). A to, že tam je i 100 řádkové main.go neznamená, že ten zbytek nemohu použít jako knihovnu, zvláště když je to tak celé strukturováno. A vzhledem k tomu, že tam chybí elementární Python knihovny, je to jako command line interpreter v podstatě nepoužitelné.
A teď proč jsem si dovolil napsat ten první odstavec. Grumpy je úplně něco jiného, je to transpiler, který Google napsal pro překlad svých Python zdrojových kódů do zdrojových kódů Go (aby zrychlil své služby). Ten nedovolí to, o čem jsem psal. Já psal o interpretování externích Python skriptů v mém programu, které rozšiřují můj už zkompilovaný Go program. Kouzlo je v tom, že nabídnete vlastní předpřipravené knihovny napsané v Go volatelné z Pythonu.
Tuto konkrétní implementaci bych v produkci nepoužil, na to to vypadá příliš nedotaženě, ale běžně se v produkci používá Lua, Lisp nebo třeba Javascript. Výsledkem pak třeba může být univerzální audio syntezátor napsaný v Go, který můžete konfigurovat pomocí externího programu v Lispu.
Pěkný výčet.
Doplňme i implementaci Pythonu v JavaScriptu: https://brython.info/ pro běh v prohlížečích
a QPython pro běh v Andoidím JavoLinuxu: https://www.qpython.com/
IMHO: Dá se z toho usuzovat, že Pythoní syntaxe a jeho logika spustě lidem vyhovuje a tak mají potřebu ho reimplemtovat i v dalších jazycích, aby ho mohli používat v dalších prostředích.
@ - -
Tak už jenom podle zprávičky větší paměťová bezpečnost. Jako, argument, že se tříští síly chápu, nicméně vypadá to že tento stojí proti pokrou (nějaký dřív či později přijít musí/měl by) a v tom světle objevuje otázka, jestli se tříští kvůli přílišnému naskakování na novinky a nebo nechopnosti opustit staré způsoby?
Proč začínat na zelený louce? Proč nenahradí nějaké části stávajícího interpreteru implementací v Rustu? Podobně to tuším zkouší Gnome -- po fiasku s Valou. Ne vážně já sleduji Rust od plenek, ale přepisovat vše pod záminkou paměťové bezpečnost je nesmysl -- se divím že to nepřepisují do Ada/Spark :)