# IDLWAVE

> a package for Emacs which supports editing source code written in the Interactive Data Language (IDL), and running IDL as an inferior shell

**Wikidata**: [Q131497796](https://www.wikidata.org/wiki/Q131497796)  
**Source**: https://4ort.xyz/entity/idlwave

## Summary
IDLWAVE is a software package for GNU Emacs and XEmacs designed to support the development of source code written in the Interactive Data Language (IDL). It functions as a major mode that provides editing capabilities and allows users to run IDL as an inferior shell within the editor. The package is part of the GNU Project and is distributed as free software via GNU ELPA.

## Key Facts
- **Instance Type:** Major mode and GNU ELPA package.
- **Primary Use:** Source code editor for the Interactive Data Language (IDL); supports running IDL as an inferior shell (read–eval–print loop).
- **Creator:** Carsten Dominik.
- **Maintainer:** John-David Smith (American astrophysicist), who took over development in 2002.
- **Initial Release:** 1999.
- **Latest Stable Version:** 6.5.1 (released May 23, 2024).
- **Platform:** GNU Emacs and XEmacs.
- **Programming Language:** Written in Emacs Lisp.
- **License:** Free software; part of the GNU Project.
- **Distribution:** Distributed by GNU ELPA (Emacs Lisp Package Archive).

## FAQs
### Q: What programming language does IDLWAVE support?
A: IDLWAVE supports the Interactive Data Language (IDL). It provides a specialized editing environment for IDL source code and enables running IDL as an inferior shell.

### Q: Who created and maintains IDLWAVE?
A: IDLWAVE was originally created by Carsten Dominik. Development was taken over by John-David Smith in 2002, who continues to maintain the package.

### Q: How is IDLWAVE installed or distributed?
A: It is distributed via GNU ELPA (GNU Emacs Lisp Package Archive) and is considered part of the GNU Project. It has a unique package identifier of `idlwave` within GNU ELPA.

## Why It Matters
IDLWAVE plays a critical role in the scientific computing community, particularly for researchers and astrophysicists who rely on the Interactive Data Language (IDL) for data analysis. By integrating IDL directly into the powerful Emacs editing environment, IDLWAVE bridges the gap between coding and execution. It transforms Emacs into an Interactive Development Environment (IDE) tailored for IDL, offering features like syntax highlighting, code navigation, and a direct interface to the IDL shell (a read–eval–print loop).

Its significance is underscored by its longevity and active maintenance; originating in 1999 and receiving updates as recent as May 2024, it has remained a reliable tool for over two decades. As a component of the GNU Project, it ensures that scientists have access to a free, robust, and customizable workflow for complex data processing tasks without leaving their text editor.

## Notable For
- **Integrated Workflow:** Uniquely combines source code editing with the ability to run IDL as an inferior shell, facilitating a seamless coding and testing cycle.
- **Scientific Pedigree:** Maintained by an active researcher (John-David Smith, an astrophysicist), ensuring the tool meets the practical needs of the scientific community.
- **GNU Integration:** It is an official part of the GNU Project and distributed via GNU ELPA, guaranteeing adherence to free software standards and broad compatibility.
- **Cross-Platform Compatibility:** Functions on both GNU Emacs and XEmacs.

## Body

### Functionality and Features
IDLWAVE operates as a "major mode" within Emacs, customized for the Interactive Data Language (IDL). Its primary function is to facilitate the editing of IDL source code by providing syntax-aware features typical of an IDE. Beyond editing, it acts as an interface to run IDL as an "inferior shell." This means users can execute IDL commands and scripts directly from the Emacs buffer, utilizing a read–eval–print loop (REPL) environment. This integration allows for rapid prototyping and debugging of IDL programs.

### Development History
The package was originally created by Carsten Dominik. According to development records, the current maintainer, John-David Smith, took over the project in 2002. Smith, an American astrophysicist and university teacher, has continued to update the software, ensuring its compatibility with modern Emacs versions. The software was initially conceived in 1999 and remains active, with the stable version 6.5.1 released on May 23, 2024.

### Technical Details
IDLWAVE is written entirely in Emacs Lisp, the dialect of Lisp used in GNU Emacs. It is classified as free software and is distributed under the terms of the GNU Project. The source code is maintained in a Git repository hosted on GitHub and mirrored on GNU Savannah. It is identified by the `nixpkgs` ID `emacsPackages.idlwave` and is available in the Gentoo package system as `app-xemacs/idlwave`.

## Schema Markup
```json
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "IDLWAVE",
  "description": "A package for Emacs which supports editing source code written in the Interactive Data Language (IDL), and running IDL as an inferior shell.",
  "url": "https://elpa.gnu.org/packages/idlwave.html",
  "sameAs": [
    "https://github.com/jdtsmith/idlwave"
  ],
  "applicationCategory": "DeveloperApplication",
  "operatingSystem": "GNU Emacs, XEmacs",
  "programmingLanguage": "Emacs Lisp",
  "author": {
    "@type": "Person",
    "name": "Carsten Dominik"
  },
  "maintainer": {
    "@type": "Person",
    "name": "John-David Smith"
  },
  "version": "6.5.1",
  "datePublished": "2024-05-23"
}

## References

1. [Source](https://elpa.gnu.org/packages/idlwave.html)
2. [2021](https://www.reddit.com/r/emacs/comments/qefx8e/til_idl_is_a_thing_and_emacs_has_it/)
3. [Source](https://git.savannah.gnu.org/cgit/emacs/elpa.git/tree/idlwave.el?h=externals/idlwave)
4. [[GNU ELPA] Idlwave version 6.5.1. 2024](https://lists.gnu.org/archive/html/gnu-emacs-sources/2024-05/msg00052.html)