Live data from Hacker News

History of Logo

escholarship.org

61–70 of 89 posts

Re: History of Logo

#61
post #57

Earlier quoted context omitted.

Snap! has the full power of Scheme (first class functions, user defined blocks, recursion, closures, continuations, JavaScript integration, etc), with a visual block syntax and playful graphical environment with turtle graphics like Scratch. The following post is a couple years old, but maybe somebody can provide some updates and recent info! Edit: I should have RTFA first, which is totally up to date, just published…

Thanks for the kind words both about Logo and about Snap!. That article is in fact not yet officially published, but if I'm reading the ACM legalbol correctly, authors are allowed to put an "author's last draft" version on their institutions' web archives, so that's what you found. The article has eight authors, and of course the time required to write something is \Theta(n^2) in the number of authors, so it was a lo…

Hey, how about throwing in a perverted, fetishistic, masochistic programming language like FORTH, too? ;)

Where do you think Logo and Snap fit into the three basic mental structures of psychosis, perversion, and neurosis, as W Watson describes in "The Pervert's Guide to Programming Languages"?

https://news.ycombinator.com/item?id=22910702

https://www.youtube.com/watch?v=mZyvIHYn2zk

https://s3-us-west-2.amazonaws.com/vulk-blog/ThePervertsGuid...

I have hope that Snap! has transcended the self-indulgent Turing Tarpit of Melancholy Languages like Scheme, Lisp (which spawned Scheme during a hysterical event), Smalltalk, and languages that never were, as described on the penultimate page. ;)

Snap! strikes me more as a Hysterical language, frantically pursuing the object of desire, in pursuit of the perfect syntax.

>Hysterical Languages: Hysterical development lends itself to languages that facilitate endless refinements in the code base. The delivered code is never good enough, not merely because of pragmatic reasons but often because of ascetic reasons. The final goal of capturing the elusive domain jargon [59] seems just around the corner, where just one refinement may perfectly represent the domain. Within the hysterical languages there can be two extremes. One extreme is to work towards the capability to easily represent any aesthetic. In this extreme the work and enjoyment are in the development of the language itself [60]. The other extreme is to consciously implement the aesthetic using the language as is [61]. This extreme bends the language to look more aesthetically pleasing. Somewhere in between are refinements to extremely large code bases that must stay available.

>[59] “The overhead cost of all the translation, plus the risk of misunderstanding, is just too high. A project needs a common language that is more robust than the lowest common denominator. With a conscious effort by the team, the domain model can provide the backbone for that common language, while connecting team communication to the software implementation. That language can be ubiquitous in the team’s work.”, Evans, Eric (2003-08-22). Domain-Driven Design: Tackling Complexity in the Heart of Software (Kindle Locations 829-832). Pearson Education. Kindle Edition.

>[60] “Also, I’m a great fan of evolving as opposed to just starting out new. You might fall in love with one particular idea, and then in order to implement it, you go create a brand-new language that’s great at this new thing. Then, by the way, the 90% that every language must have, it kind of sucks at. There’s just so much of that, whereas if you can evolve an existing language — for example, with C# most recently we’ve really evolved it a lot toward functional programming — it’s all gravy at that point, I feel.”, Biancuzzi, Federico; Chromatic (2009-03-21). Masterminds of Programming: Conversations with the Creators of Major Programming Languages (Theory in Practice (O'Reilly)) (Kindle Locations 7017-7021). O'Reilly Media. Kindle Edition.

>[61] “A big part of the modus operandi of the Ruby community is a more fluent approach— trying to make interacting with a library feel like programming in a specialized language. This is a strand of thinking that goes back to one of oldest programming languages, Lisp.”, Fowler, Martin (2010-09-23). Domain-Specific Languages (Addison-Wesley Signature Series (Fowler)) (Kindle Locations 473-475). Pearson Education (USA). Kindle Edition.

Re: History of Logo

#62
post #42
post #32

Earlier quoted context omitted.

I honestly can't think of anything more "missing the entire point" of a language like Logo than "I could write in assembler faster...".

