# Elvish

> programming language and shell

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

## Summary
Elvish is a free and open-source programming language and shell designed for Unix-like systems and Windows. It combines functional and imperative programming paradigms, offering a high-level, interpreted scripting language with a focus on interactive use and extensibility.

## Key Facts
- **Type**: Programming language, shell, and command-line interface language.
- **License**: Distributed under the 2-clause BSD License.
- **Latest Stable Version**: 0.20.0 (released February 11, 2024).
- **Platform Support**: Cross-platform, including Unix-like systems and Microsoft Windows.
- **Implementation Language**: Written in Go.
- **File Extension**: Uses `.elv` for script files.
- **Community**: Active on GitHub (`elves/elvish`), Twitter (`@ElvishShell`), and Telegram (`@elvish`).

## FAQs
### Q: What is Elvish used for?
A: Elvish is used as both a shell for interactive command-line tasks and a scripting language for automation. It supports functional and imperative programming styles, making it versatile for system administration and scripting.

### Q: Is Elvish free to use?
A: Yes, Elvish is free software licensed under the 2-clause BSD License, allowing users to run, study, modify, and distribute it freely.

### Q: What operating systems does Elvish support?
A: Elvish runs on Unix-like systems (Linux, macOS, BSD) and Microsoft Windows.

### Q: How does Elvish differ from traditional shells like Bash?
A: Elvish integrates modern programming language features (e.g., functional programming) with shell functionality, offering a more structured and extensible alternative to traditional shells.

### Q: Where can I find Elvish documentation?
A: Official documentation is available at [elv.sh/learn/](https://elv.sh/learn/), and the project’s blog is at [elv.sh/blog/](https://elv.sh/blog/).

## Why It Matters
Elvish bridges the gap between traditional shells and modern programming languages, offering a powerful tool for developers and system administrators. Its functional programming capabilities and high-level abstractions simplify complex scripting tasks, while its interactive shell features enhance productivity. As a free and open-source project, it fosters community-driven innovation and accessibility. Elvish’s cross-platform support and integration with Unix-like systems and Windows make it a versatile choice for diverse environments.

## Notable For
- **Hybrid Design**: Combines shell functionality with functional and imperative programming paradigms.
- **Cross-Platform**: Supports Unix-like systems and Windows, broadening its usability.
- **Modern Features**: Includes high-level abstractions and interpreted execution for rapid development.
- **Active Development**: Regular releases (e.g., 0.20.0 in 2024) and community engagement via GitHub and social media.
- **Free Software**: Licensed under the permissive 2-clause BSD License, encouraging adoption and modification.

## Body
### Overview
Elvish is a programming language and shell designed to merge the flexibility of scripting languages with the interactivity of command-line interfaces. It is classified as a functional, imperative, and scripting language, offering strong abstraction from hardware details.

### Technical Specifications
- **Language Paradigms**: Functional, imperative, and scripting.
- **Execution Model**: Interpreted, with direct instruction execution.
- **Implementation**: Written in Go, leveraging its performance and cross-platform capabilities.
- **File Extension**: Scripts use the `.elv` extension.

### Platform Support
Elvish is cross-platform, officially supporting:
- **Unix-like systems**: Linux, macOS, FreeBSD, NetBSD, OpenBSD.
- **Microsoft Windows**: Compatible since its inception.

### Version History
Key releases include:
- **0.20.0** (February 11, 2024): Latest stable version.
- **0.19.2** (March 5, 2023).
- **0.18.0** (March 20, 2022).
- Earlier versions date back to 2020 (e.g., 0.13.0 on January 1, 2020).

### Community and Resources
- **Source Code**: Hosted on GitHub ([github.com/elves/elvish](https://github.com/elves/elvish)).
- **Communication**: Active on Twitter (`@ElvishShell`), Telegram (`@elvish`), and Matrix (`#users:elv.sh`).
- **Documentation**: User manual at [elv.sh/learn/](https://elv.sh/learn/), blog at [elv.sh/blog/](https://elv.sh/blog/).

### Packaging and Distribution
Elvish is available via:
- **Package Managers**: Homebrew (`elvish`), AUR (`elvish`), Debian (`elvish`), Ubuntu (`elvish`), macports (`elvish`).
- **BSD Ports**: FreeBSD (`shells/elvish`), OpenBSD (`elvish`), NetBSD (`shells/elvish`).

### Development and Quality Assurance
- **CI/CD**: Uses continuous integration via Cirrus CI ([cirrus-ci.com/github/elves/elvish](https://cirrus-ci.com/github/elves/elvish)).
- **Copyright**: Copyrighted but freely distributed under the BSD License.

## Schema Markup
```json
{
  "@context": "https://schema.org",
  "@type": "Thing",
  "name": "Elvish",
  "description": "A free and open-source programming language and shell combining functional and imperative paradigms.",
  "url": "https://elv.sh/",
  "sameAs": [
    "https://www.wikidata.org/wiki/Q104878154",
    "https://github.com/elves/elvish"
  ],
  "additionalType": [
    "https://www.wikidata.org/wiki/Q9135",  // Programming language
    "https://www.wikidata.org/wiki/Q185374"  // Free software
  ]
}

## References

1. [Source](https://github.com/elves/elvish/blob/master/LICENSE)
2. [Source](https://elv.sh/blog/0.18.0-release-notes.html)
3. [Source](https://elv.sh/blog/0.17.0-release-notes.html)
4. [Source](https://elv.sh/blog/0.16.0-release-notes.html)
5. [Source](https://elv.sh/blog/0.15.0-release-notes.html)
6. [Source](https://elv.sh/blog/0.14.1-release-notes.html)
7. [Source](https://elv.sh/blog/0.14.0-release-notes.html)
8. [Source](https://elv.sh/blog/0.13-release-notes.html)
9. [Source](https://elv.sh/blog/0.13.1-release-notes.html)
10. [Release 0.19.2. 2023](https://github.com/elves/elvish/releases/tag/v0.19.2)
11. [Release 0.20.0. 2024](https://github.com/elves/elvish/releases/tag/v0.20.0)
12. [Release 0.20.1. 2024](https://github.com/elves/elvish/releases/tag/v0.20.1)
13. [Release 0.21.0. 2024](https://github.com/elves/elvish/releases/tag/v0.21.0)