Miranda NG:About

From Miranda NG
Revision as of 16:06, 24 February 2013 by Kildor (talk | contribs) (Start to translate)
Jump to navigation Jump to search

Template:Languages/About Miranda NG (Next Generation) is a successor of a popular multi-protocol instant messaging client for Windows – Miranda IM.

Protocol Support

Supported Operating Systems

Windows 2000 / 2003 / XP / Vista / 7 / 8

History

There was In the spring of 2012 the development of Miranda IM came into a stalemate:

  1. Принятая (и по сегодняшний день) модель разработки Миранды оказалась полностью нежизнеспособной по следующим причинам:
    • Изменениям в ядре требовалось порядка полутора лет, чтобы быть подхваченными разработчиками плагинов и быть, наконец-то, доведенными до конечных пользователей. В результате возникающие задержки получались огромными.
    • Исходный код плагинов был раскидан по десяткам репозиториев, а для многих плагинов (актуальный) исходный код был вообще недоступен. Это ограничивало или вообще делало невозможным аудит кода плагинов со стороны участником команды. Соответственно, код некоторых плагинов содержит нерабочий, неэффективный или откровенно ошибочный код, и никто не может на это повлиять.
    • Существовал огромный воз проблем с совместимостью между различными версиями ядра Миранды и даже между версиями отдельных плагинов. Особенно это касалось поддержки Unicode, которая в Miranda IM так и не доведена до конца.
  2. Сложился четко созревший конфликт между двумя оставшимися на тот момент активными разработчиками Миранды: ghazan (ghazan) и borkra (borkra), последней каплей которого стал откат Борисом фикса для совершенной им ошибки под тем предлогом, что в комментарии к коммиту был употреблено английское причастие borkred, изобретенное для сломанных им частей Миранды одним из участников проекта (не Георгием).

В результате всего этого в начале апреля 2012 тогдашний куратор ядра Miranda IM Георгий Хазан принял решение покинуть проект, несмотря на наличие множества очевидных направлений развития Миранды. Однако, в процессе переговоров между разными сторонами было принято решение организовать новый проект, под руководством ghazan.

15 мая 2012 года исходный код ядра Миранды был залит в отдельный репозиторий, и в него потом было добавлено больше сотни плагинов. Плагины для портирования выбирались по принципу частоты использования и популярности на сайте www.miranda-vi.org. Однозначно исключались плагины, для которых не существовало актуального исходного кода. В последующем в исходные тексты было внесено более полутора тысяч изменений, после чего 30 августа 2012 года был выпущен первый релиз Miranda NG.

Сейчас (осень 2012 года) в проекте зарегистрированы 15 человек, из них минимум половина активно участвуют в разработке.

Design principles

  • В проект входит не только ядро, но и вообще все плагины, которые могут быть использованы. Это открывает возможность любому члену команды проверить (и при необходимости исправить) код любого плагина.
  • Каждая конкретная версия Miranda NG совместима только сама с собой (т. е. гарантируется, что все плагины в одной сборке совместимы друг с другом, но две соседние сборки могут быть полностью несовместимы). Это полностью решает все проблемы с совместимостью разных версий, позволяет избавиться от громоздкого кода во многих местах ядра и открывает широчайший простор для глобальной оптимизации как ядра Миранды, так и соответствующих плагинов.
  • Прекращается поддержка версий ANSI, как полностью морально устаревших. Единственным поддерживаемым компилятором на момент написания статьи является Visual Studio 2010. Возможно, после выхода релиза VS2012, ее поддержка также будет включена в проект.
  • Все члены команды имеют разный доступ: кто-то может исправлять только код плагинов, кто-то работает в трекере и вики, кто-то может исправлять любой код.

Miranda NG advantages

  • Подключение и отключение плагинов «на лету», без перезапуска программы;
  • Повышена скорость запуска и работы программы;
  • Значительно уменьшено потребление ресурсов системы (GDI и оперативной памяти), в т. ч. за счет вынесения неиспользуемых кусков ядра в отдельные модули (папка Core).
  • Все плагины находятся в одном репозитории, при изменениях в ядре необходимые правки вносятся сразу, без ожидания реакции разработчиков, которая может длиться месяцами у Miranda IM.
  • Проведена достаточно большая работа по унификации — многое из того, что каждый плагин реализовывал самостоятельно, было перенесено в ядро.
  • Избавление от старых «костылей» и багов, повышающее общую стабильность программы.
  • Возвращение в разработку Miranda NG кодеров, покинувших или бросивших по тем или иным причинам разработку плагинов под Miranda IM.

Major features and differences from Miranda IM

  • В связи с серьезными изменениями в ядре программы, Miranda NG стала несовместима с плагинами от Miranda IM.
  • Стандартные модули ядра Miranda NG вынесены в папку Core в корне программы. Эти модули не загружаются в память при наличии их «замен» и автоматически подгружаются, если «замена» была отключена. В результате экономится память и уменьшено время загрузки программы. (Miranda IM держит в памяти ненужные модули даже при наличии их альтернатив.)
  • Отказ от ANSI, ядро и все плагины полностью поддерживают Unicode.
  • Вместо нескольких тулбаров, реализуемых в каждом плагине контакт-листа по-своему, приведен в порядок и доработан плагин Template:Plugin/en.
  • Dbtool стал плагином. Теперь проверка и сжатие базы данных убрано в сам драйвер базы (в Miranda IM для каждого формата необходимо писать собственный dbtool). Таким образом, Template:Plugin/en и Template:Plugin/en теперь только запускают соответствующий драйвер, и больше нет необходимости под каждый драйвер иметь свою «родную» утилиту.
  • Template:Plugin/en — «синхронизатор» плагинов с официальным репозиторием.
  • Функционал плагина Template:Plugin/en перенесён в ядро.

Also

External links