Thursday, April 21, 2011

Premature optimization is the root of all evil

And optimization where it isn't needed, stinks.

While viewing response to someone asking why their code didn't work, someone responded noting "To save yourself some typing, when you have an expression in the form 'a = a-b', you can write it as 'a -= b'. In your code, it would mean that 'health=health-dmg' can be written as 'health-=dmg'."

I'm glad they took the time to respond and educate, but I can't quite help thinking that the idea expressed isn't natural and doesn't result in any real benefit to the compiled program and ultimately hinders understanding. Certainly not for the site where the question was posted, the developer was not experienced and was asking for help.

Do those of you who are experienced understand how this sort of thing puts some people off? Is it that you've forgotten what it is like to be honestly ignorant? Do you think it is really important to be aware of and use that specific expression?

The question was about understanding a concept, not about optimized semantic expression.

Those of gear wisdom please note: "dumbing down" is an intellectual challenge and opportunity for the teacher and mentor - not a reason to be critical of the student.

Friday, April 15, 2011

New Version of Blender3D is out!

There is a new version of Blender3D out.
"If you're used to the old Blenders, Blender 2.5 may seem quite different at first. Be prepared to read a bit about this, how to reconfigure things, and learn to use the new built-in 2.5 search functionality!"

Monday, April 11, 2011

Learning To Live Together

One of the things I've been noticing on my travels across the web is the number of different projects that have all had similar ideas and started their own projects.

I can certainly understand their desire to create something they are interested and share it with others. I have the urge to do the same thing, but instead of putting out code, my approach is one of planning before execution of code. What framework should I use? What balances out with the easiest thing for me personally to implement? What is the learning curve and how long will it take me? Which technologies are most likely to be used by anyone else I might contact? What do I not know that will reduce my chances to produce a workable product?

The primary goal I'd like to already have addressed is that the work could be easily leveraged by another project. I think having many people being able to have their own projects and ideas is a wonderful, varied thing, that should be encouraged. However I am very much aware that most projects don't survive on just the enthusiasm of the core developers. Having code that is freely available to be leveraged by others is needed to help create more chances, more projects, to allow new creativity to fold back into other projects.

So I've added that to one of the goals to address by my project. I am looking to find tools to help separate functions from code, and document and communicate those functions in ways that other ciders and projects can isolate a specific function or feature and then get to the specific code.