Live data from Hacker News

G# – A modern .NET language with Go, Kotlin, and Swift ergonomics

davidobando.github.io

51–60 of 107 posts

Re: G# – A modern .NET language with Go, Kotlin, and Swift ergonomics

#51

I love Go but am not a fan of .NET Have to ask what is the point of .NET is it even needed being the navel gazing MS fraternity?

C# is a great programming language. It's cross platform, and I personally find it fun and efficient to use.

According to Tiobe index and stack overflow developer survey, it's also a lot more used than Go, so there's that.

Re: G# – A modern .NET language with Go, Kotlin, and Swift ergonomics

#52

Here I am wanting the opposite. I want C# compiled into a static binary like with the GoLang toolchain! Maybe .NET AOT will get there one day..

You don't need AOT for a single self-contained binary. This already works with C#, but it's still JIT-based.

Re: G# – A modern .NET language with Go, Kotlin, and Swift ergonomics

#53
post #21

Yuck. I like both Go and C# a lot, and use them both professionally. In my experience the strengths of Go are mostly - Deployability via single-file static binaries - Simple syntax that anyone can learn (no exceptions, no classes or inheritance) - Wicked fast compile times And the strengths of C# are - Powerful language with null-safety and lots of syntax sugar - Runtime-level coroutines so you don't need `async/awai…

> And the strengths of C# are [...] Runtime-level coroutines so you don't need `async/await` everywhere

If I'm not mistaken, that isn't the case. Could you elaborate?

Re: G# – A modern .NET language with Go, Kotlin, and Swift ergonomics

#54
post #53
post #21

Yuck. I like both Go and C# a lot, and use them both professionally. In my experience the strengths of Go are mostly - Deployability via single-file static binaries - Simple syntax that anyone can learn (no exceptions, no classes or inheritance) - Wicked fast compile times And the strengths of C# are - Powerful language with null-safety and lots of syntax sugar - Runtime-level coroutines so you don't need `async/awai…

> And the strengths of C# are [...] Runtime-level coroutines so you don't need `async/await` everywhere If I'm not mistaken, that isn't the case. Could you elaborate?

They might have meant to put that point in the Go section?

Re: G# – A modern .NET language with Go, Kotlin, and Swift ergonomics

#55

Earlier quoted context omitted.

Exactly. To add to this, is called ahead-of-time compilation, and bundles required parts of the .net runtime into the single-binary. Deployment targets thus don't need to ship any .net environment or libraries.

AOT is entirely independent of single file binaries. And self-contained binaries that run without the framework installed are again a separate concept. There are some dependencies between these, but they are not the same thing. AOT is not all that useful yet for many applications as important libraries still don't support it. So more something for things like CLI tools with a small scope. It's not quite the same as w…

> AOT is entirely independent of single file binaries.

splitting hairs, but its is not independent. AoT is a required pre-requisite for single-binary creation. You can't create single-binaries with JIT. And that is the big hurdle, lot of libraries do not support AoT and that is the blocker to create single-file binary. Once you have the AoT figured out, the single-binary creation is easy.

Re: G# – A modern .NET language with Go, Kotlin, and Swift ergonomics

#56

Earlier quoted context omitted.

AOT is entirely independent of single file binaries. And self-contained binaries that run without the framework installed are again a separate concept. There are some dependencies between these, but they are not the same thing. AOT is not all that useful yet for many applications as important libraries still don't support it. So more something for things like CLI tools with a small scope. It's not quite the same as w…

> AOT is entirely independent of single file binaries. splitting hairs, but its is not independent. AoT is a required pre-requisite for single-binary creation. You can't create single-binaries with JIT. And that is the big hurdle, lot of libraries do not support AoT and that is the blocker to create single-file binary. Once you have the AoT figured out, the single-binary creation is easy.

Yes, you can. I am using that in production right now. An ASP.NET Core application as a self-contained single-file binary, without AOT.

.NET AOT right now is a very specialized solution that isn't widely applicable. Self-contained and single-file binaries do work pretty much out of the box already.

See the documention here for the PublishSingleFile and SelfContained options:

https://learn.microsoft.com/en-us/dotnet/core/deploying/sing...

Re: G# – A modern .NET language with Go, Kotlin, and Swift ergonomics

#58

- stupid question: how do you make a programming language like this from scratch? - what is the thought process that goes into making a programming language - what is this field of study or discipline called? - why do we have so many programming languages? what purpose do they intend to solve and how do we know what purpose a programming language was made for? - for example, why was swift made if objective c exists a…

> how do you make a programming language like this from scratch?

Write a parser from your language’s syntax to an AST (Abstract Syntax Tree) which is the representation of the code in memory. Now write a function from the AST to the compiler output format. That can be some executable binary format (see https://en.wikipedia.org/wiki/Comparison_of_executable_file_...) or some other language, like C (a common target) or something made exactly for that like LLVM (used by clang and Rust), Java or C# bytecode if you don’t mind requiring a VM to run the application. I’ve written Java bytecode generators and it’s surprisingly easy! Getting a simple language off the ground is a lot of fun and not a huge challenge.

Re: G# – A modern .NET language with Go, Kotlin, and Swift ergonomics

#59
post #29

I wish README is clear whether they are using AI or not, and if so what the guidelines are. Not that anything wrong with using it, but given anyone with $$$ for tokens can do it, its nice to know what their process is etc etc. Gives me more confidence that its worth checking out.

It’s slop

Could you expand on that?

Re: G# – A modern .NET language with Go, Kotlin, and Swift ergonomics

#60

I wish README is clear whether they are using AI or not, and if so what the guidelines are. Not that anything wrong with using it, but given anyone with $$$ for tokens can do it, its nice to know what their process is etc etc. Gives me more confidence that its worth checking out.

This should be a standard section in READMEs now. I've started adding it to mine. Even if you don't use AI, please add a section saying that! It can be one sentence.

  # Use of AI

  No AI was used. / This is entirely written by Claude and I didn't even read the code. / ...
Post reply on HN