Logo Programming

Posted by azhenley 3 days ago

Counter298Comment120OpenOriginal

Comments

Comment by yogsototh 22 hours ago

I myself learned programming with logo, at my school when I was 8 or 10. And it was a delight, I am so grateful it existed.

But quite surprisingly, when later during my Ph.D. part of my time was dedicated to give exercises to students. And we used logo instead of the more usual programming languages. And I think it really helped them to really internalise programming a lot better. Typically, the latest exercices introduced recursion which is immediately visible as fractals.

    HIDETURTLE
    
    PENUP
    SETXY -200 0
    RIGHT 90
    PENDOWN
    
    to dragon :degree :size
        setpensize 1
        if :size>5  [setpensize 2]
        if :size>10 [setpensize 3]
        if :size>20 [setpensize 4]
        if :size>40 [setpensize 5]
        ifelse :degree=0 [
            fd :size
        ][
            left  45 dragon (:degree-1) (size/4)
            right 90 dragon (:degree-1) (size/2)
            left  90 dragon (:degree-1) (size/4)
            right 45
        ]
    end
    
    dragon 6 3000

if you want to give a try :)

Comment by gregsadetsky 19 hours ago

small correction - use `:size` in the three lines near the bottom (rather than `size`)

I tried it on https://www.calormen.com/jslogo/ and saw this small typo

cheers!

p.s. same as you, I was introduced to Logo around the age of 8 and I remember writing programs on paper when I was home, stepping through them line by line... it was inevitable I'd gravitate towards programming, ha :-)

Comment by rmunn 7 hours ago

I'd also recommend `:degree <= 0` as the check, rather than `= 0`, just in case someone passes `5.01` to the function (which would cause an infinite loop as you'd never hit exactly 0). But yes, if that was just coded into the comment box then it looks pretty good.

Comment by SamBam 18 hours ago

I should have scrolled down to your comment first! I spent 10 minutes debugging.

Nice work GP if that was air-coded, though.

Comment by ylee 8 hours ago

> Typically, the latest exercices introduced recursion which is immediately visible as fractals.

I well remember the epiphany I felt while learning Logo in elementary school, at the moment I understood what recursion is. I don't think the fact that the language I have mostly written code in in recent years is Emacs Lisp is unrelated to the above moment.

Comment by xtracto 21 hours ago

I was also introduced to computer programming using LOGO back in 1989. I remember drawing houses and stick figures in it.

Fast forward around 2010, I gave Agent Based Simulation workshop courses to PhD students using NetLogo , which at the time was very popular in the Social Sciences.

It was very interesting to teach programming to non-tech very intelligent people. Some of them came up with really cool simulation ideas. I loved that part of my career.

Comment by imb 18 hours ago

For many years, our students[0] have used Logo as an integral part of their math circle-style[1] classes. When we started Wally Feurzeig, one of the creators of Logo, was instrumental in helping us incorporate ideas from Logo into the kind of non-standard problem solving that we were striving for. Turtle geometry is a particularly helpful "instrument of the mind" for exploring dynamic geometry. Our co-founder, Victor Gutenmacher, wrote an incredible book[2] on "geometry in motion," which gave a completely different perspective on geometry from the one seen in school and which our students could explore with the help of Logo. For many of our students, especially those with math anxiety, Logo was what enabled them to overcome that anxiety and discover the joy of thinking and tinkering. Many programmers today have fond memories of getting into programming via Logo, but I would argue that despite the current blistering pace of progress, it remains one of the best and gentlest introductions to problem solving and computational thinking.

[0] https://www.gentleknowledge.com/

[1] https://en.wikipedia.org/wiki/Math_circle

[2] https://www.amazon.com/dp/0817641610

Comment by ihumanable 1 day ago

I still remember when we learned logo in elementary school. I had to get my mom to go out and buy a 3.5" disk so I could save my programs.

When I realized that all of logo was actually saved on that disk and I could continue playing with the turtle at home, I was amazed.

Drawing little things, realizing that I was repeating stuff and breaking it into little functions so I could draw them again more easily. I was learning the essentials of programming and didn't even realize it.

Comment by astrobe_ 23 hours ago

Also as a child, I was amazed by the associative tables it offered; I thought "I can make intelligent programs". I think I was thinking AI but I won't trust my memory on this. But I played a lot more with the turtle.

Comment by Xirdus 1 day ago

We had it (or one of the clones) in middle school, but it was a demo version that had saving disabled. Half of each class was messing with the turtle. The other half was writing down the code with pen and paper so that we can have it graded.

Comment by reaperducer 23 hours ago

I remember learning LOGO in school. There was a single 4K computer for the entire school, so we learned how to program by calling out turtle commands to the teacher who would draw the results with a marker on a sheet of plastic on an overhead projector.

At the end of that exercise, the accumulated commands would be taken to the computer (in another part of the school) and entered into the computer, and eventually we'd get a plotter printout showing the results.

Those early days of computing feel like we were like being on another planet.

Comment by Bankq 23 hours ago

I'm forever grateful for having the access to Logo programming in early 90s, as a kid from a 3rd world country, for how it leads to where I am today.

My first ever english word that I can spell out is REPEAT.

Comment by mauvehaus 23 hours ago

In the early nineties in elementary school I lived in Belgium, and went to a summer camp where we programmed with Logo in a localized French version.

I had played with Logo on Apple IIe's in the US, and thought it made sense that in a French-speaking region[0] they'd have a French version. I relearned what little I already knew, but regrettably, this did not help greatly with my French skills.