I was maybe 8 or 9 at the time. I guarantee I missed 'the point' of a lot of things at that age! Shoot me. Even today, though, if you told me there was a great new programming language, but I had to wait a minute every time I made a change before running my program, I don't imagine I'd be terribly excited to learn it. Right next to this on HN is a 2014 article by WalterBright that reports "compiler speed matters a lo…

>What's the last compiler you used that spent 60 seconds compiling a single file?

Unity3D C# => CIL => il2cpp => emscripten => WebAssembly. ;(

Nowadays, we compile a single file with many compilers. And you change one line, then you have to recompile and repackage the whole chain.

Re: History of Logo

#63
post #36

Earlier quoted context omitted.

Why? 8-bit assembler was simpler and easier to learn than most programming languages. It kinda had to be, given the constraints on CPU's at the time. (And drawing text or graphics was simply a matter of setting values in a memory-mapped frame buffer. Quite trivial, overall.)

With all due respect, bullshit. Preface: I go back to the 70s in programming. I've done 8-bit on 8080/Z80, 68xx/68hc11, 8051, SMT8, 6502 and 2650. I've taught programming. Let's ignore the challenge of finding an assembler running on a common 8-bit home computer and getting it running and how much the early ones sucked. Let's ignore how little doco there was for those early 8-bits (no internet, remember). Let's ignor…

    ]INT
    >CALL -151
    *F666G
    !0: INX
    0000- E8 INX
    ! TXA
    0001- ·8A TXA
    ! JSR $FDED
    0002- 20 ED FD JSR $FDED
    ! JMP $0
    0005- 4C 00 00 JMP $0000
    ! BRK
    0008- 00 BRK
https://www.callapple.org/vintage-apple-computers/apple-ii/a...

Re: History of Logo

