Home » Posts tagged 'smalltalk'
Tag Archives: smalltalk
It’s been almost three years since a wrote a little blurb on an exciting application that allows learners to explore geometry. That application was Dr. Geo and its developers recently, and with much-deserved pride, announced the release of its latest version. With that in mind, I thought that maybe it was time to take an in-depth look at Dr. Geo.
Dr. Geo is an open source application that provides an engaging environment through which school-age learners may explore, and learn about, geometry. So, what can users do with Dr. Geo? Users have the opportunity to work with the building blocks of geometry, including points, line segments and rays. Users can create arcs, circles and polygons. Vectors can be used to accurately assign points. Virtually anything geometric in nature can be created.
What’s even more amazing is that Dr. Geo allows users to bring their creations to life through computer programming. The programming language used in Dr. Geo is the same one used to create Dr. Geo –Smalltalk. Some of my regular readers may remember a blog that I wrote a while back on Pharo, a computer programming environment. Pharo also uses Smalltalk. Smalltalk is an open source object-oriented programming language. This simply means that it focuses on objects and data rather than commands and logic. Portland State University computer science professor Harry H. Porter III (March 24, 2003) describes Smalltalk as “highly efficient, extremely portable, easy to use, and very reliable. But more importantly, Smalltalk is still the most enjoyable language in which to program.” What better tool to employ to introduce learners to computer programming?
As can be seen in the screenshots, Dr. Geo’s interface is very straightforward. All actions can be performed readily via a menu, a toolbar or tabs, all located at the top of the Dr. Geo window. This traditional interface certainly minimizes the learning curve. Even without having used the software, users can jump right in and begin creating. Functionality is also enhanced by tooltips, which provide a quick way to identify tools.
So, what are you waiting for? Your students’ potential as geometricians and computer programmers is waiting to be unleashed.
Dr. Geo is available for Linux, Microsoft Windows and Apple MacOS.
Fernandes. H. (2016). GNU Dr. Geo [computer software]. GNU and MIT General Public Licenses.
Porter III, H.P. (2003). Smalltalk: a white paper overview. Portland OR: Portland State University. Retrieved from http://web.cecs.pdx.edu/~harry/musings/SmalltalkOverview.html#Basic%20OOP%20Concepts%20and%20Terminology.
I’d like to focus on computer programming in this installment. Towards this end, I’d like to take a look at Pharo, a software development environment released under the MIT License (similar to GPL, see link below). Pharo provides a graphical way to utilize the Smalltalk programming language, the programming language used to write Dr. Geo, one of my favorite geometry exploration programs.
First of all, Pharo’s development team refers to Pharo as an “immersive programming environment.” What does this mean? Dictionary.com defines immersive as an adjective “noting or pertaining to digital technology or images that deeply involve one’s senses and may create an altered mental state.” Techopedia defines a programming environment as “a collection of procedures and tools for developing, testing and debugging an application or program.” Another name for such an environment is Integrated Development Environment or IDE. What this means is that Pharo provides a graphical interface for Smalltalk that is so intuitive, full-featured and graceful that it allows you to code without getting in the way.
Before I go further, I’d like to share a few things from Pharo’s mission statement. The Pharo team seeks to provide an accessible and innovative free, open source programming environment. These people strive to keep Pharo small, stable and equipped with excellent tools key for software development. Finally, Pharo seeks to foster a healthy ecosystem of contributors who strive to maintain and enhance this application.
Smalltalk is an object-oriented programming language, which, in layman’s terms means that it focuses more on objects and data rather than on commands, or actions, and logic. Keeping this in mind, Pharo is designed to be very straightforward to use and to provide prompt feedback. Pharo also includes an IDE (Integrated Development Environment), from which it draws its simplicity. Furthermore, Pharo offers a high level of diversity through a large library and a set of external applications. Pharo also includes strong support for business use in the form of organizations, such as the Pharo Industrial Consortium and an association of users, the Pharo Association.
I’d like to take a look at Pharo’s interface as this is key to Pharo’s ease of use. How often have you launched a new program with some trepidation, wondering with what will I be presented? How intuitive will the interface be? How long will it take me to figure out how to make this thing do what I need it to do? Arguably, Pharo’s interface, or lack thereof, is not just one of its strengths. It’s also aesthetically appealing. No need for a menu bar or tool bar, as Pharo relies on context-sensitive menus for its functionally. Simply click in the main window to open the World Menu, which is a general menu, from which you can select Workspace. A Workspace is like an artist’s sketchpad upon which you create your application. Once a Workspace has been opened, you can use contextual menus to perform desired tasks.
So, what’s the best thing about Pharo? It could be that it is free to download. It could be the number of free books about Pharo available online. It could also be the extensive support community. I leave it to you, the reader, to download and install Pharo. Then start using it and find out for yourself what you think is the best thing about Pharo.
Pharo is available for Microsoft Windows, Apple MacOS and GNU/Linux.
Thanks to the people at Pharo for permission to use their screenshots for this article.
Black, A.P., Ducasse, S., Nierstrasz, O., Pollet, D., Cassou, D. & Denker, M. (2009). Pharo by example. Switzerland: Square Bracket Associates. Retrieved http://pharobyexample.org/versions/PBE1-2009-10-28.pdf
Immersive. (n.d.). In Dictionary.com. Retrieved from http://dictionary.reference.com/browse/immersive?s=t
Pharo [computer software]. (n.d.). GNU General Public License.
programming environment. (n.d.). Techopedia. Retrieved from https://www.techopedia.com/definition/16376/development-environment