• Captain Aggravated@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 day ago

    TL;DR: The Arduino language is C++ with an automatically included library, but it’s descended from a Java project with an automatically included library.

    Processing is a graphics and art based graphics library/IDE that uses the Java programming language. It basically includes some classes and methods by default on top of Java that makes programming graphics and even simple games a bit more straightforward.

    Processing’s IDE was forked by the Wiring project for the purposes of microcontroller hardware programming. Because the Java Virtual Machine is a bit much to ask a 16MHz 8-bit AVR to run, they switched the language to C++ which compiles straight to machine code that runs on the bare metal. Again, it’s just C++ with a library included, under the hood it uses gcc to compile and avrdude to program the chip. I believe the IDE itself is still written in Java.

    Arduino took Wiring and painted it teal. They’ve extended it quite a bit since then but in the early days Arduino was really a hardware project. They’ve since added support for non-AVR boards to the Arduino IDE, including ARM-Cortex and ESP32 based boards.

    Raspberry Pi offers C and C++ SDKs and a MicroPython interpreter for the Pico series. Someone contributed support for RP2040 based boards to the Arduino IDE; I don’t believe that was done officially by either RPi or Arduino.

    • infinitesunrise@slrpnk.net
      link
      fedilink
      English
      arrow-up
      1
      ·
      24 hours ago

      TIL that Processing actually predates Arduino. All these years I thought that it was the other way around and that Processing was a fork of Arduino. Thanks for the history lesson!