---
title: Philosophy
slug: philosophy
createdAt: 2021-06-29T17:32:25.000Z
---

Shift's mission statement is expanding C# with a stronger type system, refactoring features that have become long on the tooth, and sunsetting the mechanics of the language that are a historical artifact. Furthermore using this as an oppurtunity to unify and pursue completeness with the langauge.

In general if there is something about a value or type that a human can be certain about then the type system should supply a mechanism for asserting that.

If that is the mission then the goal is to achieve it while being approachable to existing C# developers and interoptable with existing .NET Core CLR codebases. In pursuit of completeness the ideal is that each feature of the language can be explained in terms of the language. A few elementary axioms should be necessary.

A litmus test for approachability is how obvious is it that the code is not written in C#. Deviation should be intention and serve a purpose. This should be weight against how long it will take a developer to learn the new approach.

A litmus test for completness is if a feature can be explained in existing terms and is simply an abstraction. If something is an additional axiom it should add a meaningful dimension to the language. Edge case axioms should be avoided as much as possible.
