# Nemerle

> general-purpose high-level statically typed programming language

**Wikidata**: [Q2626413](https://www.wikidata.org/wiki/Q2626413)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Nemerle)  
**Source**: https://4ort.xyz/entity/nemerle

## Summary
Nemerle is a general-purpose high-level statically typed programming language that supports multiple programming paradigms including functional, object-oriented, and procedural programming. Created in 2003 by the University of Wrocław, it features inference typing and has been developed with contributions from JetBrains.

## Key Facts
- Nemerle is a general-purpose high-level statically typed programming language
- Nemerle was created in 2003
- Nemerle is licensed under the 3-clause BSD License
- Nemerle is a multi-paradigm programming language that supports functional, object-oriented, procedural, imperative, and metaprogramming paradigms
- Nemerle uses inference typing with nominative, static, and strong typing disciplines
- Nemerle's latest stable version is 1.2.547.0, released on September 1, 2017
- Nemerle was initially developed by the University of Wrocław, with later contributions from JetBrains
- Nemerle is influenced by Standard ML
- Nemerle's source code is available at https://github.com/rsdn/nemerle
- Nemerle has a Japanese name transliteration as "ネマール"

## FAQs
### Q: What programming paradigms does Nemerle support?
A: Nemerle is a multi-paradigm programming language that supports functional programming, object-oriented programming, procedural programming, imperative programming, and metaprogramming.

### Q: When was Nemerle created and who developed it?
A: Nemerle was created in 2003 by the University of Wrocław, with later development contributions from JetBrains.

### Q: What is the typing discipline used in Nemerle?
A: Nemerle uses inference typing with nominative typing, static typing, and strong typing.

### Q: What is the latest stable version of Nemerle?
A: The latest stable version of Nemerle is 1.2.547.0, released on September 1, 2017.

## Why It Matters
Nemerle matters as a versatile programming language that combines static typing with multiple programming paradigms, offering developers the flexibility to choose the most appropriate approach for different tasks. Its inference typing system allows for concise code while maintaining type safety, bridging the gap between dynamically typed languages for productivity and statically typed languages for reliability. Developed by both academic institutions and commercial entities, Nemerle represents a collaboration between research and practical application, making it relevant for both educational purposes and real-world software development. Its continued evolution since 2003 demonstrates sustained interest in exploring language design that balances expressiveness with type safety.

## Notable For
- Multi-paradigm design that seamlessly integrates functional, object-oriented, and procedural programming
- Unique inference typing system that enables concise syntax while maintaining static type safety
- Development partnership between academic institution (University of Wrocław) and commercial company (JetBrains)
- Longevity as a programming language project with active development from 2003 to at least 2017
- Japanese transliteration "ネマール" indicating international language support and documentation

## Body
### Overview
Nemerle is a general-purpose high-level statically typed programming language with a focus on combining multiple programming paradigms into a cohesive language design. It supports functional programming, object-oriented programming, procedural programming, imperative programming, and metaprogramming approaches.

### Typing System
Nemerle employs a sophisticated type system with inference typing, nominative typing, static typing, and strong typing. This combination allows the language to provide type safety while enabling more concise code than traditionally typed languages. The type inference system reduces the need for explicit type annotations in many cases.

### Development History
Nemerle was created in 2003 by the University of Wrocław. The project has seen several stable version releases:
- Version 0.0 (stable) released on September 25, 2003
- Version 1.0 (stable) released on May 12, 2011
- Version 1.1b (stable) released on October 9, 2011
- Version 1.2 (stable) released on May 29, 2013
- Version 1.2.484.0 released on December 10, 2015
- Version 1.2.503.0 released on March 15, 2016
- Version 1.2.547.0 (latest stable) released on September 1, 2017

The language's development has involved both the University of Wrocław and JetBrains, indicating a collaboration between academic research and commercial application needs.

### Technical Characteristics
As a multi-paradigm language, Nemerle incorporates features from various programming paradigms:
- Functional programming capabilities including higher-order functions and immutability
- Object-oriented programming with classes and inheritance
- Procedural programming elements
- Metaprogramming features for code generation
- Impeative programming support

The language also follows the off-side rule, similar to Python, for code indentation.

### Licensing and Availability
Nemerle is released under the 3-clause BSD License, making it free and open-source software. The source code is available on GitHub at https://github.com/rsdn/nemerle, with the project classified as free software under the Free Software Foundation's definition.

### Documentation and Community
Nemerle has documentation available in multiple languages, including English, Japanese (ネマール), Korean, Polish, Russian, Tajik, Ukrainian, and Chinese. The language has a website at http://nemerle.org and has been documented on Wikipedia, with sitelinks indicating moderate recognition in programming language documentation.

## Schema Markup
```json
{
  "@context": "https://schema.org",
  "@type": "Thing",
  "name": "Nemerle",
  "description": "General-purpose high-level statically typed programming language",
  "url": "http://nemerle.org",
  "sameAs": [
    "https://www.wikidata.org/wiki/Q1177333",
    "https://en.wikipedia.org/wiki/Nemerle"
  ],
  "additionalType": "programming language",
  "inventor": "University of Wrocław",
  "publisher": "JetBrains",
  "version": "1.2.547.0",
  "releaseDate": "2017-09-01",
  "license": "3-clause BSD License",
  "programmingLanguage": {
    "@type": "ComputerLanguage",
    "paradigm": "multi-paradigm programming",
    "typeSystem": "inference typing",
    "typingDiscipline": "static typing"
  }
}

## References

1. [Source](http://nemerle.org/BuildHistory?major=1&minor=2)
2. [Release 0.0. 2003](https://github.com/rsdn/nemerle/releases/tag/v0.0)
3. [Release 1.0. 2011](https://github.com/rsdn/nemerle/releases/tag/v1.0)
4. [Release 1.1b. 2011](https://github.com/rsdn/nemerle/releases/tag/v1.1b)
5. [Release 1.2. 2013](https://github.com/rsdn/nemerle/releases/tag/v1.2)
6. Freebase Data Dumps. 2013