by shaiber on 12/6/23, 3:56 PM with 71 comments
by openquery on 12/6/23, 5:41 PM
At Shuttle[0] we've built something similar but instead of building a language from scratch we've built on Rust using metaprogramming and the type system to achieve the same effect. For now we haven't hit any limitations that would warrant a new compiler as metaprogramming allows us to express cloud development quite naturally inside the language.
by thesurlydev on 12/6/23, 5:05 PM
I've used CF, and TF and was an early adopter of CDK. I'm curious how this compares with Pulumi (never tried it). I liked the idea behind CDK but was shy about going all in because it was AWS-specific. Looks like this is the natural progression.
by liotier on 12/6/23, 5:10 PM
by bez00m on 12/6/23, 4:59 PM
by ljm on 12/6/23, 5:33 PM
It's not obvious at a glance that you can only call inflight functions in an inflight scope, because the syntax for calling them is identical to calling a preflight function on the same object.
Do you just compile it and see where it fails?
by haskellandchill on 12/6/23, 4:22 PM
This is fertile ground for new languages, apparently they call this the "Construct Programming Model" but there appears to be no meat to the theory. If programming language theory was leveraged properly I think they'd really be on to something. See the success of Rust for example.
I just did some cursory research and came across a paper on "ABS: A high-level modeling language for cloud-aware programming" which would give a much stronger foundation for such an effort than JavaScript.
by cmgriffing on 12/6/23, 9:57 PM
A language-specific DSL (Pulumi, CDK, etc) just works in any editor that already supports your language.
This is a similar reason to why I dislike most docblock-based infra tools as well. If wing is confident in their ability to maintain editor tooling, more power to them, but it isn't maintenance I would want to manage.
by nathan_tarbert on 12/6/23, 4:25 PM
queue.setConsumer(inflight (body: str): str => { let next = counter.inc(); let key = "myfile-{next}.txt"; bucket.put(key, body); });
by RcouF1uZ4gsC on 12/6/23, 6:01 PM
My category theory is pretty rudimentary, but isn’t this a good use case for a monad?
by dugmartin on 12/6/23, 5:05 PM
Given this language is really about abstracting network calls to external services as objects/methods wouldn't it make sense to have return values be maybes and then be able to pattern match on that given that these are not local calls and networks/services do fail?
My guess is an actor pattern where you are sending messages to these services and waiting for responses instead of faking a local call would surface the error conditions in a much cleaner way, ala Erlang or Elixir.
This may be helpful: https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-a...
by dadadad100 on 12/6/23, 6:26 PM
by quickthrower2 on 12/6/23, 8:23 PM
I am interested, but when I look at the comparison with Pulumi - https://www.winglang.io/docs/faq/why-a-language, they have 4 lines of code in Wing, but the long Pulumi example sets up permissions. So how did the permissions get set up in Wing? The great thing about Pulumi is if you are trying to comply with company security policies which in turn are for SOC2 etc. then this explicit setup as code is great. I think Pulumi also has a policy system but I haven't explored it yet.
So what I am saying is more code != bad (think of the raison d'etre of the Go programming langauge) but I am not saying Wing is bad ... I am saying I would like to know more.
I find it hard to believe that there is a semantic deficiency in JS/Go/C# etc. that means you need a new languages. And if you use Typescript, OCaml or Haskell (most likely Typescript for popularity) you can probably make the Type system do as much static heavy lifting as possible. Of course some checks need the current state so need runtime. But happy to be persuaded we need a new language.
by gnarlouse on 12/6/23, 9:10 PM
Show me making it more complex and what that costs.
Show me the performance benchmarks.
Syntax is cool but the older I get the more I care about productivity and speed.
by dang on 12/6/23, 9:41 PM
Wing Cloud Raises a $20M Seed to Build a Programming Language for the Cloud - https://news.ycombinator.com/item?id=36864816 - July 2023 (6 comments)
Wing: A cloud-oriented programming language – request alpha access - https://news.ycombinator.com/item?id=34051325 - Dec 2022 (148 comments)
Wing programming language: A cloud-oriented programming language - https://news.ycombinator.com/item?id=33762969 - Nov 2022 (1 comment)
by srbhr on 12/6/23, 4:08 PM
by whoomp12341 on 12/6/23, 5:26 PM
by eddd-ddde on 12/6/23, 9:42 PM
What about algebraic effect based languages like koka? Would it make sense to make "inflight" methods and effect and have appropriate effect handlers in scopes like queues or functions?
by shauniel on 12/6/23, 8:19 PM
by nevodavid10 on 12/6/23, 3:59 PM
by jahsome on 12/6/23, 5:39 PM
My current org has been slow to adopt IaC, and Bicep has been all for which I've managed to drum up appetite. I was surprised somewhat to enjoy the simplicity, but eventually I think we'll outgrow it. My hope is by the time we're ready to graduate, things like Wing, or radius will be more mature and easier to weave in.
On a side note, it feels disingenuous or at least inaccurate for a project to brand itself "new". I feel like I've seen this posted to hn a few times, how long will it be "new"? There's at least one 8-month old post.
The word "new" scares away certain types, who happen to be in leadership or decision-making roles.
by bluber84 on 12/6/23, 6:40 PM
by gigatexal on 12/6/23, 11:11 PM