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.
Alan Kay on Lisp
151–160 of 207 posts
Re: Alan Kay on Lisp
#152Posting 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…
Re: Alan Kay on Lisp
#153Earlier 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…
[1] https://web.wpi.edu/Pubs/ETD/Available/etd-090110-124904/unr...
Re: Alan Kay on Lisp
#154Earlier 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.
(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
#155Earlier 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.
Re: Alan Kay on Lisp
#156Re: Alan Kay on Lisp
#157Earlier 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://…
Re: Alan Kay on Lisp
#158Earlier 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.
Re: Alan Kay on Lisp
#159Re: Alan Kay on Lisp
#160Earlier 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
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: