In this lightning talk presented at Ruby Unconf 2019, speaker Josef Liška introduces the implementation of a programming language called 'Josef' in Ruby, highlighting its educational roots. He connects this new language with Karel, an older educational programming language designed to teach children how to code. Josef shares insights into the interactive tools he uses for workshops, emphasizing Etherpad for collaborative coding sessions.
Key points discussed include:
- Introduction of Etherpad: A tool for interactive workshops, allowing participants to collaborate in real-time.
- Background on Czech Writers: Josef draws connections between programming and literature, mentioning the Epic Brothers, Karel and Josef Čapek, and the origin of the word 'robot'.
- Educational Programming Language (Karel): Karel is an accessible language for children, enabling them to control a robot using basic commands. Its simplicity is compared to Logo, which also uses turtle graphics.
- New Implementation in Ruby: A new version of Karel, written by a friend from the Prague Ruby community, is more readable and forms the basis for a JavaScript engine running in web browsers. Although Josef was unable to demonstrate this live, he provided a screenshot showcasing commands in Czech for simple robot movements.
- Personal Anecdotes: As a father of two, Josef shares his experiences with his children during summer camps focused on the elements of nature. He discusses their ongoing project of building a low-cost tank that embodies these elements, mentioning coding APIs for movement functionality.
- Call for Collaboration: Josef invites interested individuals to collaborate on connecting the Josef robot with hardware, noting a giveaway for the constructed tank unit to an interested participant.
The talk highlights the intersection of coding, education, and family activities, promoting collaboration and interactive learning. Josef emphasizes engagement in programming as a fun and accessible way to introduce both children and adults to the world of coding.