When Your Hardware Isn't Obsolete Soon Enough
GrandCow writes: "There's a really interesting article over at Sharky Extreme on why the computer industry is slowing down recently. He talks about looking for the killer application that will make him go out and spend the big money on a whole new system... and can't find it. It's a really good read. For lots of the people on /. (me included) getting the latest hardware piece is a given, but for many people there's just no real reason to." Strangely, the proposed solution seems to be for the hardware industry to write bloated code so people will have more incentive to replace their currently-OK PCs. (Huh?) All I want is a machine on which Broadcast 2000 works.
Compaq donated about half a million dollars in hardware to promote Broadcast 2000 at this year's National Association of Broadcasters convention so if that's the application which is to drive consumer sales, you're probably looking too high.
Really there is more effort being made to downsize all applications to handheld devices than there is for upsizing applications to supercomputers. Regardless of how smart the mainstream industry is being about this, one thing is for sure, consumers still prefer bigger SUV's over mopeds.
IE 1.0 was released with Windows 95, in August of 1995. From all reasonable accounts, IE wasn't very good until version 5, which was released March 1999. That's three and a half years.
The Mozilla project started with Gecko in Oct 1998. Even if you start with the less-charitable date of April 1998 (when the Communicator source was opened -- and turned out to not actually be very useful), it's still only three years 'til right now. (And remember, IE didn't start from scratch -- they began with the Spyglass Mosaic codebase.)
If you look at the current Mozilla roadmap, even the "if we're unlucky" plan calls for 1.0 to be out by Q3 of this year -- plenty of time to beat IE 5.0 by your suggested metric.
DOS 5.0 has given new life to all of my old obsolete hardware.
I tried running Linux on my IBM PS/2 Model 70, and it was slow as a dog.
Even after upgrading it with a Cyrix 486 processor, 387 math coprocessor, boosting memory to 12 Megs and harddrive space to 200Megs.
It was still slow running Linux!
But now with DOS 5.0 I can run Lotus 123 and Wordperfect 5 slick as a whistle I tell you!
But on the positive side, I now have a top of the line computer for 1991!
Is this surprising? I've been wondering why Dell or other slipping PC companies haven't done this. To keep the PC market hot they have to drive people to buy PC's faster.. most games I've seen work on less than 500Mhz machines so why buy a 1.5Ghz machine?
:)
If I was Dell or a similar company I'd fund a free game that could be awesome.. and given away for free.. that was designed to be played on 1Ghz+ machines. That'd be a lot of power a game could take advantage of and would be the perfect reason why games could work as opensource. The key is to make the game fantastic so people will really want it badly.
At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
OK, let's look at the typical user's attention span. My guess is that you're looking at the meat-space interval between 0.1 sec and 5 minutes (roughly time for a human to respond to an event and the time it takes to go for a coffe break). Outside this response range you're look at either either direct embedded computer connect or distributed systems. So the performance requirements is that in ther period of 0.1 - 300 sec, you got a certain CPU (say 1 GHz) for software to do its thing. Now the human bandwidth is typing, reading, manu-vector (mouse/joystick), psycho-visual processing, listening, voice, kinesthetics/ haptics ... if you look at the possiblie algorithms and the time-lines you note that it takes about 2 decades for CPU power to fully address each human IO mode. So 60-70s we had teletype + TERMCAP, 80-90s was pretty much the WIMP era, the next decades are probably going to be voice/sound combos (keep in mind the minimum 0.1 sec response requirement to signal feedback). I don't think we're going to see real VR in mainstream (ie the stage where your granny can use it) until maybe 2020+when the cost of development = the time for obsolescence (~ 5-6 years @ 2 CPU generations). Keep in mind the basic business model of the computer manufacturing buiness in that they need to recover plant costs before forcing an upgrade due to "lack" of parts. For the consumer to accept the disposable theory, it has to be within a certain price range ($1K-$5K / 5-6 years???). Now within this basic allocation, they need to divy up expenditure across hardware/software.
The point is that Moore's Law goes on quite happily but our human limitations (until someone hacks in a direct brain-connect) restricts the requirements cost-performance range of computer devices. The supply of software is limited by (IMHO) flawed IP laws fo it makes sense for a company to be vertically integrated and self-contain its sofware internally rather than specialising in specific functions. Hence the inability to scale software complexity since the average high-tech firm just has too many hungry mouths to feed (hey the MBA's need a salary to match their ego) for the market to sustain. Frankly given that the current usage of the information economy is entertainment, news sensationalism, peer communication, telepresence, and trailing far far behind education, it's hard to see killer CPU-intensive applications which absolutely requires denser forms of media.
The upside is that we're spared from 3D virtual spam for another 15 years.
LL
1. Internet Explorer
Open one IE window on a PII-233 with 64mb of RAM, and you're okay. Now try that with 20 windows. One of the great advantages of having >200mb RAM is that you can open every application on your computer 5 times and not thrash your hard drive into oblivion. Same thing with Word, Excel, Winamp, or any other program where you might have more than 3 windows open for no good reason. Speaking of hard drives...
2. CD burning + broadband
MP3 files aren't enough to demand special investments in hard drive technology. But once you get a CD burner, you now need a faster harddrive so you don't burn as many coasters. (I mean, you don't want one turtle C: drive for everything - moving the mouse will screw up the burn) Then you run out of things to throw on CD... but then you get a cable modem, and you're downloading VCDs and giant MP3 collections. And that's when you need BIGGER as well as faster. At that point, if you're serious, you're looking at IDE RAID or big honkin SCSI drives. (I went somewhere in the middle and got a medium sized, blazing fast SCSI and a large, fast IDE drive... but I still have space problems, hehehe)
3. Video capture
This is where things start to get out of hand. Everyone has looked at an ATI All-in-Wonder at some point and thought, "*Sigh* if only it were GREAT at 3D and didn't have crap drivers." Well, I went that route anyway (I didn't have a decent video card at the time), and I haven't played too many games in a year and a half as a result... but it was worth it. Now I can watch TV on the computer and watch the computer on the TV, record TV programs onto the hard drive, get some decent performance in 3D games, etc. Only problem is, it's not good enough... it does a lot of things well, but overall it's not that impressive as it is convenient. The newer Radeon AIW does make me salivate, though... but it's not a GeForce2 in 3D, it's not like TiVO for recording programs, and it's not like a professional video capture/compression setup for making movies and stuff. It's just decent, that's all. But once you lose sanity and go for the gold, you can REALLY rack up some big price tags. Once you have the taste in your mouth, it's hard not to be hungry. To have a GeForce3, a TiVO, a professional TV tuner/video capture card, a PentiumIII for the processing requirements (cause I like 720x540 realtime MPEG2 encoding), and a nice set of hard drives to hold all the movies (yet another reason to pick up an IDE RAID or SCSI hard drive habit)... well, that's a LOT of money. A lot more than the $100 I paid for the AIW on eBay. Granted, you may have no need for most of this... but the TiVO and the GeForce3 are expensive enough.
Maybe the next boundaries to push aren't in software functionality, but in software/hardware convenience. Running bloated code is one thing, running many bloated code programs at once and getting them to cooperate is another story. And I hate to say it, but right now we WASTE so many computer resources on absolutely nothing. I don't run SETI or RC5 cause I have no interest in it, so my processor sits idle and unentertaining. My DSL line also remains underused, even when Napster is going full throttle - there's plenty of low bandwidth applications that can work alongside a file download, yet I have no compelling reason to run any of them. Other than games and video compression, there is nothing that makes my computer work hard at all... but there's not much that I'm doing instead, either. Which is why it's about time that we started making lots of little flashy doo-dads and convenient background applications to use all that wasted processor time. For example, I've never seen a single good alarm-clock application for a PC. Also, why can't I have a simple yet powerful personal organizer program that looks like a Palm Pilot and that I can bring up by clicking on an icon in the taskbar? (in otherwords, a program that acts like a Palm Pilot but on the screen... maybe even an emulator, perhaps) What about a personal Internet radio station tracker? Or a TV program listings retriver and alert system? (instead of the TiVO recording it for you, you click on an icon in the taskbar and it tells you when your favorite programs are on that day - and alerts you, ICQ style, 5 minutes before any of them start) How about some SERIOUSLY snazzy looking Winamp plugins? Or flashy GUI stuff like active icons and mouse-over gradient animation highlighting? (or how about that Aqua stuff in the new OS X?) A lot of this stuff would really run well on Windows AND Linux... except you won't want to close everything just to run a game that needs your entire computer... so you just buy a faster computer to run the game AND all that stuff at the same time! Old idea, new implementation - how many of us bought a new computer because games didn't run fast unless you used a boot disk or something...
Yeah, moz, video conferencing are all well and good, but two things drive the demand for consumer (computing) electronics - games and pr0n. What will make people get the GF3's and the Athlon DDR 1.5Ghz systems will be hardcore, 3D, interactive, good AI, 1GB of RAM suckin, 1280x1024, 120fps hardcore Pr0n. If I had the time and resources (I did a lot of 3D development), I'd be working on this right now, believe you me. The capabilities of a top-end system in 3 months graphic-wise are going to be previously unimagined in the consumer world.
I'm not talking about Virtual-Valerie cheezy sleaze. I'm talking about a virtual chick you can interact with and, uh, experiment in lots of innovative (and probably criminal, heh) ways. People are animals, and they love their pr0n. This I've been waiting for for years, and I think the technology is there to make it happen :).
And hey, you got bucks, I got a sick mind and OpenGL sk1llz :)
..don't panic
Intel has a department devoted to finding ways to use more CPU time.
Cisco does something similar. They have a team whose sole purpose is to create applications that use lots of bandwidth in order to increase demand for bandwidth. Any successful application created by this team is spun off as a separate company. I doubt that they set up their software to waste a lot bandwidth, although they might not spend as much time on optimization as other companies.
The shareholder is always right.
What would video conferencing replace? The telephone. Does the telephone need to be replaced? No.
Think about it, what percentage of the masses wants to have to look presentable when speaking on the telephone? A video phone completely destroys the anonymity of your appearance. The person you're talking to can see what you look like, what you're wearing, your facial expression, it adds a whole new dimension to communication that people don't want.
A study was done on how long it takes people to pick up the phone vs how long it takes them to pick up the video phone. The average number of rings before someone answered the phone was 2 rings. The average number of rings before someone answered the video phone was 20 rings. Think about it, 20 rings. Where do you think all that extra time comes from? The person running around, smoothing their hair, straightening their clothes, checking their make up in the mirror...
Video phones add unnecessary overhead to the communication process. There's simply no need for them.
Moller
I think one thing that is contributing to this "problem" (heh) is that of the content development. There isn't any point in making an engine that supports even -more- detail than you have now when creating the detail for the last 2 generations of engines was almost too much work for your 200 man content creation team. Every advancement in engine tech his historically created more work for the artists, and at this point the sheer amount of time it takes to make a decent single player game is getting ridiculous. I don't think the art department is ready for it yet.
Sigs are awesome huh?
Speaking of KDE: It's a great environment, and in many ways it's faster than Windows. (In others it still lacks, but most of the criticism it receives is pure bullshit.) Anyway, if I remember correctly, I was using a much more powerful GUI in 1994, on a P60, with 16 MB RAM (instead of 192 now) which was just as smooth to use and fast like hell. (I'm talking about OS/2's workplace shell).
The question is: Where has all that performance gone? Why can't you comfortably use Windows ME, or 2000, or Linux with KDE 2.1 on a P60 with 16 MB RAM? What are CPU cycles doing nowadays that they didn't need to do five years ago, although most apps had almost the same features? That is, while you are not watching your daily DivX porn ;)
Some probable answers come to my mind.
Unicode. Double every string in length, double the memory requirements of application resources. This makes for great internationalization, but it requires memory.
OOP. I overheard in a PHP mailing list that when you develop PHP3 apps without objects, just flat procedures, you can gain up to 30% in raw performance. (This has greatly improved in PHP4, IIRC.) I don't know how representative this is but I suspect that in languages like C++ and Smalltalk (and Perl :-) some CPU cycles are needed to take care of all those relationships, overloaded items and whatnot.
Standards. The good thing about standards is that there are so many of them. I.e. nowadays a browser (prime example) needs not only to render a little plain text with different fonts and one or two images, but it needs to know XHTML, XML, Javascript, ECMAScript, Java, CSS, cope with thousands of objects and plug-ins that mess up the system, and so on. Sure, these are features - but are they innovations? I don't think so, and I don't think most other apps received as much "feature bloat" as browsers did in the last couple years.
What do you think? Why does a word processor need 128MB nowadays when it doesn't _really_ have more features than what was available in 1994?
(Having said that, I have a K6-2 350 for my primary machine and I don't plan on buying a new one this year. It does what I want, it does it fast enough, and if I need more CPU power I can always ssh to our university cluster. ;)
Home Page
Gates Law: the speed of software will halve every 18 months.
Have you ever looked at how much RAM you needed to run System 7? It was about 2MB. I remember a laptop made around '92 or '94 where a RAM disk could be made big enough to dump your system folder and word processor, so you could work on a document for 7 hours of diskswap-less glory. That feature of the MacOs, will be missed, though:
Then came OS 8, and the amounts of RAM have raised... 10 MB, 15MB, OS 9: 24MB... Just for the system! Try running something like Unreal Tournament on OS X, and you'll need nearly 256MB --128 for the OS and a little more for the game.
God, I don't know where the mainstream OS industry is heading. The article mentioned that Win2000 should run on nearly 200Mhz, but my college campus has it on DELLs with 500Mhz pentiums that are as irresponsive as a Nintendo 64 emulator running without a 3D card.
Somehow I refuse believe the recommended specs. Windows won't willingly say how much RAM programs take, -- START \ RUN \ mem always says all my RAM belongs to the system. Ok, I know sysmonitor may tell you about RAM, but I don't trust its figures either: Try and start windows 98, which should run fine on 16MBs of RAM, with virtual memory off. I've had to troubleshoot computers that won't load any DLLs because the kernel takes the whole RAM and as soon as the desktop starts, you get errors for every DLL and VXD possible because 32MB != enough once people turn off VM.
In fact, here's something to think about:
Since when have we been able to run a system WITHOUT disk swapping? I told a friend taking an OS class the other day that OSs are guilty for our wait problems because they have made Hard Drives a requirement for an ideally optional feature. Old literature for Dos used to say: "First, insert your system floppy into the drive bay. Now, push the ON button." There were no hard drives and therefore, no disk swapping. And now you have swapping, 100% necessary DLLs instead of the dos system EXEs, and god knows how many unnecessary things get loaded at every startup.
A friend of mine said: Well, "what if a computer scientist like you built a system based on AI [so that] programs were 10k? [of plain-text human speech] The system would be huge, right?"
(It would need billions of library commands and much "knowledge", and it would need to compile the 10k on demand.)
I think AI will be the next killer app. If it were only true that we are closer to figuring it out, though... At least Clippy will be an unsupported feature in the next version of Windows.
"Wireless : LAN
MS Word is often used as an example of bloatware. Yes, it is a fairly large program, but I don't hold its size against it, because it allows the non-computer savvy to create nice looking documents very quickly, with very little work. But MS Word is not what is pushing sales of 1GHz Pentiums. The truth is that nothing is pushing the sale of 1GHz CPUs. Intel and AMD make them, and the big OEMs sell them without question. Ever ask yourself why you it's difficult to find new OEM 500MHz machines on the market today? It's because the big OEMs know that consumers expect to spend $1500-2000 on a new machine, and aren't going to dissuade them if possible.
I'm also going to note that this hardware manufacturer/vendor conspiracy seems limited only to CPUs. Look at what Dell and IBM are trying to sell consumers, and you'll notice how incredibly unbalanced these systems are. A 1GHz CPU with a fucking IDE disk? The disk was the bottleneck 700MHz ago, and it is now... just get yourself a 500MHz CPU for $80 and spend the money you saved on SCSI-3 hardware. But, as mentioned before, you can't buy a measly 500MHz CPU from the big OEMs anymore, so balanced PCs are now only available to relative "geeks".
My dad is VP of Engineering in a large company whose name (a household name, I might add) I won't mention, and he does all of his work, including use of MS Office 2000, on a 133MHz ThinkPad. Doesn't sound like MS Office is selling new systems to me.
The only software industry that sells new systems is the gaming industry. Even when the next generation of games doesn't require a new video card, many of us will go buy one just to make our old games even better. My primary workstation, which I upgrade about twice per year, currently has an 800MHz Thunderbird, 512MB of 133MHz Crucial SDRAM, and an ELSA GeForce 2 Ultra. In addition to gaming, I use this box for my development work, but you can bet your ass that I didn't buy a $400 video card for writing C++ (yes, Carmack might, but I don't develop games). I bought the card because, as a gamer, playing Tribes 2 (just picked it up yesterday, actually) smoothly at 1280x1024 in 32-bit color just r0X0rs.
Incidentally, my firewall is a 170MHz SPARCstation 5, but I'm not going to be playing TFC on that anytime soon.
I believe that the WWW is the real "killer app", and only revolutionary Internet client and server software will really push hardware sales noticably. (If IE5, Apache httpd, or Napster required a 1GHz CPU, hardware sales would be exponentially greater.)
--
--
I like to watch.
Microsoft is working on the business end of the problem. They have to find ways to force businesses to upgrade to Windows 2000 and the new revenue model, and businesses are resisting strongly. Refusing to put USB into NT 4 is a key part of the strategy.
The .NET thing has potential as a time sink. Implementing RPC via XML will be hideously inefficient. And interpreters are involved, which typically means a 10x performance loss.
Not that Java is much better. Swing seems to need upwards of 1GHz just to display menus as fast as a 20MHz Mac of a decade ago.
So, clearly the industry is addressing the problem.
I have said this a few times before but I think that one killer app for the masses is video conferencing. I have video conferenced with my friends in LA and it is alot of fun. You might say "Video Conferencing just requires more bandwidth." Well of course that's true to an extent but the codecs used in voice and video are made so that a computer can compress them quickly. Mpeg4 is very slow to compress and is not near real time in even a top computer. Mp3 is starting to become easily compressed in realtime, although I don't know about the second generation of good lossy codecs like vorbis, wma (gasp!) and whatever fraunhoffer is planning to cram up America's ass when they get their shit together and release their new codec. Mpeg4 looks nice, and with something with low movement like video conferencing video and optimizations like silence cut-offs, video conferencing should be a given for people with high-end systems and high bandwidth, eighther at home of work. Maybe mpeg4 isn't the way to go immediatly, but you get the point. That and maybe Doom3 when it's released.
This Wiki Feeds You TV and Anime - vidwiki.org
You Chevy only goes 100.
Why is that?
A device only has to be powerful and fast enough to do the job you expect of it. Period. The 8080 is STILL a very fine chip for certain applications. Hell, I've got a drawer full of 555 chips that suffice for many computational purposes much BETTER than even an 8080 would.
As for the next "killer app" I've seen this one coming for a long time, and have even posted here a number of times. Just what else do you expect a computer to DO?
It's a TV, stereo, recording console, data center, video game platform, web server, radio, external hardware controler, clock, printing press, fabber, and even * a computational device.*
The time will come when all the "killer apps" have been thought of and implimented. That time appears to be pretty close to NOW.
Sure, better, faster, cheaper computers will make some of these apps bigger, better, faster and more, but the computer as she is today DOES things, and does them well.
SOFTWARE, on the other hand, has turned into badly written, buggy overpriced crap.
Perhaps the next "killer app" is customer satisfaction?
KFG
The big problem is that code always seems to be written for the latest and greatest hardware. MacOS X, for example. I don't mind Aqua. But I could live without translucent dragging and some of the dock's behavior -- why not an Aqua light that looks just as pretty but doesn't eat up as much processor power?
What annoys me more than anything else is that there is absolutely no need for an operating system distribution or a basic office application to soak up massive amounts of system resources. I should still be able to get a copy of MSOffice that will at least run on a first-generation PowerMac (no reason on earth they can't dig up an old copy of CodeWarrior and keep it running on a 68K, for that matter). A simple *text editor* should not need that much space (sorry, Emacs junkies, but I'm a pico man myself).
Now we have gHz+ processors on the market... well, I have a quarter-gigahertz Power Mac 6500. Boot ROM issues aside, is a 250mHz 603e all that wimpy a processor? Damn straight it isn't. 32MB of RAM is a nontrivial amount of memory as well, yet MacOS 9.1's performance can be charitably described as flaky on my hardware. There is no excuse for this, not when I can run a medium-sized production webserver on a Pentium 100 or less using a stripped-down Linux or BSD system.
Okay, I personally do not need a spel czecher. A lot of people do; that's arguably a necessary feature. Mail merge, pretty useful as well. HTML filter, helpful (though I handcraft my HTML so I only rarely need it). But why do I need a fruit salad interface? Why do I need a word processor with anything more complicated than a ruler and justification controls across the top of the window? What purpose does a spreadsheet with more than four dimensions serve?
I like GUIs. That's me; I guess I'm in a minority around here saying that, and that's fine. But I don't need the flash of rippling scroll bars; believe it or not, I find Athena widgets to be rather elegant sometimes (although the scroll bars leave a lot to be desired). Skinning is not a terribly useful thing, though it's nice to have the option; I was a serious Kaleidoscope junkie for a couple of years. But what excuse is there for Mozilla? Oh, we have bigger computers now...
I HAVE NEWS FOR ALL OF YOU WRITING THE SOFTWARE.
Some of us can't afford new hardware. I am unacceptably behind in both Mac and Linux expertise because I can't afford hardware newer than a couple of years old (and therefore can't afford a G3 or an Athlon). People are still using Pentiums. People are still using PPC601s. People are still using 486s, fer cryin out loud. Pretty soon the software march will have to slow down because people don't want to be bothered with keeping up with the Moores.
Okay, that's my rant. I feel better now.
Tell me what makes you so afraid
Of all those people you say you hate
Face it man, if you have to say "Don't do that", YHL. The entire point of Mozilla is to be a platform for the standards-based dynamic web of the future. There's absolutely no point in treating it like Netscape 3, because you can still download Netscape 3 and use it if you want to.
Tons of people here hate Flash. Well, the only reason Flash exists is because (ahem) Netscape refused to work with the W3C on standards-based DHTML. So people chose a proprietary solution because at least it works in every supported browser. (And I am 100% aware that Flash and DHTML are not the exact same thing.) If and when the browser features converge, Flash and most uses of Java as a doo-dad generator will go away.
And it's easy to point at lame sites with a Flash splashscreen that you can't get past without having the plug-in installed. That doesn't mean that Flash can't be used very effectively for blinkenlights or navigation on web-pages. Face it, the average American luser is on the WWW, and he wants the web to be as flashy as possible. Enjoy your HTML2 Linux HOWTO sites.
When I hear the word 'innovation', I reach for my pistol.
You think that's bad, just think when they release it in color!
-
I've had enough abrasive sigs. Kittens are cute and fuzzy.
Linux users don't need to upgrade because they never right bloated.....ooo wait, Mozilla.
Check that thought.
But Yogi, the RIAA won't like that.
Yet, at the same time, many GUI applications under Gnome, KDE, or Windows are huge, complex messes. Trying to modify their behavior is an exercise in patience and persistence, not just because of the mountains of code one has to wade through, but also just because of the lengthy edit/compile/run cycle. And the irony is that, while those systems start out really fast when they are small, taking full advantage of the "fast" languages they are built on, they actually get very slow when they grow, because their authors end up reinventing higher-level language constructs without being able to do a good job at the implementation ("GObject" in Gtk is a recent example).
Even trying to install a sound card for the Linux kernel can take hours in trying to track down the right version and getting bits arranged just right for the superfast but dumb kernel to have its driver nuggets in all the right places.
Let's use the spare cycles and memory to make our systems smarter and easier to deal with. That does not necessarily mean something as complex as "artificial intelligence". It may mean putting a scripting language into the kernel that lets people add simple kernel extensions simply. It may mean using a language like Objective-C to extend an existing C system. It may mean doing GUIs in Python or Smalltalk or even just Java.
There are lots of things wrong with software: it's hard to install, it's hard to manage, and it fails a lot. Yet, both Linux and Windows developers still have an unhealthy obsession with performance (and, often, they don't even achieve it). Simplify your projects and deliver a better product: put those 1GHz+ machines to work by writing in languages that don't force you to optimize every bit. And if you can't get over worrying about performance when you look at that pretty but sluggish scripting language code, close your eyes and think about the good of the US economy.