I’ve been building *W++*, a scripting language that looks like Python but runs on the .NET runtime. It started as a fun side project, but it evolved into something surprisingly powerful — and potentially useful:
Key Features:
- Python-style syntax with semicolon-based simplicity
- Compiles to .NET IL with experimental JIT support
- Can run interpreted or compiled
- Built-in CLI for managing projects, running, and building
- Supports importing NuGet packages and converts them to .ingot modules automatically - MIT licensed and fully open-source
You can even do things like:
wpp
import Newtonsoft.Json
let person = new JObject()
person["name"] = "Alice"
print person["name"];
Use Cases:
Game scripting (Unity, OpenTK support in progress)Education (gentle intro to .NET without C# syntax)
Blazor scripting
Embeddable scripting engine for .NET apps
GitHub: https://github.com/sinisterMage/WPlusPlus
I’d love feedback, ideas, and thoughts. Thanks for reading — and if you’ve ever said “I wish Python ran on .NET,” this might be for you.
airstrike•1d ago
Isn't that IronPython?
sinisterMage•1d ago
W++ takes a different approach: it's a custom scripting language that looks like Python but is designed for tight integration with .NET itself, including:
Native JIT compilation (via IL emission)
NuGet package import support (via .ingot wrapping)
Familiar syntax (like print, let, for, if) with static structure
IronPython is about bringing Python to .NET. W++ is about making .NET scripting feel more like Python.
Think of it as IronPython’s minimalist, compile-time-powered cousin.
giancarlostoro•1d ago
I do think theres some interesting value in something like IronPython becoming more compatible with regular Python code in that in theory you could take advantage of both .NET and Python libraries. I'm thinking maybe Django with access to any .NET library.
sinisterMage•1d ago
Also, totally agree — bridging Python and .NET ecosystems more deeply (like Django with NuGet access ) sounds wild and fun. Appreciate the thoughts!
grzm•1d ago
https://clojure.org/about/clojureclr
Nelkins•1d ago
And the newer reimplementation: https://github.com/dmiller/clojure-clr-next