PDA

View Full Version : For those who throw stones at Alice ...


DickBaldwin
12-21-2007, 12:23 AM
For those who insist on throwing stones at Alice, my response is simply: Fine, go use Java 3D.

However, switching from Alice to Java 3D may require you to expend a little extra up-front study effort. For example, you may want to begin with the following tutorials:

Java 3D API
1540 (http://www.developer.com/java/other/article.php/3622246) Understanding Lighting in the Java 3D API
1541 (http://www.developer.com/java/article.php/3701536) Back to Basics in the Java 3D API
1542 (http://www.developer.com/java/article.php/3704116) Digging a Little Deeper into the Java 3D API
1544 (http://www.developer.com/java/data/article.php/3706721) Simple Animation with the Java 3D API
1546 (http://www.developer.com/java/other/article.php/3709341) Understanding the Alpha Time-Base Class in Java 3D
1548 (http://www.developer.com/java/other/article.php/3712226) Combining Rotation and Translation in Java 3d
1550 (http://www.developer.com/java/other/article.php/3714626) Understanding Transforms in Java 2D
1552 (http://www.developer.com/java/other/article.php/3717101) Understanding Transforms in Java 3D

Dick Baldwin
Free Alice tutorials: http://www.dickbaldwin.com/tocalice.htm
Free programming tutorials: http://www.dickbaldwin.com/toc.htm

RAGE
12-21-2007, 02:24 PM
For those who insist on throwing stones at Alice

:( Dude, I am so sorry I went all out like that. It's just that I have searched a lot for something like Alice, and when I found this program and something wrong happened... I guess I sort of just took it out on Alice and the crew.
So sorry:(

DrJim
12-23-2007, 06:10 PM
I certainly don't have the same experience that Dick has regarding Java 3D. However I would be very cautious doing any Java-based advanced graphics if I was planning to make money on it. I've been recently trying to get a Java-based program called Moviestorm ( http://www.moviestorm.co.uk/MSDB/HomePageServlet ) to run - unfortunately it seems to have the same memory demand/memory leak/garbage collection problems as Alice (and, for that matter, Open Office).

The Jave virtual machine concept is great as a teaching tool and maybe has great appeal in academia - but if I had to develop something right now I would, reluctantly, go with the .net framework - and to heck with the Mac and Gates-phobic Linux fanatics.

DickBaldwin
12-23-2007, 07:58 PM
However I would be very cautious doing any Java-based advanced graphics if I was planning to make money on it.

Alice is strictly a teaching tool. My emphasis wasn't on developing software for profit. That wouldn't be very feasible with Alice (but some folks do make a profit developing with Java). My emphasis was on learning how to program.

If someone doesn't like Alice as a teaching tool, they can simply roll up their sleeves, learn a great deal about real object oriented programming, and use Java 3D as a teaching tool.

(Actually, I was really being a little sarcastic and trying to make the Alice critics come to appreciate what Alice does has to offer as opposed to what it doesn't have to offer. Programming in Alice is extremely easy. Programming in Java 3D is extremely difficult.)

Dick Baldwin
Free Alice tutorials: http://www.dickbaldwin.com/tocalice.htm
Free programming tutorials: http://www.dickbaldwin.com/toc.htm

DrJim
12-28-2007, 04:38 PM
...Programming in Java 3D is extremely difficult.


Programming and making a profit is probably the most difficult of all :) - though I'm sure I don't have to tell you that.

tullygray
07-24-2008, 08:56 AM
I have to use Alice for the course I'm studying, and I cringed when I saw it used Java. I have a thing against Java :)

I do like the look of the program though unfortunately under linux 'click and drag' isn't working. That's probably a problem with my setup. Does it use GTK? It looks like it. My system isn't configured very well for GTK since I prefer QT and KDE.

I learned to program 3D graphics with openGL and C, using a cool little library called GLFW to do input and window handling. I would recommend going down this route if you are really serious about learning to program. Serious 3D programming is not for everyone!

DrJim
07-24-2008, 07:06 PM
with openGL and C

Using "Open GL and C" can be either a generic comment or an actual statement of fact. If the latter - please at least look at C++ or C#. OOP really does have a lot of advantages - I doubt any major programming project these days (unless maybe it was very data base intensive) would take another approach.

tullygray
07-27-2008, 03:17 AM
Yes I know. Now I do use C++ and I'd have to agree. I'm only using Alice 'cos my course requires it. Recently I found that java 1.6 on gentoo doesn't run Alice properly. However 1.4 seems fine. I got that tip from another linux based thread. :)

javajava
07-31-2008, 04:01 PM
I heard about Alice through a friend and also in Randy's lecture. I'm learing java right now and I thought it would be cool to download the software, so I did. The application is cool, don't get me wrong, and no offense to anyone that worked on it, especially Randy, but I'm not really seeing how you can learn to program, aside from the "methods" tab on the screen. Maybe it's just me, but idk.

DickBaldwin
07-31-2008, 09:27 PM
I heard about Alice through a friend and also in Randy's lecture. I'm learing java right now and I thought it would be cool to download the software, so I did. The application is cool, don't get me wrong, and no offense to anyone that worked on it, especially Randy, but I'm not really seeing how you can learn to program, aside from the "methods" tab on the screen. Maybe it's just me, but idk.
Replicate the Juggling Judy world at http://www.alice.org/community/showthread.php?t=1570 and the Alice War Zone video at http://www.youtube.com/watch?v=2WwQI7dPiAw without looking at the code and then tell me that you can't learn anything from Alice. Once you reach that level, I will put more stock in your opinion than I do at this point.

Dick Baldwin
Free Alice tutorials: http://www.dickbaldwin.com/tocalice.htm
Free Scratch tutorials: http://www.dickbaldwin.com/tocHomeSchool.htm
Free Java/C#, etc. tutorials: http://www.dickbaldwin.com/toc.htm

javajava
07-31-2008, 10:52 PM
Dude you didn't have to be a dick about it. And it's not my opinion. I really don't get how drag and drop teaches computer programming. Geeesh

DickBaldwin
08-01-2008, 07:57 AM
Dude you didn't have to be a dick about it. And it's not my opinion. I really don't get how drag and drop teaches computer programming. Geeesh
Drag and drop doesn't require you to memorize syntax. However, as most experienced programmers know, memorizing syntax and learning how to program are two entirely different things. For example, you can write a linked list with essentially the same properties in both Java and VB.net, but the syntax is considerably different between the two languages. It is the concept of the creation and use of the linked list that is important, not the syntax in which it is written.

You can animate a 3D object in Alice 2.0, Java3D, and assembler. However, it is much easier in Alice than in Java3D, not because of the presence of drag and drop, but because Alice has built-in 3D functionality. It is also easier in Java3D than in assembler because Java3D is a higher-level language.

You can create a 2D game using Java with a text editor or with Java using Greenfoot. However, it is easier using Greenfoot than simply using a text editor because Greenfoot has built-in 2D graphics capability. In the final analysis, however, they are both Java but you must understand much more about programming to do the job using a text editor.

You can create a Java GUI with event-driven programming using a text editor or using either Eclipse or NetBeans, but it is more difficult using a text editor because you have to understand more about what you are doing when you program Java using a text editor. As I recall, both Eclipse and NetBeans create skeleton code for you and provide code-completion capability, but a text editor does not.

I can't know for sure, but I strongly suspect that, essentially without your knowledge, your high school Java teacher allows you to use some kind of high-level Java IDE to make your Java programming easier than would be the case using a simple text editor. If you really want to understand Java programming, throw away the high-level IDE and learn to program event-driven GUI programs using a text editor or learn how to program 3D worlds using Java3D and a text editor.

There are many programming tools that are available ranging from Alice drag and drop at the very high end to assemblers at the very low end with several levels in between. The true sign of programming knowledge is recognizing the most appropriate tool for the programming task at hand.

Keep studying and someday you will understand what programming is all about.

Dick Baldwin
Free Alice tutorials: http://www.dickbaldwin.com/tocalice.htm
Free Scratch tutorials: http://www.dickbaldwin.com/tocHomeSchool.htm
Free Java/C#, etc. tutorials: http://www.dickbaldwin.com/toc.htm

sk8r4life1
08-01-2008, 01:28 PM
Well said :D

javajava
08-01-2008, 09:29 PM
Dude I totally understand and agree with what you're saying. It's just that as a high school student learning java I think a text editor would help me a lot with understanding the "theory" behind certain aspects of code. ABTW, I'm not taking a class, I'm partially teaching myself with some help from my dad, who is a programmer based oout of Silicon Valley, and he's not being all that easy on me.

lanceA
08-02-2008, 08:39 AM
I agree with the statement about learning the "theory" behind the code. Since you are teaching yourself to program you may wish to download an excellent, FREE tutorial manual for Alice:
http://www.dickbaldwin.com/tocalice.htm (http://www.dickbaldwin.com/tocalice.htm)

Several people have found this to be a great reference to understanding what is happening behind the scenes with the drag and drop tiles used in Alice.

Good luck,

DickBaldwin
08-02-2008, 02:42 PM
Dude I totally understand and agree with what you're saying. It's just that as a high school student learning java I think a text editor would help me a lot with understanding the "theory" behind certain aspects of code. ABTW, I'm not taking a class, I'm partially teaching myself with some help from my dad, who is a programmer based oout of Silicon Valley, and he's not being all that easy on me.

Well, I certainly don't want to discourage you from learning OOP in Java. Teaching Java/OOP to thousands of others is mainly how I have made a living for the past eleven years.

In my opinion, you are making the common mistake of confusing the memorization of syntax with learning how to program. Unfortunately, for most programming languages, you do have to memorize syntax in order to program in the language. However, the requirement to memorize syntax is simply a necessary evil of learning to program.

As an analogy, you have to learn how to spell and you must learn the rules of grammar to be able to write in the English language. However, knowing how to spell and knowing the rules of grammar doesn't mean that you will be able to write meaningful text. Spelling and grammar are simply necessary tools that make it possible to get text down on paper. Meaningful text requires you to think about what you are writing.

Many people, including myself believe that the requirement to memorize a new syntax in order to program in a different language detracts from instead of adding to the learning process. You don't learn "the theory behind certain aspects of code" by memorizing syntax. You learn the theory by thinking about what you are doing. Unfortunately, the requirement to contend with complex syntax issues is such a difficult and time-consuming task for many students (and professors as well in many cases) that they expend most of their thought processes trying to figure out why their program won't compile and have very little energy left to devote to thinking about what they are really doing.

That, in a nutshell, is the main premise behind Alice as well as many advanced IDEs that provide drag and drop GUI construction, automatic generation of skeleton code, code completion, etc. The first priority should be to think about what you are doing when you write an algorithm, not where the semicolons must be placed. The more the programmer can be relieved of the tedious details of writing source code in the proper syntax, the more mental capacity and energy they can devote to thinking about solving the problem at hand. Alice simply takes that concept to the extreme, totally eliminating the requirement to memorize syntax.

As a "self-proclaimed" expert in Java/OOP, I am very anxious to see what the folks at CMU will be able to come up with when they combine the drag and drop approach of Alice with the Eclipse IDE in the form of pure Java programming in Alice 3.0. If it works, I will certainly use it and encourage my students to use it as well.

And by the way, my name is not Dude. I consider that to be a very rude salutation.

Dick Baldwin
Free Alice tutorials: http://www.dickbaldwin.com/tocalice.htm
Free Scratch tutorials: http://www.dickbaldwin.com/tocHomeSchool.htm
Free Java/C#, etc. tutorials: http://www.dickbaldwin.com/toc.htm

DrJim
08-02-2008, 03:13 PM
As far as the text editor part of the discussion goes, you can use the "export code for printing" option under the file menu. Most text editors can edit the result and I find it much easier to get the overall feel of complex code that way.

Unfortunately you can't import code that way.

DickBaldwin
08-02-2008, 04:14 PM
As far as the text editor part of the discussion goes, you can use the "export code for printing" option under the file menu. Most text editors can edit the result and I find it much easier to get the overall feel of complex code that way.

Unfortunately you can't import code that way.

DrJim has a good point. If you want to produce source code listings of an Alice world, you can do so as he described above. You can even get it in something closely resembling Java source code if you set your preferences that way.

See http://www.dickbaldwin.com/alice/Alice0900.htm#Listing_1 for example.

Dick Baldwin
Free Alice tutorials: http://www.dickbaldwin.com/tocalice.htm
Free Scratch tutorials: http://www.dickbaldwin.com/tocHomeSchool.htm
Free Java/C#, etc. tutorials: http://www.dickbaldwin.com/toc.htm