logoalt Hacker News

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

58 pointsby serial_devlast Saturday at 1:04 PM19 commentsview on HN

Comments

truncatetoday at 3:02 AM

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.

achr2today at 2:55 AM

What is it bringing from those languages? The FAQ reads like it is just altered syntax for C#, no difference in semantics or function.

gwbas1ctoday at 2:59 AM

How is this different than C#? What new concepts does this bring that C# doesn't?

20 years ago there was some momentum behind Visual Basic .Net; but the language was so similar to C# that it just wasn't worth using. There was a joke that .Net was a "skinnable language."

BTW, there's a whole nitpicky/semantic argument that C# isn't null safe because of the null forgiving operator. That will probably come into play with G# if the null forgiving operator can be used from C# to pass null into G# code that doesn't expect it.

show 2 replies
seabrookmxtoday at 3:25 AM

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..

show 1 reply
onlyrealcuzzotoday at 2:34 AM

Just trying to offer some help here, not an attack:

``` G# brings Go-, Kotlin-, and Swift-style ergonomics — packages, func, data class, nullable handling with if let, structured concurrency with scope — to the .NET runtime. Source compiles directly to managed assemblies. ```

This is a decent description - but as someone also building a language in a similar space - who isn't super familiar with the .NET runtime... My first question is... Why not C#?

I'm by no means a C# expert, but I thought most of this was supposed to be in C#. C# is not terribly un-ergonomic, and Go is simple, but not really ergonomic except for Goroutines...

`packages` and `func` being the first two selling points is alarming. Sure, people probably prefer `fn foo() -> Dog` over `Dog foo()`. No one's picking a language for that. C# has namespaces... C# has `record` and `record struct`. C# has not-ideal nil handling, but it still has it. I'm not convinced `if let` is better enough to be a selling point - a lot of people don't like that!

Your main selling point seems like `scope` and your concurrency model vs C#, but C#'s is not exactly terrible...

Rich Hickey has a joke about semi-colons in language design, and your main pitch seems to sell yourself short.

Btw, I think your GitHub page does your language a lot better justice.

show 2 replies
Kuyawatoday at 2:43 AM

I like it. I consider myself picky with regards to weird syntax in new languages and this is terse and very readable. Approved!

jdw64today at 4:07 AM

Looks pretty good to me.

HeavyStormtoday at 1:56 AM

Looks nice, congratulations.

I feel like we've done full circle. Languages are back to being (mostly) procedural. I'm not sure I like it, but it seems that this is what people prefer.

Personally, I'd rather see something like dependant types on a dotnet language. An addition, not just a simplification.

show 1 reply
Areading314today at 3:10 AM

New programming languages? Doesn't seem needed anymore