Miranda NG:Апісанне
Miranda NG:About/be
Template:Languages/About Miranda NG (Next Generation) - форк Miranda IM, створаны былымі яе распрацоўшчыкамі.
Гісторыя
C вясны 2012 года ў распрацоўцы Miranda IM склалася патавая сітуацыя:
- Дзейсная мадэль распрацоўкі Міранды апынулася цалкам нежыццяздольнай па наступных прычынах:
- Зменам ў ядры патрабавалася парадку паўтары гадоў, каб быць падхоплены распрацоўшчыкамі плагінаў і быць, нарэшце, даведзенымі да канчатковых карыстальнікаў. У выніку затрымкі атрымліваліся велізарнымі.
- Зыходны код плагінаў быў раскіданы па дзесятках рэпазітароў, а для многіх плагінаў (актуальны) зыходны код быў наогул недаступны. Гэта абмяжоўвала ці ўвогуле рабіла немагчымым аўдыт кода плагінаў з боку удзельнікаў каманды. Адпаведна, код некаторых убудоў ўтрымлівае нерабочы, неэфектыўны або заведама памылковы код, і ніхто не мог на гэта паўплываць.
- Існаваў велізарны воз праблем з сумяшчальнасцю паміж рознымі версіямі ядра Міранды і нават паміж версіямі асобных плагінаў. Асабліва гэта тычылася падтрымкі Unicode, якая ў Miranda IM так і не даведзена да канца.
- Склаўся выразна выспеўшы канфлікт паміж дзвюма асноўнымі на той момант распрацоўшчыкамі Міранды: ghazan (ghazan) і borkra (borkra), апошняй кропляй якога стаў адкат Барысам фікса для зробленай ім памылкі з-за таго, што ў каментары да камітаў было ўжыта ангельскае прычасце borkred, вынайдзенае для "зламаных" ім частак Міранды адным з удзельнікаў праекту (не Георгіем).
У выніку ўсяго гэтага ў пачатку красавіка 2012 тагачасны куратар ядра Miranda IM Георгій Хазан прыняў рашэнне пакінуць праект, нягледзячы на наяўнасць мноства відавочных кірункаў развіцця Міранды. Аднак, у працэсе перамоваў паміж рознымі бакамі было прынята рашэнне арганізаваць новы праект, пад яго кіраўніцтвам.
15 мая 2012 года зыходны код ядра Міранды быў заліты ў асобны рэпазітар, і ў яго потым было дададзена больш за сотню убудоў. Плагіны для партавання выбіраліся па прынцыпе частоты выкарыстання і папулярнасці на сайце www.miranda-vi.org. Адназначна выключаліся плагіны, для якіх не існавала актуальнага зыходнага кода. У далейшым у зыходныя тэксты было ўнесена больш за паўтары тысячы змяненняў, пасля чаго 30 жніўня 2012 быў выпушчаны першы рэліз Miranda NG.
Прынцыпы праекта
- У праект ўваходзіць не толькі ядро, але і наогул усё убудовы, якія могуць быць выкарыстаны. Гэта адкрывае магчымасць любому члену каманды праверыць (і пры неабходнасці выправіць) код кожнай ўбудовы.
- Кожная канкрэтная версія Miranda NG сумяшчальная толькі сама з сабой (г. зн. гарантуецца, што ўсе ўбудовы ў адной зборцы сумяшчальныя адно з адным, але дзве суседнія зборкі могуць быць цалкам несумяшчальныя). Гэта цалкам вырашае ўсе праблемы з сумяшчальнасцю розных версій, дазваляе пазбавіцца ад грувасткага кода ў многіх месцах ядра і адкрывае найшырэйшы прастор для глабальнай аптымізацыі як ядра Міранды, так і адпаведных убудоў.
- Спыняецца падтрымка версій ANSI, як цалкам маральна састарэлых. Падтрымоўванымі кампілятарамі з'яўляюцца Visual Studio 2010 і VS2012.
- Усе члены каманды маюць розны доступ: хтосьці можа выпраўляць толькі код убудоў, хтосьці працуе ў трэкеры і вікі, хто-та можа выпраўляць любы код.
Перавагі Miranda NG
- Падключэнне і адключэнне убудоў «на лёце», без перазапуску праграмы;
- Падвышаная хуткасць запуску і працы праграмы;
- Значна зменшана спажыванне рэсурсаў сістэмы (GDI і аператыўнай памяці), у тым ліку за кошт вынясення невыкарыстоўваемых кавалкаў ядра ў асобныя модулі (тэчка Core).
- Усе убудовы знаходзяцца ў адным рэпазітары, пры зменах, што датычацца ядра - неабходныя праўкі ўносяцца адразу, без чакання рэакцыі распрацоўнікаў, якая можа доўжыцца месяцамі ў Miranda IM.
- Праведзена даволі вялікая праца па ўніфікацыі - многае з таго, што кожная убудова рэалізоўвала самастойна, было перанесена ў ядро.
- Пазбаўленне ад старых «кастылёў» і багаў, якое падвышае агульную стабільнасць праграмы.
- Вяртанне ў распрацоўку Miranda NG кодэраў, якія пакінулі раней распрацоўку убудоў пад Miranda IM.
Адрозненні ад Miranda IM
- У сувязі з сур'ёзнымі зменамі ў ядры праграмы, Miranda NG стала несумяшчальная з убудовамі ад Miranda IM.
- Стандартныя модулі ядра Miranda NG вынесены ў тэчку Core у корані праграмы. Гэтыя модулі не загружаюцца ў памяць пры наяўнасці іх «замен» і аўтаматычна падгружаюцца, калі «замена» была адключана. У выніку эканоміцца памяць і паменшаны час загрузкі праграмы. (Miranda IM трымае ў памяці непатрэбныя модулі нават пры наяўнасці іх альтэрнатыў.)
- Адмова ад ANSI, ядро і ўсе ўбудовы цалкам падтрымліваюць Unicode.
- Замест некалькіх тулбараў, што рэалізуюцца ў кожным убудове кантакт-ліста па-свойму, прыведзена ў парадак і дапрацавана убудова Template:Plugin/by.
- Dbtool стаў убудовай. Зараз праверка і сціск базы дадзеных ўбрана ў сам драйвер базы (у Miranda IM для кожнага фармату неабходна пісаць уласны dbtool). Такім чынам, Template:Plugin/by і Template:Plugin/by зараз толькі запускаюць адпаведны драйвер, і больш няма неабходнасці пад кожны драйвер мець сваю «родную» ўтыліту.
- Template:Plugin/by - «сінхранізатары» ўбудоў з афіцыйным рэпазітаром.
- Функцыянал ўбудовы Template:Plugin/by перанесены ў ядро.