HNHacker News
TopNewBestAskShowJobs

DonaldPShimoda

2,791 karma · joined January 27, 2017

submissionscomments
DonaldPShimoda··on A perfectable programming language
> Citing him to wave away the whole concept is pretty wild misuse of the citation.

Good thing I didn't do that?

> Syntactic properties create semantic affordances.

I don't disagree with this. Benjamin Pierce defines type-checking in the opening pages of Types and Programming Languages as an operation over syntax, for example.

My point was that the parent comment just kind of threw out "homiconicity" when somebody talked about writing properties about a language in that language, and those are entirely separate things. I was addressing a conflation of terms. The property that people generally refer to as "homoiconicity" is useful for things like writing macros, but it does not directly grant you access to any kind of property-checking capabilitiy. I mean, Rust's macro system is far from homoiconic (it's just an AST), but it gives you semantic capabilities. You know?

DonaldPShimoda··on The future of everything is lies, I guess: Work
It's in the trailer.
DonaldPShimoda··on Lean proved this program correct; then I found a bug
> finite programs that run on an infinite stream of events

This requires coinduction, right? (That's my understanding of the formal representation of infinite streams.) If so, that does limit your options, since most of the proof assistants don't handle coinductive data, as I understand it.

DonaldPShimoda··on The future of everything is lies, I guess: Work
> people seem to put “CEOs” on a pedestal any time things come up, like they’re an alien life form

Might I suggest a viewing of the 2025 film "Bugonia"?

DonaldPShimoda··on Lean proved this program correct; then I found a bug
> Alan Turing already proved with the Halting Problem that reasoning about program correctness is not possible.

This is so reductive a framing as to be essentially useless [0]. I think maybe you want to learn more about program correctness, formal verification, and programming language semantics before you make such statements in the future.

[0] See, e.g., type-checking.

DonaldPShimoda··on A perfectable programming language
Hm. Homoiconicity is not a well-defined term (see, for example, Shriram Krishnamurthi's thoughts [0][1]), but even skimming over that fact, it is a syntactic property, while the quoted line is about semantics. Switching your language to Lisp (or one of its descendents) doesn't gain you anything semantically.

[0] Shriram is an original member of the Racket project, so he's been working in the Lisp-like domain for at least 30 years and, specifically, he works in an offshoot of Lisp that is particularly concerned with questions of syntax. I think this establishes him as a reasonable citation for this topic.

[1] https://parentheticallyspeaking.org/articles/bicameral-not-h...

DonaldPShimoda··on What is a property?
My point was not that there exists some supreme truth about what words mean and that either you use words "correctly" or you're an idiot.

Yes, words have different meanings in different settings, but that's not the dilution I was referring to. It's absolutely fine that a word can be used differently in different places.

The "problem", such as it is, is that there are people who use terms from programming languages research to discuss programming languages and they use these terms inaccurately for their context, leading to a dilution in common understanding. For example, there is a definitive difference between a "function" and a "method", and so it is inaccurate to refer to functions generally as "methods". However, I see people gripe about interactions where these things are treated separately, and that is what I am addressing.

The parent comment to mine tried to offer some examples of such terms within the context of programming languages, so my corrections were constrained to that context. But your correction of my point is, I think, incorrect, because the meaning you are trying to use against me is one from a different context than the one we're all talking about.

There's no intellectual high ground here; my point was not to elevate myself above the parent comment. My point was to explain to them that they were, from the point of view of people like the author of the post (I assume), simply incorrect. There's nothing wrong with being wrong from time to time.

DonaldPShimoda··on What is a property?
> It's not a "property" it's an attribute/field/member/key/column/variable/getter/function/procedure.

For what it's worth, to a researcher in the field of programming languages (like the author of the post), these all have distinct unambiguous meanings. At least as far as PL goes, almost every term has a well-defined meaning, but as those terms were adopted into less-than-academic contexts, the meanings have diluted.

"Property" is such a term in the context of programming languages research, and, in particular, it is a very specifically defined term in the realm of property-based testing (no surprise).

> Even the constants are variables from the viewpoint of the CPU that has to load it in its registers.

No; this is not what "variable" means. Registers are properties of the processor, i.e., they are implementation details; variables are an abstract concept from the domain of the formal language specification.

> Sometime along the way we decided that "syntax sugar" means "it means the same thing as" but except for (<cast OtherType>obj).foo(), which means that the semantics of "syntax sugar" don't mean it's simpler than the phrase it was supposed to replace.

No; this is not what "syntax sugar" means. If a language defines some syntax f and it "expands to" some other syntax g, then f is syntax sugar for g. This is well defined in Felleisen's "On the Expressive Power of Programming Languages" [0]. For example, Python's addition operator `+` is implemented in terms of a method `__add__`; therefore, `a + b` is syntax sugar for `a.__add__(b)`, because the former syntax is built on top of the latter.

Notably, syntax sugar has nothing to do with casts; casts are semantic, not syntactic. There are also no promises about whether syntax sugar makes something "easier"; it's simply the ability to syntactically express something in multiple ways.

[0] direct PDF: https://www2.ccs.neu.edu/racket/pubs/scp91-felleisen.pdf

DonaldPShimoda··on Intuiting Pratt Parsing
> Its written in a very cool and badass style.

Out of curiosity, what do you mean by this? Do you mean you like the prose, or the typesetting, or...?

DonaldPShimoda··on An unsolicited guide to being a researcher [pdf]
Seemed pretty clear to me, for what it's worth, but perhaps it is less obvious to those not steeped in similar traditions of academia.

Thanks for this, by the way! It's a lovely resource!

DonaldPShimoda··on An unsolicited guide to being a researcher [pdf]
I haven't seen the associated talk, but (a) I would imagine the author chuckled while reading this, because it's sort of a joke among scholars, and (b) the point is likely focused much more on the context of presenting research (e.g., at conferences) rather than a blanket ironclad rule for all presentations you ever make ever.

While I think there's some validity to your point that the author's presentation suffers excess verbosity, I'm not too worried about it because the linked slides seem more meant to act as a reference document than an example of a good presentation, and the level of text is just fine for that purpose.

DonaldPShimoda··on DoorDash Tasks
Notably not the people who actually make the company money, though.
DonaldPShimoda··on Project Nomad – Knowledge That Never Goes Offline
Two different uses of "offline", I think. From my own understanding:

To "go offline" means for something to become inaccessible that was once accessible "online". ("Offline" is an adverb.)

Meanwhile, an "offline" thing is one which is usable even without ever being "online". ("Offline" is an adjective.)

So it becomes:

> "Knowledge That Never [Becomes Inaccessible]"

> "Node for [Accessible-Without-Connection] Media, Archives, and Data"

But definitely confusing to put them right next to each other like that. You'd think a copyeditor would flag it or something.

DonaldPShimoda··on Meta and TikTok let harmful content rise to drove engagement, say whistleblowers
> >"What do we do about it?"

> nothing. if it isn't illegal, it isn't illegal.

Are you suggesting that because something isn't illegal, it shouldn't be illegal?

Are you perhaps a representative of the Triangle Shirtwaist Factory?

DonaldPShimoda··on What does " 2>&1 " mean?
> Claude’s answer

This response is essentially just the second answer to the linked question (the response by dbr) with a bunch of the important words taken out.

And all it cost you to get it was more water and electricity than simply clicking the link and scrolling down — to say nothing of the other costs.

DonaldPShimoda··on Show HN: LocalGPT – A local-first AI assistant in Rust with persistent memory
> if they are correct I see no issue at all.

Indeed. Are you verifying that they are correct, or are you glancing at the output and seeing something that seems plausible enough and then not really scrutinizing? Because the latter is how LLMs often propagate errors: through humans choosing to trust the fancy predictive text engine, abdicating their own responsibility in the process.

As a consumer of an API, I would much rather have static types and nothing else than incorrect LLM-generated prosaic documentation.

DonaldPShimoda··on My fast zero-allocation webserver using OxCaml
I think by default Rust uses affine types, but that's about the extent of it.
DonaldPShimoda··on Prism
I'm aware of the provenance; I was specifically addressing the parent comment's assertion that it is not "a common word". It's a well-known word in the realm of computing, though perhaps less these days as the upcoming generation seems less inclined to learn archaic pop culture.
DonaldPShimoda··on A simulation where life unfolds in real time
Thanks for this. I love seeing how people put together "realistic" systems like this, so this is super cool. Cheers!
DonaldPShimoda··on Prism
> Grok (which unlike prism wasn't a common word)

"Grok" was a term used in my undergrad CS courses in the early 2010s. It's been a pretty common word in computing for a while now, though the current generation of young programmers and computer scientists seem not to know it as readily, so it may be falling out of fashion in those spaces.

DonaldPShimoda··on Beginning January 2026, all ACM publications will be made open access
...really? (Incredulous, not doubtful.)

For my area, everybody uses LaTeX styles that more or less produce PDFs identical to the final versions published in proceedings. Or, at least, it's always looked close enough to me that I haven't noticed any significant differences, other than some additional information in the margins.

DonaldPShimoda··on Beginning January 2026, all ACM publications will be made open access
At least in my experience, grad students don't pay submission fees. It usually comes out of an institutional finances account, typically assigned to the student's advisor (who is generally the corresponding author on the submission). (Not that the waiver isn't a good idea — I just don't think the grad students are the ones who would feel relieved by that arrangement.)

Also, I'm pretty sure my SIG requires LaTeX submissions anyway... I feel like I remember reading that at some point when I submitted once, but I'm not confident in that recollection.

DonaldPShimoda··on Beginning January 2026, all ACM publications will be made open access
Yeah, that's my assumption, too. I hate it.
DonaldPShimoda··on Beginning January 2026, all ACM publications will be made open access
A lot of discussion about the benefits/drawbacks of open access publishing, but I don't see anybody talking about the other thing that's coming along with this commitment to open access: the ACM is introducing a "premium" membership tier behind which various features of the Digital Library will be paywalled. From their info page [0], "premium" features include:

  * Access to the ACM Guide to Computing Machinery
  * AI-generated article summaries
  * Podcast-style summaries of conference sessions
  * Advanced search
  * Rich article metadata, including download metrics, index terms and citations received
  * Bulk citation exports and PDF downloads
The AI-generated article summaries has been getting a lot of discussion in my social circles. They have apparently fed many (all?) papers into some LLM to generate summaries... which is absurd when you consider that practically every article has an abstract as part of its text and submission. These abstract were written by the authors and have been reviewed more than almost any other part of the articles, so they are very unlikely to contain errors. In contrast, multiple of my colleagues have found errors of varying scales in the AI-generated summaries of their own papers — many of which are actually longer than the existing abstracts.

In addition, there are apparently AI-generated summaries for articles that were licensed with a non-derivative-works clause, which means the ACM has breached not just the social expectations of using accurate information, but also the legal expectations placed upon them as publishers of these materials.

I think it's interesting that the ACM is positioning these "premium" features as a necessity due to the move to open-access publishing [1], especially when multiple other top-level comments on this post are discussing how open-access can often be more profitable than closed-access publishing.

[0] https://dl.acm.org/premium

[1] The Digital Library homepage (https://dl.acm.org/) features a banner right now that says: "ACM is now Open Access. As part of the Digital Library's transition to Open Access, new features for researchers are available as the Digital Library Premium Edition."

DonaldPShimoda··on Over fifty new hallucinations in ICLR 2026 submissions
Makes me grateful I'm in an area of CS where the "big" conferences are like 500 attendees.
DonaldPShimoda··on Aldous Huxley predicts Adderall and champions alternative therapies
I believe parent commenter was referring to recreational use, i.e., use by people without such diagnoses who want a "performance boost". I heard about that sort of thing being popular when I was in college — people would take Adderall to cram for an exam or to study late into the night.

You're right that, for people with ADHD and related disorders, stimulant medication sort of just adjusts their baselines so they can pay attention like a "normal" person.

DonaldPShimoda··on “One Student One Chip” Course Homepage
Totally agree, I don't think em dashes are a particularly useful AI tell unless they're used in a weird way. Left to my own devices (as a native English speaker who likes em dashes and parentheticals), I often end up with at least one em dash every other paragraph, if not more frequently.

On another note, it may be useful to you to know that in most English dialects, referring to a person solely by their nationality (e.g., when you wrote "as a Chinese") is considered rude or uncouth, and it may mark your speech/writing as non-native. It is generally preferable to use nationalities as adjective rather than nouns (e.g., "as a Chinese person"). The two main exceptions are when employing metonymy, such as when referring to a nation's government colloquially (e.g., "the Chinese will attend the upcoming UN summit") or when using the nationality to indicate broad trends among the population of the nation (e.g., "the Chinese sure know how to cook!"). I hope this is considered a helpful interjection rather than an unwelcome one, but if not, I apologize!

DonaldPShimoda··on IDEmacs: A Visual Studio Code clone for Emacs
> the lisp machine

I wonder whether this was intentional or a coincidence, but for others (and maybe you) the "Lisp Machine" was a real hardware architecture unrelated to emacs: https://en.wikipedia.org/wiki/Lisp_machine

DonaldPShimoda··on Llmdeathcount.com
"Oh no, people are finding links between an unregulated technology and potential real-world harms, how awful."
DonaldPShimoda··on GPT-5.1: A smarter, more conversational ChatGPT
That's a funny irony: I didn't use an ad hominem in any way, but your incorrect assertion of it makes me come to the same conclusion about you.
← PreviousPage 2 of 25Next →