<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: rrook</title><link>https://news.ycombinator.com/user?id=rrook</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 19 Oct 2026 04:13:52 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=rrook" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by rrook in "Parser Combinators"]]></title><description><![CDATA[
<p>I'm working on landing a similar feature in a language project, but in a general way, geared torward high level application flows. The general idea is that you can declare a "seam" between a function that returns a type set, and some other actor that exposes a method set that covers said typeset. The compiler can deal with the inbetween code, so the mainline of the app is just a set of typespace expansions/compressions. A callstack within a single thread domain can be expressed like:<p>bytes → (NewOrder | Cancel) → handlers → (Ack | Reject) →<p><a href="https://github.com/hale-lang/hale/issues/1530#issuecomment-6146538708" rel="nofollow">https://github.com/hale-lang/hale/issues/1530#issuecomment-6...</a></p>
]]></description><pubDate>Sun, 18 Oct 2026 12:06:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=50140353</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=50140353</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50140353</guid></item><item><title><![CDATA[New comment by rrook in "Why Common Lisp is now the best programming language"]]></title><description><![CDATA[
<p>The degree to which my statement is true depends on the degree to which a programmer's abstract model incorporates _machine realities_. If your model takes into account the process model, and what is required for those process models to communicate, you are already modeling with mechanical sympathy. Programming languages (von nuemann languages) are all opinionated expositions of the same machinery, so the cost of translating the model to the language is a real cost.<p>My anecdata is the opposite of yours; the people that feel like the _actually coding_ is the bottleneck tend to be the people that have the _most_ editor fluency, as they are(were?) motivated to remove the bottleneck.</p>
]]></description><pubDate>Tue, 06 Oct 2026 17:45:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=49981745</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49981745</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49981745</guid></item><item><title><![CDATA[New comment by rrook in "Why Common Lisp is now the best programming language"]]></title><description><![CDATA[
<p>> Thinking in terms of generic computing concepts is equally as easy.<p>This is the trapdoor in this discussion. The degree to which a concept has been thought of in terms of generic computing (or just generically; modeled abstractly), before code is written, is different for every programmer. Not only is the degree different, but the deliberation and levels of awareness vary as well.<p>If your mental process explicitly models in the abstract, translating and typing out to code can absolutely feel like a bottleneck, and the specific language involved matters.</p>
]]></description><pubDate>Tue, 06 Oct 2026 13:33:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=49978223</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49978223</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49978223</guid></item><item><title><![CDATA[New comment by rrook in "Every SaaS business will become a harness around a model"]]></title><description><![CDATA[
<p>it's all software, not just sass. the "application harness" is emerging, which bundles up the application, the operations of the application, and the sdlc of the application all into one deployable thing. agents/people just plug into it, and it looks _mostly_ like an org chart / task board.</p>
]]></description><pubDate>Sat, 03 Oct 2026 16:02:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=49945406</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49945406</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49945406</guid></item><item><title><![CDATA[New comment by rrook in "What TLA+ can and can't check"]]></title><description><![CDATA[
<p>i think part of this is a shortcoming of our programming languages. generally, languages allow for the expression of partial graphs, which makes the verification problem technically challenging. my take is that a language that only exposes closed-graph semantics could help bridge the gap between the model and the implementation, even if not absolute.</p>
]]></description><pubDate>Wed, 30 Sep 2026 17:21:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=49911792</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49911792</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49911792</guid></item><item><title><![CDATA[New comment by rrook in "Evolving programming languages in the AI era"]]></title><description><![CDATA[
<p>I think that's just extra detail on the _degree_ of human responsibility depending on the environment. Even in what you suggest, if something goes wrong, who's responsible? AI are not persons in our society; the IT-architecture/cyber security expert is ultimately responsible for the code, regardless of how it's written.</p>
]]></description><pubDate>Sun, 27 Sep 2026 11:32:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=49865740</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49865740</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49865740</guid></item><item><title><![CDATA[New comment by rrook in "Evolving programming languages in the AI era"]]></title><description><![CDATA[
<p>Personal responsibility will always exist at the touchpoints of software and human activity. Concentration and scope of responsibility may vary, and the degree to which that person needs to understand the code will vary as a result, but the need for a human to be able to read and understand code is going to be around for a very long while still.</p>
]]></description><pubDate>Sun, 27 Sep 2026 02:55:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=49862915</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49862915</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49862915</guid></item><item><title><![CDATA[New comment by rrook in "The LLMentalist Effect (2023)"]]></title><description><![CDATA[
<p>Totally agree with the first part of that. The second less so. LLMs are able to maintain a cohesive idea across multiple metaphors, which is basically the same as walking abstractions.</p>
]]></description><pubDate>Mon, 21 Sep 2026 14:50:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=49788022</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49788022</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49788022</guid></item><item><title><![CDATA[New comment by rrook in "The LLMentalist Effect (2023)"]]></title><description><![CDATA[
<p>> The tech industry has accidentally invented the initial stages a completely new kind of mind, based on completely unknown principles, using completely unknown processes that have no parallel in the biological world.<p>This is just false? Language emerged from biology, we've brute forced some version of that model. Knowing that this is a new kind of mind requires that we are able to differentiate these different kinds of minds in the first place.</p>
]]></description><pubDate>Mon, 21 Sep 2026 13:17:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=49786918</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49786918</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49786918</guid></item><item><title><![CDATA[New comment by rrook in "MCP was always a bad idea?"]]></title><description><![CDATA[
<p>MCP is an incomplete abstraction. It solves things in the right direction, allowing agents to interact with some given system via a controlled ingress. It's a fancy proxy, and by itself doesn't really do much to enable autonomous interactions.</p>
]]></description><pubDate>Mon, 21 Sep 2026 11:48:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=49786055</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49786055</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49786055</guid></item><item><title><![CDATA[New comment by rrook in "Towards Self-Driving Codebases"]]></title><description><![CDATA[
<p>Expressing complex emergent workflows is fairly straightforward given how the workflow engine recurses:<p>- a workflow is a series of steps<p>- a step is one or more tasks that can be done in parallel<p>- a step is complete when all of its tasks are complete<p>- a task can be a unit of work, or a pointer to another workflow</p>
]]></description><pubDate>Sun, 20 Sep 2026 13:56:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=49775934</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49775934</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49775934</guid></item><item><title><![CDATA[New comment by rrook in "Bend 2 and the Vibe-Coding Trap"]]></title><description><![CDATA[
<p>Narrowly, I think you're spot on. The effort required to understand the machinery around formal verification is a function of the surface area of the thing being formally verified. Specifically, formally verifying the surface area of general purpose programming languages is difficult.<p>My approach with Hale (shameless self plug) is that the programming language itself first offers another strata of structure to program within, a type of graph. Once the structure of the program is expressed as a graph, understanding how formal verification works is a clean encapsulation of graph activities.</p>
]]></description><pubDate>Fri, 18 Sep 2026 12:50:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=49753680</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49753680</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49753680</guid></item><item><title><![CDATA[New comment by rrook in "Towards Self-Driving Codebases"]]></title><description><![CDATA[
<p>I think that dissolves the "self driving" distinction, though? The mechanisms for driving the codebase must be present in the codebase itself. Otherwise its just a regular out-of-band development process.</p>
]]></description><pubDate>Thu, 17 Sep 2026 19:00:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=49745048</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49745048</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49745048</guid></item><item><title><![CDATA[New comment by rrook in "Towards Self-Driving Codebases"]]></title><description><![CDATA[
<p>My bet is that we'll see a second layer of harness emerge, as self-driving codebases become the target. There will be an application facing harness, orthogonal to the agent facing harness. The app harness will represent the software factory that is emergent for the specific application being developed.<p>Anyway, here's mine, still wip:<p><a href="https://hale-lang.org/docs/dna/" rel="nofollow">https://hale-lang.org/docs/dna/</a><p><a href="https://github.com/hale-lang/hale/issues/690" rel="nofollow">https://github.com/hale-lang/hale/issues/690</a></p>
]]></description><pubDate>Thu, 17 Sep 2026 17:52:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=49744239</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49744239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49744239</guid></item><item><title><![CDATA[New comment by rrook in "OpenSpec – A lightweight and configurable AI spec framework"]]></title><description><![CDATA[
<p>I agree with you, and am all in on a solution. It has to be part of the language itself: <a href="https://hale-lang.org/docs/claims/" rel="nofollow">https://hale-lang.org/docs/claims/</a></p>
]]></description><pubDate>Thu, 17 Sep 2026 14:36:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=49741452</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49741452</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49741452</guid></item><item><title><![CDATA[New comment by rrook in "What the Hale?"]]></title><description><![CDATA[
<p>Thanks for that feedback, I'll try to add some more well known examples. In the meantime, maybe the docs have more of the examples you're looking for? <a href="https://hale-lang.org/docs/tutorial/job-queue/" rel="nofollow">https://hale-lang.org/docs/tutorial/job-queue/</a></p>
]]></description><pubDate>Wed, 02 Sep 2026 16:58:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=49539158</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49539158</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49539158</guid></item><item><title><![CDATA[What the Hale?]]></title><description><![CDATA[
<p>Article URL: <a href="https://hale-lang.org/articles/what-the-hale/">https://hale-lang.org/articles/what-the-hale/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49536462">https://news.ycombinator.com/item?id=49536462</a></p>
<p>Points: 2</p>
<p># Comments: 2</p>
]]></description><pubDate>Wed, 02 Sep 2026 14:05:57 +0000</pubDate><link>https://hale-lang.org/articles/what-the-hale/</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49536462</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49536462</guid></item><item><title><![CDATA[New comment by rrook in "DDD matters more when AI writes your code"]]></title><description><![CDATA[
<p>Absolutely - it's like, the "current agreed upon version", but indeed it's a point-in-time snapshot/simplification of whatever the thing being modeled actually is.</p>
]]></description><pubDate>Sat, 22 Aug 2026 12:12:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=49398950</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49398950</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49398950</guid></item><item><title><![CDATA[New comment by rrook in "Suspecting court of using AI, man injected prompts in filings to try to win case"]]></title><description><![CDATA[
<p>I did RTFA, maybe YOU need to read my question again. I specifically asked about the outcome if the plaintiff didn't do all that petty stuff.</p>
]]></description><pubDate>Sat, 22 Aug 2026 12:00:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=49398863</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49398863</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49398863</guid></item><item><title><![CDATA[New comment by rrook in "There's no reason for software to be slow anymore"]]></title><description><![CDATA[
<p>This seems like way too caustic of a reaction, OP is correct.<p>If you actually know what you're doing in $language, and you know how $language wants to emit the assembly or whatever, there's no huge advantage to just programming directly in assembly.</p>
]]></description><pubDate>Sat, 22 Aug 2026 11:47:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=49398783</link><dc:creator>rrook</dc:creator><comments>https://news.ycombinator.com/item?id=49398783</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49398783</guid></item></channel></rss>