NeverBlender saga continueth! Today I learned that Blender in Windows indeed does support some sort of sys.path. Kind of lame sys.path but I can throw stuff in it. Just not do sys.path.append() and I'll be just fine.
So I proceeded to split up some of the code to modules. I originally wanted to keep all of the code in single file that can be easily opened in Blender and run, but it's not significantly harder to do things this way, I suppose, and writing other scripts may be easier also this way.
Following is yet another stupid language rant. Just ignore it, please.
I keep hearing "Perl is ugly and Python is clean and nice" all the time. Today, I've easily started to react to statements like that with disgust.
First of all, conventions. "Perl's sigils are ugly. So, Python uses no sigils." Yet, it's recommended to start private object variables with underscores. Underscores, people. Not just any sigil but the most ugliest and unreadable sigil imaginable.
Ages ago when I was learning C coding I read, from the guidebook, that "your #defines should not start with underscores because the library uses names like that." Me, in my youthful ignorance, said "oh, can I use two underscores? Bet that won't conflict!" Nope, it didn't - but it was horrible to read. And Python wants me to use that sort of stuff to name my constructors. def __init__(): print "Yuck."
"So," says Python, "are you ready to make your ugly Perl more beautiful?" Wait. Does Python do private instance variables? "Nnnno. It's just a convention that you name stuff this way. It doesn't enforce data hiding." Then it's just as ugly as Perl. "Eh, Yes." Well, at least I have 'self' reference and I don't need to pass references to the object to every damn one of my methods? "Er, no. First parameter is a reference to self."
Hrm, "no confusing 'bless' function, 'class' keyword defined instead" doesn't equate "more convenient OO than Perl"...
Now, I just need to figure out why the heck I spew out this same stupid tired rant every time I touch Python objects. =)
(Update, a little while later: Also discovered Python doesn't do method overloading. Bet my scream was heard back home, across the country.)