ProductPromotion
Logo

Open.Source

made by https://0x3d.site

GitHub - winglang/wing: A programming language for the cloud ☁️ A unified programming model, combining infrastructure and runtime code into one language ⚡
A programming language for the cloud ☁️ A unified programming model, combining infrastructure and runtime code into one language ⚡ - winglang/wing
Visit Site

GitHub - winglang/wing: A programming language for the cloud ☁️ A unified programming model, combining infrastructure and runtime code into one language ⚡

GitHub - winglang/wing: A programming language for the cloud ☁️ A unified programming model, combining infrastructure and runtime code into one language ⚡

Winglang is a new open-source programming language designed for the cloud (aka "cloud-oriented"). Wing enables developers to build distributed systems that leverage cloud services as first-class citizens by combining infrastructure and application code in a safe and unified programming model (aka "cloud-oriented"). Wing programs can be executed locally (yes, no internet required) using a fully-functional simulator, or deployed to any cloud provider (yes, Wing programs are portable across providers).

The mission of Winglang is to bring back your creative flow and close the gap between imagination and creation.

Developing for the cloud today requires mastering various layers of the cloud stack, IAM roles, networking, and numerous tools, along with finding creative ways to test and debug code. In addition, long deployment times hinder iteration cycles and take developers out of their creative flow.

Winglang addresses these pains by letting you work at a higher level of abstraction and allowing you to focus on business logic instead of cloud mechanics, only surfacing low-level details when it's needed. We also provide you with a set of tools that let you test your code locally, significantly faster than before.

Wing is built by Elad Ben-Israel, the guy behind the AWS CDK, the gang at the Wing Cloud team and an amazing community of contributors (also known as Wingnuts).

Click here to watch a short video introduction to the Wing language.

Why do we think the cloud needs a programming language? 🤔

Cloud applications are fundamentally different from applications that run on a single machine - they are distributed systems that rely on cloud infrastructure to achieve their goals.

In order to be able to express both infrastructure and application logic in a safe and unified programming model, Winglang has two execution phases: preflight for infrastructure definitions and inflight for runtime code.

Preflight code is executed during compilation and produces the infrastructure configuration for your app (e.g. Terraform, CloudFormation, etc). Inflight code is compiled into JavaScript and executed within cloud compute platforms in Node.js environments.

Let's look at a simple example:

bring cloud;

let queue = new cloud.Queue();
let counter = new cloud.Counter();
let bucket = new cloud.Bucket();

queue.setConsumer(inflight (message) => {
  let i = counter.inc();
  bucket.put("file-{i}.txt", message);
});

cloud.Queue, cloud.Counter and cloud.Bucket are preflight objects. They represent cloud infrastructure resources. When compiled to a specific cloud provider, such as AWS, a Terraform file will be produced with the provider's implementation of these resources. The queue.setConsumer() method is a preflight method that configures the infrastructure to invoke a particular inflight function for each message in the queue.

Now comes the cool part: the code that runs inside the inflight function interacts with the counter and the bucket objects through their inflight methods (counter.inc() and bucket.put()). These methods can only be called from inflight scopes.

Very cool, but what here cannot be done by a library or compiler extension?

In existing languages, where there is no way to distinguish between multiple execution phases, it is impossible to naturally represent this idea that an object has methods that can only be executed from within a specific execution phase (or within certain scopes of the program). You are welcome to read more about it here (including code samples that show the same app built in Wing vs. other solutions).

What makes Wing a good fit for cloud development? 🌟

Wing was built from scratch to make it easy for building applications on any cloud. It includes an assembly of different features that serve that purpose:

For a more in-depth look at Wing's features and benefits, check out our documentation.

Getting started 🛠️

🚧 This is a pre-release, please see our project status for more details.

If you'd just like to dip your feet in the water and see what Wing is all about, you can try it out in our online playground or walk through the interactive tour.

When you're ready to start building your own Wing apps, you'll need to:

  1. Install the Wing CLI.
  2. Get the Wing IDE Extension for your favorite editor.
  3. Launch the Wing Console and take it for a spin!

For a step-by-step guide, head over to our Getting Started guide. It's a once-in-a-lifetime adventure into the Wing rabbit hole!

FAQs ❓

Here are some questions we're commonly asked that are covered by our FAQ:

Community 💬

Join our flock in the Wing Discord community. We're here to help each other, answer questions, and share our cloud adventures. Alternatively, post any questions on GitHub Discussions.

Contributing 🤝

Want to help Wing take flight? Check out our contribution guide to learn how to set up a development environment and contribute to the project. You can also get started by opening the project in GitHub Codespaces.

Open in GitHub Codespaces

We are incredibly grateful to our entire community for contributing bug fixes and improvements:

License 📜

Wing is licensed under the MIT License. Contributions are made under our contribution license.

Happy coding, and remember: the sky's the limit with Wing (yes, another pun)! 🌤️🚀

Articles
to learn more about the open-source concepts.

Resources
which are currently available to browse on.

mail [email protected] to add your project or resources here 🔥.

FAQ's
to know more about the topic.

mail [email protected] to add your project or resources here 🔥.

Queries
or most google FAQ's about Open-Source.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory