[HN Gopher] Past and Future Turtles: The Evolution of the Logo P...
___________________________________________________________________
Past and Future Turtles: The Evolution of the Logo Programming
Language (Part 1)
Author : empressplay
Score : 111 points
Date : 2021-05-21 16:33 UTC (1 days ago)
(HTM) web link (turtlespaces.org)
(TXT) w3m dump (turtlespaces.org)
| empressplay wrote:
| Thanks to everyone who tried out turtleSpaces! While we're aware
| we're just one Logo in a vast lineage of Logos, we're passionate
| about helping to make Logo relevant again, if even just a little
| bit. So thank you.
| vincent-manis wrote:
| I was very involved with Logo back in the 1970s and 80s. I spent
| a fair bit of time at BBN working with Wally Feurzeig and crew,
| and ran a number of Logo workshops for teachers here in British
| Columbia.
|
| I finally gave up when I realized that most of the teachers I
| worked with saw the pretty pictures produced by the screen turtle
| as the goal, rather than the deep insights produced by the
| programming process. For them, Logo was never going to be
| anything more than an Etch-a-Sketch.
|
| _Sigh_
| empressplay wrote:
| It's definitely a tough one when thinking about marketing Logo,
| because the educators do need to be Logo-savvy for it to work
| in a classroom setting and it's hard to convince them to take
| the time to learn it properly themselves. That's why I think
| it's better to try to get contemporary Logo into code camps,
| because the facilitators are more motivated and have some
| enthusiasm for it. But we'll see :)
|
| Could you please e-mail me at melody at retrocoders.org ? I'd
| love to chat with you about BBN. We're in Victoria
| bitwize wrote:
| That's the problem with just about every well-meaning
| "computers in education" program, even more recent efforts
| like OLPC. The teachers have to understand the power of the
| machine and the insights and abstract critical thinking that
| can be taught through it. Most teachers are like the sort I
| grew up with: they would hold floppy disks by sticking their
| fingers through the hole in the middle. And they mishandled
| kids even more destructively, treating them like vessels into
| which it was their job to pour the curriculum.
| floren wrote:
| > they would hold floppy disks by sticking their fingers
| through the hole in the middle.
|
| I bet that's a habit from 45rpm records...
| vincent-manis wrote:
| Will do!
| retr0nerd wrote:
| I was introduced to LOGO sometime around 1981/82 while I was in
| elementary school. I loved it. My teacher was just as much of a
| nerd as I was, so we all learned it together. Had it not been
| for LOGO, I certainly wouldn't be the nerd I am today.
| soperj wrote:
| As a kid who grew up using logo in the 80s at school (Alberta
| though, not BC), it was the pictures that i could make that
| actually got me to do more than just the basics that the
| teacher had us go through. I ended up getting a CSC degree, in
| large part because of fun programming like that. So thank you
| for your effort regardless.
| megameter wrote:
| > pretty pictures produced by the screen turtle as the goal,
| rather than the deep insights
|
| I can't help but think "ah, like NFT art". Schools made and
| prepared us to do exactly this.
| jecel wrote:
| I worked on a Logo computer in 1983 but never launched it. Even
| so I tried to keep up with the Logo community over the years. I
| was very disappointed to see what schools did with Logo through
| the 1980s. To me it seemed that the worst problem was that the
| teachers were gatekeepers - if there was a book they were the
| ones who had it and they only passed a small fraction of that
| to the students. Every time I would see a school showing of
| their student's Logo projects I would see how many pages of the
| "Apple II Logo" book you would have to read to do that. It
| normally would be around the first 8 to 12 pages of the 280
| page book.
|
| The solution would be to put the book in the system. That is
| what Smalltalk-80 came close to offering. But 8 bit floppy-
| based computers were not up to that. Eventually the Internet
| would become a way around the gatekeepers, but by then the idea
| that Logo had failed had become widespread and we had to wait
| for Scratch to occupy (not very well) that space.
| andai wrote:
| Could you elaborate on the current situation? Did Logo do
| some things better than Scratch?
| jecel wrote:
| By "current situation" I mean that with larger disks and
| the Internet in the mid 1990s it was possible to package a
| system like Logo with a whole book and a nice library of
| examples. In the case of Scratch there was a shared website
| where students could post their projects and look at
| projects from all over the world. As Alan Kay would put it,
| being literate is not only being able to read and write but
| having access to literature.
|
| For some reason many people don't take Scratch seriously
| because of its visual nature. So they do a similar system
| where you can press a button and see your block as
| JavaScript text so you can know that you are doing "real
| programming". The real reason Scratch is limited is because
| it was created that way on purpose to make it easy to make
| simple games and animations. It could easily be expanded
| into a full programming language and the Snap! project at
| Berkeley did exactly that.
|
| https://snap.berkeley.edu/
|
| Logo was a full programming language from the start. Early
| versions didn't even have the famous turtle and focused on
| text applications. By the time of the 8 bit microcomputers
| it had become associated with the graphics (and so was used
| as the world's most awkward drawing program) and limited
| implementations. 64KB was a huge amount of memory for Basic
| or Forth, but only allowed the simplest Logo programs to
| fit and ran them very slowly. This made people think that
| Logo was just a toy (which was not true) like today they
| think Scratch is a toy (which is true, though not for the
| reasons they think).
| [deleted]
| pge wrote:
| I hear you, but I think it still worked. I was in elementery
| school in the 80s and learned logo (and had it at home on an
| Apple ][+). My teachers fit your description - they were most
| excited by the pictures we were able to make. None of them knew
| how to code. But that didn't keep the students from having the
| Aha! moments that logo provided, or from developing an
| understanding of key programming concepts. It was the
| interaction with logo that taught us, not what our teachers did
| or didn't explain to us.
| djrogers wrote:
| Thank you! I was one of the kids in school in BC whose life was
| likely changed by that.
|
| In spite of the feelings of the teachers, it worked. One day
| one of us (may be, maybe it was my friend Ronny, I dunno)
| figured out that we could open up a magic screen that let us
| type more than one command, and have them all executed when we
| were done. We were programming and didn't really know it!
|
| I realized years later that I'd learned programming from Logo,
| and look back on those days in the computer room with great
| fondness.
| soperj wrote:
| This is exactly me.
| xapata wrote:
| Don't despair. Even if the teachers thought they were just
| pictures, the students learned more. Logo was my first
| programming language.
| jedberg wrote:
| On any Mac from the last 15 years: $ python
| >>> from turtle import *
|
| You now have logo! You can do 'fd(100)' for example and it will
| pop up a window with the turtle.
|
| I plan to have my kids do this when they get a little older.
| [deleted]
| RodgerTheGreat wrote:
| Having access to a language with a turtle is nice, but Python
| really is not the same thing as Logo.
|
| Logo is a small, simple, and powerful language. It has simple
| syntax and a small number of concepts, making it easy to learn.
|
| Python is a large, hairy scripting language that is currently
| an in-vogue way to glue together performant C libraries and get
| work done. Python can be useful, but I do not think it is
| nearly as well suited to education as Logo is.
| xapata wrote:
| You misunderstood. You can provide the Logo experience with
| Python.
| RodgerTheGreat wrote:
| I understood. My point is that python does not provide the
| logo experience, just one small but particularly iconic
| portion thereof.
| xapata wrote:
| The syntax is slightly different, but it's similar
| enough, I think.
| HerrMonnezza wrote:
| The point is: Logo >> turtle graphics.
| akho wrote:
| Not really, no. You might not be able or willing
| (pedagogically) to get kids to the interesting bits, but
| traditional LOGOs (being ~ pre-Scheme LISPs) are
| dynamically scoped and have tail call optimization,
| neither of which would work in Python. The implications
| are that control structures are defined as simple
| procedures, there aren't really closures, ...
|
| You can probably reimplement much in Python, but at some
| point you will have to admit you've written a LOGO
| interpreter.
| xapata wrote:
| I'm not saying Python is a LISP, but it does have
| closures. I'm not sure why tail call optimization matters
| for teaching. This is beginning to sound like a Python
| bashing instead of a Logo praising.
|
| Anyway, I've taught with Python a fair amount and have
| been pleased with the results, especially when using the
| `turtle` module.
| RodgerTheGreat wrote:
| One of the advantages of TCE in Logo (in combination with
| turtle graphics) is that you can teach the concept of
| recursion in a gradual and intuitive manner. You can
| start with drawing a circle, using recursion to make an
| infinite loop, stopping it manually after a while:
| to circle fd 3 rt 7 circle
| end
|
| Add a parameter, and get a spiral. The turtle winds its
| way off the screen, and again the student can stop the
| program manually: to spiral :x
| fd :x rt 30 spiral (:x + 1) end
|
| Introduce a base-case, and now the program stops itself
| at a desired size: to spiral :x
| if (:x = 30) [ stop ] fd :x rt 30
| spiral (:x + 1) end
|
| Small, unsurprising steps building up an intuitive grasp
| of a useful concept.
|
| TCE can also improve the economy of the language,
| reducing the number of "primitive" control flow concepts
| that need to be provided out of the box. Since Logo has
| no "special forms" and is not eagerly evaluated like a
| Lisp, it's easy to make new control constructs without
| needing to teach any magic: to while
| :cond :proc unless run :cond [ stop ]
| run :proc while :cond :proc end
|
| Little things matter.
| xapata wrote:
| Turtle in Python would have the same flow of ideas up to
| the invention of new control flow, which I agree is cool.
| But that's why Python isn't a LISP.
|
| Yet, the creation of a "while" here isn't so different
| than making a new function which performs that logic. Was
| your example intended to demonstrate creating new syntax?
| RodgerTheGreat wrote:
| Yes, it's a do-while loop.
|
| It takes two arguments ("cond" and "proc") which would
| both be bracketed lists. "unless" is common sugar for a
| negated if statement. "run" evaluates a list as an
| expression. You'll notice that if/unless also take their
| bodies as lists, rather than any sort of special-purpose
| block syntax. "stop" short-circuits the current procedure
| and immediately returns.
|
| Since Logo has dynamic scope, any variable references in
| "cond" and "proc" will resolve the same within "while" as
| they did in its caller; no nasty visibility surprises.
| Since Logo does not eagerly evaluate lists, there is no
| need to "quote" or otherwise escape the lists in the
| caller's context. It is precisely that one can define
| such a construct _without_ defining new syntax per se
| that is useful.
| xapata wrote:
| > there is no need to "quote" or otherwise escape the
| lists in the caller's context.
|
| That's a handy feature. Thanks for the explanation.
| akho wrote:
| RodgerTheGreat explained everything very well.
|
| One extra note: LOGO does not have closures (closures
| require lexical scope). Dynamic scope gives the
| possibility to, e.g., define new control flow without
| quoting, but lexical closures are not possible.
| cies wrote:
| Indeed. Logo offers a great "my first programming steps"
| experience. Often translating the programming language
| (and syntax errors, etc) to the native language of the
| programmer.
|
| This is unmatched, and can never be matched, by Python.
| jedberg wrote:
| You don't need to know Python to use the turtle. Once you
| import the logo commands into the global namespace, you can
| just use the logo commands.
|
| You can certainly mix in Python if you want, but you don't
| have to.
| tannhaeuser wrote:
| Agree, but just wanted to point out that Python started life
| as _ABC_ , a language that, like Logo (and BASIC), was
| designed for teaching and prototyping.
|
| [1]: https://en.wikipedia.org/wiki/ABC_(programming_language)
| RodgerTheGreat wrote:
| For some time I have found it amusing that ABC's pilot
| studies were largely used as a justification for Python's
| significant whitespace, despite the fact that the ABC
| editor provided syntax-aware editing whereas Python was
| always composed with an ordinary text editor.
| somethoughts wrote:
| Somewhat similar but in the browser - which is useful if you
| are trying to teach a bunch of kids on a smorgasbord of Macs,
| Chromebooks, Windows machines.
|
| https://hourofpython.trinket.io/a-visual-introduction-to-pyt...
| zdiscov wrote:
| Even in this day and age, I was pleasantly surprised to find logo
| being taught in my kids school as one of the main subjects in
| elementary! Principal's eyes glistened with moisture when I
| complemented her on this! Apparently they receive a ton of flak
| each year from parents for not being in the know and teaching the
| latest/hottest/.. languages.
| turtlegeometry wrote:
| I just checked again, and thank God, it seems the book "Turtle
| Geometry: The Computer as a Medium for Exploring Mathematics" is
| in Open Access. No book has ever can come close to the
| magnificent exposition of geometry and programming you'll find in
| it : https://direct.mit.edu/books/book/4663/Turtle-GeometryThe-
| Co...
| empressplay wrote:
| Lots of great ideas in there! Thanks for the link!
| abecedarius wrote:
| This is a marvelous book coauthored by one of the SICP
| coauthors. In contrast to SICP its focus is on math more than
| programming, and it aims at exploring math more than covering a
| curriculum for a course.
|
| In Logo's heyday there were several other fine Logo books --
| like Brian Harvey's _Computer Science Logo Style_ , and one
| whose title I'm forgetting, by several authors, billing itself
| as for a particular Logo implementation but with lots of rather
| interesting projects like a basic proof assistant.
| djrogers wrote:
| I got my start with computers in 2nd or 3rd grade, in our
| elementary school computer lab filled with Commodore 64s running
| LOGO. I and one or two other kids would get to leave the class
| before 'computers' early to boot up each of the glowing boxes of
| power, feed them their floppy discs, and load LOGO on all of them
| before everyone else got there.
|
| As a reward, we'd sometimes get to spend our lunch hour with them
| unsupervised. This led to us learning basic, finding early
| demoscene-like animations (that someone got from a high schooler!
| wow!), and typing in programs from the backs of computer
| magazines.
|
| I'll never forget that feeling of discovery and control - it was
| so empowering to be able to make this box do _something_ that I
| created.
|
| Now I spend my days trying to thwart ransomware and cybercrime...
| sigh...
| cies wrote:
| I wrote a language similar to logo, with some of it's main
| features including the turtle:
|
| https://apps.kde.org/kturtle/
| andai wrote:
| Most impressive to me is that the turtle was originally an actual
| (robot) turtle. Even nowadays with all the fancy graphics, surely
| students would be much more excited about programming an _actual
| robot_ than a little triangle on the screen!
|
| And since we're still paying >$100 for 1990s tier graphing
| calculators (OK, I think they finally got color screens) it
| doesn't seem infeasible to give each student their own little
| robot to play around with?
|
| Also, can anyone confirm that the Turtle robot is from the
| _1940s?_ What 's the story behind that?
|
| Edit: Found it:
| https://en.wikipedia.org/wiki/William_Grey_Walter#Robots
| slacktide wrote:
| Gcode: Logo you can use to build stuff.
| BrandiATMuhkuh wrote:
| I used NetLogo white a bit. It used the logo language for agent
| based simulations. Pretty cool stuff
| https://ccl.northwestern.edu/netlogo/
| EL_Loco wrote:
| There is a company that makes a couple of hardware logo turtles.
| They've been at it for quite some time too:
| https://www.terrapinlogo.com/products/robots.html
|
| edit: there's also a very good three-book series for beginners
| called Computer Science Logo Style, by a UC Berkeley prof whose
| name I can't recall... Brian Harvey maybe?
| retr0nerd wrote:
| I started with their LOGO on Apple ][s back on the early 80s. I
| reached out to them a while back to let them know the impact
| they had on my career.
| aksss wrote:
| Recipe for growing a programmer: take one kid, add logo and
| legos.
| matthew_kuiash wrote:
| Logo was one of the 3 I first picked up on Assembler, BASIC and
| Logo. My first computers weren't capable of running LOGO (no
| real display). I didn't have a LOGO interpreter so I coded one
| in BASIC. By god it was slow. But I did pick up structured
| programming and it led me on to LISP (and
| SASL/CLU,Pascal,Modula 2). Somehow I still ended up using C/C++
| daily. I guess that's just how it goes. But LOGO was and is
| nice. It (almost) has what my dad calls IKR (Immediate
| Knowledge of Results) and if LOGO were to develop further it is
| exactly the area of realtime interactivity I think it should
| move. Great language with a lot of thought put into it but
| still very much a product of its era.
| pjmlp wrote:
| Or give them programming books with pictures nice for kids to
| follow up.
|
| https://spectrumcomputing.co.uk/list?genre=Book
| tartoran wrote:
| Logo was my second programming language after basic when I was
| around 9 years old. I did not have access to much lego in my
| country but agree that it is a very good way to stimulate young
| minds. My son's just 3yo and since he was about 2 we started
| playing with lego blocks, at the beginning large ones then
| moved onto regular legos. I am very reluctant to introduce him
| to the digital world and will delay that for as long as
| possible. Instead I will be buying phisical kits, puzzles and
| games for him and let him explore this way. Luckily he's not
| into action figures and weapon toys.
| daniellarusso wrote:
| My school started children in elementary and middle-school on
| Logo, then Pascal for high-school.
| aerospace_guy wrote:
| Same here but only in elementary school. At least back in 2004.
| We moved from Logo -> QBasic -> Visual Basic -> HTML -> Java ->
| C before graduating high school.
| okprod wrote:
| That's interesting; back when I was in high school I learned
| Logo, BASIC, then C++.
| tylerscott wrote:
| That was also my progression! The end of the road was the C++
| AP test my junior year of high school. I believe we were the
| last year of the C++ test with Java being used after that.
| Max_aaa wrote:
| We did this at school too.
| buescher wrote:
| I always thought Logo would be great for PHP-style web
| programming.
| notahacker wrote:
| Watching a website draw itself with a turtle would be quite an
| interesting transition effect too.
| mgkimsal wrote:
| Unit testing Logo involves a mock turtle.
|
| I'll be here all week, thank you.
| debo_ wrote:
| And you can run those tests from the shell...
| layer8 wrote:
| You probably can make software of unknown pedigree out of it.
| yumraj wrote:
| Is there a Logo based curriculum/problem-solution set that can be
| used to introduce young kids to programming?
| alexshendi wrote:
| See:
|
| 1. [http://people.eecs.berkeley.edu/~bh/v1-toc2.html]
|
| 2.[https://turtlespaces.org/books/]
|
| 1. may be too advanced for children...
| fabiensanglard wrote:
| I spent countless hours in French middle school, learning to move
| the tortue with Logo. We used MO5 in a nanoreseau.
|
| I liked it so much that I took extra course after hours to do
| more of it.
|
| This was thanks to French state
| "Plan_informatique_pour_tous"'plan
| (https://fr.wikipedia.org/wiki/Plan_informatique_pour_tous) which
| put a computer in every middle school of the country.
| RodgerTheGreat wrote:
| Logo is truly a delightful little functional language. I've
| written a few implementations over the years- this one is built
| in Forth, drawing from Apple ][ logo:
| http://johnearnest.github.io/Mako.js/?rom=Loko
|
| And another written in Java, as part of a more elaborate
| edutainment adventure game I still have in an unfinished state:
| https://github.com/JohnEarnest/MLogo
| empressplay wrote:
| Could you please elaborate on your game idea? I'm wanting to do
| something similar, but I haven't quite found anything that I'm
| happy with, and I'd love to hear what you had in mind, if you
| were willing to share...
| RodgerTheGreat wrote:
| I have a few recordings of the prototype here- under "All the
| Way Down": https://beyondloom.com/games/index.html
|
| If it really piques your curiosity, I might be able to dig up
| the demo build I distributed to a few colleagues.
|
| Oh, and another feature that isn't really shown off there is
| the manual- all of the examples can copied into an editor
| buffer and then tinkered with directly at the REPL:
| https://i.imgur.com/CwCaLY5.gif
| lmm wrote:
| It feels very un-functional to me - the turtle is extremely
| stateful.
___________________________________________________________________
(page generated 2021-05-22 23:02 UTC)