Being a long-time Emacs user, I am very impressed with its extendability and mutability. Almost everyone I know who uses Emacs has his or her Emacs set up in an unique way that suits one's own needs and style. The funny thing is that there are actually not too many people who are truly proficient in Lisp; however most people still can pick up some Emacs Lisp excerpts and just by reading the comments on them modify and incorporate the code pieces into their own environment. This shows the ease of extendability. Other systems like Eclipse have a steeper learning curve.
Not only is it easy to extend and customize, the good thing about Emacs is that in incorporating new changes even if some errors are introduced to one's own emacs.el file, the basic Emacs almost always still comes up. Thus one is able to go through the Emacs's Messages buffer and gather information on the errors. This gives people the assurance to try new things. In contrast, this is usually not true for other highly extendable systems.
Although I have been using Emacs for a long time, however I have never read a paper discussing its architecture. I see this chapter is able to explain it in a high level basically in one diagram and a few pages. This shows the core Emacs's simplicity; any bell and whistle is added an extension. This is how an application ought to be to satisfy a broad and diverse user pool. This model also supports piecemeal growth and it actually has an Agile-programming philosophy to it. "Necessity is the father of creation", if someone needs something, he or she will build an extension. The power of Emacs to incorporate new packages makes it easy to leverage on other people's creations.
Subscribe to:
Post Comments (Atom)
 
No comments:
Post a Comment