# urbiscript

> programming language for robotics

**Wikidata**: [Q7585520](https://www.wikidata.org/wiki/Q7585520)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Urbiscript)  
**Source**: https://4ort.xyz/entity/urbiscript

## Summary
Urbiscript is a programming language specifically designed for robotics, serving as the scripting component of the open-source URBI platform. It emphasizes object-oriented programming and integrates features from languages like Self and Io, enabling dynamic and flexible development for complex robotic systems.

## Key Facts
- **Designed by**: Jean-Christophe Baillie.
- **License**: BSD licenses.
- **Latest version**: 3.1.0 (released August 10, 2023).
- **Typing discipline**: Duck typing and dynamic typing.
- **Influenced by**: Self, Io, and Q (programming language).
- **Platform**: Cross-platform, built on the URBI framework in C++.
- **Repository**: Hosted on GitHub at [https://github.com/urbiforge/urbi](https://github.com/urbiforge/urbi).

## FAQs
### Q: What is Urbiscript primarily used for?
A: Urbiscript is designed for programming robotics and complex systems, offering a flexible scripting layer for the URBI platform.

### Q: Who created Urbiscript?
A: The language was designed by Jean-Christophe Baillie as part of the URBI project.

### Q: What are key technical features of Urbiscript?
A: It supports duck typing, dynamic typing, and object-oriented programming, influenced by languages like Self and Io.

## Why It Matters
Urbiscript plays a critical role in simplifying robotics programming by providing a high-level, intuitive interface for developers. As part of the URBI platform, it enables cross-platform development and fosters innovation in robotics through its open-source BSD-licensed model. By integrating concepts from Self and Io, Urbiscript addresses the need for flexibility and adaptability in controlling complex systems, making it a valuable tool for both research and industrial applications.

## Notable For
- **URBI Integration**: Serves as the scripting backbone for the URBI robotics platform.
- **Unique Typing**: Combines duck typing and dynamic typing for flexible code execution.
- **Influences**: Draws design principles from Self (1987) and Io (2002).
- **Open-Source**: Licensed under BSD, promoting collaborative development.
- **Cross-Platform**: Supports deployment across multiple operating systems via the URBI framework.

## Body
### Origins and Design
Urbiscript was developed by Jean-Christophe Baillie as part of the URBI project, which originated in 2003. The language is tailored for robotics, emphasizing object-oriented paradigms and influenced by Self (1987) and Io (2002). Its design prioritizes flexibility, leveraging duck typing and dynamic typing to accommodate the evolving demands of robotic systems.

### Technical Features
- **Typing System**: Supports duck typing (focus on object capabilities) and dynamic typing (runtime type checking).
- **Object-Based**: Organizes code around objects, though not strictly class-based like traditional OOP languages.
- **Platform Compatibility**: Operates within the URBI framework, enabling cross-platform applications in C++ environments.

### Version History
- **Version 3.1.0**: Released on August 10, 2023, as the latest stable version, available on GitHub.
- **Repository**: Hosted at [https://github.com/urbiforge/urbi](https://github.com/urbiforge/urbi), with ongoing community contributions.

### Ecosystem
Urbiscript is part of the broader URBI ecosystem, which provides tools for developing robotics and complex systems. Its BSD license ensures permissive use, fostering adoption in both academic and commercial projects.

## Schema Markup
```json
{
  "@context": "https://schema.org",
  "@type": "Thing",
  "name": "Urbiscript",
  "description": "Programming language for robotics and part of the URBI platform",
  "url": "https://github.com/urbiforge/urbi",
  "sameAs": [
    "https://www.wikidata.org/wiki/Q114596340",
    "https://en.wikipedia.org/wiki/Urbiscript"
  ],
  "additionalType": "ProgrammingLanguage",
  "version": "3.1.0",
  "license": "BSD licenses",
  "author": "Jean-Christophe Baillie"
}

## References

1. [Release 3.1.0. 2023](https://github.com/urbiforge/urbi/releases/tag/3.1.0)