I need to learn to benefit from what I've already done. The last days I tried to make to most atomic interface for a linked list item structure I already did before. So I used this list item structure to make a typical linked list like I know them Purebasic or so, completely without any iterators (I think these mess up the code quite a bit) but internal selection pointer. Well, after I archieved this kind of list I noticed the substantial lack of not having multiple position to work with. I created a system to memorize whatever I want and even altered to an iterator-like system. Well, then the class was sooo big that I wasn't really able to remember all the pretty different functions I build. There are so many diffirent things that'd be "atomic" for a thing of such an "high level" as a linked list that it is almost impossible to include all of them without using iterators or millions of function names. So I almost got struck by lightning, remembering that my goal to create a more "all-in-one"-alike interface for this item class was simply the same as the item class. The only things it added were the length and pointers to the first/last entries for instant navigation. And these three features aren't usually useful to me. In essence, I simply don't them at all for most moments. And since my item class is designed to work as a self-managed list, I can simply add a little counter variable somewhere without any problems. *sigh*, I just don't get why I'm doing this allover again, everytime when I want to "improve" my existing things. I remember when I told myself to make a more comftable list. It was when I was coding this chess parser like a madman. I coded a special list class which, in essence, was only really necessary to count the added items and to merge two existing lists. But thinking about it, counting all elements was only necessary cause my fellow students didn't knew anything about templates or linked lists - so I had to convert to an array everytime. And merging these would've been - in case - much easierr than by using the start/end thing.

In the end it's everything just a question of how you arrange your alghorithms. I don't like make stuff for every case, it makes software complicated and inefficient. Why do we need more computation power for even the most simple programs? Good question, usually cause the software does things inefficient or with all these "modern" ways to program. Hey, I want to focus on development, not on learning those overly complex systems. Many people said to me that it is easier to use existing things, but I find it more complicated and less satisfying to use them. Plus, they won't work as quick as possible - they are for convenience, which is not my style and not the way I can think.

No comments: