Skip to content
This repository was archived by the owner on Mar 27, 2024. It is now read-only.
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions new-dotnet-language.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Draco - A new .NET programming language

## Description

C# has been around for 20 years and beautifully adapted to the changing requirements, shipping more and more modern language features. For backwards compatibility reasons, features could not remove from the language, resulting in mostly additive changes. The word "bloat" can be heard from time to time, when talking about newer versions of C#.

While we believe that C# is a beautifully engineered language, a fresh start can be greatly beneficial, that immediately aims for modern requirements, instead of adapting to them. It does not only makes it easier for newcomers to learn the language, but lowers the cognitive load for veteran users. We have been working on a new language for over a year now to do just that, design a fresh start for a .NET language. While we are still early in the design process, we would like to share our design philosophy, the goals of the language and what we are planning for in the future.

## Outline

* Why yet another language?
* Goals of the language
* Language philosophy
* C# interopability
* Current status of the project
* Sample snippets
* Features that hopefully make a difference
* Getting rid of the C heritage
* Traits, composition, external extensibility
* Compile-time metaprogramming
* Design hardships
* Limitations of CLR
* Limited interopability
* Our plans for the future
* Specifications to reach 1.0, short roadmap
* Strong tooling