All I remember from this is that `hazard' was the random built-in. Dunno why that's stuck, but there's probably some more important bit of information that should be in my brain if that weren't.

[0] Yeah, yeah, I know French, Flemish, and German are the official languages. I was in a French-speaking part.

Comment by yurimalheiros 23 hours ago

Me too. It was one of my first experiences with programming languages back in elementary school in Brazil.

Comment by turtlegeometry 23 hours ago

This is on top of HN right now, and there is still nobody who has mentioned the fact that the tier-1 book Turtle Geometry <https://direct.mit.edu/books/oa-monograph/4663/Turtle-Geomet...> , is in open access.

Do yourself a favor, and read it today : it is that good. Even though it is quite depressing to see that the revolution in education that the book was predicting in its preface, simply never happened.

Comment by madcaptenor 23 hours ago

I was not expecting to see that the book would culminate in a chapter on general relativity!

Comment by mcphage 21 hours ago

There was also "Turtles, Termites, and Traffic Jams" which uses a parallelized version of logo to explore ideas about decentralized systems and is really excellent: https://mitpress.mit.edu/9780262680936/turtles-termites-and-...

Comment by lackoftactics 1 day ago

I didn't win logo programming competition in polish equivalent of 7th grade and I am still salty about it

Comment by Tade0 1 day ago

I learned the Language through examples because the version provided by the school didn't have documentation and in 00s Poland internet was still relatively rare.

I... participed in the competition, but that's all.

Comment by lackoftactics 1 day ago

same problem, it wasn't exaclty the best experience with first programming language

Comment by knome 1 day ago

ha. 4th grade for me, though I'm more amused than salty about the affair. who's ever heard of 'recursion'? honestly.

Comment by lackoftactics 1 day ago

tbh, sounds like a made-up term coined by someone who could go on and on

Comment by hs586 5 hours ago

One of my most vivid memories from my childhood (around 10 years old) is trying to make a ticking analog clock using Logo, with the turtle drawing all the hands.

We had "no screen in the morning" house rule - we had to eat, play outside first while it was not too hot. I woke up and realised what was wrong with my code. And my mum made an exception to the rule and the fix worked! I am so grateful to her for understanding the importance of the moment and allowing me to do the fix. I guess I'll give her a call and tell her the story now :) Thanks HackerNews!

Comment by briandw 23 hours ago

Logo was created by by Seymour Papert. I highly recommend his book Mindstorms: https://en.wikipedia.org/wiki/Mindstorms_(book) It was written in 1980 but could have mostly been written today. All the same issues with teachers misunderstandings and fear of math and technology and refusal to change to meet the challenges of the age.

Comment by jkestner 18 hours ago

One of my favorite books is Turtles, Termites, and Traffic Jams (https://mitpress.mit.edu/9780262680936/turtles-termites-and-...), basically the thesis of one of his students (and current MIT Media Lab professor) Mitchel Resnick. It's about the educational value of modeling distributed systems with StarLogo.

Comment by jecel 21 hours ago

The first line of https://en.wikipedia.org/wiki/Logo_(programming_language) is "Logo is an educational programming language, designed in 1967 by Wally Feurzeig, Seymour Papert, and Cynthia Solomon." so you are correct but it is nice to mention his co-inventors. I agree about the book. I had to borrow it from a friend, read it quickly and give it back in 1983 so my memories of it are a bit fuzzy.

Comment by dofm 22 hours ago

I believe it is legally available as a PDF — as far as I remember via the ACM?

Very important book.

Comment by ejflick 14 hours ago

I read that book earlier this year. It made me rethink how we approach problem solving in team environments. I now aspire for code I write to be able to be played with as a child would play with a turtle. I find this lack of being able to play is what makes it hard for software developers to really understand each other’s work.

There’s also a section in that book that briefly talks about agentic modeling in the same way people use LLM’s today. I find it fascinating that this idea was already that old at that time.

Comment by the-mitr 2 hours ago

Turtle Blocks https://turtle.sugarlabs.org/

and Music Blocks

https://musicblocks.sugarlabs.org/

LOGO variants by Walter Bender (also student of Seymour Papert) https://en.wikipedia.org/wiki/Walter_Bender

Comment by hyperbole 3 hours ago

I created logocode.dev for kids, but find myself playing with it occasionally - https://logocode.dev/

Comment by flossly 4 hours ago

I thought Logo was interesting because it translated the syntax (and errors) to the language of the programmer. Thereby it removed "learning English" as a prerequisite for learning programming.

https://apps.kde.org/nl/kturtle/ (in pretty much every linux distro) also brings that benefit (though the language is not exactly a LOGO clone).

Comment by kdavis 23 hours ago

Kicked off so many memories...

Early 80's I learned Logo and Basic at a local store that sold Apple computers. It was called "The Logical Choice" and had a classroom tucked away behind a false wall and an English Sheep dog "Sir Isaac Newton" that would hang around the store!

Nice, I just found a story on the store, page 5 of [1].

[1] https://mirrors.apple2.org.za/ftp.apple.asimov.net/documenta...

Comment by mschaef 1 day ago

Back in 1983, my elementary school was a part of a Logo pilot program. We had a lab of Commodore 64's that I had free run of (my mom was a teacher there), and it's why I do what I do all these years later.

What I find interesting it that it's not just programming, specifically. Logo is a highly interactive and dynamic language (a relative of Lisp), and that influenced the way I think about writing code. Seymour Papert did a lot for me, albeit highly indirectly.

https://mschaef.com/c64

Comment by r2ob 1 day ago

Logo was my first contact with computer (pc 386)

Comment by msarnoff 21 hours ago

LCSI LogoWriter for 68k Macs[0] was my shit. It was my first[1] introduction to programming in elementary school and I spent hours trying to make games with it. There were 4 turtles and you could treat them like sprites; you give them custom shapes and colours, and there were basic collision detection primitives. You could also check for collisions with the background by querying the colour under a turtle. You could play and record your own sounds... spent so much time with that little round Apple microphone[2] recording goofy sound effects.

[0] https://www.macintoshrepository.org/6717-logo-writer-2-0

[1] technically I had used the Apple II version a couple times first

[2] https://applerescueofdenver.com/products-page/macintosh-to-p...

Comment by yangosoft 6 hours ago

I couldn't be more grateful to my public school and my teacher for teaching us Logo in computer class on 486s.

For many of us, it was our first encounter with programming.

Comment by corysama 1 day ago

Logo was my introduction to programming. Working on a 1 MHz Commodore64, my masterpiece was a fireworks show that was animated by the fact that the individual drawing commands were so slow you could watch them play out.

So, draw a curve from the ground to the sky. Draw some explosion shape. Change pen color to the sky color. Draw the curve and the explosion again to erase them. Change pen color and start the next firework.

Comment by zorobo 18 hours ago

My favorite logo on macOS is https://www.alancsmith.co.uk/logo/ First dabbled with logo on my apple ][, attracted by turtle graphics like many others.

Comment by consumer451 1 day ago

Anyone here remember a 1980's Logo-programmable robot that I once used in a TAG program? It had a pen, we would lay it on top of a giant sheet of paper.

It was like a little futuristic tank. I searched for a minute, and I cannot find the exact model. Did I imagine this?

Comment by jamessb 23 hours ago

It was probably one of the Turtle robots or a derivative of them: https://en.wikipedia.org/wiki/Turtle_(robot)

One later variant is the Valiant Roamer https://www.computinghistory.org.uk/det/30545/Valiant-Roamer...

Comment by richstokes 13 hours ago

We had the Roamer, British school, very early 90's.

I remember programming a logo/turtle type thing on the BBC Micro, and then I think there was a way to copy the program on to the Roamer directly from the BBC. Or maybe we did it manually. But it was amazing to me, and I always felt sad we didnt use it more!

Comment by dekhn 23 hours ago

Yes, I remember. See anything familiar on https://www.weeklyrobotics.com/articles/2023_01_25_the_histo...

Comment by criddell 23 hours ago

Did it look like this:

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

Doesn't have a pen, but maybe it was a modified version of that toy?

Comment by consumer451 23 hours ago

YES! This was exactly it. Thank you.

It seems my pen memory came from a different logo-driven bot. In-fact, the Big Trak was not even Logo-driven, but had a similar command system.

I appear to have combined childhood recollections, but that was the shape I was "remembering." No wonder, just look at that thing! lol

Comment by bitwize 10 hours ago

The on-screen "turtle" made famous by microcomputer Logos was originally just such a robot: a wheeled dome with a pen inside that you could program by giving commands written in Logo. Papert reasoned that you could get kids interested in programming by teaching them to use programs as a tool for something with which they are already familiar (drawing). The real turtles were expensive to procure in the 1960s and 1970s, so by the time the 80s came around and 8-bitters were becoming more affordable for homes and schools, the screen turtle was conceived as a substitute.

Comment by dofm 22 hours ago

Logo is a real surprise if you revisit it as a grown professional. Remarkably elegant language.

Comment by thought_alarm 1 day ago

This on-line version of Logo is pretty great: https://www.calormen.com/jslogo/

Comment by TheSkyHasEyes 23 hours ago

hide turtle

> Don't know how to HIDE

:(

Comment by thought_alarm 23 hours ago

Try hideturtle or ht.

Comment by Duanemclemore 1 day ago

When I was seven I wrote my first program. It was in Terrapin Logo and evenly tiled the monitor of my elementary school's Apple IIe with hexagons.

It's been all downhill since.

Comment by jasperry 22 hours ago

Very similar to my story. Sometimes I feel sad that I'll never know who was the enlightened administrator in my humble district who somehow got my elementary school an Apple computer lab with Logo in 1983, and that they'll never know what an impact it made on my life.

Comment by genxy 8 hours ago

Same here, we had two rooms that had 20+ Apple II computers, each student could use their own machine all to themselves. And our district was not rich, it must have cost more than 150k in today dollars.

Comment by JSR_FDED 1 day ago

Turtles all the way down?

Comment by SP3269 11 hours ago

Few years ago I became interested in modelling complex societal and economic processes. That led me to discovering NetLogo, a multiagent-based programming and modelling environment derived from Logo. Can recommend! https://en.wikipedia.org/wiki/NetLogo

Comment by genxy 9 hours ago

There is a wonderful offshoot of Logo for Agent Based Modeling https://www.netlogo.org/ where one can conduct all sorts of simulations involving many thousands of agents.

Comment by kccqzy 22 hours ago

As a child, I really enjoyed Logo. It appeared as a sidebar on a math textbook about angles and line segments. I studied it like I studied everything else in the textbook, but I didn’t immediately realize it was a programming language, a means to control a computer. Fast forward a few years in elementary school, when the teacher actually began to teach Logo with all students in front of a computer, it was such a profound revelation for me.

During the second Logo class, the teacher set up a competition. A prize was to be given to the student who could first plot an equilateral triangle, a square, a regular pentagon, a regular hexagon, etc, up to a regular icosagon. I won the prize because I wrote formulas to make the computer do the angle computation. I was so so proud of myself compared to my classmates who were computing angles with pen and paper. It felt like the first inkling of the power of automation.

Comment by nsoldiac 23 hours ago

They taught us Logo at school in the early 90s in Lima, Peru. I'll never forget the aha moment of going from "forward 10, left 90" to "repeat 360 [forward 1 right 1]" and bam a circle! They had us bring a formatted 5in floppy disk (they were indeed floppy) to our first class; what was this sorcery?

Comment by BrandiATMuhkuh 7 hours ago

During my PhD I used a agent based simulator called https://www.netlogo.org

Logo was just perfect for thinking in Agents

Comment by logoturtle 8 hours ago

I learned a little bit of logo, when I joined our school's computer club in 4th grade. A few years later, when I got my first own computer I was sad that it didn't have logo on it and no one I knew knew what logo was, let alone where to get it. So instead I turned to QBasic and other Basic dialects. I only got hold of a working logo much later again. I sometimes wonder what impact an earlier prolonged exposure to a lisp-like language would have had on my later programming career.

Comment by wooperville 1 day ago

The majority of GenX programmers I know learned logo in the 70s and early 80s. Such a great introductory language.

Comment by joeypickles 1 day ago

Yeah, somehow I owe my entire software engineering career to that flower and garden program example. There was something about being able to add new words based on primitives, and new words based on custom words, that captured me for good.

Comment by countrymile 23 hours ago

I'm currently writing a history of this. What year in the 70s? I've struggled to find widespread logo use before the end of the 1970s.

Comment by timbit42 18 hours ago

I have a list of about 32 8-bit Logo implementations and the earliest is 1981 (Krell's and Terrapin on the Apple II). The latest is 1986 (Logotron on the BBC Micro). There were also 16-bit versions for DOS. After that there were other 16-bit implementations like Amiga Logo. Before that I think it was on mini-computers.

Comment by DonHopkins 10 hours ago

Check out Cynthia Solomon's underappreciated treasure trove of videos about Logo, including Seymour Papert, Marvin Minsky, Margaret Minsky, David Levitt, and others:

https://www.youtube.com/@cynthiaso/videos

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

DonHopkins on May 5, 2024 | parent | context | favorite | on: Atari's Mike Jang

I vividly remember once visiting Atari Cambridge Research Labs with my friend Devon, and seeing a Star Wars cabinet with a huge bus of ribbon cables coming out of it and going to a Lisp Machine.

It left a huge indelible impression on me (as a committed “Star Wars Freak” who collected all the trading cards in elementary school and can still perform a great Chewbacca impression), although I never got to actually play that.

I did later have the console version of Star Wars in my garage in Mountain View though, but never owned a cabinet like the one at Atari Cambridge Research Labs, or a Lisp Machine to go with it!

I just found Bill St. Clair’s LinkedIn account and resume that mentions it:

https://www.linkedin.com/in/wwstc/details/experience/

  Lisp hacker, Atari Cambridge Research Lab
  1984 - 1984 · Less than a year
  Symbolics Lisp Machine code to use a Star Wars arcade game as a graphics output device,
  6805 code loader, 3D turtles, maze game (jsMaze.com was my second try at this).
https://web.archive.org/web/20160315014835/https://lisplog.o...

https://news.ycombinator.com/user?id=bill-stclair

https://billstclair.com/

That sounds like the most amazing job in the world! And it confirms that I was not just dreaming.

He also hacked lots of Lisp at places like Computer Interactive Services, Thinking Machines, Apple Computer, Digitool, Shaker Computer & Management Services, ITA Software, and Closure Associates.

Anybody remember what was up with that?

This document mentions lots of other cool stuff with Lisp Machines at Atari Cambridge Research Lab, but not the Star Wars machine:

https://tcm.computerhistory.org/CHMfiles/Atari%20Research%20...

But I can’t manage to find any more information about it.

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

DonHopkins on Jan 2, 2019 | parent | context | favorite | on: How Atari created the Star Wars arcade game (2017)

I saw an Atari Star Wars cockpit at Atari Cambridge Research Labs, with a huge mess of cables draping out of it, hooking it up to some other equipment.

Here are is a video playlist from Cynthia Solomon with demos of other cool stuff they did at Atari Cambridge Research, with Alan Kay, Margaret Minsky, David Levitt, Gumby, and other amazing people:

https://www.youtube.com/watch?v=CR2CwKculBU&list=PL850B65ECB...

https://groups.google.com/g/alt.games.video.classic/c/WQ62u7...

Don Hopkins, Dec 8, 1992, 6:23:20 AM

en...@cs.montana.edu (Jacob Cormier) writes:

>Hasn't anyone here played Star Wars, the arcade game?!? It's the best! If I ever see that at an arcade again, I will whip out my credit card and buy it on the spot! I had a version for my Commidor64, but it was garbage.

My housemate brought home a Star Wars machine one day, and it became an important part of our lives. A very well designed game! After you blow up the Death Star, there's just enough time for bong hit.

-Don

Richard Stueven, Dec 8, 1992, 10:31:28 PM

In (an earlier article), (someone) wrote (something like) "In Star Wars, after you blew up the Death Star, there was just enough time for a bong hit."

In article 75...@ultb.isc.rit.edu, tjg...@ritvax.isc.rit.edu () writes:

>What is the bong hit in Star Wars?

Heh, heh. :-)

gak

Richard Stueven g...@wrs.com attmail!gakhaus!gak 107/H/3&4

Comment by animateus 1 day ago

Oh my god - Logo, brings back memories of my childhood and my first "microcomputer": ZX Spectrum +. I spent countless hours trying to force the damn turtle to draw shapes I wanted it to. Unbelievable that this language is still alive.

Comment by fipar 1 day ago

Same for me but on the Spectrum's illegitimate South American cousin, the TK-90X :)

The language is still alive but I think Scratch has mostly taken its place.

Comment by timbit42 18 hours ago

Well, Scratch essentially is Logo, but with dragging bricks instead of typing.

Comment by Havoc 21 hours ago

Didn't notice it as a kid but Logo is an absolute masterpiece if you think about raw impact on the IT world.

70 comments here and they're basically all positive about Logo being formative

Comment by empressplay 1 hour ago

My partner and I develop a modern 3D web-based Logo called turtleSpaces. It has blocks and text, 2D and 3D physics engines and much (much) more...

https://turtlespaces.org

Comment by jhbadger 13 hours ago

Logo is a serious programming language. People maybe only know it as the thing to teach kids programming via turtle graphics, but people like Brian Harvey at Berkley have used it to teach functional programming rather than Lisp or Scheme.

Comment by vilius 19 hours ago

It’s 1998, I’m 10, it’s a gloomy autumn morning, in Klaipeda (pop. 200k), Lithuania, eastern Europe. I’m at school. Informatics class. Never touched a computer before.

The computer is running windows 95. The teacher starts Logo and I see that turtle in the middle of the screen. She explains how to make it move.

And I start typing my very first code.

It’s lisp based. Took me 28 years to learn that. Now I think I need to finish the job and pock up lisp.

Comment by stusmall 1 day ago

Logo started my love of programming. I will always be thankful for it and that little turtle. IIRC there was a limit of 128 stamps in LogoWriter and my sister and I would fight so much about it.

Comment by haunter 1 day ago

This has to be one of the most widely ported language of them all because there are countless implementations https://en.wikipedia.org/wiki/Logo_(programming_language)#Im...

310 versions!! https://pavel.it.fmi.uni-sofia.bg/logotree/pdf/LogoTree.pdf

Comment by IceCreamJonsey 18 hours ago

Comment by azhenley 1 day ago

I’d say Lisp, Logo, and Basic as the top 3.

How come no one makes dialects of PHP?? :)

Comment by BalinKing 21 hours ago

Comment by mbork_pl 22 hours ago

Actually, lisp and basic - logo is a dialect of lisp.

Comment by timbit42 18 hours ago

The fourth one is probably Forth.

Comment by mococa 1 day ago

I learned how to program (& do CAD) with LOGO when I was 8 y'old.

Comment by HexDecOctBin 1 day ago

I learnt that I must be good at computers when in 4th grade, despite never having touched a PC before, I not only managed to ace my Logo class but was asked by my teacher to help out other struggling students (I am just realising that essentially made me a TA in our class). I still remember trying to understand the Pen Up and Pen Down commands from a book with no immediate access to a PC to try them on.

Comment by Hobadee 16 hours ago

I'm not seeing any shout-outs to MSWLogo! I loved being able to create dialog boxes and UIs!

Also, The Great Logo Adventure is a great book for kids learning Logo. It's what I learned with, and it's available as a free PDF now!

Comment by timbert 23 hours ago

I have fond memories of using Logo on my dad's Apple ][ back in the 80's. Glad to see others feel the same!

Comment by 23 hours ago

Comment by JosephRedfern 18 hours ago

I had a great teacher in primary school who introduced us to programming with Logo. We ran a variant called MSWLogo - it was my gateway drug, and how I learned what "paisley" was. Good times!

Comment by 14 hours ago

Comment by maxrev17 19 hours ago

I used to get in trouble for making it play various noises of increasing hilarity via the inbuilt speaker . Always in bother but learned a lot and lots of fun!

Comment by tshapedrob 1 day ago

Berkeley Logo was one of my first programming languages. The idea of declaring functions with the keyword “to” still feels like a fun and good idea, even though of course it doesn’t matter. Just a different perspective.

Comment by derac 23 hours ago

One of the first interesting programs I made was LOGO in flash (actionscript) :D It's a great tool for learning basic programming since it's interactive, graphical, and simple.

Comment by mariasykk 22 hours ago

Logo is in my heart forever. The first PL I was introduced to and made me love programming for life. It was MSW Logo if I’m not mistaken and that turtle was a lot of fun.

Comment by konart 18 hours ago

Good old days in my school in Russia. Logo was the first programming language we've been taught back in the 90s.

Comment by Angostura 20 hours ago

There was an excellent fully featured version of Logo for the ZxSpectrum that got me hooked.

Came for the graphics, stayed for the recursion and string handling

Comment by whobre 1 day ago

Comment by 1 day ago

Comment by Imzadi72 22 hours ago

I'm not going to thrash my first programming language, but do "kids" nowadays start with Scratch or something like that?

Comment by timbit42 18 hours ago

Scratch is essentially Logo with draggable blocks instead of typing.

Comment by tialaramex 21 hours ago

I think a lot of children are shown Python or one of the Python-like languages.

Comment by juancn 1 day ago

Logo in Spanish in a C128 when I was in third grade started my journey in software.

After a while I was running laps around my teachers and I knew computers were for me.

Comment by invader 21 hours ago

I consider Logo an undeservedly forgotten technology that showed the world a glimpse of what computerized education really is, and Seymour Papert is a misunderstood genius ahead of his time.

The whole point was a very visual way of learning with immediate feedback, where you build stuff in order to understand it.

Papert based his own ideas of constructionism on children's cognitive development theories of Jean Piaget, a famous Swiss psychologist with whom he worked in the 50s - early 60s.

Logo pioneered a whole class of tools and languages built around constructivist ideas (e.g. Ozobot, Scratch, EToy, Processing, Design by Numbers...) and I hope these ideas will not be totally forgotten in the era of slop, when people prize ignorance and no longer seem to appreciate the concept of "build to understand".

Comment by 1 day ago

Comment by spike021 23 hours ago

Logo in either elementary or middle school in the early 00's was my first experience writing any code. Good times.

Comment by spdustin 14 hours ago

I have fond memories learning about Logo from Mr. Wizard!

Comment by 23 hours ago

Comment by lormayna 1 day ago

I remember one of my professor that created a map of all Italian regions in logo. It was probably 1992.

Comment by unlux 23 hours ago

this is so nostalgic. I remember going to my School's Computer Lab and trying to draw circles and then later some stars and stuff. so cool

Comment by mgkimsal 22 hours ago

Logo unit testing supports a mock turtle.

Comment by dr_kiszonka 22 hours ago

So I know a Lisp dialect? Fascinating.

Comment by timbit42 18 hours ago

The main difference is Logo has fixed arity and so doesn't need parens. Lisp has variable arity and so needs parens.

So in Lisp you can say:

> (+ 1 2 3)

and it will add all the numbers together. In Logo, you have to say:

> 1 + 2 + 3

Comment by larodi 22 hours ago

SVG paths are basically LOGO programs.

Comment by leni536 4 hours ago

SVG paths only update a position internal state as you add drawing primitives, logo also has heading. I think this is a significant difference.

Comment by DonHopkins 13 hours ago

Not exactly, but true insofar as SVG and PDF files are basically PostScript programs with the code and logic stripped out, and effective drawing commands left in (or "distilled out"), which is that they merely represent the graphical output, without the Turing complete programming language underneath. With all the loops unrolled and mathematical expressions, logic, and conditions evaluated.

Capturing the graphical output of a program (just drawing commands, or calls to any api surface like turtle graphics, or stencil/paint porter/duff renderinging API, i.e. PostScript => PDF, SVG, or HTML canvas 2d rendering context) is called "partial evaluation".

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

>In computing, partial evaluation is a technique for several different types of program optimization by specialization. The most straightforward application is to produce new programs that run faster than the originals while being guaranteed to behave in the same way.

Meta-circular evaluators are useful for partially evaluating programs, and fortunately they are easy to write in homoiconic languages like PostScript and Logo:

https://en.wikipedia.org/wiki/Meta-circular_evaluator

>In computing, a meta-circular evaluator (MCE) or meta-circular interpreter (MCI) is an interpreter which defines each feature of the interpreted language using a similar facility of the interpreter's host language. For example, interpreting a lambda application may be implemented using function application.[1] Meta-circular evaluation is most prominent in the context of Lisp.[1][2] A self-interpreter is a meta-circular interpreter where the interpreted language is nearly identical to the host language; the two terms are often used synonymously.[3]

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

>In computer programming, homoiconicity (from the Greek words homo- meaning "the same" and icon meaning "representation") is an informal property of some programming languages. A language is homoiconic if a program written in it can be manipulated as data using the language.[1] The program's internal representation can thus be inferred just by reading the program itself. This property is often summarized by saying that the language treats code as data. The informality of the property arises from the fact that, strictly, this applies to almost all programming languages. No consensus exists on a precise definition of the property.[2][3]

The Shape of PSIBER Space: PostScript Interactive Bug Eradication Routines — October 1989:

Printing Distilled PostScript:

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

The Metacircular Postscript Interpreter:

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

For example, partially evaluating ("distilling") this compact high level recursive data driven fractal PostScript pot leaf drawing program would expand it from one page of concise PS to many pages of repetivive low level PDF drawing commands.

https://donhopkins.com/home/archive/news-tape/pictures/leaf....

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

DonHopkins on March 2, 2020 | parent | context | favorite | on: Sun's NeWS was a mistake, as are all toolkit-in-se...

I wrote a metacircular evaluator, ps.ps, but I only used it in PSIBER for debugging (single stepping through code, which the normal PostScript interpreter didn't support directly, and also drawing visualizations of code execution). So the fact that it was slow wasn't really an issue, since it wasn't used in any speed critical situation.

https://www.donhopkins.com/home/code/ps.ps.txt

Nether GoodNeWS aka HyperNeWS aka HyperLook nor TNT (The NeWS Toolkit) used a metacircular evaluator themselves.

HyperLook could copy the image of windows to the clipboard as a PostScript drawing, but didn't need to use "PostScript capture" for that [below], because it represented drawings in its own format as a display list of PostScript data, that PostScript code interpreted to draw, and when you printed an image, it would just send a header with the drawing interpreter to the printer, followed by the drawing data and a call to the interpreter.

Maybe it was the speed of the structured drawing interpreter that people were complaining about. There is some overhead of course, but it's washed out by the fact that actually performing the drawing itself takes much more time than interpreting the data.

Or maybe you're thinking of "PostScript capture", which is effectively "partial evaluation" of arbitrary PostScript code, with respect to the imaging model (making paths, filling and stroking them, and rendering text)? You can efficiently implement PostScript capture without resorting to a metacircular evaluator, simply be redefining a few key operators like "fill", "stroke", "show", etc.

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

PostScript capture is the technique of executing some arbitrary PostScript code that produces a drawing (which could be a traditional document in a PostScript file meant for the printer, or even a window system object like a menu), and capturing the drawing commands as another PostScript program, without any computation, conditionals, and loops. It would capture the effects of the drawing commands as another simple, flat PostScript program with all the conditionals and loops unwound (so a small recursive drawing procedure would produce an enormous flat drawing file, but most normal documents would be optimized to be smaller and even print faster), in the same global coordinate system, with unnecessary graphics state changes removed.

That's the essence of Adobe Acrobat's "Distiller", or Glenn Reid's "PostScript Distillery". I wrote distill.ps "in the spirit of Glenn Reid's Distillery" for PSIBER, and the NeWS Toolkit had its own /capture method built in, but they weren't actually used for much besides making a few illustrations.

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

>Printing Distilled PostScript

>The data structure displays (including those of the Pseudo Scientific Visualizer, described below) can be printed on a PostScript printer by capturing the drawing commands in a file.

>Glenn Reid’s “Distillery” program is a PostScript optimizer, that executes a page description, and (in most cases) produces another smaller, more efficient PostScript program, that prints the same image. [Reid, The Distillery] The trick is to redefine the path consuming operators, like fill, stroke, and show, so they write out the path in device space, and incremental changes to the graphics state. Even though the program that computes the display may be quite complicated, the distilled graphical output is very simple and low level, with all the loops unrolled.

>The NeWS distillery uses the same basic technique as Glenn Reid’s Distillery, but it is much simpler, does not optimize as much, and is not as complete.

Here's more about the metacircular interpreter and distilled PostScript:

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

>What you've described sounds exactly like a PostScript interpreter! You can easily write a metacircular PostScript interpreter in PostScript!

http://www.donhopkins.com/home/psiber/cyber/ps.ps.txt

>And here is a PostScript quine:

    {{[ exch /dup load /exec load ] cvx} dup exec}
>If you wanted to produce "safe" PostScript file for printing, that used a standard header file and didn't require a Turing complete printer with loops, conditionals, functions, etc, you could write a partial evaluator for PostScript that projects it against the stencil-paint imaging model, optimizes the graphics, and prints out another "safe" PostScript program using a standard header, with all the loops unrolled and conditionals evaluated and functions called and graphics in the same coordinate system. That would enable you to capture anything you draw on the screen, independent of the PostScript algorithmic procedures and classes and libraries and application required to draw it.

http://www.donhopkins.com/home/psiber/cyber/distill.ps.txt

>Glenn Reid, who also wrote books on PostScript like Thinking in PostScript, pioneered that idea in his "PostScript Language Distillery", which is the idea that grew into PDF.

http://donhopkins.com/home/archive/postscript/newerstill.ps....

Glenn tells me that the PostScript distillery was actually John Warnock's idea!

Comment by agumonkey 1 day ago

iirc logo had lambda and recursion, which means a lot of kids in the 80s were that close to become lispers

Comment by Jtsummers 1 day ago

Logo was directly inspired by Lisp and the first implementation was even written in Lisp.

Comment by DonHopkins 14 hours ago

Here is the source code to LLogo in MACLISP, which I stashed from the MIT-AI ITS system. It's a fascinating historical document, 12,480 lines of beautiful practical lisp code, defining where the rubber meets the road, with drivers for hardware like pots, plotters, robotic turtles, TV turtles, graphical displays, XGP laser printers, music devices, and lots of other interesting code and comments.

https://donhopkins.com/home/archive/lisp/llogo.lisp

Comment by agumonkey 8 hours ago

Thanks a ton

Comment by mezzman 1 day ago

It's turtles all the way down

Comment by cdaringe 23 hours ago

I can’t read this website. The white text has insufficient contrast in the menus and the lightweight text is too thin!

Comment by DonHopkins 13 hours ago

Lars Brinkhoff suggests that this thread comp.lang.logo with Brian Harvey and Leigh Klotz is required reading:

https://escholarship.org/uc/item/1623m1p3

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

larsbrinkhoff on July 17, 2023 [–]

A list of all Logo memos, with links where I could find them.

https://github.com/pdp11/sits/wiki/List-of-Logo-memos

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

larsbrinkhoff on Sept 21, 2021 | next [–]

Your LLOGO copy was for an older version of Maclisp, but eventually we (Eric and I) managed to port it over to New IO. It works fine and displays on an emulated Knight TV. (Itself a tour de force in emulation: the TV PDP-11 code runs on an emulator sharing its Unibus with the PDP-10 emulator.)

We also have an early PDP-11 Logo, an even earlier BBN PDP-10 Logo, and a later Apple II Logo (not the Terrapin version). I also wrote an emulator for the General Turtle 2500 computer slash terminal.

DonHopkins on Sept 21, 2021 | parent | next [–]

Do you have the specs for the infamous military Terrapin Snapping Turtle proposed to the Department of Defense?

https://dl.acm.org/doi/10.1145/1056602.1056608

https://donhopkins.com/home/TurtlesAndDefense.pdf

>TURTLES AND DEFENSE

>Introduction

>At Terrapin, we feel that our two main products, the Terrapin Turtle ®, and the Terrapin Logo Language for the Apple II, bring together the fields of robotics and AI to provide hours of entertainment for the whole family. We are sure that an enlightened application of our products can uniquely impact the electronic battlefield of the future. [...]

>Guidance

>The Terrapin Turtle ®, like many missile systems in use today, is wire-guided. It has the wire-guided missile's robustness with respect to ECM, and, unlike beam-riding missiles, or most active-homing systems, it has no radar signature to invite enemy missiles to home in on it or its launch platform. However, the Turtle does not suffer from that bugaboo of wire-guided missiles, i.e., the lack of a fire-and-forget capability.

>Often ground troops are reluctant to use wire-guided antitank weapons because of the need for line-of-sight contact with the target until interception is accomplished. The Turtle requires no such human guidance; once the computer controlling it has been programmed, the Turtle performs its mission without the need of human intervention. Ground troops are left free to scramble for cover. [...]

>Because the Terrapin Turtle ® is computer-controlled, military data processing technicians can write arbitrarily baroque programs that will cause it to do pretty much unpredictable things. Even if an enemy had access to the programs that guided a Turtle Task Team ® , it is quite likely that they would find them impossible to understand, especially if they were written in ADA. In addition, with judicious use of the Turtle's touch sensors, one could, theoretically, program a large group of turtles to simulate Brownian motion. The enemy would hardly attempt to predict the paths of some 10,000 turtles bumping into each other more or less randomly on their way to performing their mission. Furthermore, we believe that the spectacle would have a demoralizing effect on enemy ground troops. [...]

>Munitions

>The Terrapin Turtle ® does not currently incorporate any munitions, but even civilian versions have a downward-defense capability. The Turtle can be programmed to attempt to run over enemy forces on recognizing them, and by raising and lowering its pen at about 10 cycles per second, puncture them to death.

>Turtles can easily be programmed to push objects in a preferred direction. Given this capability, one can easily envision a Turtle discreetly nudging a hand grenade into an enemy camp, and then accelerating quickly away. With the development of ever smaller fission devices, it does not seem unlikely that the Turtle could be used for delivery of tactical nuclear weapons. [...]

Comment by DonHopkins 14 hours ago

Logo Adventure for C64 Terrapin Logo

https://medium.com/@donhopkins/logo-adventure-for-c64-terrap...

>When I was 17, Terrapin published my first commercial code on their C64 Logo utilities disk: a Logo Adventure program, a simple non-graphical game that showed off Logo’s list processing and functional programming capabilities. [...]

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

Here is the source code to LLogo in MACLISP, which I stashed from the MIT-AI ITS system. It's a fascinating historical document, 12,480 lines of beautiful practical lisp code, defining where the rubber meets the road, with drivers for hardware like pots, plotters, robotic turtles, TV turtles, graphical displays, XGP laser printers, music devices, and lots of other interesting code and comments.

https://donhopkins.com/home/archive/lisp/llogo.lisp

Lars Brinkhoff got some of this code to run in MacLisp on an emulator! (I don't know how much of the historical hardware the emulator supports yet, but he's probably worked on some of that too. ;) )

https://github.com/PDP-10/its/issues/620

Thanks to Lars, here are two revisions of an AI Lab memo about LLOGO:

http://bitsavers.org/pdf/mit/ai/aim/AIM-307.pdf

http://bitsavers.org/pdf/mit/ai/aim/AIM-307a.pdf

And a Logo manual and glossary of PDP-11 Logo:

http://bitsavers.org/pdf/mit/ai/aim/AIM-313.pdf

http://bitsavers.org/pdf/mit/ai/aim/AIM-315.pdf

http://bitsavers.org/pdf/mit/ai/aim/AIM-315a.pdf

Comment by cmrdporcupine 23 hours ago

We used Logo on Apple IIs quite a bit in the 80s but I don't have fond memories because Logo is one of those things that at the time when using it one had no idea (and neither did the teachers teaching it) that there was something of much more substance behind it than just drawing lines and circles on the screen. Which was frankly kind of boring. We'd get as far as simple procedures but that's it.

There's a whole Lispy beauty behind the language that teachers didn't know how to transmit to the kids because they themselves didn't understand it. The emphasis on turtle graphics was limiting.

Comment by DonHopkins 13 hours ago

[dead]

Comment by arnavpraneet 21 hours ago

my first programming language!

Comment by dbg31415 23 hours ago

Logo was the first programming language I ever learned. I was in third grade in Seattle, Washington, around 1989, and I absolutely loved it. Looking back, not hard to see that it was responsible for sparking a lifelong love of technology and programming.

TThe only reason we got to learn it at all was because one of the daycare workers was a graduate student at the University of Washington. She somehow got permission for any of the kids who were interested to use the school's computer lab. Which, I think, took some doing on her part.

Back then, computers were treated like sacred objects. They made a huge deal about kids using them. The whole first week of the class was basically some grumpy old guy with a white beard telling us, "These are not toys! These are expensive machines!"

We had to wash our hands before we were allowed into the computer room. The old guy would literally "hand check" us at the door. You had to hold out your hands and show him that they were clean before you were allowed anywhere near the computers.

Logo was a lot of fun. We had a competition to see who could draw the coolest thing. Just like foundation for a "hackathon" really. Every day, "OK, Kids, you have 30 minutes, let's see what you can do!" Was a lot of fun.

I had to ask my mom for a floppy disk. "Mom, I need $5 for class supplies..." And then I had to explain that it was for a computer disk... and she had to call the school to make sure I was getting the right thing... even though I told her 100 times that I needed an un-formatted 5.25" disk! Ha.

Anyway good memories here. Logo and HyperCard were gateway drugs.

Comment by Towaway69 1 day ago

Not to be confused with NetLogo ;)

https://www.netlogo.org/

Comment by Night_Thastus 1 day ago

Are they totally unrelated?

Comment by Jtsummers 23 hours ago

NetLogo is its own language, but definitely inspired by and modeled on the original Logo (thus the name). But it has some differences in syntax and semantics, and is oriented toward agent based modeling (which also introduces some new syntax and semantics).

Comment by jedberg 21 hours ago

[dead]

Comment by the_homeless_go 1 day ago

[dead]

Comment by spider-mario 1 day ago

Could we please not make text light grey on white? It’s just barely AA compliant when bolded.

https://snook.ca/technical/colour_contrast/colour.html#fg=96...