←back to thread

1401 points alankay | 1 comments | | HN request time: 0s | source

This request originated via recent discussions on HN, and the forming of HARC! at YC Research. I'll be around for most of the day today (though the early evening).
Show context
16bytes ◴[] No.11940211[source]
Hi Alan,

I'm preparing a presentation on how to build a mental model of computing by learning different computer languages. It would be great to include some of your feedback.

* What programming language maps most closely to the way that you think?

* What concept would you reify into a popular language such that it would more closely fit that mapping?

* What one existing reified language feature do you find impacts the way you write code the most, especially even in languages where it is not available?

replies(1): >>11940252 #
alankay1 ◴[] No.11940252[source]
I think I'd ask "What programming language design would help us think a lot better than we do now (we are currently terrible!)

Certainly, in this day and age, the lack of safe meta-definition is pretty much shocking.

replies(2): >>11940453 #>>11941568 #
dang ◴[] No.11940453[source]
Could you give an example of what you mean by "safe meta-definition"? I'd like to understand this better.
replies(3): >>11940546 #>>11940648 #>>11941131 #
1. 16bytes ◴[] No.11940648{3}[source]
I'm guessing safe meta-definition means type-safe meta-programming.

For example in Lisp, code is data and data is code (aka homoiconicity). This makes it very convenient to write macros (i.e. functions that accept and return executable code).

Unsafe meta-programming would be like the C pre-processor whose aptness for abuse make it a leading feature of IOCCC entries.