<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: grumpyprole</title><link>https://news.ycombinator.com/user?id=grumpyprole</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 14 Apr 2026 10:22:10 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=grumpyprole" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by grumpyprole in "My MacBook keyboard is broken and it's insanely expensive to fix"]]></title><description><![CDATA[
<p>Yes, the belief that markets self regulate, was proved incorrect by the 2008 financial crisis.</p>
]]></description><pubDate>Mon, 30 Mar 2026 16:16:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47576217</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=47576217</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47576217</guid></item><item><title><![CDATA[New comment by grumpyprole in "Apple Business"]]></title><description><![CDATA[
<p>Not always. There's no Minecraft for Mac, they even prohibited Macs running the iPad version. It's essentially been ported to Apples APIs but purposely withheld from macOS.</p>
]]></description><pubDate>Tue, 24 Mar 2026 18:51:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47507408</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=47507408</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47507408</guid></item><item><title><![CDATA[New comment by grumpyprole in "The MacBook Neo"]]></title><description><![CDATA[
<p>Both :)</p>
]]></description><pubDate>Wed, 11 Mar 2026 22:16:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47342942</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=47342942</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47342942</guid></item><item><title><![CDATA[New comment by grumpyprole in "The MacBook Neo"]]></title><description><![CDATA[
<p>Yes, it will also have 5 mins of battery life when unplugged and have a power adapter the size of a shoe box. I tried a similar machine from Lenovo at work and quickly returned it.</p>
]]></description><pubDate>Wed, 11 Mar 2026 22:02:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=47342739</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=47342739</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47342739</guid></item><item><title><![CDATA[New comment by grumpyprole in "The MacBook Neo"]]></title><description><![CDATA[
<p>That's absolutely insane.</p>
]]></description><pubDate>Wed, 11 Mar 2026 21:58:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47342685</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=47342685</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47342685</guid></item><item><title><![CDATA[New comment by grumpyprole in "I built a programming language using Claude Code"]]></title><description><![CDATA[
<p>Does this really test Claude in a useful way? Is building a highly derivative programming language a useful use case? Claude has probably indexed all existing implementations of imperative dynamic languages and is basically spewing slop based on that vibe. Rather than super flexible, super unsafe languages, we need languages with guardrails, restrictions and expressive types, now more than ever. Maybe LLMs could help with that? I'm not sure, it would certainly need guidance from a human expert at every step.</p>
]]></description><pubDate>Tue, 10 Mar 2026 19:03:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47327499</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=47327499</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47327499</guid></item><item><title><![CDATA[New comment by grumpyprole in "The history of C# and TypeScript with Anders Hejlsberg [video]"]]></title><description><![CDATA[
<p>I certainly don't mean to knock nominal types. But I think structural types are more fundamental. A language would only need a single "newtype" or "nominal" keyword to create nominal types from structural types.</p>
]]></description><pubDate>Sun, 01 Feb 2026 10:37:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=46845138</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=46845138</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46845138</guid></item><item><title><![CDATA[New comment by grumpyprole in "The history of C# and TypeScript with Anders Hejlsberg [video]"]]></title><description><![CDATA[
<p>Most languages have poor support for structural types though. If you try and join two records together (like a SQL join), what will your favourite language infer then?</p>
]]></description><pubDate>Sun, 01 Feb 2026 09:22:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=46844774</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=46844774</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46844774</guid></item><item><title><![CDATA[New comment by grumpyprole in "The history of C# and TypeScript with Anders Hejlsberg [video]"]]></title><description><![CDATA[
<p>What you are describing is structural types. It is indeed a mystery that these are so under used, especially as they are a cornerstone of type theory. Structural types are so useful that they creep into most languages in some way. Even in Java, the Kingdom of the Nouns, where the rulers refused to merge a pair class, functions essentially take tuple arguments and these tuples don't have to be named and defined. You can't return a tuple though, so there is an unfortunate asymmetry. In Haskell and OCaml, we like to describe functions in a structural way, so com.google.android.Predicate would be just "a -> Bool". You wouldn't have to convert your com.google.guava.Predicate. But even these languages lack structural records and variants and suffer for it.</p>
]]></description><pubDate>Sun, 01 Feb 2026 09:20:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=46844766</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=46844766</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46844766</guid></item><item><title><![CDATA[New comment by grumpyprole in "Odin: Moving Towards a New "core:OS""]]></title><description><![CDATA[
<p>It's overblown until it isn't. Hoare didn't pluck that number from thin air. This is now a solved problem in modern programming languages. If Odin doesn't have this and other essential memory safety features, it's certainly not worth the massive retooling effort.</p>
]]></description><pubDate>Thu, 01 Jan 2026 08:07:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=46452202</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=46452202</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46452202</guid></item><item><title><![CDATA[New comment by grumpyprole in "Odin: Moving Towards a New "core:OS""]]></title><description><![CDATA[
<p>Yes it's the burden of proof. That's why writing Rust is harder than C++. Or why Python is easier than anything else. As a user and customer, I'd rather pay more for reliable software though.</p>
]]></description><pubDate>Thu, 01 Jan 2026 08:01:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=46452177</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=46452177</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46452177</guid></item><item><title><![CDATA[New comment by grumpyprole in "What .NET 10 GC changes mean for developers"]]></title><description><![CDATA[
<p>Less of the personal attacks please, you know nothing about me. I actually think it is you that is missing context here. Don Syme personally visited and presented at a variety of investment banks. He was the creator not a marketing type. I was present at one of his pitches and met him. One bank, Credit Suisse ended up adopting it. Any comparisons he made to C# where based around readability and time to market (C# is very verbose and boilerplate heavy compared to both Python and F#). This was all on the 2010-2015 timeframe. Python ended up winning in these markets. My point has always been that this now puts it in a difficult position, it's simply not radical enough to disrupt but still carries the perceived "functional programming" barrier to entry.</p>
]]></description><pubDate>Tue, 07 Oct 2025 07:21:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=45500282</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=45500282</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45500282</guid></item><item><title><![CDATA[New comment by grumpyprole in "What .NET 10 GC changes mean for developers"]]></title><description><![CDATA[
<p>F# was pitched by Microsoft to be used in areas where Python dominates, especially for scripting in the finance domain and "rapid application development". So it doesn't make sense at all that C# and Java are a "better comparison".</p>
]]></description><pubDate>Mon, 06 Oct 2025 17:24:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=45493732</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=45493732</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45493732</guid></item><item><title><![CDATA[New comment by grumpyprole in "What .NET 10 GC changes mean for developers"]]></title><description><![CDATA[
<p>Haskell. But there are other examples of "pure functional programming". And the state of the art is dependently typed languages, which are essentially theorem provers but can be used to extract working code.</p>
]]></description><pubDate>Mon, 06 Oct 2025 05:07:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=45487802</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=45487802</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45487802</guid></item><item><title><![CDATA[New comment by grumpyprole in "What .NET 10 GC changes mean for developers"]]></title><description><![CDATA[
<p>It absolutely does make sense to compare it to the worlds most popular programming language, especially when dismissed as "functional programming". Who benefits from an OCaml comparison? You think F# should be marketed to OCaml users who might want to try dotnet? That's a pretty small market.</p>
]]></description><pubDate>Sun, 05 Oct 2025 21:55:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=45485632</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=45485632</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45485632</guid></item><item><title><![CDATA[New comment by grumpyprole in "What .NET 10 GC changes mean for developers"]]></title><description><![CDATA[
<p>Both OCaml and Clojure are principled and well designed languages, but they are mostly evolutions of Lisp and ML from the 70s. That's not where functional programming is today. Both encourage a functional style, which is good. And maybe that's your definition of a "functional language". But I think that definition will get increasingly less useful over time.</p>
]]></description><pubDate>Sun, 05 Oct 2025 16:04:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=45482609</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=45482609</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45482609</guid></item><item><title><![CDATA[New comment by grumpyprole in "What .NET 10 GC changes mean for developers"]]></title><description><![CDATA[
<p>I'd much rather code F# than Python, it's more principled, at least at the small scale. But F# is in many ways closer to modern mainstream languages than a modern pure functional language. There's nothing scary about it. You can write F# mostly like Python if you want, i.e. pervasive mutation and side effects, if that's your thing.</p>
]]></description><pubDate>Sun, 05 Oct 2025 15:35:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=45482324</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=45482324</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45482324</guid></item><item><title><![CDATA[New comment by grumpyprole in "What .NET 10 GC changes mean for developers"]]></title><description><![CDATA[
<p>It all depends on the lens one chooses to view them. None of them are really "functional programming" in the truly modern sense, even F#. As more and more mainstream languages get pattern matching and algebraic data types (such as Python), feature lambdas and immutable values, then these languages converge. However, you don't really get the promises of functional programming such as guaranteed correct composition and easier reasoning/analysis, for that one needs at least purity and perhaps even totality. That carries the burden of proof, which means things get harder and perhaps too hard for some (e.g. the parent poster).</p>
]]></description><pubDate>Sun, 05 Oct 2025 15:29:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=45482259</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=45482259</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45482259</guid></item><item><title><![CDATA[New comment by grumpyprole in "What .NET 10 GC changes mean for developers"]]></title><description><![CDATA[
<p>F# is hardly modern functional programming. It's more like a better python with types. And that's much more ergonomic than C#.</p>
]]></description><pubDate>Sun, 05 Oct 2025 12:42:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=45481084</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=45481084</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45481084</guid></item><item><title><![CDATA[New comment by grumpyprole in "What .NET 10 GC changes mean for developers"]]></title><description><![CDATA[
<p>Arrays have a static fixed size though, making them far less useful in practice. Anything one builds with generics is boxed. Dotnet doesn't have this problem.</p>
]]></description><pubDate>Sun, 05 Oct 2025 12:27:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=45481010</link><dc:creator>grumpyprole</dc:creator><comments>https://news.ycombinator.com/item?id=45481010</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45481010</guid></item></channel></rss>