Here is the much anticipated interview of Alexey. It is quite long and unedited, he apologises for his poor english. However, I think his english is better than mine. Enjoy
What initially brought you to Jabber?
I first found out information about Jabber in discussion on
http://linux.org.ru/. I found it very interesting, especially comparing to
ICQ: no problems with Russian, a lot of clients, IRC-like conferences, and open
protocol. I almost stoped to use ICQ after AOL changed its protocol few years
ago, so migration to Jabber was pretty easy for me.
Why did you choose to use Erlang for ejabberd?
I found it a most suitable language for implementing Jabber server. Its
support for concurrency and clustering is great. On the other hand Erlang is
pretty slow on many string operations, but they can be implemented on C, so
this drawback can be avoided.
How do you maintain your productivity?
Actually now I’m not so productive as I was two years ago. In the beginning of
project development there is a lot of things to implement, code can be
reorganized, API can be changed at any moment without much trouble, so it is
possible to develop a lot of code very fast. But now, as my projects have some
user base, I need to code very carefully to not broke something and provide
What are the next features ejabberd will have in the near future? Is virtual hosting planned for anytime soon?
Yes, I’m currently working on virtual hosting, so it will be available in
February or March. Also there is almost completed ODBC support, but now I need
to update it to support virtual hosting.
What is the right spelling: “Aleksey” or “Alexey”? And what is the history behind this[sic] different spellings?
I prefer “Alexey”, but “Aleksey” is also correct transliteration of my name.
When I started to use Jabber, I was too lazy to invent my original nick, so I
tried to register user “alexey” at jabber.org, but this name was already
registered, so I registered “aleksey”. Later I started to use jabber.ru and at
that time user “alexey” was available, but I continue to use “aleksey”.
What music do you code by?
From my playlist: Dream Theater, Symphony X, Par Lindh Project, Steve Vai, Joe
Satriani, Yngwie Malmsteen, Steve Morse, Tony MacAlpine, Pink Floyd, Led
Zeppelin, Iron Maiden, Apocalyptica, Metallica, etc. Also I very like
J.S. Bach music, but can’t code hearing it :)
Do you have a website or blog?
No, I haven’t.
What are you currently working on, outside of jabber?
Also I’m working on my postgraduate work.
What do you think are the most important strengths of Jabber? What are some of the weaknesses you think need to be addressed?
The main Jabber/XMPP strength is that its protocol is open and extensible. It
allows to use it as transport for non-IM data. On the other hand IM support is
not fully separated from protocol core (e.g. “presence” packets and message
types like “chat” or “groupchat”). And XML usage have some pros and cons:
almost every language has XML parsers, you can pretty fast understand and
implement XMPP protocol due to human-readability, but representing data in XML
have relatively big overhead in size (especially for binary data), in speed
(parse of entire packet, while usually server need to know only type of packet,
source and destination), and also it is not very natural way of representing
data structures (IMHO). I think ASN.1 is much more suitable for that task.
But if Jeremie Miller would choose ASN.1 instead of XML in 1998, then probably
there would be no Jabber today.
What applications would you like to see built using Jabber technologies?
Probably email transport, as replacement for SMTP.
What’s your perspective on the health of the Jabber community? What can we do to improve?
I hope there will be no problems with Jabber community health, although it will
always oscillate. Probably we need much more publicity to increase grow of
Jabber user base. And of course more and better Jabber software.
Where would you like Jabber to be two (or more) years from now?
I’d like to say “everywhere”, but it is not suitable for every task where it
may be used. So at least it should be dominating IM system in the world :)
Whats hindering Jabber at the moment to get to your above vision?
Probably even if all people would think that Jabber is the best IM system, they
would still migrate to it pretty slowly.
Why did you start Tkabber/ejabberd project? Personal, academic, job?
I started Tkabber because I didn’t find Linux client with two features: Unicode
and conference support. Gabber had bad Unicode support, and Psi had no
conference support. And I didn’t want to improve them, because I dislike C++.
So I started my own client in a more suitable language from my point of view.
About ejabberd, it is more “just for fun” project. There are several reasons
why I started it: success with Tkabber, rather unstable first alpha release of
jabberd2, and my wish to play with Erlang features.
What public do you target with Tkabber/ejabberd: jabberites, geeks, nerds, little business, big business, yourself, nobody, somebody else?
Are Tkabber and ejabberd your first non-trivial projects?
At least they are my biggest projects. Some course works, bachelor and master
works in university was non-trivial too.
How much time did you work in Tkabber/ejabberd before releasing the first version on JabberStudio or CVS?
Around one month for Tkabber and three months for ejabberd.
What development environment do you use to code Tkabber/ejabberd? And for debugging? [Eclipse, plain editors/emacs/vim, ?]
Only XEmacs. For debugging I usually use printf/puts/io:format/etc. :)
What are your favorite programming languages?
Haskell, Erlang, Ocaml and Tcl/Tk. Actually I use Haskell very rarely, but it
made very big influence on my programming skill.
Just curiosity: what client did you use until Tkabber was mature enought?
Gabber. On Windows machines I used Exodus. As you can see, these clients made
biggest influence on developing of Tkabber interface.
More personal questions: Where do you live? And work? And study? Any hobby?
I live in Sevastopol, Ukraine. I’m a postgraduate student in Marine
Hydrophysical Institute of National Academy of Science of Ukraine.
My hobby is playing guitar.
Did you know Sergei Golovan (big contributor in Tkabber/ejabberd) or
Anastasia Gornostaeva (jabber.ru hosting and administration) before starting
I knew Anastasia from email@example.com chatroom, but I don’t remember
if Sergei was in this room before I started Tkabber. But I remember that he
start to contribute to Tkabber about month after I started to develop it :)
Most people know Erlang exists after reading ejabberd specs. Who introduced you to Erlang?
There was big language wars in fido7.ru.linux, from which I know about many
languages. Biggest thanks to Vitaly Lugovsky and Victor Wagner, their posts
was most influencing.
Some key features in ejabberd come as Erlang/OTP inheritance. Did you start ejabberd because Erlang/OTP existed? If Erlang/OTP wasn’t available on that
time, would you try with other language? Which one?
Yes, without Erlang/OTP I would not start ejabberd. Probably I would start
Jabber-unrelated project, probably in Ocaml. :)
Tkabber in the imperative Tcl/Tk, ejabberd in the functional Erlang. Does the shift to functional paradigm help you regarding coding speed, debugging or maintance?
Erlang is not a pure functional language, it contains imperative features, so a
main difference is related to Erlang concurrency support.
If you saw the classic Erlang, the movie when considering Erlang/OTP for ejabberd: did it help or prevent you from using Erlang/OTP? Do you agree to
appear writting “Hey Joe!” on a remake where analogic telephony is replaced by
I didn’t saw it.
What does Tkabber/ejabberd lack to reach version 1.0?
ejabberd lacks some important features like virtual hosting, but after 0.9
release I’ll switch to version 1.0.
Tkabber is near 1.0, but I still can’t say when I’ll think that it will be
ready for that version.
Peter Millard is considering software changes in the Jabber Software Foundation public Jabber server. For ejabberd consideration there was some lacking features. What’s the situation now: is ejabberd still in consideration, will you try to fulfill his requirements, will he alleviate some of them??
ODBC support in ejabberd is made to work with jabber.org schema, but I think
all will depend on memory usage.
How will you handle ejabberd if it starts receiving patches and new modules with increasing frequency? That could happen if bigger players get interested in it, and will happen for sure as ejabberd grows.
I hope I’ll be able handle all of them, but in any case I won’t apply patch
which have no enough quality from my point of view.
Is the ejabberd/tkabber developement sponsored in any way?
What’s the relation between Process One and ejabberd?
I’m hired by Process One to improve J-EAI and ejabberd, so ejabberd is
sponsored this way.
In October 2002 you submitted to Tkabber CVS a plugin called MUTE. One month later you submitted JEP-0058: Multi-User Text Editing. The JEP was finally deferred, and you never again updated the Tkabber plugin. This seems the first and the last spec you wrote about Jabber. Since then, you focused only on code. Does that mean you officially support Peter Saint-Andre Mantra #2 Fewer specs, more code!?
There is also JEP-0057, which has been retracted. And it is not very correct
that I focused only on code, e.g. I’ve discussed XMPP specs or JEP-0045 with
Peter while implementing them, but yes, I like to develop much more than
writing specs :)
You were candidate for the Jabber Council in July 2003, and were highly rejected (yes: 13; no: 48). Do you think the mistake when you wrote “peoples can add comments” in your candidature has anything to do? If no, do you have any clue on the real reasons? If you get more free time on the future, will you present again for this or any other position in the Jabber Software Foundation?
I was not very active on mailing lists at that time, maybe it is one of the the
reasons. On the other hand Jacek Konieczny was very active with very good
comments, but he was rejected too (and this rejection very surprised me).
I don’t plan to present again on this position at least for next few years,
currently I prefer developing.
Several key Jabber projects lost their lead programmer lately (Psi, Jabberd2, Gabber), without counting a lot of little bulbs. Is your current payed job/incomings guaranteed for the next decade? Is there anything we can do to keep you motivated?
I see no reasons to leave my projects for few next years.
Is there anything you’d like to say about the end-of-2004-crisis about Jabber acceptance on the desktop? The biggest public Jabber server is jabber.org, and has “only” 10.000 concurrent users. Big players could enter the ground in the future, like ISPs (XS4ALL.NL) or webportals. Has the company where you work considered offering Instant Messaging based on Jabber to their customers?
My ISP start to provide such service lately, but userbase is not very big yet.
And I would not call current situation as a crisis, on jabber.ru I see that
number of online and registered users doubles every ~6 months, and this gain