# Wyvern

> programming language

**Wikidata**: [Q18029891](https://www.wikidata.org/wiki/Q18029891)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Wyvern_(programming_language))  
**Source**: https://4ort.xyz/entity/wyvern-q18029891

## Summary
Wyvern is a programming language designed to support both object-oriented and functional programming paradigms. Developed in 2013, it utilizes a structural typing discipline and is available as open-source software under the GNU General Public License, version 2.0. The language is maintained via a public GitHub repository and is affiliated with Carnegie Mellon University.

## Key Facts
- **Inception:** The Wyvern programming language was created in 2013.
- **License:** It is released under the GNU General Public License, version 2.0.
- **Paradigms:** The language supports multiple paradigms, specifically object-oriented programming and functional programming.
- **Typing Discipline:** Wyvern employs structural typing.
- **Official Website:** The project is hosted at http://www.cs.cmu.edu/~aldrich/wyvern/.
- **Source Code:** The codebase is publicly accessible at https://github.com/wyvernlang/wyvern.
- **Classification:** Wyvern is classified as a programming language intended for communicating instructions to a machine.
- **Wikipedia Presence:** It has a Wikipedia presence across four languages (German, English, Japanese, Cantonese/zh_yue).

## FAQs
### Q: What programming paradigms does Wyvern support?
A: Wyvern supports a hybrid approach to software development, accommodating both object-oriented programming and functional programming styles.

### Q: What type system does Wyvern use?
A: The language uses a structural typing discipline, determining type compatibility based on the structure of the data rather than explicit declarations.

### Q: Is Wyvern free to use?
A: Yes, Wyvern is licensed under the GNU General Public License, version 2.0, making it free and open-source software.

### Q: Where can the source code for Wyvern be found?
A: The source code is available in a public repository hosted on GitHub at github.com/wyvernlang/wyvern.

## Why It Matters
Wyvern matters in the landscape of programming language design as an academic project that bridges distinct coding methodologies. Originating from Carnegie Mellon University (indicated by its website domain), Wyvern addresses the complexity of modern software requirements by integrating object-oriented and functional programming into a single language environment. This dual-paradigm capability allows developers to choose the most effective approach for different parts of their application without switching languages.

Furthermore, its use of structural typing offers a flexible approach to type safety, distinguishing it from languages that rely on nominal typing. As an open-source project under the GPL-2.0 license, it serves as a resource for researchers and developers interested in language evolution and type systems. Its inception in 2013 places it within the modern era of language development, where reducing boilerplate and increasing modularity are key pursuits.

## Notable For
- **Hybrid Paradigm:** Uniquely combines object-oriented and functional programming within a single language structure.
- **Structural Typing:** Utilizes a structural type system, a feature that differentiates it from many mainstream nominally-typed languages.
- **Academic Origins:** Developed and maintained with affiliations to Carnegie Mellon University.
- **Open Source:** Fully accessible under the GNU General Public License, version 2.0.

## Body
### Technical Specifications
Wyvern is a general-purpose programming language classified as a method for communicating instructions to a machine. Its design is characterized by specific technical choices regarding its type system and execution paradigm.

- **Programming Paradigms:** Wyvern is designed to be multi-paradigm. It officially supports **object-oriented programming** (OOP) and **functional programming**. This allows for the use of classes and inheritance alongside immutable data and first-class functions.
- **Typing Discipline:** The language implements **structural typing**. In this system, type compatibility is determined by the types' structures (the presence of certain methods or fields) rather than their names or inheritance hierarchies.

### History and Development
The development of Wyvern is marked by its academic roots and open availability.

- **Inception:** The project began in **2013**.
- **Copyright Status:** The language is copyrighted.
- **Wikipedia Presence:** The entity has a sitelink count of 4 on Wikipedia, appearing in English (en), German (de), Japanese (ja), and Cantonese (zh_yue).

### Availability and Resources
Wyvern is distributed as open-source software with specific resources available to the public.

- **Licensing:** The project uses the **GNU General Public License, version 2.0**. This ensures that the software remains free to use, modify, and distribute.
- **Source Code:** The entire source code is hosted on GitHub at `https://github.com/wyvernlang/wyvern`.
- **Documentation:** The primary portal for the language is hosted by Carnegie Mellon University at `http://www.cs.cmu.edu/~aldrich/wyvern/`.

## References

1. [wyvern/COPYING.TXT at master · wyvernlang/wyvern. GitHub](https://github.com/wyvernlang/wyvern/blob/master/COPYING.TXT)
2. [Source](https://www.cs.cmu.edu/~aldrich/wyvern/spec-rationale.html)