Jon Purdy

evincarofautumn.blogspot.com · Personal blog · on HN since 2011

Jon Purdy writes about programming languages, concatenative programming, and software design.

What HN saysHN mostly links his 'Why Concatenative Programming Matters' post, which commenters call the best advocacy for the concatenative style; the blog is inactive.
28HN people shared it
16linked it in comments
35stories submitted
1.2Kstory points
8 months agolast shared
2011people per year2026

Most-shared posts

  1. 1
    Why Concatenative Programming Matters
    16 people · 543 points · first shared 2012 · 55 comments on HN
  2. 2
    Programming Languages Suck at UX
    2 people · 76 points · first shared 2011 · 74 comments on HN
  3. 3
    Solving the Halting Problem
    2 people · 3 points · first shared 2011 · discussion on HN
  4. 4
    How to Be Productive
    2 people · 1 points · first shared 2011 · discussion on HN
  5. 5
    The Big Mud Puddle
    2 people · 1 points · first shared 2011 · discussion on HN
  6. 6
    Tricky Programming Concepts Aren’t
    1 people · 185 points · first shared 2011 · 92 comments on HN
  7. 7
    Why Concatenative Programming Matters (2012)
    1 people · 149 points · first shared 2013 · 36 comments on HN
  8. 8
    Computers Aren’t Fast Anymore (2013)
    1 people · 97 points · first shared 2014 · 110 comments on HN
  9. 9
    Yep, Programming Is Borked
    1 people · 48 points · first shared 2012 · 55 comments on HN
  10. 10
    The Web Is Wrong
    1 people · 19 points · first shared 2011 · 23 comments on HN
  11. 11
    Regexes Parse XML Just Fine, Actually
    1 people · 12 points · first shared 2011 · 27 comments on HN
  12. 12
    Steve Jobs Was a Jerk
    1 people · 6 points · first shared 2011 · discussion on HN
  13. 13
    Frighteningly Ambitious Programming Language Ideas
    1 people · 5 points · first shared 2012 · 3 comments on HN
  14. 14
    How to Pronounce Hexadecimal Numbers
    1 people · 5 points · first shared 2011 · 2 comments on HN
  15. 15
    Artificial Expertise (2014)
    1 people · 3 points · first shared 2017 · discussion on HN

What HN people wrote when they linked it

