What Toshiba Didn't Tell Me
A few months ago, I finally had to upgrade to a newer laptop. My Gateway Solo was fine for the year 2000, but for many tasks it had become too slow, and I was also nervous about upgrading it to XP, knowing the extra load XP puts on a system and not knowing where I might find the necessary Gateway laptop device drivers.
So, having owned a Toshiba laptop in the past, and having known for many years the good support history and quality of Toshiba products, I decided to go that route. I ended up with a Toshiba Satellite P35, which with its 17 inch display, 3.2 GHz CPU, and fast harddisk is a good choice for computer software professionals such as myself.
Now, I've owned a wide range of laptops since practically the day they were invented (a friend of mine at HP Labs created one of the very first, if not the first, laptop computer), but I've never found laptops to be productive for programming. There is something wrong with the configuration of the keyboard and the limited pointing devices (regardless of pad, stick, or wheel) that create subtle "stresses" that slow me down and interrupt the creative flow of juggling dozens of variables in your head while you write software.
When I got the Toshiba P35 I was pretty happy for the first month or so. It was very fast, the display was fabulous, the second display output was very handy for extending the desktop, and I could easily use my Logitech wireless ergonomic keyboard with it (a must for me).
But, after about a month the problems began. I noticed the machine was starting to slow down for various tasks. It just wasn't as crisp. Booting was taking longer and opening the web browser was taking several seconds rather than the blink of an eye it once did. That kind of thing bugs me for some reason. Maybe it's because I used to write assembly code where you get conditioned to make every cycle count. And, at 3.2 GHz, there should be plenty of cycles to go around. So, being the OS and language guy I am, I did what any good OS and language guy would do, I took a close look at the process list with the intent of doing some pruning.
When I opened the XP task manager, I was immediately horrified! There were 47 processes running before I had even opened an application. That is insane. And, if you think your desktop XP system has a lot of tasks, take a look at a Toshiba laptop. You can add at least a dozen other tasks to the mix.
I should back up a minute to clarify that there is nothing wrong with the concept of tasks running in the background. As the creator of one of the first multitasking operating systems for personal computers, I expect device drivers, file systems, and other important tasks to be running. Back in the 1980's I used to tell people that there should be at least 10-20 tasks running on any good PC OS. And, I also understand the merits of virtual memory demand paging, timeslicing, preemptive tasking, etc., etc.
As I've said, I'm also one of those people who really likes to optimize and tune my computer system's software environment. On prior versions of Windows I would trim down the process list by selectively removing startup and other processes and gain a corresponding boost in boot-time and speedy operation. With XP tuning became a lot more difficult, because XP injects more processes into the mix, but it was still possible.
But now, with the Toshiba laptop, pruning unnecessary processes is beginning to border on the impossible. Or, more accurately stated, become non-productive to those of us who have better things to do and cannot make tuning our PCs a full time job. I've tried removing a number of processes and uninstalling an assortment of packages that came pre-installed (I really wish that they would not do that!), but the system started to become "unstable" with some of those mysterious background processes crashing on startup and other odd behavior. So, I eventually restored the full crowd of processes and have basically given up, at least for now, on the goal of optimizing my environment.
This whole situation leads me to again ask some questions about the state of modern computing. It continues to grow unchecked in the direction of more complex design and overhead, not more intelligent design. For example, what happened to the concept of demand-launched processes (like Unix/Linux inetd servers) or time-launched processes (like Unix/Linux cron jobs)? Yes, I know they are still there under the hood, but why then do Microsoft, Toshiba, Symantec (aka Norton), and other vendors require modules like their update software to be memory resident? Wouldn't it be adequate to check for updates at regular periods? Why can't processes like Toshiba's configuration manager simply launch when I click the icon or other link to the program? There are numerous other examples.
I think the answer is a mixture of both marketing and poor programming. In Toshiba's defense, they are forced to preconfigure their systems to do anything and everything a user could possibly want or imagine; otherwise, many customers would not be happy. So, the second part of the answer becomes more relevant. Why can't the programmers design the software better? I have a hunch that they actually can, if they took a more holistic view of computing, which unfortunately they don't. For example, please don't launch a configuration manager (and all its related sub-tasks) unless I actually ask for it.
Yes, yes... I know I can wipe my disk and use the Toshiba CDROM to reinstall XP and perhaps, if I am very lucky, get a menu of optional software packages just like I might find on any vanilla distribution of Linux. But, again, who has the time? We all have more important things to do, don't we? For now, I'll just let those 47 processes run wild in the background, and I'll continue to be annoyed when the browser takes several seconds to launch on a 3.2 GHz CPU running a fast harddisk. It feels like I'm running on my old Gateway Solo again.