<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: jason_oster</title><link>https://news.ycombinator.com/user?id=jason_oster</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 27 Apr 2026 11:50:44 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=jason_oster" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by jason_oster in "All phones sold in the EU to have replaceable batteries from 2027"]]></title><description><![CDATA[
<p>The biggest problem with my phone is that it took too long to find one that isn't comically large (I have an iPhone 13 Mini). The second biggest problem is that the battery is not what it used to be. It lasts 2 days on a full charge instead of 3. The battery will need to be replaced in a few years.<p>I feel like I will be using this phone until it crumbles to dust. Apple shows no interest in making decently sized phones. I would support the EU enacting legislation to enforce at least one phone in each lineup to be no bigger than 60 mm x 125 mm. (iPhone Mini is ok, but it's still bigger than what I prefer.)<p>Smaller and lighter phones are an accessibility concern. Miniaturization has been the goal for computers since they were invented. It is incomprehensible that designers and manufacturers are reversing course. My options right now are basically do nothing or replace my phone with a watch.</p>
]]></description><pubDate>Mon, 20 Apr 2026 20:06:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47839819</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47839819</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47839819</guid></item><item><title><![CDATA[New comment by jason_oster in "r/programming bans all discussion of LLM programming"]]></title><description><![CDATA[
<p>True, but carpenters using hand tools are a niche.<p>If you are implying that programmers who hand code are going the way of carpenters using hand tools, I think I can agree.</p>
]]></description><pubDate>Thu, 02 Apr 2026 23:59:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=47621785</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47621785</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47621785</guid></item><item><title><![CDATA[New comment by jason_oster in "AI has suddenly become more useful to open-source developers"]]></title><description><![CDATA[
<p>I have to point out that having "high personal standards" is its own fatal flaw. The worst quality code I've seen comes from developers with little self awareness or humility. They call themselves artisans and take no responsibility for the minefield of bugs and security vulnerabilities left in their wake. The Internet is held together with bubblegum and baling wire [1] [2] because artisans reject self improvement.<p>These same artisans complain about how bad AI generated code is. The AI is <i>trained on your bad artisan code</i>. It's like they are looking in the mirror for the first time and being disgusted by what they see.<p>[1]: <a href="https://techcrunch.com/2014/03/29/the-internet-is-held-together-with-bubble-gum-and-baling-wire/" rel="nofollow">https://techcrunch.com/2014/03/29/the-internet-is-held-toget...</a><p>[2]: <a href="https://krebsonsecurity.com/2021/11/the-internet-is-held-together-with-spit-baling-wire/" rel="nofollow">https://krebsonsecurity.com/2021/11/the-internet-is-held-tog...</a></p>
]]></description><pubDate>Wed, 01 Apr 2026 18:55:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=47604967</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47604967</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47604967</guid></item><item><title><![CDATA[New comment by jason_oster in "A sufficiently detailed spec is code"]]></title><description><![CDATA[
<p>A sufficiently detailed spec is not code. It's documentation containing a wealth of information that the code cannot. Code describes how a product works, not what it is supposed to do. That is the job of the specification [1] [2]. Notably, the specification omits implementation details. That is the job of the code.<p>Confusing the *how* and the *what* is very common when discussing specifications, in my experience. Programmers gravitate toward pseudocode when they have trouble articulating a functional requirement.<p>> Specifications were never meant to be time-saving devices.<p>Correct. Anyone selling specifications as a way to save time does not understand the purpose of a specification. Unfortunately, neither does the article's author. The article is based on a false premise.<p>LLMs experience the same problems as humans when provided with underspecified requirements. That's a specification problem.<p>[1]: <a href="https://en.wikipedia.org/wiki/Software_requirements_specification" rel="nofollow">https://en.wikipedia.org/wiki/Software_requirements_specific...</a><p>[2]: <a href="https://en.wikipedia.org/wiki/Formal_specification" rel="nofollow">https://en.wikipedia.org/wiki/Formal_specification</a></p>
]]></description><pubDate>Thu, 19 Mar 2026 21:01:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47446022</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47446022</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47446022</guid></item><item><title><![CDATA[New comment by jason_oster in "John Carmack about open source and anti-AI activists"]]></title><description><![CDATA[
<p>Absolutely not. GPL is freedom for the authors. The end users have conditions they must meet to use the software. Those conditions are restrictions. That is precisely the opposite of freedom for end users.<p>To anticipate objections, the conditions keep the software "free for everyone", which is true. But that's still explicitly freedom for the authors. The conditions preemptively eliminate end users who would otherwise find the software valuable. Because it is not freedom for end users.</p>
]]></description><pubDate>Sat, 14 Mar 2026 09:42:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=47374943</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47374943</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47374943</guid></item><item><title><![CDATA[New comment by jason_oster in "Kotlin creator's new language: talk to LLMs in specs, not English"]]></title><description><![CDATA[
<p>This is irrelevant over the long run because the environment changes even if nothing else does. A compiler from the 1980's still produces identical output given the original source code <i>if</i> you can run it. Some form of virtualization might be in order, but the environment is still changing while the deterministic subset shrinks.<p>Having faith that determinism will last forever is foolish. You have to upgrade at some point, and you <i>will</i> run into problems. New bugs, incompatibilities, workflow changes, whatever the case will make the determinism property moot.</p>
]]></description><pubDate>Fri, 13 Mar 2026 19:47:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47368871</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47368871</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47368871</guid></item><item><title><![CDATA[New comment by jason_oster in "Kotlin creator's new language: talk to LLMs in specs, not English"]]></title><description><![CDATA[
<p>I don't know, having done a lot of completely pointless time-wasting staring at hex dumps and assembly language in my youth was a pretty darned good lesson. I say it's a worthwhile hobby to be a compiler.<p>But your point stands. There is a period beyond which doing more than learning the fundamentals just becomes toil.</p>
]]></description><pubDate>Fri, 13 Mar 2026 19:25:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=47368580</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47368580</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47368580</guid></item><item><title><![CDATA[New comment by jason_oster in "Kotlin creator's new language: talk to LLMs in specs, not English"]]></title><description><![CDATA[
<p>This is an excellent observation and puts into words something I have barely scratched the surface of. Along with specifications, formal verification is another domain that received the "just automate it" treatment in the before times.<p>And because formal verification with LLMs is an active area of open research, I have some hope that the old idea of automated formal verification is starting to take shape. There is a lot to talk about here, but I'll leave a link to the 1968 NATO Software Engineering Conference [1] for those who are interested in where these thoughts originated. It goes deeply into the subject of "specification languages" and other related concepts. My understanding is that the historical split between computing science and software engineering has its roots in this 1968 conference.<p>[1]: <a href="http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF" rel="nofollow">http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PD...</a></p>
]]></description><pubDate>Fri, 13 Mar 2026 18:03:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47367582</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47367582</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47367582</guid></item><item><title><![CDATA[New comment by jason_oster in "AI and the Ship of Theseus"]]></title><description><![CDATA[
<p>This confuses the economics of open source. It's easier to contribute changes upstream than maintaining a fork. A smart business decision is using permissively licensed software that is maintained by other teams (low maintenance cost) while contributing patches upstream when the need arises (low feature cost).<p>Bringing a fork in-house and falling behind on maintenance is a very bad idea. The closest I've ever come to that in industry was deploying a patch before the PR was merged.</p>
]]></description><pubDate>Fri, 06 Mar 2026 18:28:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47279005</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47279005</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47279005</guid></item><item><title><![CDATA[New comment by jason_oster in "AI and the Ship of Theseus"]]></title><description><![CDATA[
<p>You certainly made the case that the GPL was the only force, or at least ignored the contribution of alternative licenses.<p>I also wouldn't agree that proprietary software is in decline. There are niches where the OS, mobile apps, and games are almost entirely proprietary (and that is not changing any time soon). But the most damning problem is that all computer hardware now has multiple layers of subsystems with proprietary software components, even if the boot loader and beyond are ostensibly FOSS.<p>My take on the cause of proprietary software is "the bottom line". Companies want to sell products and <i>they believe</i> that it's easier to sell things that are not open source. Meanwhile, there are several counterexamples of commercial products that are also open source (not necessarily copyleft), including computer games. The cause of whatever decline you're seeing in proprietary software dominance is unlikely to be the GPL.</p>
]]></description><pubDate>Fri, 06 Mar 2026 18:07:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47278715</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47278715</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47278715</guid></item><item><title><![CDATA[New comment by jason_oster in "AI and the Ship of Theseus"]]></title><description><![CDATA[
<p>I did not say it was unimportant. I said it was not the only important factor.</p>
]]></description><pubDate>Fri, 06 Mar 2026 17:34:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=47278218</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47278218</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47278218</guid></item><item><title><![CDATA[New comment by jason_oster in "AI and the Ship of Theseus"]]></title><description><![CDATA[
<p>You're putting a lot of responsibility on a license that has several permissive contemporaries. The original BSD license "Net/1" and GPL 1.0 were both published in 1989, while the MIT license has its roots set in "probably 1987" [1] with the release of X11.<p>No doubt, GPL had some influence. But I would hardly single it out as the force that ensured software stayed open. Software stayed open because "information wants to be free" [2], not because some authors wield copyright law like a weapon to be used against corporations.<p>[1]: <a href="https://opensource.com/article/19/4/history-mit-license" rel="nofollow">https://opensource.com/article/19/4/history-mit-license</a><p>[2]: A popular phase based on a fundamental idea that predates software.</p>
]]></description><pubDate>Thu, 05 Mar 2026 23:31:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47268710</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47268710</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47268710</guid></item><item><title><![CDATA[New comment by jason_oster in "Ladybird adopts Rust, with help from AI"]]></title><description><![CDATA[
<p>I agree it's probably monomorphization (speculation without looking at it). Generic function parameters might be the root cause, but number of dependencies is a combinatorial multiplier.<p>I've hit compiler bugs that behave this way. Here's one from an LLVM upgrade [1]. The test case I discovered apparently took over 20 minutes to compile, up from 26 seconds on stable! Their value tracking algorithm was accidentally quadratic.<p>[1]: <a href="https://github.com/rust-lang/rust/issues/137909" rel="nofollow">https://github.com/rust-lang/rust/issues/137909</a></p>
]]></description><pubDate>Tue, 24 Feb 2026 11:46:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=47135926</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47135926</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47135926</guid></item><item><title><![CDATA[New comment by jason_oster in "Ladybird adopts Rust, with help from AI"]]></title><description><![CDATA[
<p>> But it’s still too many dependencies and too slow. The binary is pretty huge too.<p>Ah yes, my never-ending crusade to raise awareness that the cost of free (as in effort) dependencies is bloat.<p>You can make useful tools that are tiny and compile fast [1], but it takes a lot of effort; exactly what developers don't want to spend.<p>[1]: Like <a href="https://github.com/parasyte/hd" rel="nofollow">https://github.com/parasyte/hd</a> -- And I wrote about one of the tricks that it uses: <a href="https://blog.kodewerx.org/2023/04/improving-build-times-for-derive-macros.html" rel="nofollow">https://blog.kodewerx.org/2023/04/improving-build-times-for-...</a></p>
]]></description><pubDate>Tue, 24 Feb 2026 11:26:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47135765</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47135765</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47135765</guid></item><item><title><![CDATA[New comment by jason_oster in "Closing this as we are no longer pursuing Swift adoption"]]></title><description><![CDATA[
<p>Indeed, chapter 18 in The Book stops short of claiming that Rust is object oriented. But it's clearly written to highlight the good parts of object-oriented design that Rust has adopted.</p>
]]></description><pubDate>Fri, 20 Feb 2026 06:17:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47084410</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47084410</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47084410</guid></item><item><title><![CDATA[New comment by jason_oster in "AI makes you boring"]]></title><description><![CDATA[
<p>Back in my day, boring code was celebrated.</p>
]]></description><pubDate>Thu, 19 Feb 2026 21:34:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=47079794</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47079794</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47079794</guid></item><item><title><![CDATA[New comment by jason_oster in "Closing this as we are no longer pursuing Swift adoption"]]></title><description><![CDATA[
<p>Every "OO for UI" approach I've seen breaks most of the rules of object-oriented design.<p>GTK, Qt, DOM, WinUI 3, Swing, Jetpack Compose, and GWT (to name a few) all provide getters and setters or public properties for GUI state, violating the encapsulation principle [1]. The TextBox/EditBox/Entry control is the perfect example.<p>The impedance mismatch is that a GUI control is not an object [2]. And yet, all of the object-orient GUI examples listed implement their controls as objects. The objects are not being used for the strengths of OO, it's just an implementation detail for a procedural API. The reason these GUIs don't provide an API like shown in [1] is because it's an impractical design.<p>"How are you supposed to design an OO TextEdit GUI control if it can't provide a getter/setter for the text that it owns?" Exactly. You're not supposed to. OOP is not the right model for GUIs.<p>Ironically, SwiftUI doesn't have this problem because it uses the Elm Architecture [3] like React and iced.<p>[1]: <a href="https://www.infoworld.com/article/2163972/building-user-interfaces-for-object-oriented-systems-part-1.html" rel="nofollow">https://www.infoworld.com/article/2163972/building-user-inte...</a><p>[2]: From [1], "All the rules in the rule-of-thumb list above essentially say the same thing — that the inner state of an object must be hidden. In fact, the last rule in the list (“All objects must provide their own UI”) really just follows from the others. If access to the inner state of an object is impossible, then the UI, which by necessity must access the state information, must be created by the object whose state is being displayed."<p>[3]: <a href="https://guide.elm-lang.org/architecture/" rel="nofollow">https://guide.elm-lang.org/architecture/</a></p>
]]></description><pubDate>Thu, 19 Feb 2026 12:25:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47073051</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47073051</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47073051</guid></item><item><title><![CDATA[New comment by jason_oster in "I want to wash my car. The car wash is 50 meters away. Should I walk or drive?"]]></title><description><![CDATA[
<p>I think we're also miscommunicating, so this isn't really a surprise.<p>It is not clear to me why you've quoted "intelligence" or why you separated understanding and answers as having independent intelligences.<p>But yes, I agree there are limitations. Much like those above that are being researched.</p>
]]></description><pubDate>Wed, 18 Feb 2026 22:10:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=47067129</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47067129</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47067129</guid></item><item><title><![CDATA[New comment by jason_oster in "I want to wash my car. The car wash is 50 meters away. Should I walk or drive?"]]></title><description><![CDATA[
<p>I agree it is a fundamental failure of the current state of models. I believe it is solvable. The nuance is just that "solving" the problem might not look like what we think of as a solution. Hence the asymptote.</p>
]]></description><pubDate>Wed, 18 Feb 2026 22:04:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47067080</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47067080</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47067080</guid></item><item><title><![CDATA[New comment by jason_oster in "I want to wash my car. The car wash is 50 meters away. Should I walk or drive?"]]></title><description><![CDATA[
<p>> This is <i>literally</i> the Gell-Mann Amnesia Effect in action.<p>Absolutely! But there is some nuance, here. The failure mode is for an ambiguous question, which is an open research topic. There is no objectively correct answer to "Should I walk or drive?" given the provided constraints.<p>Because handling ambiguities is a problem that researchers are actively working on, I have confidence that models will improve on these situations. The improvements may asymptotically approach zero, leading to ever increasingly absurd examples of the failure mode. But that's ok, too. It means the models will increase in accuracy without becoming perfect. (I think I agree with Stephen Wolfram's take on computationally irreducibility [1]. That handling ambiguity is a computationally irreducible problem.)<p>EWD was right, of course, and you are too for pointing out rigorous languages. But the interactivity with an LLM is different. A programming language cannot ask clarifying questions. It can only produce broken code or throw a compiler error. We prefer the compiler errors because broken code does not work, by definition. (Ignoring the "feature not a bug" gag.)<p>Most of the current models are fine-tuned to "produce broken code" rather than "compiler error" in these situations. They have the capability of asking clarifying questions, they just tend not to, because the RL schedule doesn't reward it.<p>[1]: <a href="https://writings.stephenwolfram.com/2017/05/a-new-kind-of-science-a-15-year-view/" rel="nofollow">https://writings.stephenwolfram.com/2017/05/a-new-kind-of-sc...</a></p>
]]></description><pubDate>Tue, 17 Feb 2026 03:02:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=47043200</link><dc:creator>jason_oster</dc:creator><comments>https://news.ycombinator.com/item?id=47043200</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47043200</guid></item></channel></rss>