n multiple platforms. Again, we make no assumption about the underlying machine besides the presence of a relatively modern web browser. You can access ClubCompy on a machine running Microsoft Windows, Mac OS X, a free software system running the Linux kernel such as a GNU/Linux distribution or an Android smartphone, and even certain set top boxes and game consoles.
- We wanted a system with intrinsic graphics primitives. This justification follows one of our goals for teaching: students should be able to produce visual feedback within the first three minutes of exploring ClubCompy. Intrinsic primitives for drawing and sprite operations are easier to explain than the extension ecosystem necessary to import graphic primitives from a library.
- We wanted a system we could tweak and change for further didactic purposes. When we added the turtle graphics operations, we gleefully borrowed them from other languages we've used. The Logo programming language, created in 1967, eventually introduced the turtle first as a physical robot and then a cursor, and influenced multiple generations of didactic languages. We implemented our own version of BASIC, and in an already-fragmented world of many, many implementations and reinventions of BASIC question that. If we'd borrowed and reimplemented and then expanded Smalltalk, for example, we'd have had to do more work to understand and adhere to the core principles of the language. BASIC frees us for further expansion.
Even though the Tasty language of ClubCompy is an amalgamation of BASIC and Logo, there are no strict technical reasons why it must remain so. Nor do any technical reasons exist why the Tasty language must be the sole language of ClubCompy. We've designed our technology such that many languages are possible, such that we can create new languages and implementations with all of the capabilities of the Tasty platform with different syntaxes.
Why would we do this?
Just as BASIC makes introductory programming more obvious, Scheme makes function application and recursion more obvious, and Smalltalk makes message passing more obvious, the philosophy and syntax of a language influences the mindset of its programmers and the design of programs written in that language. Perhaps future ClubCompy lessons will require the design of new languages to expose didactic concepts in concrete and effective ways.
After all, our goal is to promote the understanding of computing and logical thinking and problem solving far more than the syntax or implementation of any one system.