Alice is not, but will be in 2009/2010, a serious programming language -- by Dick Baldwin
This user comes from
Find other posts in the same category: | | |

Long description

By Dick Baldwin
What about Alice?

The latest released version of Alice is version 2.0. (Version 2.2 has been released in beta as of this writing.) Alice 3.0 is on the drawing board. I will divide this discussion between Alice 2.0 and Alice 3.0. (Alice 2.2 doesn't appear to be significantly different from 2.0 insofar as this discussion is concerned, so I will skip it altogether.)

Alice 2.0 is also fun and engaging

Alice 2.0 is a 3D programming language, which is also a lot of fun. However, it is more difficult to use than Scratch and may not be as much fun as Scratch. (Alice provides much less in the way of multimedia functionality than Scratch.) Alice 2.0 is much more powerful and more conventional than Scratch, but is still somewhat unconventional nonetheless.

Alice supports most fundamental programming concepts

Alice supports almost all of the fundamental programming concepts that I referred to earlier. I personally consider Alice 2.0 to be suitable for use in a first programming course for community-college students who don't have a strong programming background from high school. However, almost all of my colleagues in the computer science department in the college where I teach disagree with me on this.

A drag and drop programming interface

Both Alice 2.0 and Scratch use a drag and drop programming interface.Scratch programmers are totally insulated from anything resembling source code. Alice 2.0 students are required to create source code using the drag and drop interface, but they are not required to memorize syntax. My colleagues seem to uniformly agree that this is a major failing of Alice. Many Alice students simply don't learn syntax because they are not forced to do so. According to my colleagues, this places them at a disadvantage when they enroll in the next programming course in the computer science curriculum.

Alice 2.0 is also not a serious programming language

To compound matters, Alice 2.0 is also not a serious programming language. By this, I mean that no one is going to use Alice 2.0 for any serious programming projects. Even though Alice 2.0 was developed using Java, the underlying language is completely hidden in Alice 2.0. The bottom line is that Alice 2.0 is strictly for teaching.

A difficult transition is required

Alice 2.0 students must transition to a serious programming language such as Java, C#, or C++ if they are going to continue their computer programming education beyond the first semester. There is no smooth migration path from either Scratch or Alice 2.0 to a serious programming language. According to my colleagues, this is a major drawback of Alice 2.0. (I doubt that they would even be willing to discuss Scratch.) They believe that many students who successfully complete an introductory programming course using Alice 2.0 are still not prepared to make the transition into the next programming course in the computer science curriculum.

Alice 3.0 will be a serious programming language - Java

The folks at Carnegie Mellon University (CMU) are currently hard at work to solve most of the problems that I described above including a smooth migration path to a serious programming language. That solution will come in the form of Alice 3.0.

Alice 3.0 will make it relatively easy to develop 3D games and animations just like Alice 2.0, and will also provide a drag and drop programming interface. However, and this is extremely important, Alice 3.0 will also expose the full power of Java.

The programming interface will be optional

The programming interface that is used with Alice 3.0, whether it is drag and drop or text editor, will be optional. Students will be able to program in either or both ways. As I understand it, the Alice 3.0 interface will sit atop Eclipse, which is already a very popular professional Java IDE.

According to the folks at CMU, a capable programmer will be able to do anything with Alice 3.0 that can be done with Java. While Alice 2.0 is also a dead-end IDE (albeit much more powerful than Scratch), if the above statement holds true, there will be nothing dead end about Alice 3.0. With the full power of Java and a built-in Eclipse IDE, Alice 3.0 will be capable of carrying students all the way from introductory programming to professional employment.

Now for the bad news

That's the good news. The bad news is that the release schedule for Alice 3.0 continues to slip, and the latest estimate for release of a non-beta version is sometime around the fall of 2009.

To see articles on the same topic, click the links below the name of the author at the top of this page.