Live data from Hacker News

Alan Kay on Lisp

quora.com

151–160 of 207 posts

Re: Alan Kay on Lisp

#151
post #65
post #61

Earlier quoted context omitted.

It's out of favor now, but Objective-C? IIRC it was inspired by Smalltalk's message syntax.

That was the feature I liked the most from my Objective-C days in the early versions of Mac OS X, it felt a bit like SmallTalk even if it was just named parameters and messages.

It's not named parameters though, it's compound message/method names. The arguments are interspersed within the "bits" of the method unlike e.g. Python which has named parameters separate from the method name.

Re: Alan Kay on Lisp

#152
post #22

Posting Alan's reply as a comment below for posterity, since Quora appears to forbid archive.org from making a copy. --- First, let me clear up a few misconceptions from the previous answers. One of them said “Try writing an operating system with Lisp”, as though this would be somehow harder. In fact, one of the nicest operating systems ever done was on “The Lisp Machines” (in Zeta-Lisp), the hardware and software fo…

And these operating systems in both Smalltalk and Lisp were both better and easier to write than the standard ones of today. Look, I love Lisp as much as the next hacker, but is Alan Kay for real? Where's the Lisp equivalent to this C code? https://github.com/dwelch67/raspberrypi/tree/master/blinker0... More importantly, where's the accompanying toolchain? Seriously, I really want to know because I'd love, Love, LOVE…

Here you go: https://gist.github.com/chomy/003deea83b5a13ad1ee3

Re: Alan Kay on Lisp

#153
post #76

Earlier quoted context omitted.

Lisp, Scheme, and Racket and related languages have many distinct syntax forms, just like other languages. The syntax forms appear visually similar due to the use of parentheses, but the forms themselves are distinct. For example, here are some of the distinct syntax forms in Racket (Scheme): (+ 3 4) # Procedure call (lambda (x) (+ x x)) # Lambda expression # See also case-lambda (let ((x 23) (y 42)) # Variable bindi…

This is why I love John Shutt's Kernel[0]. All of these "distinct forms" are rolled into one form of "(combiner combiniend)", where combiner is runtime evaluated and can either be a regular applicative (like a lisp procedure call), or an operative (reminiscent of older lisps fexpr). Compound operatives can be created using the primitive operative $vau. Applicatives are created with the primitive wrap. (which $lambda…

Thank you for sharing this. I hadn't heard of Kernel, and it seems to be highly relevant to a line of inquiry that I've been pondering for some time (you could say light research) in the area of language design. There seem to be a lot of interesting topics in the related dissertation [1]. Thanks again!

[1] https://web.wpi.edu/Pubs/ETD/Available/etd-090110-124904/unr...

Re: Alan Kay on Lisp

#154

Earlier quoted context omitted.

So the example would be: 1 to: 10. Sends the "to:" message to the number 1 with the parameter 10. Returns a range representing the numbers from 1 to 10. You can then iterate that range with by sending it the "do:" message with a block argument. 1 to: 10 do:[ :i | ]. And so on. Looks a lot like syntax for a for-loop, but is just message sends to collections with keyword syntax. Every type of collection implements do:…

Sorry to "well actually" you, but 1 to: 10 do:[ :i | ]. would be a single message `to:do:`, not a chain of messages.

well actually-actually :-),

   (1 to: 10) do: [ :i | Transcript show: i ; cr].
also works in Pharo. Both are valid because:

"to:do:" is a message understood by the Number class

"to:" is a message also understood by the Number class that yields an Interval object, which understands the "do:" message.

Re: Alan Kay on Lisp

#155

Earlier quoted context omitted.

> makeRange(from: 0, to:10) [..] Swift’s guidelines on naming methods. The syntax you show is Swift, which is a weird mash-up of C/C++ style function call/method call syntax with keywords jammed into them. To me, actual Smalltalk syntax is just so much cleaner: 0 to: 10. It manages the "reads like english" trick without trying to be english-like or natural-language-like. (See Applescript for the disaster that results…

AppleScript may be the only read-only programming language in existence.

Depending on your definition of programming language, that crown might actually go to HAGGIS. It's an "educational" programming language which is not executable (or intended to be). It's possibly the worst idea in the history of computing, and that it is taught to anyone is (IMO) a public offense.

https://en.wikipedia.org/wiki/HAGGIS

Re: Alan Kay on Lisp

#156
post #117
post #116

Earlier quoted context omitted.

Wow. That's a really interesting way of explaining macros.

I wonder if LISP and LSD encourage similar ways of thinking.

Based on my own experiences with both, I'd say: Yes. Although I'm sure you couldn't prove it mathematically (yet).

Re: Alan Kay on Lisp

#157

Earlier quoted context omitted.

And these operating systems in both Smalltalk and Lisp were both better and easier to write than the standard ones of today. Look, I love Lisp as much as the next hacker, but is Alan Kay for real? Where's the Lisp equivalent to this C code? https://github.com/dwelch67/raspberrypi/tree/master/blinker0... More importantly, where's the accompanying toolchain? Seriously, I really want to know because I'd love, Love, LOVE…

> is Alan Kay for real? Where's the Lisp equivalent to this C code? Have you ever heard of the STEPS project? It's a complete OS, with applications libraries, and compiler collection, all in 20,000 lines of code. Pretty real if you ask me. Here are the reports (latest first). http://www.vpri.org/pdf/tr2012001_steps.pdf http://www.vpri.org/pdf/tr2011004_steps11.pdf http://www.vpri.org/pdf/tr2010004_steps10.pdf http://…

No, I hadn't heard of STEPS. Thanks for the links!

Re: Alan Kay on Lisp

#158

Earlier quoted context omitted.

> makeRange(from: 0, to:10) [..] Swift’s guidelines on naming methods. The syntax you show is Swift, which is a weird mash-up of C/C++ style function call/method call syntax with keywords jammed into them. To me, actual Smalltalk syntax is just so much cleaner: 0 to: 10. It manages the "reads like english" trick without trying to be english-like or natural-language-like. (See Applescript for the disaster that results…

AppleScript may be the only read-only programming language in existence.

I get that vibe from Inform 7: the famous Dijkstra’s algorithm reads like English, but I'd have no idea how to write such a program.

Re: Alan Kay on Lisp

#160
post #152

Earlier quoted context omitted.

And these operating systems in both Smalltalk and Lisp were both better and easier to write than the standard ones of today. Look, I love Lisp as much as the next hacker, but is Alan Kay for real? Where's the Lisp equivalent to this C code? https://github.com/dwelch67/raspberrypi/tree/master/blinker0... More importantly, where's the accompanying toolchain? Seriously, I really want to know because I'd love, Love, LOVE…

Here you go: https://gist.github.com/chomy/003deea83b5a13ad1ee3

That's great but it isn't the same thing as what I linked to, which is a small program loaded by the Raspberry Pi's boot loader.

What I'm after is the Common Lisp or Scheme equivalent to something like the FreeBSD kernel's libkern, plus a compiler/linker capable of generating an image that could be read into memory by a boot loader:

https://github.com/freebsd/freebsd/tree/master/sys/libkern

Post reply on HN