Програмери пројекта Bottles су недавно , путем блога, открили детаље о раду који ће обављати на пројекту Bottles Next, иницијативи која има за циљ потпуно редизајнирање архитектуре и кодне базе пројекта.
У саопштењу се помиње да се тренутна верзија програма Bottles, написана у Пајтону са интерфејсом заснованим на GTK-у, суочава са значајним ограничењима која ометају укључивање нових функција, као што је подршка за macOS, и поставља проблеме који се могу решити само дубоком структурном променом.
Пре више од годину дана најавили смо Боттлес Нект, потпуну преправку пројекта Боттлес. У почетку, идеја је била да искористимо веб технологије да бисмо постигли искуство које смо замислили за наше кориснике. Међутим, као што је то често случај, било је опсежних истраживања, дебата, експеримената и континуираног поновног вредновања.
Зашто пролазити кроз све ове невоље? Па, да будемо сигурни да доносимо праве одлуке.
Након објаве, почели смо да експериментишемо са многим технологијама, али пре свега слушали смо повратне информације из заједнице, посебно оне које се односе на Елецтрон. Ово нас је подстакло да истражимо друге путеве, што нас је довело до стварања прототипова оквира прилагођених специфичним потребама Боттлес Нект-а.
И ево нас данас.
Зато нови приступ дели апликацију на три главне компоненте:
- Клијент: одговоран за графички интерфејс
- Сервер: задужен за логику покретања апликација и управљање Вине префиксима
- Агент: који ради у оквиру Вине-а да би директно комуницирао са Виндовс АПИ-јем.
Иако је у почетку било разматрано да се клијент имплементира помоћу веб технологија као што су Electron и VueJS, а сервер развије у Go језику, реакција заједнице и резултати добијени са прототиповима навели су програмере да напусте ову идеју.
Стога је на крају одлучено да се користи Rust и за клијента и за сервер, док би графички интерфејс био базиран на libcosmic фрејмворку. Овај фрејмворк, који се користи у COSMIC десктоп окружењу, представља проширење iced библиотеке , која олакшава креирање модерних и скалабилних графичких интерфејса. Libcosmic усваја реактивни модел програмирања и прати архитектуру сличну декларативном Elm језику, што га чини лакшим за разумевање програмерима који су упознати са овим приступом.

Иако би програмери више волели да раде са језиком Go, на крају су се одлучили за Rust због ограничене доступности висококвалитетних алата за развој графичких интерфејса у Go-у. Упркос овој транзицији, нова архитектура такође укључује планове да задржи класичну верзију интерфејса као опцију, нудећи корисницима познато искуство уз прилагођавање новим стандардима и технологијама.
Што се тиче рендеровања, Bottles Next ће подржавати моторе као што су Vulkan, Metal, DX12, OpenGL 2.1+ и OpenGL ES 2.0+, обезбеђујући широку прилагодљивост различитим системима и хардверу. Овај редизајн обећава побољшане перформансе, проширење компатибилности између платформи и пружање робусније основе за будући развој Bottles-а.
Ово ажурирање утиче и на Боттлес Легаци (тренутну верзију Боттлес) и на Боттлес Нект. У наредним недељама ће бити завршена прва верзија цпак-а. То је преносиви формат за дистрибуцију софтвера без дупликата заснован у потпуности на ОЦИ сликама.
Такође се помиње да ће агент Bottles Next, који ради у Windows окружењу генерисаном помоћу Wine-а, бити написан у C# користећи .NET. Овај избор се бави специфичним потребама WineBridge сервиса, који захтева ефикасну интеграцију са Windows API-јем у емулираном окружењу.
Што се тиче развоја, очекује се да ће контејнер за тестирање почетног прототипа пројекта Bottles Next, у потпуности написаног у програмском језику Rust, бити објављен за неколико недеља . За сада је доступна само основна демо верзија, која корисницима омогућава да стекну прелиминарну представу о могућностима и правцу кретања пројекта. Овај прелазак на Bottles Next обећава значајна побољшања у функционалности, компатибилности и перформансама.
Коначно, ако сте заинтересовани да сазнате више о овоме , детаље можете пронаћи на следећем линку.