#64
Terrapin Logo for the Apple ][ and C64 came with a 6502 assembler written in Logo by Leigh Klotz, that they used to write Logo primitives (for controlling the turtle, etc).

It would be ambitious to make a self hosting 6502 Logo meta assembler, by porting the entire 6502 assembly language Logo source code to the 6502 Logo Assembler!

Leigh, wasn't the assembler that you used for the original Apple ][ version of Logo written in MacLisp running on a PDP-10?

The Apple II Source Code for the LOGO Language Found (adafruit.com) 379 points by mmastrac on Oct 4, 2018 | hide | past | web | favorite | 89 comments

https://news.ycombinator.com/item?id=18142287

https://blog.adafruit.com/2018/10/04/the-apple-ii-source-cod...

Lars: The link in the article to the code from https://github.com/PDP-10/its is broken. I found a few references to it in the repo. Did you have to take it down, or did you move it somewhere else?

https://github.com/PDP-10/its/blob/a5694acbf9b6185a36d18d226...

>Logo

>"I too see the computer presence as a potent influence on the human mind. I am very much aware of the holding power of an interactive computer and of how taking the computer as a model can influence the way we think about ourselves. In fact the work on LOGO to which I have devoted much of the past years consists precisely of developing such forces in positive directions."

>Seymour Papert

>"Logo is the name for a philosophy of education and for a continually evolving family of computer languages that aid its realization."

>Harold Abelson

>"Historically, this idea that Logo is mainly turtle graphics is a mistake. Logo’s name comes from the Greek word for word, because Logo was first designed as a language in which to manipulate language: words and sentences."

>Brian Harvey

>Logo was initially created by Wally Feurzeig, Seymour Papert, Daniel G.Bobrow, Cynthia Solomon and Richard Grant in 1967 as part of a National Science Foundation sponsored research project conducted at Bolt, Beranek & Newman, Inc., in Cambridge, Massachusetts. In 1969 Dr. Seymour Papert started the Logo Group at the MIT Artificial Intelligence Lab. Throughout the 1970s the majority of Logo development was conducted at MIT in the Artificial Intelligence Lab and the Division for Study and Research in Education, using large research computer systems, such as ITS powered PDP-10.

>Our goal is to make that early Logo systems available to a wider audience of enthusiasts for exploration, experimenting and, of course, hacking.

[...]

>MIT APLOGO

>In accordance with Leigh L Klotz Jr., Hal Abelson directed the Logo for the Apple II project at MIT.

>MIT APLOGO was developed by Stephen Hain, Patrick G. Sobalvarro and Leigh L Klotz Jr. It was developed and cross-compilled for the Apple-II-Plus Personal Microcomputer on PDP-10 at the MIT LOGO Group. It is direct predecessor for Terrapin Logo. We have a source code for assembling an improved version from 7/9/81 at its/src/aplogo

Re: History of Logo

#65
post #36

Earlier quoted context omitted.

With all due respect, bullshit. Preface: I go back to the 70s in programming. I've done 8-bit on 8080/Z80, 68xx/68hc11, 8051, SMT8, 6502 and 2650. I've taught programming. Let's ignore the challenge of finding an assembler running on a common 8-bit home computer and getting it running and how much the early ones sucked. Let's ignore how little doco there was for those early 8-bits (no internet, remember). Let's ignor…

> Was it easier to explain to a kid "repeat 4 [forward 50 right 50]" or a bunch of memory pokes and all the boilerplate required to get an assembly language program to do anything. One would think that there's a useful middle ground. My favorite approach would be a FORTHy, postfix-based language where you'd write something like [|50 fd 90 rt] 4 repeat. Something like that would be comparatively easy to implement usin…

Then you'll love PostScript! (I sure do.) It's like a cross between Lisp and Forth. And it's homoiconic like Lisp, so the PostScript code:

{ 4 {50 fd 90 rt} repeat }

is actually an executable array, a polymorphic data structure, the moral equivalent of JSON.

https://medium.com/@donhopkins/the-shape-of-psiber-space-oct...

PostScript also has a very nice standard graphics library. It's not turtle graphics like Logo, but it's easy to implement a turtle graphics library in PostScript in a page or so of code.

(Not that PostScript graphics would run very fast on an Apple ][.)

Re: History of Logo

#66
post #43
post #36

Earlier quoted context omitted.

With all due respect, bullshit. Preface: I go back to the 70s in programming. I've done 8-bit on 8080/Z80, 68xx/68hc11, 8051, SMT8, 6502 and 2650. I've taught programming. Let's ignore the challenge of finding an assembler running on a common 8-bit home computer and getting it running and how much the early ones sucked. Let's ignore how little doco there was for those early 8-bits (no internet, remember). Let's ignor…

I go back to the 70s in programming. Like the poster at the start of the subthread, I was a kid with an 8-bitter and my impression of Logo at the time was similar. It was neat, I read some Logo books but it was too slow. For a lot of things, BASIC was too slow as well and so like many self-respecting nerdkids, I learned assembly and used it a lot. This was typical and there were so many of us, we still regularly cros…

FORTH is the ultimate macro-assembler!

The assembler is just written in and integrated with FORTH, so you have the full power of the FORTH language to write macros and procedural code generators!

And it makes it really easy to call back and forth ;) between FORTH and machine code, with convenient word definitions for accessing the FORTH interpreter state.

Here's part of my SUPDUP terminal emulator for the Apple ][ with some 6502 code for saving and restoring lines of text in a bank-switched memory expansion card:

https://donhopkins.com/home/archive/forth/supdup.f

Here is a great example of FORTH and 8086 assembly code for hardware control (written by Toffoli and Margolus for controlling their CAM-6 cellular automata machine hardware), starting with "CAM driver routines" and also "creates fast code words for picking out bits of variable X":

https://donhopkins.com/home/code/tomt-cam-forth-scr.txt

https://en.wikipedia.org/wiki/Cam-6

Rudy Rucker wrote about learning FORTH just to play with that hardware:

https://www.fourmilab.ch/cellab/manual/chap5.html

>Starting to write programs for the CAM-6 took a little bit of time because the language it uses is Forth. This is an offbeat computer language that uses reverse Polish notation. Once you get used to it, Forth is very clean and nice, but it makes you worry about things you shouldn't really have to worry about. But, hey, if I needed to know Forth to see cellular automata, then by God I'd know Forth. I picked it up fast and spent the next four or five months hacking the CAM-6.

