Zhvilluesit e programit Bottles, i cili ofron një ndërfaqe për të lehtësuar instalimin, konfigurimin dhe ekzekutimin e aplikacioneve Windows në Linux, publikuan informacion mbi zhvillimin e iniciativës Bottles Next, e cila ka si qëllim një ripërpunim të plotë të arkitekturës dhe bazës së kodit të projektit. Shtrohet se aplikacioni monolit aktual në Python me një ndërfaqe GTK nuk lejon realizimin e shumë ideve, si mbështetje për macOS, kufizon mundësitë dhe çon në probleme që nuk zgjidhen pa ndryshime radikale në arkitekturë.
Arkitektura e re parashikon ndarjen e aplikacionit në tre komponentë të veçantë: klienti me implementimin e ndërfaqes grafike, serverin me logjikën e ekzekutimit të aplikacioneve dhe menaxhimin e prefikseve Wine, dhe agjentin që punon nën Wine dhe ndërvepron me API-në e Windows. Fillimisht ishte parashikuar përdorimi i teknologjive web (Electron dhe VueJS) për implementimin e klientit, por server duhej të ishte shkruar në gjuhën Go, por prototipat e krijuar dhe refuzimi i komunitetit ndaj idesë për kalim në motorin Electron, nxitën zhvilluesit të heqin dorë nga kjo ide.
Si rezultat, u vendos të përdoret për zhvillimin e klientit dhe serverë gjuha Rust, dhe ndërfaqja grafike të ndërtohet mbi bazën e framework-ut libcosmic. Libcosmic përdoret në ambientin e desktopit COSMIC dhe përbën një shtresë mbi bibliotekën iced, që ofron funksione për krijimin e aplikacioneve grafike dhe aplikacioneve të vogla. Për zhvillimin e saj aplikohet modeli i programimit reaktiv dhe arkitektura e njohur për zhvilluesit që janë të njohur me gjuhën e ndërtimit deklarativ të ndërfaqeve Elm. Për vizatimin e mund të përdoren motorët mbi bazën e Vulkan, Metal, DX12, OpenGL 2.1+ dhe OpenGL ES 2.0+.
Shtrohet se zhvilluesit do të ndiheshin më komod në përdorimin e gjuhës Go, por duhej të heqin dorë nga ajo për shkak të mungesës së toolkit-eve cilësore për zhvillimin e ndërfaqeve të përdoruesit. Përveç ndërfaqes së re të thjeshtëzuar, është parashikuar që si opsion të ruhet versioni klasik i njohur i ndërfaqes. Kodi i agjentit do të shkruhet në C# dhe .NET, çka shpjegohet nga nevoja për ekzekutimin e shërbimit WineBridge në ambientin Windows, të formuar nga Wine. Konteineri për testimin e prototipit fillestar të Bottles Next, i shkruar në Rust, planifikohet të publikohet pas disa javësh. Aktualisht është e disponueshme vetëm një version demo i thjeshtë.


Burimi: opennet.ru
