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