Is there a todo list for 2022 ?

Issue #248 closed
Wenjie Wu created an issue

Just like https://bitbucket.org/john_maloney/smallvm/wiki/To Do List

If there is a todo list for 2022, people like me who love MicroBlocks would like to contribute to it !

Comments (15)

  1. John Maloney repo owner

    Thanks for your offer to help.

    We don’t have a feature ToDo list because our biggest job right now is not adding features, but to support and document the existing set of features. We’d like to get MicroBlocks out to learners and educators around the world, especially young beginners. You are alreadyhelping us do that – thank you!

    That said, there are always things to do, such as creating libraries to connect to new devices, as you’ve been doing. Thanks!

    You are obviously a skilled programmer. What programming languages do you feel most comfortable with? C/C++, Python, JavaScript, blocks languages? Do you like working at the hardware (e.g. I2C)? Which microcontrollers do you work with regularly? Knowing those things will help me understand what tasks would be a good fit for your skills.

  2. John Maloney repo owner

    Actually, if you know Javascript, you could help me figure out how to get Chinese input without having characters doubled. The relevant code is the event handling code in gpSupport.js. I’m looking for insights, not code. So far, I haven’t found a good article about handling input methods for Asian languages in the browser that helped.

  3. Wenjie Wu reporter

    Thank you for your patient reply and encouragement ! 

    I will try to figure out how to get Chinese input although my Javascript is just so so 🙂

    Maybe investigating the snap! approach is a good place to start:

  4. Wenjie Wu reporter

    What programming languages do you feel most comfortable with? C/C++, Python, JavaScript, blocks languages? Do you like working at the hardware (e.g. I2C)? Which microcontrollers do you work with regularly? Knowing those things will help me understand what tasks would be a good fit for your skills.

    I am happy to introduce my skills and interests to you in order to become more involved in MicroBlocks/GPblocks.

    My favorite programming languages are sorted as follows:

    • Squeak/Smalltalk
    • Scratch/Etoys/GPblocks/MicroBlocks (blocks languages)

      • I visited MIT Media Lab in 2019
    • LISP

    • Python(most experienced)
    • JavaScript

    Sort by experience:

    • Python
    • Scratch
    • JavaScript
    • Smalltalk/LISP
    • MicroBlocks

    Do you like working at the hardware

    I like to be a maker recently, so I'm happy to work on hardware. I would like to continue creating libraries for more peripherals(Shenzhen has an abundance of hardware).

    Which microcontrollers do you work with regularly?

    I use micro:bit and ESP32 most often, and I have experience with MicroPython/CircuitPython.

    By the way, I like GPblocks and would like to contribute on this project, but don't know how to start, I noticed(commits) that you seem to want to return to this project.

  5. Wenjie Wu reporter

    and I have experience with MicroPython/CircuitPython.

    I noticed that adafruit is leaving the arduino ecosystem and moving to the micropython ecosystem, what do you think about that?

    If you have plans to work on the micropython ecosystem, I'd love to participate!

  6. John Maloney repo owner

    I know Adafruit is embracing MicroPython via their own fork, CircuitPython. But I haven’t seen any evidence that they actually leaving the Arduino ecosystem, have you? I’d guess they’d support both ecosystems. The two ecosystems work well together since low-level code for MicroPython is written in Arduino C/C++.

    I like Python and MicroPython. MicroPython is actually similar to MicroBlocks in philosophy. It has a virtual machine and supports live coding and experimentation through the command line interface. As a user, I find MicroBlocks a more seamless experience, but MicroPython editors are getting better.

    Both systems used a simple interpreter to execute code on the microcontroller. Interestingly, I ran a simple benchmark – a loop that counted up to a million. I’m happy to say, that loop was faster in MicroBlocks than MicroPython. 🙂

    In another lifetime I might be working on MicroPython. It’s an interesting project. However, in this life, I’m passionate about helping beginners discover the fun of coding and making, and for that a blocks language is best. MicroBocks takes 100% of my time so there’s no time left to work on MicroPython.

  7. John Maloney repo owner

    Thanks for sharing your interests and coding experience. I think my list of favorite languages is almost an exact match to yours!

    We’re using GP to implement the MicroBlocks IDE. Over the past year, I re-wrote the graphics framework of GP to improve the UI speed in MicroBlocks. I might return to GP as it’s own project at some point but currently don’t have time. However, there are a few others who are experimenting with GP and I could put you in touch with them if you are interested.

  8. Wenjie Wu reporter

    In another lifetime I might be working on MicroPython. It’s an interesting project. However, in this life, I’m passionate about helping beginners discover the fun of coding and making, and for that a blocks language is best. MicroBocks takes 100% of my time so there’s no time left to work on MicroPython.

    Hi John, what you said hit me so hard, just as it did when I read Alan Kay's and Dan Ingalls' work before, it kept me up all night.

    Thank you great people for doing this work!

    I like microblocks much better than MicroPython. It is really great project.

    I previously thought it was possible to build microblocks VM with micropython (I don't like C/C++). But when I think about it, it doesn't seem possible(as you said: MicroPython is written in Arduino C/C++).

  9. Wenjie Wu reporter

    Thanks for sharing your interests and coding experience. I think my list of favorite languages is almost an exact match to yours!

    I am so happy to have similar taste with you :)

    However, there are a few others who are experimenting with GP and I could put you in touch with them if you are interested.

    Thanks, I want to follow your, I would like to continue working with you on MicroBlocks.

  10. John Maloney repo owner

    I previously thought it was possible to build microblocks VM with micropython (I don't like C/C++). But when I think about it, it doesn't seem possible(as you said: MicroPython is written in Arduino C/C++).

    Yeah, I’ve worked on a bunch of programming languages over the years. One typically uses a fast, lower-level language to implement a nicer higher-level language. The Self, Squeak, and Python virtual machines are written in C or C++ and a number of interesting languages are implement in Java. Parts of the COG VM for Squeak and Pharo are written in (or general) assembly code. Ditto for other JIT-based VM’s such as the original Self VM, Java VM’s, and Javascript implementations. Long ago, the PARC Smalltalk team wrote the Smalltalk VM in microcode for the Alto. (Microcode is even lower level than assembly code.)

    The motivation to use a lower level language as the implementation vehicle is performance. You can (and we did!) write a Smalltalk virtual machine in Smalltalk, but it runs much slower than the same virtual machine when translated to C and compiled.

    Personally, I like C (not C++) as a VM implementation language. It’s fast and low level enough that you have direct control over things like memory management and addressing, so you can build higher level memory abstractions like an object system. At the same time, it’s far more portable than assembly language. When we release the source code for Squeak, Ian Piumarta ported it to Linux in a week and Andreas Raab ported it to Windows a few weeks after that. At the time, Apple computers used 68K and PowerPC processors so the Linux and WIndows ports were on Intel, but the C code compiled and ran on all three architectures.

    I don’t love C as a language. There are million ways to make mistakes that totally crash and are hard to track down. I’ve gotten better at avoiding those mistakes but, even so, I sometimes lose hours or days looking for a stupid error in my C code. However, I’m willing to suffer those arrows in order to create a nicer language like Squeak Smalltalk, GP, or MicroBlocks.

  11. Wenjie Wu reporter

    Hi John, what you said hit me so hard → What you said touched me deeply !

    Sorry for my inappropriate English expressions. 😄

  12. Wenjie Wu reporter

    I’m willing to suffer those arrows in order to create a nicer language like Squeak Smalltalk, GP, or MicroBlocks.

    You, Alan Kay, Dan Ingalls and Bret Victor are my heroes !

    I've spent a lot of time over the past few years learning about your work, from Smalltalk72 to Squeak, from Self, Etoys, Croquet,Scratch to Lively, Dynamicland, MicroBlocks/GPblocks… and in the process of learning all of these, I've been deeply touched by you and your vision.

  13. John Maloney repo owner

    I was similarly inspired by Smalltalk and (although I didn’t realize it until I started working on Scratch) by the thinking of Seymour Papert and Cynthia Solomon. His short essay “The Gears of my Childhood” resonated strongly. The essay “Twenty Things to do with a Computer” is still inspiring today, 50 years after it was written.

  14. Wenjie Wu reporter

    His short essay “The Gears of my Childhood” resonated strongly.

    I first read the article in the foreword of his book 《Mindstorms》 (The book was translated into Chinese after 40 years of publication),also resonated strongly,It profoundly changed my view of computers.

    “Twenty Things to do with a Computer”

    I haven't read the article yet, thanks for mentioning it, I'll go read it right now!

  15. Log in to comment