After reading about god objects, I found code references to ravioli... and lasagna... and even... spaghetti with meatballs! Man... if I were a programmer... this would start making me really hungry! Who wrote these wiki references... an Italian chef?!? Hasta la pasta! :-D
-----Original Message----- From: Ryan Leavengood
Sent: Wednesday, March 13, 2013 4:26 PM To: Haiku ML Subject: [haiku] Re: opentracker On Wed, Mar 13, 2013 at 6:52 PM, Luposian <luposian@xxxxxxx> wrote:
Ok, I'm probably a tad behind on this (probably never really grasped it, tobegin with, even back in the BeOS days), but what is Tracker and what isDeskbar? I'm assuming Deskbar is the stuff in the upper right corner of thescreen, correct? It's like the Start menu in Windows, right? Whereas, Tracker is... ??? Is it like the MacOS Finder? What does it incorporate, functionally?
You are more or less correct. The Deskbar is the window in the upper right (usually) which has an application menu and manages running applications and their windows. It also handles the Ctrl-Tab functionality (like the Windows Alt-Tab.) Tracker manages the desktop and the files seen there and is generally the thing you see when opening folders. It also holds the code for the standard BeOS/Haiku open and save dialogs.
What is lacking in it? What does it need to have improved? Why does it need to be rewritten?
I don't know if it necessarily needs to be rewritten, but there is certainly room for improvement. Alexandre Deckner would have a better idea since he has done a lot of improvements to it in his tracker_layout branch on GitHub: https://github.com/aldeck/haiku/tree/tracker_layout Like any older code base it has various hacks and legacy code which at this point Haiku no longer needs. Some aspects of its design make it harder to change and improve. For example the code has a PoseView class which is a God object (http://en.wikipedia.org/wiki/God_object) that pretty much handles everything you could imagine when it comes to the contents of tracker windows. Making changes to this class is therefore very error prone since small changes can have unexpected side effects. -- Regards,Ryan