G# – A modern .NET language with Go, Kotlin, and Swift ergonomics
36 points
4 days ago
| 5 comments
| davidobando.github.io
| HN
achr2
1 minute ago
[-]
What is it bringing from those languages? The FAQ reads like it is just altered syntax for C#, no difference in semantics or function.
reply
onlyrealcuzzo
21 minutes ago
[-]
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.

reply
Syzygies
32 seconds ago
[-]
> Rich Hickey has a joke about semi-colons in language design

I didn't see semicolons, but I saw plenty of {} braces, and I can't explain why they're needed.

https://github.com/Syzygies/Compare

"I'm already quite sure how I will die: I'll read another article on Hacker News about a new programming language where I see nothing new, and I'll read that they included {}; to make C programmers comfortable. I'll have a massive stroke."

reply
Kuyawa
12 minutes ago
[-]
I like it. I consider myself picky with regards to weird syntax in new languages and this is terse and very readable. Approved!
reply
HeavyStorm
59 minutes ago
[-]
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.

reply
chews
59 minutes ago
[-]
reply