Wednesday, February 01, 2006

Response to Tom

Thanks for pointing me at the auto-format. Any way I can blame this one on my students?

Your point about () for no-arg methods is sorta beside the... point. The real source of the problem is ambiguity that "obj.gizmo" could ever be a reference to a member variable. Processing should have (force?) implicit accessors ala' Ruby.

Processing does a bunch of little things to deemphasize stack traces: truncated traces, line numbers are mangled, no reference to tabs, no browsing based on the stack trace, etc. I say "deemphasize" instead of "buggy" because stack traces are such a fundamental part of debugging that I can't imagine these problems getting through — unless they're almost intentional?

I'm not going to submit Processing bugs to Bugzilla because I wouldn't do myself justice, and it would be flamebait: "1.) Replace Java with Ruby, 2.) Replace all custom GUI widgets with standard Win32 / Aqua / Qt toolkit components, 3.) Emulate all OpenGL functionality in P3D, 4.) Implement a comprehensive unit test suite so there are no steps backward on new releases," etc.

Processing is explicitly designed for doing computer graphics. Doing computer graphics in a development environment higher level than C/C++ over OpenGL or DirectX will compromise your performance. Thus if you program in Processing you already accept a compromise of weaker performance for higher level language constructs. So a Processing developer should have access to constructs like arbitrary-precision, ubiquitous floats.

Teaching architects and designers ubiquitous, arbitrary-precision floats is easy. It's the principle of least surprise; it's what people expect.

Maybe instead of your Processing sketch skeleton macro, just start with each of those functions as a tab in every project?

Positions and vectors are probably the same class (hierarchy). "...modeling a velocity vector and a spatial position with the same underlying data structure." It needs to be drilled because most students balked at a general Point class.

Scope and heaps are hard to teach. Their faces always glaze over when I talk about visibility and local-clobbering-global. Must more about this.

0 Comments:

Post a Comment

<< Home