Top all-time · #10925
Tim Deschryver
Personal blog · timdeschryver.dev/blogprogrammingweb
Tim Deschryver's personal blog at timdeschryver.dev covers programming and web. Since 2020, 7 different Hacker News readers have linked it 14 times. It is still writing: the last post was on 2026-10-22, and you can follow it by feed.
Too few sampled comments (3) to say how often HN recommends it.?
Why HN links it
HN readers link Tim Deschryver's posts on TypeScript typing and .NET data access, such as his post on EF Core's new SqlQuery method, when discussing ORMs and branded types.
Summarised by Claude from a sample of 3 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Practical insights on .NET, Angular, testing, and developer tooling from Tim Deschryver, a Belgium-based software engineer and Microsoft MVP.
What Hacker News says?
It's going to end up looking a lot like C# [0][1]; these two/three (JS/TS, C#) languages have been converging for a while now. Now just waiting for C# to get official first party discriminated unions! [0] https://learn.microsoft.com/en-us/dotnet/csharp/language-ref... [1] https://timdeschryver.dev/blog/pattern-matching-examples-in-...
Comment linking /blog/pattern-matching-examples-in-csharp
on “JavaScript Temporal is coming”Submitted Maybe it's time to rethink our project structure with .NET 6 as a story · 2 points
HN discussionThey do though, frameworks are just an amalgamations of patterns and practices codified. If you go Vanilla JS you are going to build abstractions on top of it to make your patterns and practices reusable and structured. Given enough time you are going to build a framework that enforces your patterns and practices. So why not just adopt proven ones out of the gate. But verify that they are indeed proven ones before j…
Comment linking /blog/my-love-letter-to-xstate-and-statecharts
on “How to manage HTML DOM with vanilla JavaScript only?”Submitted Entity Framework features I wish I knew earlier as a story · 1 points
HN discussionIf you're curious, a small repo that highlights some of the functional features in C# and compares it to JavaScript and TypeScript: https://devblogs.microsoft.com/dotnet/announcing-entity-fram... One of the best functional features in C# is probably pattern matching: https://timdeschryver.dev/blog/pattern-matching-examples-in-...
Comment linking /blog/pattern-matching-examples-in-csharp
on “.NET Myths Dispelled”Submitted How I've set up my new Windows development environment in 2022 as a story · 1 points
HN discussionLots of real orgs use C#. StackOverflow survey (self reported) for 2024 shows it at #5 leaving out HTML/CSS, and SQL[0] DevJobsScanner shows it at #4 via scraping job postings[1] It definitely has heavy adoption; well above Rust and Go despite what we see here on HN. > Does it have any actual advantages over Java? The language evolves faster and is more akin to Kotlin than to Java, IMO. The DX is fantastic and there…
Comment linking /blog/pattern-matching-examples-in-csharp
on “Good-bye core types; Hello Go as we know and love it”> Usually you combine this with pattern matching and other functional features and the whole thing makes it convenient in the end. That part is missing in C# You mean like this? string foo = result.MatchFirst( value => value, firstError => firstError.Description); Or this? ErrorOr<string> foo = result .Then(val => val * 2) .Then(val => $"The result is {val}"); Or this? ErrorOr<string> foo = await result .ThenDoAsync…
Comment linking /blog/pattern-matching-examples-in-csharp
on “What .NET 10 GC changes mean for developers”I think people who last looked at C# 10 years ago or haven't adapted to new language features seriously don't know how good C# is these days. Switch expressions with pattern matching are absolutely killer[0] for its terseness. Also, it is possible to use OneOf[1] and Dunet[2] to get access to DU [0] https://timdeschryver.dev/blog/pattern-matching-examples-in-... [1] https://github.com/mcintyre321/OneOf [2] https://g…
Comment linking /blog/pattern-matching-examples-in-csharp
on “What .NET 10 GC changes mean for developers”Strings might not be the best way of demonstrating nominal typing, since that's already something TypeScript can manage: https://www.typescriptlang.org/play/?#code/C4TwDgpgBAEghgZwB... Also, since all examples of branded / nominal types in TypeScript use `as` (I assume to get around the fact that the object you're returning isn't actually of the shape you're saying it is...), you should read up on the pitfalls of it…
Comment linking /blog/stop-misusing-typescript-type-assertions
on “Branded types for TypeScript”Yes; very underrated in this regard with respect to how terse the language is now. Especially switch expressions and pattern matching. C# pattern matching is incredibly rich[0], terse, while being eminently readable. [0] https://timdeschryver.dev/blog/pattern-matching-examples-in-...
Comment linking /blog/pattern-matching-examples-in-csharp
on “Why F# could be the next mainstream programming language (2024)”455: Primitive Types in Patterns, instanceof, and switch (Preview) https://learn.microsoft.com/en-us/dotnet/csharp/language-ref... https://timdeschryver.dev/blog/pattern-matching-examples-in-... 469: Vector API (Eighth Incubator) https://devblogs.microsoft.com/dotnet/dotnet-8-hardware-intr... 473: Stream Gatherers (Second Preview) I didn't read it closely enough to determine if this is more like LINQ over C#'s IEnum…
Comment linking /blog/pattern-matching-examples-in-csharp
on “Java 23”The updated SqlQuery function of .NET 8 is pretty cool. It takes a string but safely interpolates the parameters. https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-cor... https://timdeschryver.dev/blog/you-can-now-return-unmapped-t... "With the new SqlQuery method, you can now write your own SQL queries and map the result to any type that you want. This is useful for tasks that are not directly related to the…
Comment linking /blog/you-can-now-return-unmapped-types-from-raw-sql-select-statements-with-entity-framework-8
on “Is ORM still an anti-pattern?”You can write very functional C#. Our codebase is a mix with some aspects being functional (`ErrorOr`[0] being a big part of it as well as `OneOf`[1]) and OOP. Our core, common services all return `ErrorOr` to allow fluent call chaining at the top of the stack (controllers). Modern C# features like `switch` expressions[2] (not `switch-case`) and pattern matching mean that it is possible to write very terse, expressi…
Comment linking /blog/pattern-matching-examples-in-csharp
on “The history of C# and TypeScript with Anders Hejlsberg | GitHub”