>The big turning point came in October, when I was invited to Hackers 3.0, the 1987 edition of the great annual Hackers' conference held at a camp near Saratoga, CA. I got invited thanks to James Blinn, a graphics wizard who also happens to be a fan of my science fiction books. As a relative novice to computing, I felt a little diffident showing up at Hackers, but everyone there was really nice. It was like, “Come on in! The more the merrier! We're having fun, yeeeeee-haw!”

>I brought my AT along with the CAM-6 in it, and did demos all night long. People were blown away by the images, though not too many of them sounded like they were ready to a) cough up $1500, b) beg Systems Concepts for delivery, and c) learn Forth in order to use a CAM-6 themselves. A bunch of the hackers made me take the board out of my computer and let them look at it. Not knowing too much about hardware, I'd imagined all along that the CAM-6 had some special processors on it. But the hackers informed me that all it really had was a few latches and a lot of fast RAM memory chips.

Re: History of Logo

#67
post #36

Earlier quoted context omitted.

With all due respect, bullshit. Preface: I go back to the 70s in programming. I've done 8-bit on 8080/Z80, 68xx/68hc11, 8051, SMT8, 6502 and 2650. I've taught programming. Let's ignore the challenge of finding an assembler running on a common 8-bit home computer and getting it running and how much the early ones sucked. Let's ignore how little doco there was for those early 8-bits (no internet, remember). Let's ignor…

]INT >CALL -151 *F666G !0: INX 0000- E8 INX ! TXA 0001- ·8A TXA ! JSR $FDED 0002- 20 ED FD JSR $FDED ! JMP $0 0005- 4C 00 00 JMP $0000 ! BRK 0008- 00 BRK https://www.callapple.org/vintage-apple-computers/apple-ii/a...

Interesting. Looks like $FDED maps to a CHAROUT routine on the Apple ][, so this should print out the character map in an endless loop?

Re: History of Logo

#68

Terrapin Logo for the Apple ][ and C64 came with a 6502 assembler written in Logo by Leigh Klotz, that they used to write Logo primitives (for controlling the turtle, etc). It would be ambitious to make a self hosting 6502 Logo meta assembler, by porting the entire 6502 assembly language Logo source code to the 6502 Logo Assembler! Leigh, wasn't the assembler that you used for the original Apple ][ version of Logo wr…

Yes, the link is broken because the file was updated to a newer version. Here is the directory with the newer file:

https://github.com/PDP-10/its/tree/master/src/aplogo

Re: History of Logo

#69

Earlier quoted context omitted.

]INT >CALL -151 *F666G !0: INX 0000- E8 INX ! TXA 0001- ·8A TXA ! JSR $FDED 0002- 20 ED FD JSR $FDED ! JMP $0 0005- 4C 00 00 JMP $0000 ! BRK 0008- 00 BRK https://www.callapple.org/vintage-apple-computers/apple-ii/a...

Interesting. Looks like $FDED maps to a CHAROUT routine on the Apple ][, so this should print out the character map in an endless loop?

That's right. My "go-to" obnoxious assembly language program I could type in from memory was an infinite loop that screeched the speaker by loading my favorite io address $C030 at an ultrasonic rate.

    !0: LDA $C030
    ! JMP $0

Re: History of Logo

#70
post #43

Earlier quoted context omitted.

I go back to the 70s in programming. Like the poster at the start of the subthread, I was a kid with an 8-bitter and my impression of Logo at the time was similar. It was neat, I read some Logo books but it was too slow. For a lot of things, BASIC was too slow as well and so like many self-respecting nerdkids, I learned assembly and used it a lot. This was typical and there were so many of us, we still regularly cros…

FORTH is the ultimate macro-assembler! The assembler is just written in and integrated with FORTH, so you have the full power of the FORTH language to write macros and procedural code generators! And it makes it really easy to call back and forth ;) between FORTH and machine code, with convenient word definitions for accessing the FORTH interpreter state. Here's part of my SUPDUP terminal emulator for the Apple ][ wi…

FORTH is the ultimate macro-assembler!

https://archive.org/details/a2_GraFORTH_1981_Lutus_Paul

Post reply on HN