Page 80 - Raspberry Pi as a Foundation for Boosting Computer and Technology Literacy
P. 80
6 Programming on the Raspberry Pi
for implementing Raspberry Pi projects. Nevertheless, it comes pre-in-
stalled on the majority of Linux distributions, including the Raspberry
Pi OS. Being a high-level programming language, Perl is comparable
to Python in terms of runtime efficiency, memory consumption, and
development time (Prechelt 2000).
Similarly to Python, C, and C++, Perl has an extensive support of
libraries, an example being the aforementioned wiringPi. As a result,
the users can utilize Perl modules to interface with GPIO pins and,
therefore, with external hardware (Murray and Bertrand 2018, 29–43).
The language also provides modules that support inter-integrated cir-
cuit (I2C) and serial peripheral interface (SPI) communication, making
it possible to interact with a range of other devices via serial commu-
nication channels (Murray and Bertrand 2018, 46–59). Finally, Perl’s
modules make it simple to interact with other electronic boards, such
as Arduino (Murray and Bertrand 2018, 65–69), through the Firmata
(Mellis et al., n.d.) protocol, even enabling control over HTTP (Murray
and Bertrand 2018, 83–87).
Java
Java (Arnold, Gosling, and Holmes 2005) is another popular high-level
programming language that is pre-installed on the Raspberry Pi OS.
Nevertheless, this language is significantly centred around OOP and
is designed to be independent of any particular OS. As a result, any
software written in Java is extremely portable and can be executed
on any device with the Java runtime environment (JRE) installed. In
turn, the JRE encompasses the Java virtual machine (JVM), which
compiles the source code, and basic class libraries. On the other hand,
to not only run Java software but also to develop it, one would need
to install the Java development kit (JDK), which already includes the
aforementioned JRE (Flurry 2021, 44).
The Raspberry Pi OS already includes the JDK, along with two IDEs:
Greenfoot (Kölling 2015) and BlueJ (Barnes and Kolling 2016). Green-
foot, offers a graphical environment that enables users to visualize and
interact with the objects and classes they create using the built-in edi-
tor. On the other hand, BlueJ serves as another IDE specially designed
for students and teachers, aiming to simplify the learning and teach-
ing of Java’s OOP concepts. Nevertheless, Flurry (2021, 15–17) still
advocates for remote development, expressing concerns about perfor-
80