Arcane Sentiment
arcanesentiment.blogspot.com · Personal blog · on HN since 2008
Arcane Sentiment is a blog on programming language design and history, covering Lisp, Scheme, Forth, type terminology and optimization.
What HN saysHN commenters link it for programming language history, such as the origin of 'dynamic programming' and the value of extensible format strings, and for its Forth and Lisp posts.
23HN people shared it
7linked it in comments
39stories submitted
655story points
4 years agolast shared
2008people per year2026
Most-shared posts
- 1If Scheme's numbers were like Scheme2 people · 114 points · first shared 2015 · 42 comments on HN
- 2Why the name "dynamic programming"?2 people · 51 points · first shared 2010 · 25 comments on HN
- 3Pointer arithmetic can be safe2 people · 2 points · first shared 2012 · discussion on HN
- 4Clojure is almost as big as Common Lisp1 people · 79 points · first shared 2011 · 8 comments on HN
- 5Antedating “datatype” all the way to Plankalkül (2017)1 people · 74 points · first shared 2019 · 2 comments on HN
- 6A brief history of “type” (2015)1 people · 66 points · first shared 2017 · 8 comments on HN
- 7An onion of obfuscation1 people · 55 points · first shared 2010 · 8 comments on HN
- 8Incorrect optimization in 19631 people · 52 points · first shared 2015 · 16 comments on HN
- 9Arc gets I/O right1 people · 31 points · first shared 2008 · 5 comments on HN
- 10What's so cool about APL1 people · 29 points · first shared 2010 · 17 comments on HN
- 11Language support for functions that return multiple values1 people · 26 points · first shared 2016 · 4 comments on HN
- 12Identity of numbers in Common Lisp and Maclisp1 people · 20 points · first shared 2009 · discussion on HN
- 13That's not what lexical scope is for1 people · 11 points · first shared 2010 · 1 comments on HN
- 14How-much-space-do-those-hyphens-take?1 people · 7 points · first shared 2008 · 8 comments on HN
- 15Customary semantics (of programming languages) (2014)1 people · 5 points · first shared 2015 · discussion on HN
What HN people wrote when they linked it
gdwatson · 2015-12-21
I think the biggest problem with undefined behavior in C is that it is taken to justify violation of C's customary semantics[1] on platforms where it isn't necessary.
Many types of undefined behavior in the C standard are essentially dispensations for Lisp machines or one's complement CPUs. It's very surprising to see them invoked by the optimizer on more conventional platforms. It might not satisfy djb, but a standard for these behaviors alone would be great progress.[2]
[1] http://arcanesentiment.blogspot.com/2014/12/customary-semantics.html
[2] Posix doesn't really address this, sadly. The committee seems to have avoided standardizing byte size until an unforeseen interaction with a later C standard pushed it into a corner.
clickok · 2019-03-15
Richard Bellman coined the name, and according to legend it was because the phrase 'dynamic programming' was so anodyne that not even the most officious bureaucrat could object.
In Bellman's own words[0]:
"An interesting question is, ‘Where did the name, dynamic programming, come from?’ The 1950s were not good years for mathematical research. We had a very interesting gentleman in Washington named Wilson. He was Secretary of Defense, and he actually had a pathological fear and hatred of the word, research. I’m not using the term lightly; I’m using it precisely. His face would suffuse, he would turn red, and he would get violent if people used the term, research, in his presence. You can imagine how he felt, then, about the term, mathematical. The RAND Corporation was employed by the Air Force, and the Air Force had Wilson as its boss, essentially. Hence, I felt I had to do something to shield Wilson and the Air Force from the fact that I was really doing mathematics inside the RAND Corporation. What title, what name, could I choose? In the first place I was interested in planning, in decision making, in thinking. But planning, is not a good word for various reasons. I decided therefore to use the word, ‘programming.’ I wanted to get across the idea that this was dynamic, this was multistage, this was time-varying—I thought, let’s kill two birds with one stone. Let’s take a word that has an absolutely precise meaning, namely dynamic, in the classical physical sense. It also…
jasim · 2018-05-06
Yes, it would be, please fire away.
As an OCaml beginner my understanding is that I can do away with needing to understand monadic IO (yet) because OCaml is non-lazy and allows side-effects. I also like monadic parser combinators because they'll allow me to write parsers without the tedium of recursive descent, or being reliant upon parser generators. I have a rough understanding of monads as a purely algebraic abstraction (https://arcanesentiment.blogspot.in/2017/06/purely-algebraic-abstracti… and an even vaguer idea as a "representation of computations as values", based on this excellent thread: https://discuss.ocaml.org/t/can-monads-help-me-my-refactor-code-for-an…
But I don't grok it yet, which I'm sure I'll be able to once I find an occasion to use it. I suspect I'll hit that point sooner if I were using Haskell than OCaml though. I'm still collecting analogies (burritos, boxes, "smart pipes") and I want more. If nothing else, it is fun, and contrary to popular opinion, I don't think it distracts me from its essentially abstract nature.
abecedarius · 2023-01-31
Surprised this post didn't mention Forth. https://arcanesentiment.blogspot.com/2011/02/japanese-lisp-forth-and-h…
BTW this toy language came up in my search for the above: https://gist.github.com/typeswitch-dev/ac86d7e32167c1e5bf311c796cedc1a…
medo-bear · 2022-12-23
> more powerful, sure, but not that different and inspired by printf
bit of an understatement. it is an almost turing complete version of printf.
https://arcanesentiment.blogspot.com/2009/02/value-of-extensible-forma…
dTal · 2017-07-15
Nobody mentioned s-expressions, and there's more to lisp syntax than that. The s-expressions have to mean something, and it is at this level that usability is made or broken.
Scheme is beautiful, but it sacrifices usability for purity. Common Lisp, on the other hand, is usually held to be both "ugly" and "better for real work(tm)".
Here's a nice blog post that highlights the practicality issue with Scheme's design.
http://arcanesentiment.blogspot.co.uk/2015/01/if-scheme-were-like-sche…
xenophonf · 2014-07-21
Check out http://arcanesentiment.blogspot.com/2012/05/pointer-arithmetic-can-be-… which describes Zeta-C's handling of pointers (Zeta-C being a C compiler for Lisp machines).
And as a bonus, there's a link to the Zeta-C source code!