azhenley · 2021-04-10
The author’s blog is also good, though it’s been several years since the last post: http://evincarofautumn.blogspot.com
jerf · 2020-01-14
Best advocacy I know of: http://evincarofautumn.blogspot.com/2012/02/why-concatenative-programm… Presented by way of being an interesting link, and the educational nature of reading the best arguments in favor of something. I haven't done anything in concatenative programming in about 20 years, since I left math class and didn't need my HP 48G anymore.
drostie · 2012-04-17
The best reference I can show for the general programming model was a blog post which is not in G, but was called "Why Concatenative Programming Matters": http://evincarofautumn.blogspot.com/2012/02/why-concatenative-programm… which shows you how graphical diagrams can make sense out of concatenative programs. If you really want an example, then I will give you this with some caution: http://team358.org/files/programming/ControlSystem2009-/LabVIEW/Moving… The caution is that LabVIEW views a data source as a sort of continuous input stream, so that it is manipulating individual values at any given time. I would rather view vectors as more fundamental in a spreadsheet language.
irickt · 2026-02-25
A more explanatory article mentioned in the post: https://evincarofautumn.blogspot.com/2012/02/why-concatenative-program…
gpm · 2023-09-28
Some people really like the idea of concatenative languages. I think this is probably reasonably viewed as "research into making those actually usable", in addition to a fun hobby project. Here's a blog post that tries to motivate them: https://evincarofautumn.blogspot.com/2012/02/why-concatenative-program… Here's another interesting recent attempt: https://www.dawn-lang.org/posts/introducing-dawn-(part-1)/
js8 · 2021-06-18
I came across this paper recently while looking at Kitten (it was actually mentioned in HN before): http://evincarofautumn.blogspot.com/2012/02/why-concatenative-programm… I think really explains the idea. I always liked combinatory logic more than lambda calculus, although it didn't click to me that the concatenative languages are essentially the formalism for it (as opposed to ML-style syntax). Although I would say functional programming is somewhat orthogonal concept, the concatenative languages can have functions with side effects, like Forth does.
garmaine · 2020-06-08
It’s only the newer “concatenative” languages that have explored this forms correspondence. See this essay by Jon Purdy (author of Kitten) on “why concatenative languages matter”: http://evincarofautumn.blogspot.com/2012/02/why-concatenative-programm…
simplify · 2016-12-28
Would be good to add some concatenative languages to that list :) http://evincarofautumn.blogspot.com/2012/02/why-concatenative-programm…
klibertp · 2015-01-06
No, and there's nothing wrong with this. Actually - I didn't read the article very carefully, so I may be completely wrong here - it looks like the OP uses a bit incorrect term. To me it looks like the word he wants is "applicative", and the opposition to it would be "concatenative" (see: http://evincarofautumn.blogspot.com/2012/02/why-concatenative-programm… "Imperative" is usually contrasted with "declarative" (and not with "functional", which TFA seems to suggest) and in practice most languages are imperative to some degree, even the ones which are said to be "declarative" are most often not purely so (but see Datalog).
evincarofautumn · 2014-12-20
There is a new phrasal verb “be a thing” which lets us conveniently talk about such constructions. That is, “now and then” is a thing—an idiom, with a specific meaning outside the wording—but “then and now” is not a thing. You will note that all of the semantic constraints they propose place the item with a “positive” aspect first—I wrote a blog post about this[1]. There is also a related notion of “stormy petrel”[2] which I wrote a poem about[3] back when I had lots of hair. [1]: http://evincarofautumn.blogspot.com/2014/08/adjective-valence-and-ling… [2]: http://www.kith.org/logos/words/lower/petrels.html [3]: https://www.youtube.com/watch?v=fRlpRFs2L30
kylebrown · 2012-02-23
I like Alan Watts for meditation.[1] I have some mala beads as he suggests, and find they help me a lot. Its easier to time sessions, just count the beads with your fingers and when you reach the end of the mala, you can stop. They also help one to breath/count without consciously focusing on breathing/counting, or even worse, getting stuck in your head trying to focus on not focusing. Regarding sleep, read something very interesting the other day about Delayed Sleep Phase Disorder (DSPD).[2] Something that might help is a program called f.lux that reduces the blue light in your monitor in the evening, supposedly making it easier it to sleep. I haven't tried it yet but intend to soon. 1. http://www.mediafire.com/?u53kedhwn5w 2. http://evincarofautumn.blogspot.com/2011/09/how-to-be-productive.html
tqs · 2012-04-16
Ah, okay. So by less syntax you mean fewer syntactic forms (parentheses, curly braces, do notation, etc.) and keywords (class, public, etc.) in the language. I think in general, languages with fewer syntactic forms also have fewer but more powerful abstraction features. Lisps are pretty high up by this measure. They basically only have one abstraction feature: lambda expressions. Other languages have powerful abstraction features but more of them, like Haskell (lambdas, pattern matching, monadic do notation). And others have many but less powerful abstraction features (e.g. Java). On the one hand, I certainly agree with you that more powerful abstractions make it easier to program. Once you've grokked the abstraction, you only need one brain "chunk" to deal with it freeing up your other chunks to work on the problem. If you need to juggle several different abstractions (e.g. wrap up your closure inside an object inside a class), you have fewer chunks to work on your problem. On the other hand, people tend to have difficulty learning these higher abstractions in the first place. Alan Kay, in that quote, points out that young children (I think less than ~8 years old) have difficulty with the abstraction of parameterization. In particular they have trouble with mentally corresponding the placement of a parameter in a list with its role in the function. Named parameters make things a bit better, they help the children keep track of the role. Explicit variable assignment…
apsp · 2012-01-25
Could you support your claim that running times are irrelevant? I understand you want to keep your blog post (or "blarticle") short. But maybe you could elaborate here? I am genuinely interested in your argument. I think there are other caveat of specifying only the results. You posted earlier on the halting problem http://evincarofautumn.blogspot.com/2011/10/solving-halting-problem.ht… That post also contains a statement which I believe to be false. You state that the "Haltability problem" (where you are given a program P and want to determine if there exists an input on which it halts) is decidable but its not. Basically, I can just hardcode any input I of my choosing into P so that it always does the same thing (run P on I) regardless of the actual input I' you provide it. Thus, I can use an algorithm for the Haltability problem to solve the halting problem. I know that does not pertain to this post directly but the halting problem does. Given a program written in this new language, how can you determine if what the programmer specified can even exist as a program? In fact, suppose you specify the properties of this new language you current wish to construct (in say, English and assume that everything is interpreted correctly). How do you know such a language could potentially exist (never mind implementing it)? I also don't even want to think about debugging in such a language. More specifically, I would rather have a library for the example you described…
ithkuil · 2019-07-12
There exist other languages in the category, e.g. https://kittenlang.org/, http://www.factorcode.org/, https://github.com/cdiggins/cat-language, https://en.m.wikipedia.org/wiki/Joy_(programming_language). I assume the parent poster referred to improving those (or at least explaining which deficiencies of those myrth is addressing). (In case you didn't already, you can read about this family of languages in http://evincarofautumn.blogspot.com/2012/02/why-concatenative-programm… I'm personally happy that somebody is doing more research in this field.
vanderZwan · 2017-01-23
Have you looked at Kitten? It's statically typed[0], and a descendant of Cat[1], which is a descendant of Joy[2]. So those might also be interesting languages to investigate > The Kitten Programming Language > Kitten is a statically typed, stack-based functional programming language designed to be simple and fast. It is a concatenative language, combining aspects of imperative and pure functional programming. There is an introduction available and a tutorial in progress. http://kittenlang.org/ [0] http://evincarofautumn.blogspot.se/search/label/Concatenative [1] http://www.codecommit.com/blog/cat/the-joy-of-concatenative-languages-… http://www.codecommit.com/blog/cat/the-joy-of-concatenative-languages-… http://www.codecommit.com/blog/cat/the-joy-of-concatenative-languages-… [2] https://en.wikipedia.org/wiki/Joy_(programming_language)

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close