Extensibility in the context of "Emacs"

Play Trivia Questions online!

or

Skip to study material about Extensibility in the context of "Emacs"




⭐ Core Definition: Extensibility

Extensibility is a software engineering and systems design principle that provides for future growth. Extensibility is a measure of the ability to extend a system and the level of effort required to implement the extension. Extensions can be through the addition of new functionality or through modification of existing functionality. The principle provides for enhancements without impairing existing system functions.

An extensible system is one whose internal structure and dataflow are minimally or not affected by new or modified functionality, for example recompiling or changing the original source code might be unnecessary when changing a system’s behavior, either by the creator or other programmers. Because software systems are long lived and will be modified for new features and added functionalities demanded by users, extensibility enables developers to expand or add to the software’s capabilities and facilitates systematic reuse. Some of its approaches include facilities for allowing users’ own program routines to be inserted and the abilities to define new data types as well as to define new formatting markup tags.

↓ Menu

👉 Extensibility in the context of Emacs

Emacs (/ˈmæks/ ), originally named EMACS (an acronym for "Editor Macros"), is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, self-documenting, real-time display editor". Development of the first Emacs began in the mid-1970s, and work on GNU Emacs, directly descended from the original, is ongoing; its latest version is 30.2 Edit this on Wikidata, released 14 August 2025.

Emacs has over 10,000 built-in commands and its user interface allows the user to combine these commands into macros to automate work. Implementations of Emacs typically feature a dialect of the Lisp programming language, allowing users and developers to write new commands and applications for the editor. Extensions have been written to, among other things, manage files, remote access, e-mail, outlines, multimedia, Git integration, RSS feeds, and collaborative editing, as well as implementations of ELIZA, Pong, Conway's Life, Snake, Dunnet, and Tetris.

↓ Explore More Topics
In this Dossier

Extensibility in the context of USB-C

USB‑C, or USB Type‑C, is a 24-pin reversible connector (not a protocol) that supersedes all previous USB connectors, which were designated legacy in 2014. This connector also supersedes Mini DisplayPort and Lightning connectors. USB-C is used for a variety of purposes: exchanging data with peripheral devices, such as external drives, mobile phones, keyboards, track-pads, and mice, or between hosts, or transferring A/V-data to displays and speakers, or also powering peripheral devices and getting powered by power adapters; either through directly wired connectors, or indirectly via hubs and docking stations. This connector type can be used for other data transfer protocols besides USB, such as Thunderbolt, PCIe, DisplayPort, and HDMI. It is considered extensible, allowing the support of future protocols.

The design for the USB‑C connector was initially developed in 2012 by Intel, Apple Inc., HP Inc., Microsoft, and the USB Implementers Forum. The Type‑C Specification 1.0 was published by the USB Implementers Forum (USB-IF) on August 11, 2014. In 2016 it was adopted by the IEC as "IEC 62680-1-3".

↑ Return to Menu

Extensibility in the context of XMPP

Extensible Messaging and Presence Protocol (abbreviation XMPP, originally named Jabber) is an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML (Extensible Markup Language), it enables the near-real-time exchange of structured data between two or more network entities. Designed to be extensible, the protocol offers a multitude of applications beyond traditional IM in the broader realm of message-oriented middleware, including signalling for VoIP, video, file transfer, gaming and other uses.

Unlike most commercial instant messaging protocols, XMPP is defined in an open standard in the application layer. The architecture of the XMPP network is similar to email; anyone can run their own XMPP server and there is no central master server. This federated open system approach allows users to interoperate with others on any server using a 'JID' user account, similar to an email address. XMPP implementations can be developed using any software license and many server, client, and library implementations are distributed as free and open-source software. Numerous freeware and commercial software implementations also exist.

↑ Return to Menu

Extensibility in the context of Unix philosophy

The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to minimalist, modular software development. It is based on the experience of leading developers of the Unix operating system. Early Unix developers were important in bringing the concepts of modularity and reusability into software engineering practice, spawning a "software tools" movement. Over time, the leading developers of Unix (and programs that ran on it) established a set of cultural norms for developing software; these norms became as important and influential as the technology of Unix itself, and have been termed the "Unix philosophy."

The Unix philosophy emphasizes building simple, compact, clear, modular, and extensible code that can be easily maintained and repurposed by developers other than its creators. The Unix philosophy favors composability as opposed to monolithic design.

↑ Return to Menu