Quote:
Originally Posted by x2495iiii
Well, I suppose my take on it is that Alice will give you what you give it.
|
Since we're talking about a high level programming language here, I'm not sure that statement has any real meaning. You could say that about writing assembly perhaps, but higher level languages actually give you quite a bit more than you give them more or less by definition. Otherwise, no one would use them.
Quote:
Originally Posted by x2495iiii
When I first started using it, my goal was to write a game. I knew I'd have to WORK for it, that I'd have to learn the nuances of Alice, that I'd have to experiment and try different arrangements, see what tiles could fit in what slots and what each property controls, etc.
|
That's fine - that's what learning programming is all about - except it (real programming) is working with the syntax of a language rather than these ridiculous tiles.
Quote:
Originally Posted by x2495iiii
Now, I've written several games with this "unstable, unusable fake programming language",
|
I never called it "fake" - you guys made that up. I said it was, "not a real programming language" in the context being useful. There is a difference.
Quote:
Originally Posted by x2495iiii
What was your initial goal and expectation when you started using Alice?
|
I was expecting to get an easy A, and I got an easy A which took about five times the time and effort it should have due to bugs in Alice. What I'm disappointed about is how I think the course has effected other students in the class - especially those that had to drop - and with the oceans of time I've had to waste fiddling with the thing due to bugs in Alice itself rather than in my programs or designs. Not that my designs are always perfect. It makes perfect sense to spend all day trying to figure out why code I wrote isn't performing as specified. It makes no sense at all to constantly find multiple obvious bugs in the implementation I'm forced to use. (A bug or two on occasion is expected. This isn't.)
Quote:
Originally Posted by x2495iiii
Were you expecting something new, something that you'd have to take the time to learn, or were you expecting something identical to everything else you've used? Did you expect everything to be done for you, or did you expect bugs and workarounds?
|
When I start using a textbook to learn a programming language, yes, I do expect the implementation of the language I'm required to use to work for solving the problems given in the textbook. Just like when you open a math book, you expect not to be informed that 2 + 2 = 5.
Quote:
Originally Posted by x2495iiii
It sounds like you wanted a language that somehow made writing professional games and movies easier while not being different in any significant way from other languages.
|
Oh no. Not at all. I never said anything about professionalism in the end product. I think we're getting confused about the hierachy of issues here, which is why I said a list might be a good idea. Let me start one:
Problems with Alice 2.0 and 2.2 (from highest priority to lowest, assuming our goal is to teach students programming and good design principles)
1. Performance of the language doesn't match descriptions in the textbook. This teaches by example that it's OK to ignore technical standards - not OK.
2. The clipboard is broken. In 2009/2010, no one should be forced to work with an editor in which the clipboard doesn't work.
3. The GUI interface is prone to break down resulting in preventing the user from placing perfectly valid instructions in some places and also tends to create invalid tiles which can cause files to be unsavable and/or to not compile even when their appearance on screen is correct. These types of issues were reduced in some areas in Alice 2.2 but worsened in others. (such as the list/array editor) Introductory level programming students should never, ever have to deal with an issue of this type because programmers who work in established, productive languages haven't had to deal with issues of this type since at least the late 1980s.
4. The GUI'd interface is a fundamentally bad idea, as it fails to teach students how to type and how to remember syntax, both of which are essential in teaching students to be programmers. If we're dealing with grade school kids, this might make sense, but not in a high school or college level course, and the course I took was supposed to be college level.
5. In some situations involving changing the vehicle property in multiple objects at runtime, Alice gets confused about whether motion is occurring in the object editor or at runtime, which can result in motion that occurs at runtime spilling over into motion in the object editor. This particular issue did not confront very many students but is indefensible from a technical perspective because the difference between the process of writing code and the execution of code at runtime is one of the fundamental principles being taught by a programming course. It is an essential distinction for understanding what conventional programming is. (I understand there are some revolutionary languages in existence that break out of this distinction - no matter because most languages don't and Alice certainly isn't intended to. I would be very interested in seeing a program that uses this bug as a feature in order to get a program that can change itself - in fact that would be just about the only thing that would get me to download and install Alice 2 again at this point) Runtime should obviously be fully sandboxed from the object editor. The fact that it isn't makes me wonder whether there might be other security vulnerabilities which could allow someone to distribute malware as an Alice world. I'm not familiar enough with the Java platform to know whether this is possible or not, but in principle, if one part of the program can gain control over another part of the program where it shouldn't, who knows what other parts of the program it can gain control over?
6. Alice's "seconds" do not correspond either to real seconds or to any arbitrary but standard amount of time. They vary according to the processing power of individual machines, which can cause students programs to fail to perform the way they tested them (such as one I wrote) despite being implemented as "correctly" as the limitations of the language makes possible. This makes Alice useless as an animation tool. (Fixing this issue is not essential for teaching programming, as you can just tell students to write programs that don't depend on exact time or synchronization with audio)
7. The results of an Alice program can't be exported in any standardized, open and stand-alone format in a way that matches performance at runtime in Alice itself. This should be easy to fix, as there are a multitude of free software media encoding libraries that could be used. This is very important for using Alice as quick and easy animation software, but not absolutely essential for using Alice as a programming teaching tool.
8. There is no type casting in Alice. Real object oriented languages have type casting and students need to learn about it and how to do it and it is clearly appropriate at the level of programming which Alice is intended for.
5 out of the 8 issues I've brought up are essential and there are better alternatives out there that don't have problems in many of these areas. If I were a teacher, I wouldn't teach Alice unless all of the first 5 were fixed. As myself, I have no further use for the program unless all of the first 7 are fixed. They all ought to be fixed.
There may be other barriers between the current state of Alice and stability and usefulness, but these are just some that I personally have run into this semester.
Nowhere did I say I expect to be able to make professional Pixar quality animations or Playstation quality games in Alice. Hahahaha, the very idea is laughable - even if all of these issues were fixed, there's no way we could deliver that kind of power to novices, even in theory. That's not even a goal here. But I think being able to animate usefully
at all ought to be a goal in Alice 3 and would be a major motivator for students.
Quote:
Originally Posted by x2495iiii
I'll admit, I used to want something similar, but then I realized that the quality of the games you can produce with a language is inversely proportional to the ease of making that game in that language.
|
I can make much better games using real programming languages with much less effort. (not in 3D, but still better) I bet you could too.
Quote:
Originally Posted by x2495iiii
In short, to do what you want to in Alice, you have to first want to learn and have the patience to learn.
|
Oh, having patience to learn is one thing. But are the things being taught correct? In many cases, they aren't. That's what makes Alice 2 a bad choice as a teaching tool and why I think schools should never have started using it, shouldn't be using it now and shouldn't continue to use it. I hope Alice 3 will be better.