GP is a free, general-purpose blocks language that is powerful yet easy to learn.
- generate high-quality graphics computationally
- manipulate images and sounds
- analyze text files or CSV data sets
- simulate physical, biological, or economic systems
- access the web and use cloud data
- connect to hardware via the serial port
- deploy projects on the web or as stand-alone apps
GP is an excellent vehicle for learning and teaching computer science. Blocks allow beginners to work with complete statements, expressions, and control structures, rather than individual characters, avoiding syntax errors and allowing the learner to focus on problem solving rather than mechanics. However, while GP is certainly welcoming to beginners, its flexibility and speed also allow it to be used to explore advanced computer science topics such as algorithms, data structures, media manipulation, object oriented programming, UI design, and data visualization.
GP is a natural next step for those who have used Scratch. It can be used to teach computer science in grades 6-12 or at the college level. Because it is so easy to learn, GP can also be used to add a hands-on computing component to courses in science, math, and the humanities without spending too much valuable class time teaching GP itself.
GP is also intended for anyone who wants to make their own app but is not fluent with the complex languages and tools designed for professional software developers. A single click exports a GP program as a stand-alone executable, and GP projects can be deployed on the web easily. While GP’s application-building facilities are still under development, this area holds great potential.
GP is extensible: experienced GP users can create and share extensions that add new blocks and facilities to GP. For example, a teacher might create a library of blocks for manipulating sound, including a live visualization of sound from the computer microphone, then share that extension with their students. GP extensions are written in the GP blocks language, so extension writers do not need to install or learn any other programming language.
In fact, most of the GP programming environment is written in GP itself. Using tools available in developer mode, such as the Class Browser, adventurous users can explore the code for the GP project editor, UI framework, graphics and sound subsystems, and task manager. Even low-level programming tools such as the debugger and profiler are written in GP.
GP grew out of experience with Scratch, a blocks-based visual programming language created at the MIT Media Lab and used by nearly twenty million children around the world. GP’s creator, John Maloney, was the lead developer for Scratch over its first eleven years and is incorporating lessons from Scratch into the design of GP.
GP also draws heavily on ideas from Squeak Smalltalk, Etoys, and Snap. That’s not surprising, since members of the GP team were deeply involved in creating all those systems.
GP is free and runs on most platforms, from laptop to tablet, including web browsers.