FAQ: Exactly what is the difference between Catrobat and Pocket Code?

105 views
Skip to first unread message

Wolfgang Slany

unread,
Jan 24, 2016, 4:31:23 PM1/24/16
to catrobat
  • Exactly what is the difference between Catrobat and Pocket Code?
 
"Pocket Code" is the public name of an IDE+interpreter for the "Catrobat programming language" that is being developed as one of several mobile apps and several Web based systems as part of the overall "Catrobat umbrella project". 

Compare this to the Apache umbrella project, where "Apache" is reused also in the name of the Apache Web server (one of several subprojects of the Apache umbrella project). 

The reason we differentiate between the name for the Pocket Code IDE+interpreter and the Catrobat programming language is because there are several IDE+interpreters for the same Catrobat programming language that are being developed. I will explain this in more detail further below, in the paragraph right before your next question.  

Observe that using different names for our IDEs, our interpreters, and the Catrobat programming language, is similar to gcc being one of several compilers for the C programming language, or Android Studio being one of several IDEs for Java. 

Another app that has already been released by the Catrobat umbrella project is "Pocket Paint", which is both a companion app to Pocket Code as well as an independent graphics editor app, similar to Microsoft's Paint application. There are other mobile apps and also web based services that are being developed by the Catrobat umbrella project, some of them having already been released and others that have not yet been released, e.g., a converter from Scratch projects to Catrobat programs (still in beta as of January 2016), or a compiler that converts Catrobat programs into Android apks (already publicly available as a web service via our sharing platform). 

Another app that has been released by the Catrobat umbrella project already more than a year ago is the "Tic-Tac-Toe Master" app available on Google Play. It is a compiled apk of a Catrobat program with the same name. It has been downloaded by more than 64,000 users as of January 2016.

We try to encourage everyone (our users as well as members of the Catrobat team, and in texts in our software and documentation etc) to refer to programs created by users as "Catrobat programs" and not as "Catrobat projects", in order to differentiate the programs created by our users from our own (sub)projects, e.g., our Pocket Paint project. 

There is one more thing to note: We use "Pocket Code" as the public name of actually four different programs we develop for currently four mobile platforms, namely for Android, iOS, Windows Phone, as well as mobile Html5, all of these programs being natively developed by the Catrobat umbrella project. This means that their code bases are different internal subprojects implemented by partly different (but also partly overlapping) subteams of contributors to the Catrobat umbrella project. E.g., the Android version, internally named Catroid, is developed in Java and partly in C, the iOS version, internally named Catty, in ObjectiveC and Swift, etc., with the same team members working on, e.g., the included tutorials, documentation, or translations but with separate groups of team members working on the code.

The reason for calling these, from a development point of view, four different programs all "Pocket Code" is that kids do not have to worry about what platform their friends use when they want to share their programs with them, or when kids want to work cooperatively with their friends and/or classmates on one joint programming project. This is similar to, e.g., WhatsApp that is called by the same name on all platforms, even though internally they are most likely different natively developed subprojects that may each have their own internal name and probably have different teams of developers working on them. We want to encourage cooperation among kids by allowing them to easily merge their programs in an intuitive, simple way, functionally similar to how merging intelligently happens in version control systems such as svn or git, i.e., automatically interweaving the different code parts without duplicating the common parts (including global variables, broadcast messages etc). This merge function is publicly available in a first, limited way via the "merge" option in the menu that pops up when one long presses on the name of a local program in the current Android version of Pocket Code on Google Play. The next release candidate of the Android version, planned to be publicly released by February 2016, improves the merge functionality a lot compared to the older versions in terms of intelligence, by allowing the automatic merging of programs with the same objects, global variables, and broadcast messages, without duplicating them. 

Now, returning to the reason why we are developing several IDE+interpreters for the same Catrobat programming language: We are preparing a bunch of "flavors" of Pocket Code where the interpreter parts will be compatible with each other but where the overall apps focus on different aspects or are intended for different user groups. E.g., in the ongoing "No One Left Behind" (NOLB) project of the Horizon2020 programme that has been funded with 3.2 million Euro by European Commission, together with six European partner organizations we are developing a flavor intended for high schools that, among other things, will allow teachers to monitor the learning progress of their pupils, a functionality that will not be part of the normal "Pocket Code" app because of privacy concerns. The app corresponding to this NOLB flavor of Pocket Code will receive a new, different name, which has not yet been decided. Another flavor of Pocket Code that will get a different name will put its focus on Arduino: Even though the current version of Pocket Code already allows to interact with Arduino, and the interpreters of the two versions will remain 100% compatible with each other, the new version will have Arduino demo programs and tutorials included, will show Arduino projects first on the sharing platform, will have the Arduino bricks turned on in the settings by default, will have a description and images and a promo video on Google Play focussing on the Arduino functionality, will have an Arduino related App icon, etc. We also currently are working on a simpler version of Pocket Code that will focus on storytelling, which will only support a subset of the functionality of Pocket Code, and that version again will get a different name. Several more flavors are planned, e.g., a special version for Lego Mindstorms robots.

 -Wolfgang
Reply all
Reply to author
Forward
0 new messages