Wing: The Startup Failed, but the Language Has Potential
Winglang was designed as a "programming language for the cloud." Here's a look at how it works, and what its legacy might be as the company behind it closes.
Apr 21st, 2025 7:23am by
Between Kubernetes and Serverless
So where was Wing positioned? I normally look at languages as they appear, not as they retreat, but we should be able to learn something as we use it. Working in the cloud is either a case of container manipulation with Kubernetes, or the very exposed world of serverless functions. I can understand that neither of these two extremes may feel like the best place to work, or express business concerns. To express both infrastructure and application logic in a type-safe model, Wing has two execution phases: “preflight” for infrastructure definitions and “inflight” for runtime code. We’ll see these in action shortly. I think modeling the platform is an interesting direction, and can be contrasted with System Initiative, which also encompasses the architecture of the cloud, but visually. In fact, the comparison with System Initiative is unavoidable when looking at the Wing Console.Taking Off
I’m going to try starting a project in what I hope will be more than just archaeology. (There was a playground option, but that does appear to be down at the moment), I installed the npm and confirmed the version:
Then I started a new empty project:
This gives us a nice bit of how-to with further links. We have only three files to consider in the project:
And we start by placing the example code into the main.w file:
bring cloud;
// define a queue, a bucket and a counter
let bucket = new cloud.Bucket();
let counter = new cloud.Counter(initial: 1);
let queue = new cloud.Queue();
// When a message is received in the queue it should be consumed
// by the following closure
queue.setConsumer(inflight (message: str) => {
// Increment the distributed counter, the index variable will
// store the value prior to the increment
let index = counter.inc();
// Once two messages are pushed to the queue, e.g. "Wing" and "Queue".
// Two files will be created:
// - wing-1.txt with "Hello Wing"
// - wing-2.txt with "Hello Queue"
bucket.put("wing-{index}.txt", "Hello, {message}");
log("file wing-{index}.txt created");
});
preflight_str:
let preflight_str = "hello from preflight";
inflight () => {
log(preflight_str); // `preflight_str` is "lifted" into inflight.
};
In fact in main.w, bucket has been lifted via that put method.
Well, I’m already ready to run that Wing Console. It starts up at port 3001:
Before starting, we do need to log in with Google or, inevitably, GitHub. Then the console is loaded:
This is actually a bit nicer than the diagram of the console in the docs. This is nice live and hot-loading page.
We can operate the functions using the diagram. First, we can push a message. By hitting the queue, we get some UI to enter text and push:
We can now click the bucket, and check the message file was created, with the greetings content, which it was:
And yes, the counter is incremented too:
The idea is that you can then deploy this to the cloud. Just like with System Initiative, this means AWS at the moment. A message tells us that Azure and Google were to follow:
But I guess this will fall by the wayside unless the community picks up the work. I looked on the Discord, but the news of the business having closed down is still fresh, and no evidence of any recovery was visible.
Conclusion
“Choosing between Kubernetes and serverless isn’t the future,” as Ben-Israel wrote in The New Stack a year ago, but it clearly will be for a bit longer. The current cloud native concepts remain hard to grasp and tame, even though Wing had a good try. The Final words go to Adam Jacob, the CEO of System Initiative: “Wing had many promising aspects and was a truly original take. They should be proud of what they built. I’m proud of them for being in the game, for being original, and being really lovely people at every step. Wing was filled with good ideas. Cool technology. Sometimes this is just how it goes.”
YOUTUBE.COM/THENEWSTACK
Tech moves fast, don't miss an episode. Subscribe to our YouTube
channel to stream all our podcasts, interviews, demos, and more.