logoalt Hacker News

raincole • yesterday at 6:44 PM • 4 replies • view on HN

Being a Microsoft product is such a heavy baggage. Last time I checked the official debugger was still not open sourced and that alone was enough to make many people think twice. The fact that MSFT chose golang instead of C# for Typescript compiler, the state of Windows native GUI app dev... all erode C#'s reputation.

It's a good language though. The latest trend of hating OOP is unjustified/overreaction. I do write Rust too and I am not really convinced that traits are better than shallow inheritance + interface-oriented classes.


Replies

to11mtm • today at 5:35 AM

Well, there's a lot of sides of it.

On the historical (And semi-current-ish) downside we had/have;

- lots of 'flash in the pan' stuff between 2008-2012ish (Silverlight comes to mind here)

- Anemic Entity Framework in pre-core, and the weird stuff EF Core had going on early in it's life.

- That constant worry as to whether you need to add .ConfigureAwait(false) to every async call in a library you want to open source.

- The thing where trying to do 'traits' in NetCore (Now that you can mostly mimic the behavior) has had some side-effects on performance, mostly resolved but still something you have to consider as far as impact. (To be clear tho, thank god, needed that...)

- WTF was that UWP workflow?

- Why can't we get a proper designer? I don't think it would be that hard especially given I can do nice things around workflow designers today. Speaking of workflows...

- The complete (what I probably guess was MS groups eating their own tail) thing where Workflow Foundation was almost truly productive, SSMS had a thing based on it that was surprisingly productive, and it has been murdered instead of getting the TLC it needed to really disrupt. This one is extra loud because it is so similar to the 'low code' platforms so many orgs have sank money into.

- Less impactful as far as people eating the lunch microsoft left on the table, but WCF.

The upshot is;

- If you're willing to do some looking there are great options out there. lazy example, linq2db is basically a DSL that is close enough to EFCore as far as 'how you compose' that you can teach it to a group of WITCH devs in 30 minutes or less.

- It really is easy to do all sorts of stuff. It's just productive.

➕ show 1 reply
CharlieDigital • yesterday at 7:38 PM

    > Being a Microsoft product is such a heavy baggage
Which I always found ironic because TypeScript (from the same guy that created C# even!), VS Code are both Microsoft. Microsoft also makes big contributions and investments in Postgres and Python as well.
➕ show 4 replies
sysmax • today at 4:14 AM

There's an open-source debugger by Samsung, compatible with GDB/MI and the DAP protocols: https://github.com/Samsung/netcoredbg

YuechenLi • yesterday at 8:07 PM

The decision to use Go for TS7 compiler is even more baffling considering Go's low level memory management functionalities is nowhere near the level of C#'s Span<T> etc, especially since TS and C# are invented by the same person.

I got so worked up by it I built my own TyepScript compiler with my clankers in C# to prove that it can be done, my revival of the Common Language Runtime concept, project Copeland:

https://github.com/yuechen-li-dev/copeland

Currently, Copeland compiles a dialect of TypeScript to JavaScript, C#, WASM via Blazor WebAssembly, and NativeAOT, runs in csproj, and uses xUnit.NET for testing framework.

(The other reason is that Microsoft still refuses to do the obvious thing in .NET 11 and take the best part of Rust and let enums be `match`ed, despite the fact that both TypeScript and C# have weak enums historically, so I added payload enums to my TypeScript dialect because Microsoft won't.)

➕ show 1 reply