Relatively recently, I read at the same time in several blogs and forums statements that, they say, Miranda is no longer what it used to be - from a lightweight, simple client - the legend of the beginning of the century, it turned into a heavy, buggy, hung with a ruffling monster.
In this topic I will try to tell about how it all began; in which direction the client is developing, for whom, how and by whom it is done, and most importantly - what to expect next
History tour
Chronology of development can be read in
Wikipedia , so here I will show her vision from the inside.
Miranda was born in 2000 as a lightweight ICQ clone. Really simple and lightweight - no plugins, profiles, history, chips and sweets. Its author, by the way - one of the leading developers of ACDSee, FigBug, soon abandoned the project and was picked up by other people. From 2001 to 2005, the main development team repeatedly changed, supplemented and settled down. In 2005, gold went to the 0.4th branch. It was already the same Miranda, which we used to see. During this time, a developed modular system, a service-event model, a multiprotocol, the famous clist_modern, responsible for the appearance of the main window and providing amazing possibilities for its design, appeared. The number of plug-ins in
addons has become hundreds, besides mBot has appeared, allowing to write scripts in php, which made it possible to expand the functionality on the go. Everyone's favorite alternative ISee, the ICQ module, works pretty well with servers and supports an expanded menu of visibility, as well as invisibility testing, for which he was appreciated by many. True, he soon died, due to the lack of time and interest from the author.
In the fifth branch a year later, the division into unicode and ansishny builds appeared, support for storing and transmitting messages in unicode appeared in the kernel and protocols. The icq module has learned to work with direct (p2p) connections and support MD5 login. Already it was possible to find a bunch of beautiful graphics and a variety of assemblies. Secured modification of the standard database was available, allowing to encrypt the profile file.
')
In December of the same year, release 0.6 appears. UPnP support is considered to be its main innovation - protocols can also install direct connections over NAT routers supporting this technology. Databases support data storage in utf8, but it is optional. API for plugins provided work with memory. In addition, by the time the work on version 0.5 was completed, there was a threat that various pieces of the Miranda would spread too far. This does not mean that flexibility must be fought, but the key things should be unified and the same, and therefore the sixth branch was mostly related to the refactoring of the kernel and the beginning of the development of new interfaces. In particular, the interface of the contact list module appeared, many things were consolidated into one system, and all common code was transferred to the core
Born a little over a year ago, the 7th version brought a lot of changes. This is a rewritten menu system, insertion of FontService and IcoLib into the kernel. The basic delivery began to include image plugins and the avatar manager. The modular interface has been changed, and plugins now need to identify themselves and the functions they provide using unique identifiers (UUIDs). Storing strings in the database was forcibly transferred to UTF8, which caused many problems with old abandoned plug-ins and damaged databases, but over time these plug-ins were patched by volunteers, and the bases were fixed. The Jabber protocol has entered a stage of active development, its interface has been qualitatively reworked and is suitable for everyday comfortable use.
There was a modification of the memory-mapped base, which made it possible to combine the auto-backup profile and encryption with the advantages of high speed of this technology.
In general, versions 0.6 and 0.7 were entirely devoted to kernel refactoring. At the same time, despite the fact that the size of the kernel was constantly increasing, the total size of the distribution was constantly decreasing. All standardized Miranda interfaces appeared precisely in them.
Who are all these people?!
Now our team is constantly working on Miranda, a team of volunteer programmers slightly obsessed with her, making the client of their dreams. It:
ghazan , he joined the project in 2002. Initially he worked on MSN, eventually switched to Jabber, and now he is actively engaged in the core and modules stored in the central svn. Perhaps the most experienced of our developers, a recognized leader
FYR has been crazy since April 2004. He is working on the clist_modern module, this is the most voluminous (about two megabytes of code) and the most beautiful module, forcing interface designers of other IM clients to sigh nervously. He also wrote the AniSmiley module used to animate emoticons in Emoticons.
In 2004 , nullbie began work on modifying the PopUp popup module, now widely known PopUp +. It was he who introduced a new, human-friendly interface into Jabber and continues to work on this protocol. Also deals with the problem of the new interface options.
mlu , in the past, a rather well-known acadite, having hated her, came to us in the spring of 2007 and is actively engaged in the development of the inside of the gabber. In many ways, for the development and fresh ideas for the module, it is necessary to thank him
Vasilich is interested in the IRC protocol, and recently he has also done a lot for him. His hand belongs to the module UseActions allowing you to add the programmed using ActMan to any part of the Miranda.
since 2006
theMIROn develops an ergonomic module for working with History ++ history
Joe has been working on the ICQ protocol for a long time, maintaining it at the proper level, thanks to which he is so popular in Miranda
Awkward is known for the WaTrack plugin (September 2005), which collects playback information from virtually any player; QuickSearch to quickly search for contacts; ActMan programmable action manager and HotKey alternative hotkey engine
baloo allowed to increase the privacy of communication using the SecureIM on-the-fly encryption module
rainwater came among the first in 2002m. It deals with the passive development of the kernel, as well as the db_rw database module running SQLite. The most ardent supporter of minimizing all that is possible
Bio from the very beginning worked on an alternative version of the icq module, then still built into Miranda - the ISee. Also such useful plugins as DBEditor ++, Console, and so my favorite dbx_mmap belong to his hand.
sss in 2006 was able to raise the combined mod ISee and ICQj - ICQ +, carrying a lot of goodies for the protocol, one of which was the substitution of the client ID
persei , that is, at the end of 2006, I became interested in the development of ICQ +, from time to time adding new functionality to it and straightening the code. Together with FYR, he released an encrypted modification of the mmap database. Now I am engaged in fight against spam and I glance towards development of jabber'a. Administer miranda.im
faith_healer is our sponsor and formerly known collector. Now I started picking my Fingerprint Mod.
This list can be continued indefinitely, sorry if someone offended :)
Philosophy
Still, back to where I started. So, what is it, modern Miranda?
I hope many have already understood that Miranda is no longer just an easy ICQ. This stage has long outgrown it. Miranda IM is a designer that allows you to achieve almost any result. In principle, you can choose a set of basic classic plugins and get a minimalistic interface and modern protocols. Nevertheless, this direction is not developed by us, because for us it is not promising and uninteresting - we are interested in a fast, but beautiful and functional messenger. Lightweight direction has completely exhausted itself. I’m not saying that a normal build should weigh 50 MB, I’m saying that developing minimalistic functionality is pointless - it is no longer minimalist. Therefore, now Miranda is developing in the direction of increasing opportunities, and most importantly - ease of use. This is not a monster - you can turn off almost everything that is unnecessary, and elements that are not disconnected are usually located in such a way that they do not interfere, or you can simply not display
What's next?
On October 9, the 23rd alpha build of the eighth working branch was released, which included a small portion of fixes for testers.
In the eighth version, for the first time in three years after the release of 0.5, absolutely new things begin to appear in the core. Refactoring after a long active phase begins to gradually disappear, although he also receives much attention.
Support for the new protocol interface is now implemented, allowing you to work with accounts without leaving Miranda and not copying the dll - now the protocol is an object that you can create and delete on the go.
The plug-in interface, introduced in the 7th branch, requires revision and full transfer of the system to it, it will become one of the essential features of the new branch. Next, the module loader will be rewritten, which may allow installation and removal of modules on the fly.
The database API will be added to the kernel, which will enable fast caching and an increase in the performance of profile operations.
It is planned to transfer the kernel and some plug-ins from C to C ++, which is necessary with the current amount of code, and will significantly simplify further developments.
Separately, we pose the problem of ergonomics and simplicity of settings, for which we are usually criticized. So far, we have implemented a simple search for options, but we plan to make a simplified version - a kind of wizard with grouping of elements (for more details, read about it
here )

There are plans to create a small alert system at the kernel level, something like a very light PopUp +
FYR thinks about the concept of a new engine for clist_modern - from delicacies, it is worth waiting for interactivity of elements, storing data in xml format and, possibly, support for scripts
Thanks for attention :)
Ps. Thanks to ghazan for remarks and corrections to the article - I used some of his remarks