<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; color: rgb(0, 104, 28); font-weight: bold; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; ">Matthias Felleisen: </span>"<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">What do you mean with that? When I have students write large programs, my Racket programs are routinely a factor of 3 or more shorter than those of the best of my students (5Kloc in Racket vs 15Kloc in Java or C# or C++), tend to perform more tasks, and are more stable."</span><div>
<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><br></span></div><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">Reply: I apologize for not being more precise with my statement and what i meant was slightly different. Students, like myself, and especially those in the beginning of their programming career have challenges optimizing the code. So what most students would like to do (i have had to help many at my school with their code and have seen this directly) is actually write whatever they can to make the program work. For instance, they write a program with over 100 lines of code which actually only requires 50 lines of code. In both cases, the program works, although optimization is overlooked in the former case. Then realizing that their code is actually too long and too hard to work with, these same kids go back and edit their code, cutting down the number of lines in order to increase both optimization and ease of program growth.</span></div>
<div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><br></span></div><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><span class="Apple-style-span" style="color: rgb(0, 104, 28); font-weight: bold; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="color: rgb(80, 0, 80); font-weight: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; ">My statement: "it is important for students to be able to keep the code very neat."</span></span></span></div>
<div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><span class="Apple-style-span" style="color: rgb(0, 104, 28); font-weight: bold; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; ">Matthias Felleisen' Reply to the above statement: <span class="Apple-style-span" style="color: rgb(0, 0, 0); font-weight: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; ">That is true in all languages, period.</span></span></span></div>
<div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><span class="Apple-style-span" style="color: rgb(0, 104, 28); font-weight: bold; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-weight: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; "><br>
</span></span></span></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">Reply: I agree with Matthias in this case if one is not coding with universe/world teachpacks. The basic Racket including the gui components and the other basic components look very clean and easy to understand in a large program. Usually these codes, like Matthias said, can be put in sets maxing at 3 lines, and is very neat and easy to read to a third-party. However, in the case of universe/world teachpacks, where the use of states is a vital component, a set of code can get very long, especially if the program is very complex and contains multiple structures (in some cases structures inside structures inside structures) within the states. With that said, I was trying to emphasize that it may be harder to students to keep their code neater compared to some other languages which usually have code that rarely exceed 1 line.</span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">Example:</span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">Racket using the universe teachpack:</span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br>
</span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><div>(define (s-mouse-engine s x y event)</div><div> (cond</div><div> [(and </div>
<div> (and (> x 248) (< x 424)) </div><div> (and (> y 570) (< y 649)))</div><div> (make-S-STATE</div><div> (get-s-background s) ;;I have made methods here to reduce length, but other wise it would be longer.</div>
<div> (make-button</div><div> (s-mouse-engine-worker1 event "button-img")</div><div> (get-s-button-x s) ;;I have made methods here to reduce length, but other wise it would be longer.</div>
<div> (get-s-button-y s) ;;I have made methods here to reduce length, but other wise it would be longer.</div><div> (s-mouse-engine-worker1 event "button-initiate")))]</div><div>
<br></div></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">I hope I have clarified any of the questions and i will try to put a mock-up of what i am talking about in my previous comment.</span></font></div>
<div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">PS: I am sorry for my error in the statement about drracket compilation.</span></font></div>