Posts Tagged ‘JavaRoots’
[DevoxxBE2012] Back to the Future: Taking Arduino Back to Its Java Roots to Move Forward
James Caska, creator of VirtualBreadboard and Muvium, presented on revitalizing Arduino by reconnecting it to its Java origins. James, focused on bridging software and hardware, argued that Arduino’s evolution from Processing has led to fragmentation, and his Muvium V18’O plugin restores Java compatibility for enhanced development.
He traced Arduino’s lineage: from Processing (Java-based), forking to Wiring, then Arduino, and MPIDE. This divergence created “Not-Quite-Java” (NQJ), limiting features like objects and exceptions.
Muvium integrates an Ahead-Of-Time compiler, USB HID programmer, and emulator into Processing, supporting full Java. Benefits include ecosystem ties, teaching suitability, dynamic features, and emulation for testing.
James demonstrated installation, emulation of circuits, and code execution on emulated Arduino, showing seamless virtual-to-real transitions.
He emphasized Java’s advantages for complex projects, with threading and libraries expanding Arduino’s scope.
Historical Context and Evolution Challenges
James outlined Processing’s artistic roots, evolving to Wiring for hardware, then Arduino’s accessibility focus. Forks caused incompatibilities, straying from Java’s power.
Muvium reintroduces Java, compiling to bytecode for microcontrollers like PIC, with potential AVR/ARM ports.
Practical Demonstration and Features
In demos, James showed VBB emulating breadboards, integrating Muvium for Java coding. Features like garbage collection and inheritance simplify sharing.
Emulation tests code virtually, ideal for education and collaboration.
Future Expansions and Community Call
James discussed multicore support leveraging Java threads, and FPGA integrations for smaller footprints.
He invited contributions to Frappuccino libraries, broadening Arduino’s appeal to Java developers.
James’s talk positioned Muvium as a forward step, merging Arduino’s simplicity with Java’s robustness.