Pembangun Bottles baru-baru ini mendedahkan , melalui catatan blog , butiran tentang kerja yang akan mereka lakukan pada Bottles Next, satu inisiatif yang bertujuan untuk mereka bentuk semula sepenuhnya seni bina dan pangkalan kod projek tersebut.
Kenyataan itu menyebut bahawa versi semasa Bottles, yang ditulis dalam Python dengan antara muka berasaskan GTK, menghadapi batasan ketara yang menghalang penggabungan ciri-ciri baharu, seperti sokongan macOS, dan menimbulkan masalah yang hanya boleh diselesaikan melalui perubahan struktur yang mendalam.
Lebih setahun yang lalu, kami mengumumkan Bottles Next, penulisan semula lengkap projek Bottles. Pada mulanya, ideanya adalah untuk memanfaatkan teknologi web untuk mencapai pengalaman yang kami bayangkan untuk pengguna kami. Walau bagaimanapun, seperti yang sering berlaku, terdapat penyelidikan, perbahasan, eksperimen dan penilaian semula yang berterusan.
Mengapa perlu melalui semua masalah ini? Nah, untuk memastikan kita membuat keputusan yang betul.
Selepas pengumuman itu, kami mula bereksperimen dengan banyak teknologi, tetapi yang paling penting, kami mendengar maklum balas daripada komuniti, terutamanya yang berkaitan dengan Elektron. Ini mendorong kami untuk meneroka laluan lain, yang membawa kami mencipta prototaip rangka kerja yang disesuaikan dengan keperluan khusus Bottles Next.
Dan inilah kita hari ini.
Itulah sebabnya pendekatan baharu ini membahagikan aplikasi kepada tiga komponen utama:
- Pelanggan: bertanggungjawab untuk antara muka grafik
- Pelayan: bertanggungjawab ke atas logik untuk menjalankan aplikasi dan mengurus awalan Wain
- Ejen: yang beroperasi dalam Wine untuk berinteraksi secara langsung dengan Windows API.
Walaupun pada mulanya ia dianggap untuk melaksanakan klien dengan teknologi web seperti Electron dan VueJS, dan membangunkan pelayan dalam Go, reaksi komuniti dan hasil yang diperoleh dengan prototaip menyebabkan pembangun meninggalkan idea ini.
Oleh itu, akhirnya diputuskan untuk menggunakan Rust untuk kedua-dua klien dan pelayan, manakala antara muka grafik akan berdasarkan rangka kerja libcosmic. Rangka kerja ini, yang digunakan dalam persekitaran desktop COSMIC, merupakan lanjutan daripada pustaka iced , yang memudahkan penciptaan antara muka grafik moden dan boleh diskala. Libcosmic menggunakan model pengaturcaraan reaktif dan mengikuti seni bina yang serupa dengan bahasa Elm deklaratif, menjadikannya lebih mudah untuk difahami oleh pembangun yang biasa dengan pendekatan ini.

Walaupun pembangun lebih suka menggunakan bahasa Go, mereka akhirnya memilih Rust kerana ketersediaan alat berkualiti tinggi yang terhad untuk membangunkan antara muka grafik dalam Go. Walaupun terdapat peralihan ini, seni bina baharu ini juga merangkumi rancangan untuk mengekalkan versi klasik antara muka sebagai pilihan, menawarkan pengguna pengalaman yang biasa sambil menyesuaikan diri dengan piawaian dan teknologi baharu.
Dari segi pemaparan, Bottles Next akan menyokong enjin seperti Vulkan, Metal, DX12, OpenGL 2.1+ dan OpenGL ES 2.0+, memastikan kebolehsuaian yang meluas kepada sistem dan perkakasan yang berbeza. Reka bentuk semula ini menjanjikan prestasi yang lebih baik, meluaskan keserasian merentas platform dan menyediakan asas yang lebih kukuh untuk pembangunan Bottles pada masa hadapan.
Kemas kini ini memberi kesan kepada Bottles Legacy (versi semasa Bottles) dan Bottles Next. Dalam minggu-minggu akan datang versi pertama cpak akan disiapkan. Ia adalah format pengedaran perisian yang mudah alih dan dinyahduplikasi berdasarkan sepenuhnya pada imej OCI.
Ia juga disebut bahawa ejen Bottles Next, yang beroperasi dalam persekitaran Windows yang dijana oleh Wine, akan ditulis dalam C# menggunakan .NET. Pilihan ini menangani keperluan khusus perkhidmatan WineBridge, yang memerlukan integrasi yang cekap dengan API Windows dalam persekitaran yang diemulasikan.
Berkenaan pembangunan, sebuah kontena untuk menguji prototaip awal Bottles Next, yang ditulis sepenuhnya dalam Rust, dijangka akan dikeluarkan dalam beberapa minggu . Buat masa ini, hanya versi demo asas yang tersedia, yang membolehkan pengguna mendapatkan gambaran awal tentang keupayaan dan hala tuju projek. Peralihan kepada Bottles Next ini menjanjikan penambahbaikan yang ketara dalam fungsi, keserasian dan prestasi.
Akhir sekali, jika anda berminat untuk mengetahui lebih lanjut tentang perkara ini , anda boleh mendapatkan butiran lanjut di pautan berikut.