# AngelScript

> scripting language

**Wikidata**: [Q2366](https://www.wikidata.org/wiki/Q2366)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/AngelScript)  
**Source**: https://4ort.xyz/entity/angelscript

## Summary

AngelScript is a scripting language influenced by C++.

## Summary
AngelScript is a free, open-source scripting language created in 2003, designed primarily to be embedded within host applications such as video game engines. It features static, strong typing and supports object-oriented, imperative, and procedural programming paradigms. The reference implementation is maintained under the zlib License, with the latest stable release being version 2.37.0 (July 20, 2024).

## Key Facts
- **Inception**: 2003
- **License**: zlib License
- **Latest Stable Version**: 2.37.0 (released July 20, 2024)
- **Previous Versions**: 2.35.0 (December 5, 2020), 2.34.0 (September 22, 2019)
- **Website**: https://angelcode.com/angelscript/
- **Source Code Repository**: Hosted on SourceForge (Apache Subversion) with a mirror on GitHub
- **Programming Paradigms**: Object-oriented programming, imperative programming, procedural programming
- **Typing Discipline**: Strong typing, static typing
- **Aliases**: AS
- **Instance of**: Scripting language, implementation of a programming language, reference implementation, free and open-source software
- **Influenced By**: C++ (Wikidata Q2407)
- **Wikipedia Languages**: German (de), English (en), Italian (it), Portuguese (pt), Russian (ru)
- **Distribution**: Available via openSUSE package and MacPorts

## FAQs
### Q: What are the primary programming paradigms supported by AngelScript?
A: AngelScript supports multiple paradigms including object-oriented, imperative, and procedural programming. This flexibility allows developers to choose the structure that best fits their scripting needs.

### Q: How is AngelScript typically distributed and licensed?
A: It is free and open-source software released under the zlib License. The source code is available via Apache Subversion on SourceForge, and binaries or packages are accessible through openSUSE and MacPorts.

### Q: Where can I find community support or documentation for AngelScript?
A: The official forum is hosted on GameDev.net. The language also has a dedicated website and Wikipedia entries in five languages for general reference.

### Q: How does AngelScript handle typing compared to other scripting languages?
A: Unlike many scripting languages that use dynamic typing, AngelScript employs static typing with strong typing discipline. This allows for type safety checks during compilation rather than solely at runtime.

## Why It Matters
AngelScript provides a robust solution for developers needing to embed a scripting layer into performance-critical applications, particularly in game development. Its static typing and object-oriented features distinguish it from many dynamic counterparts, offering a balance between the safety of compiled languages and the flexibility of scripting. By using a familiar C++-like syntax, it lowers the learning curve for developers in that ecosystem. The library's continuous updates and maintenance over two decades highlight its reliability and ongoing relevance in software architecture requiring modular, runtime-extensible logic.

## Notable For
- **Static Typing in Scripting**: Uniquely employs static, strong typing among common embedded scripting languages.
- **C++ Synergy**: Syntax and design are heavily influenced by C++, making it intuitive for engine developers.
- **Embeddability**: Specifically architected as an "implementation of a programming language" to be embedded within host software.
- **Broad Distribution**: Available across different software repositories including openSUSE, MacPorts, and SourceForge.
- **Long-Term Maintenance**: Active development spanning from 2003 to 2024, with frequent updates to the SDK.

## Body
### Technical Characteristics
AngelScript is classified as a scripting language and functions as a reference implementation. It prioritizes a strong, static typing discipline, which aids in performance optimization and error reduction. The language supports a hybrid of paradigms including:
- **Object-Oriented Programming**: Utilized for structuring complex game logic and behaviors.
- **Imperative Programming**: Used for issuing commands and sequences to the host application.
- **Procedural Programming**: Employed for simpler, function-based scripting tasks.

### Development and Version History
The project began in 2003. Development has been consistent, with the following key milestones recorded in the provided source material:
- **Version 2.34.0**: Released September 22, 2019.
- **Version 2.35.0**: Released December 5, 2020.
- **Version 2.37.0**: Released July 20, 2024, marked as the stable version.

### Ecosystem and Distribution
The software is copyrighted but freely available under the zlib License. It is accessible through several technical channels:
- **Source Code**: The primary repository is located at `https://svn.code.sf.net/p/angelscript/code/trunk` utilizing Apache Subversion.
- **Mirrors**: A mirror of the repository is available on GitHub (`https://github.com/codecat/angelscript-mirror`).
- **Package Managers**: The software is packaged for openSUSE and MacPorts.
- **Community Forum**: Official discussions and support are hosted on the GameDev.net forums.

### Identity and Metadata
AngelScript is identified by the alias "AS" and holds the Freebase ID `/m/0vsgr58`. It is categorized on Wikidata as a "scripting language" and is recognized as a "free and open-source software" implementation. It has established Wikipedia entries in five languages: English, German, Italian, Portuguese, and Russian. The language is explicitly noted to be influenced by C++ (Wikidata Q2407).

## References

1. [AngelScript Changes. 2024](https://www.angelcode.com/angelscript/changes.php)