|
Searching XEmacs
Quick Links
About XEmacs
Getting XEmacs
Customizing XEmacs
Troubleshooting XEmacs
Developing XEmacs
|
|
|
Intro to Architecting XEmacs
I would like to see myself in the position of an architect of
XEmacs. I think there are some good reasons for this:
I've had a lot of experience working with or on a lot of different
aspects of XEmacs for a long time.
In my opinion, there's currently not nearly enough effort spent
thinking about higher level issues, such as the direction that XEmacs
is heading in and its overall priorities in the near and long-term.
This is not a new situation, and there is a very good reason for this,
which is that the developers of XEmacs invariably get completely
sucked into the coding and maintenance issues, and can barely keep
their heads above water doing this, given that it is such a large
task. My enforced absence from coding gives me a broader and more
detached perspective on the whole development process. Perhaps you
could call this "making the most of a bad situation".
With that said, the single most important issue in XEmacs
development is ensuring the future survival of the development effort.
Development nearly died after Chuck and I left, and I consider it
somewhat of a miracle that Steve came along and did such a good job of
resurrecting the development process and getting so many other people
involved. I don't expect this situation to exist forever, though, and
I'm sure that many of the current developers of XEmacs will move on in
time. In order to keep the development process going, we need a
steady influx of developers and beta testers, and the best way for
this to happen is to keep our user base up. This means that we can't
just continue to design features with existing users in mind, but we
need to continue to add features in order to recruit new ones. I know
that this sounds a lot like bletcherous processes such as
proselytizing, but unfortunately I think this is just the cold, hard
reality of software development.
I think we need to continue to expand upon the strengths of XEmacs.
The way I see it, those strengths are:
In comparison to GNU Emacs, a better user interface and a more
open development process.
In comparison to most modern GUI editors, much better
customizability, and a good set of powerful and interesting
extensions.
In comparison to many other free software products, comprehensive
support and easy building and installation on many different
platforms.
Here's what I think are the most important features for version
21.2 that should be added:
Removal of the unexec mechanism. Everyone agrees with this, I
think. Kyle and Olivier are working on portable and general
replacements. I have an outline of a process that I used in Win-Emacs
that is also portable and should be a lot easier to implement and
perhaps faster than the mechanisms proposed by Kyle and Olivier, but
it is a stopgap mechanism in that it is not relocatable (which can
cause problems with dynamic libraries), and because it makes certain
minimal assumptions about memory layout which could pose problems on
certain rather unusual architectures (although it's not clear that
this would be a problem in practice).
A GUI installation process under Windows using InstallShield or
similar products such as Wise. Doing this is not very difficult and
also does not require very much knowledge of the internals. I think
somebody has already volunteered to do this, and so I imagine it
should have no trouble getting done without too much design work
necessary.
For version 22.0:
Dialog boxes. I think proper dialog boxes are extremely
important, probably more so than almost any other new feature that
people are considering implementing. More and more users are
expecting applications to conform to user interface guidelines
involving dialog boxes and tab components and such. The longer we
delay in doing this, the more XEmacs will start to look like a
dinosaur application that will simply get discarded and replaced by
more modern-looking applications, even if they are significantly less
powerful. I also think it's possible to integrate dialog boxes
cleanly with minibuffer input in such a way that people can
choose to have dialog boxes always, never, or only when invoked by the
mouse, as currently.
I also think that custom absolutely needs to have
its user interface changed to function more like standard options or
customization screens in modern applications. This, of course,
requires proper dialog box and component support, and particularly
requires such things as tab components, but once all these are
implemented, it should not be impossible (or even that difficult) to
make this change.
Internationalization. Yes, I know this is a pet project of mine
and Steve's, and it is clearly not as immediately pressing as any of
the first three items listed, and it's also big and open-ended, but
getting it working under Windows, at least basically, can potentially
gain us a huge new user base. I'll have more to say on this
presently.
....(Add a paragraph about owners of sub-projects).....
Ben Wing
|