Hmm, that's actually not an easy question to answer. At least, not easy to answer completely. At the most basic of levels, SXEmacs is a text editor. If you've ever used GNU/Emacs or XEmacs you've probably seen the description that goes something like...
...is a highly customisable and extensible, self-documenting, real-time display editor and IDE.Ditto for SXEmacs. Yep, SXEmacs is JAFE (Just Another Fine Editor). Though, if that's all you thought it was, you'd be missing out. There is very little that SXEmacs can't do, or at least, be made to do. You can tailor it to your wildest dreams and imagination. This is where the "customisable and extensible" part of the description comes in.
That list is by no mean exhaustive. Oh, and I nearly forgot... SXEmacs edits text too. And it even helps you with that. In many, many ways. With things like syntax highlighting, context sensitive completion, keyboard macros, powerful search and replace, spell checking (on the fly if you wish), programming language aware indentation. The list just goes on and on. It would be a fair bet to say that whatever "feature" you like in other editors, there's a good chance SXEmacs has it too.
Following is hopefully an up to date (at time of writing) list of the features that are in SXEmacs but are currently not (yet) in XEmacs 21.4. I say XEmacs 21.4 because SXEmacs was forked from the XEmacs 21.4 code base and not the 21.5 code base. With that said, however, most (all?) of what follows is unique to SXEmacs and isn't in XEmacs 21.5 either.
SXEmacs does not support the Win32 platform and it never will. Yes, we consider this a feature.
This is the SXEmacs Foreign Function Interface. It makes it possible to bring the functionality of almost any external library to elisp. Two useful examples can be found in ffi-curl.el and ffi-wand.el. The former allows SXEmacs to download files from the internet using any protocol that libcurl supports. And the latter allows SXEmacs to view any image format that libWand supports.
SXEmacs can be compiled with OpenSSL that enables a range of cryptography and digest functionalities.
SXEmacs uses autoconf version 2.60 for its configuration scripts. XEmacs 21.5 is using 2.59, but XEmacs 21.4 is still using autoconf 2.13.
SXEmacs has better support for PostgreSQL 8 and the documentation has had some improvement here too. Also, support for PostgreSQL is compiled in by default if pg_config is present and usable.
SXEmacs has fairly complete support for sqlite through FFI.
SXEmacs does not support being compiled with a C++ compiler. GCC 3.4.4 or equivalent is required.
In SXEmacs, you can bind up to 32 mouse buttons. The first 26 of which can be used as modifiers.
Every decent OS has an uptime util... SXEmacs is no exception. :-)
The SXEmacs PUI (Package User Interface) can be "bootstrapped" without the requirement of having any XEmacs packages pre-installed.
XEmacs 21.5 users might know this as "bignum". SXEmacs has bignums and bigfloats and ratios like XEmacs 21.5, but it also goes way beyond the XEmacs implementation. Many, many, more number types and other mathematical goodies are supported in SXEmacs.
SXEmacs has Python-style raw strings. It greatly reduces "backslashitis" when writing those hairy regexps. :-)
Normal regexp:
"\\(?:^\\|[^\\]\\)\\(?:\\\\\\\\\\)*\\(\\\\[@A-Za-z]+\\)"
Raw string regexp: #r"\(?:^\|[^\]\)\(?:\)*\(\\[@A-Za-z]+\)"
XEmacs 21.5 now has raw strings.
SXEmacs has improved default font-locking in a TTY.
This was mentioned under FFI, but it is worth noting again. With FFI and libWand, SXEmacs can display any image format that is supported by Imagemagick's libwand.
Not only can SXEmacs view images, but it can edit and manipulate them as well. In fact SXEmacs is a very good image manipulation program. Take a look at what SXEmacs can do with images.
This one is for JWZ. See point 1.A of JWZ's XEmacs wish list
SXEmacs has support for a wide variety of sound servers, backends, drivers, and formats. Audio outputs supported include: ALSA, aRts, ao, ESD, NAS, OSS, PulseAudio, and Jack. Media stream handlers supported include: FFmpeg, Mad, sndfile, SoX, libmagic, as well as the pre-existing (from XEmacs days) internal audio support.
Yes, SXEmacs can play mp3 and ogg. We can even do so asynchronously.
Taking open-network-stream
to the next
logical step, SXEmacs can "listen" for, and act upon,
incoming TCP/UDP connections. Server sockets in SXEmacs
are set up via open-network-server-stream
.
Significant speed ups are possible through the application of exhaustive caching of compiled regular expressions.
Not only does SXEmacs use autoconf 2.60 (and above), the entire build chain is now fully "autotooled". We've done away with all those Makefile.in.in files and manual dependency tracking of the sources. It's now all done with aclocal, automake, autoheader, autoconf.
SXEmacs now installs to a much more FHS compliant location.
Unlike ordinary lists that only have hooks into the head of the list (think car, cdr), a doubly linked list has hooks into both the head and the tail of the list. This means you can operate on both ends of a doubly linked list. You can also traverse a dllist in both directions, tail-wards and head-wards. Ordinary lists only allow for tail-wards traversal.
SXEmacs has a basic implementation of Pugh's skip lists. Their efficiency is overwhelming when compared to alists or plists. They also perform better on insertion and removal than large hash-tables (due to the resizing/rehashing which takes place). They can be created almost as fast as lisp lists and thus beat hash-tables there, too.
Bloom filters are a hash-table like data structure with the purpose of performing membership tests. Unlike hash-tables bloom filters do not need to be resized despite the fact that they can carry an arbitrarily large number of objects.
SXEmacs has a recursive implementation of
directory-files
called
directory-files-recur
. It is incredibly
fast. Sometimes even faster than GNU find(1).
SXEmacs is now capable of properly using the
termcap
and terminfo
capabilities to support more than the ANSI standard 8
colors.
In addition, SXEmacs will gracefully approximate the
colors on the face specifications to match the terminal,
so you can share your graphics and text terminal color
definitions and still have pretty syntax highlighting.
- I love the comfort of having the full power of my editor behind me while I'm IRC'ing, ICQ'ing, mail, and news reading. - Keyboard macros would have to be right up there in the list. Being able to define a quick keyboard macro to complete repetative tasks is sweet. - Bookmarks. I often find myself reading through a whole bunch of documents at the same time (HOWTOs, READMEs etc), I can save where I am in each doc and easily come back to the same spot in the future. - I just love the whole "swiss-army-knife-ed-ness" of it all. I mean, c'mon, if it can't be done in SXEmacs, is it worth doing? - SXEmacs' extensibility. Being able to make SXEmacs do things it can't do out of the box is its greatest benefit.