Bottles izstrādātāji nesen emuāra ierakstā atklāja informāciju par darbu, ko viņi veiks pie Bottles Next — iniciatīvas, kuras mērķis ir pilnībā pārveidot projekta arhitektūru un koda bāzi.
Paziņojumā minēts, ka pašreizējā Bottles versija, kas rakstīta Python valodā ar GTK balstītu saskarni, saskaras ar ievērojamiem ierobežojumiem , kas kavē jaunu funkciju, piemēram, macOS atbalsta, iekļaušanu, un rada problēmas, kuras var atrisināt tikai ar būtiskām strukturālām izmaiņām.
Vairāk nekā pirms gada mēs paziņojām par Bottles Next, kas ir pilnīga Bottles projekta pārrakstīšana. Sākotnēji bija ideja izmantot tīmekļa tehnoloģijas, lai sasniegtu pieredzi, kādu mēs saviem lietotājiem paredzējām. Tomēr, kā tas bieži notiek, notika plaši pētījumi, debates, eksperimenti un nepārtraukta pārvērtēšana.
Kāpēc iet cauri visām šīm grūtībām? Nu, lai pārliecinātos, ka pieņemam pareizos lēmumus.
Pēc paziņojuma mēs sākām eksperimentēt ar daudzām tehnoloģijām, bet galvenokārt mēs uzklausījām atsauksmes no kopienas, jo īpaši tās, kas saistītas ar Electron. Tas pamudināja mūs izpētīt citus ceļus, kas lika mums izveidot ietvara prototipus, kas pielāgoti Bottles Next īpašajām vajadzībām.
Un šeit mēs esam šodien.
Tāpēc jaunā pieeja sadala lietojumprogrammu trīs galvenajās sastāvdaļās:
- Klients: atbild par grafisko interfeisu
- Serveris: atbild par lietojumprogrammu palaišanas un Wine prefiksu pārvaldības loģiku
- Aģents: kas darbojas programmā Wine, lai tieši mijiedarbotos ar Windows API.
Lai gan sākotnēji tika apsvērta klienta ieviešana ar tīmekļa tehnoloģijām, piemēram, Electron un VueJS, un servera izstrāde Go valodā, kopienas reakcija un ar prototipiem iegūtie rezultāti lika izstrādātājiem atteikties no šīs idejas.
Tāpēc galu galā tika nolemts izmantot Rust gan klientam, gan serverim, savukārt grafiskā saskarne tiks balstīta uz libcosmic ietvaru. Šis ietvars, kas tiek izmantots COSMIC darbvirsmas vidē, ir iced bibliotēkas paplašinājums , kas atvieglo modernu un mērogojamu grafisko saskarņu izveidi. Libcosmic izmanto reaktīvu programmēšanas modeli un seko deklaratīvās Elm valodas arhitektūrai, tādējādi izstrādātājiem, kas pārzina šo pieeju, ir vieglāk to saprast.

Lai gan izstrādātāji būtu vēlējušies strādāt ar Go valodu, viņi galu galā izvēlējās Rust ierobežotās augstas kvalitātes rīku pieejamības dēļ grafisko saskarņu izstrādei Go valodā. Neskatoties uz šo pāreju, jaunajā arhitektūrā ir iekļauti arī plāni saglabāt saskarnes klasisko versiju kā izvēles iespēju, piedāvājot lietotājiem pazīstamu pieredzi, vienlaikus pielāgojoties jaunajiem standartiem un tehnoloģijām.
Renderēšanas ziņā Bottles Next atbalstīs tādus dzinējus kā Vulkan, Metal, DX12, OpenGL 2.1+ un OpenGL ES 2.0+, nodrošinot plašu pielāgošanās spēju dažādām sistēmām un aparatūrai. Šī pārprojektēšana sola uzlabot veiktspēju, paplašināt starpplatformu saderību un nodrošināt stabilāku pamatu turpmākajai Bottles izstrādei.
Šis atjauninājums ietekmē gan Bottles Legacy (pašreizējo Bottles versiju), gan Bottles Next. Tuvāko nedēļu laikā tiks pabeigta pirmā cpak versija. Tas ir pārnēsājams, dedublēts programmatūras izplatīšanas formāts, kas pilnībā balstīts uz OCI attēliem.
Tiek arī minēts, ka Bottles Next aģents, kas darbojas Wine ģenerētā Windows vidē, tiks rakstīts C# valodā, izmantojot .NET. Šī izvēle atbilst WineBridge pakalpojuma īpašajām vajadzībām, kam nepieciešama efektīva integrācija ar Windows API emulētā vidē.
Runājot par izstrādi, paredzams, ka pēc dažām nedēļām tiks izlaists konteiners Bottles Next sākotnējā prototipa testēšanai, kas pilnībā rakstīts Rust valodā . Pagaidām ir pieejama tikai pamata demonstrācijas versija, kas ļauj lietotājiem iegūt sākotnēju priekšstatu par projekta iespējām un virzienu. Šī pāreja uz Bottles Next sola ievērojamus uzlabojumus funkcionalitātē, saderībā un veiktspējā.
Visbeidzot, ja vēlaties uzzināt vairāk par šo tēmu , sīkāku informāciju varat atrast, izmantojot šo saiti.