The main reasons for the existence of XEmacs are historical: various developers of a commercial development environment in Lucid Inc. (that included Emacs as one of its components) had difficulty getting patches included into the GNU Emacs tree. Lucid then decided to split the development, calling "their" version Lucid Emacs. Jamie Zawinski was put in charge of its development. The new version became very popular, and so when Lucid went out of business in 1994, Lucid Emacs was renamed XEmacs and development has continued elsewhere. See http://www.jwz.org/doc/lemacs.html