3 ms·
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
by onlyrealcuzzo 3mo 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.
- Syzygies 3mo 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 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."
- AdieuToLogic 3mo ago> I didn't see semicolons, but I saw plenty of {} braces, and I can't explain why they're needed. "Curly braces" (a.k.a. "{}") make lexicographical scope simpler to manage for lexers and parsers. Alternate grammars increase compiler complexity, excluding trivial token replacement. As for semicolons, they are only a linguistic requirement for supporting multiple executable statements on the same source-code line.
- narnarpapadaddy 3mo agoIt’s probably too little too late in the age of Claude… C# grew all those features over time. It had to leave syntax to support old patterns to preserve backwards compatibility. Thus, the syntax has grown a bit noisy over time to support all those features. This is reboot keeping the newer ergonomics and streamlining the syntax. I probably wouldn’t adopt it for existing projects or use .Net for any future project, but it looks really nice for what it is.