Miranda NG:Апісанне

From Miranda NG
Jump to navigation Jump to search

Template:Languages/About Miranda NG (Next Generation) - форк Miranda IM, створаны былымі яе распрацоўшчыкамі.

Гісторыя

C вясны 2012 года ў распрацоўцы Miranda IM склалася патавая сітуацыя:

  1. Дзейсная мадэль распрацоўкі Міранды апынулася цалкам нежыццяздольнай па наступных прычынах:
    • Зменам ў ядры патрабавалася парадку паўтары гадоў, каб быць падхоплены распрацоўшчыкамі плагінаў і быць, нарэшце, даведзенымі да канчатковых карыстальнікаў. У выніку затрымкі атрымліваліся велізарнымі.
    • Зыходны код плагінаў быў раскіданы па дзесятках рэпазітароў, а для многіх плагінаў (актуальны) зыходны код быў наогул недаступны. Гэта абмяжоўвала ці ўвогуле рабіла немагчымым аўдыт кода плагінаў з боку удзельнікаў каманды. Адпаведна, код некаторых убудоў ўтрымлівае нерабочы, неэфектыўны або заведама памылковы код, і ніхто не мог на гэта паўплываць.
    • Існаваў велізарны воз праблем з сумяшчальнасцю паміж рознымі версіямі ядра Міранды і нават паміж версіямі асобных плагінаў. Асабліва гэта тычылася падтрымкі Unicode, якая ў Miranda IM так і не даведзена да канца.
  2. Склаўся выразна выспеўшы канфлікт паміж дзвюма асноўнымі на той момант распрацоўшчыкамі Міранды: 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 перанесены ў ядро.

Глядзіце таксама

Спасылкі