Gates: Hardware, Not Software, Will Be Free
orthogonal writes "That's small-'f', not capital-'F' free:
according to Bill Gates, "Ten years out, in terms of actual hardware costs you can almost think of hardware as being free -- I'm not saying it will be absolutely free --...." Gates expects this almost free hardware to support two of the longest awaited breakthroughs in computing: real speech and handwriting recognition. He further predicts -- ugh! -- that software will not be written but visually designed."
Ah,
but who will visually debug the visual designer?
"/Dread"
Is this kind of like in the 50s when some expert said that nuclear power was going to make electricity free?
Q.
Insert Signature Here
Heck...if I made Bill's salary, I'd already think of hardware as free. In any case, if I was running a company and had global influence, what better model could there be than to dictate that the hardware required to run my product should be (virtually) free, but that my product is too valuable to be expected to be given away. DAve
Nice try, Bill.
He's saying the tangible parts of the system (the hardware) will be virtually free while the freely duplicated software will not be. Fabrication plants cost millions, each chip has a real cost, each resistor has a real cost. Software, once written, can be copied countless times..
You'd think Bill had a vested interest in all this..
Trolling is a art,
I have suspicion that some of the Microsoft software not written but visually designed already now. Considering its quality.
Dell (and other box manufacturers) cannot be happy about such a statement. After all, their entire business model is dependent upon making a profit assembling wrappers for different flavors of Windows. So, even though they tried with Linux to diversify somewhat and protect themselves some time ago (only to be spanked back by Microsoft), their fortunes are irrevocably tied to the success (or failure) of Microsoft.
I suppose that this could be construed as the ultimate embrace and extend (then smother) approach though, right? Get a huge number of companies to support your position and build your company and then overnight, take all of their business revenues over in one way or another.
As for Gates predilection for predictions..... I would like to see fewer grandiose predictions (although speech recognition and tablets and visual programming are decidedly not grandiose and are in fact products shipping and under development by a number of companies) and more fundamental focus on making Microsoft products suck less.
Visit Jonesblog and say hello.
Of course, microsoft isn't in the hardware market, so they can say whatever they want.
MABASPLOOM!
Hmmm... This sounds vaguely familiar:
"Remember, quality is our top priority."
.sig wanted. Inquire within.
How much stock can you put in his predictions?
About 640,000 shares - should be a big enough investment for anyone!
SpamNet - a spam blocker that really works
Even if software development becomes putting lego blocks together, it's not going to make specifying algorithms, keeping track of data structures and debugging any easier.
Billy should know better.
The perfect sig is a lot like silence, only louder
"Many of the holy grails of computing that have been worked on over the last 30 years will be solved within this 10-year period, with speech being in every device and having a device that's like a tablet that you just carry around,"
For the last time, Bill...I still don't want a tablet pc!!!!!
Dave
You'll get free TCPA enabled hardware but it'll only let you run software by a certain company, software you'll have to pay for.
And Bill Gates frequently talks out of his ass. I seem to recall that the Web wasn't important (and then we got IE a year later), that MS Bob was going to make computers usable by everyone, and that no one would need more than 640K of RAM.
blog |
> He further predicts -- ugh! -- that software will not be written but visually designed.
"Let's start with a blue background that fills the whole screen..."
Sheesh, evil *and* a jerk. -- Jade
Of course, if you'r stock is worth a few billion dollars, the cost of hardware is 'almost free' :)
--
If code was hard to write, it should be hard to read
Wow another great prediction from the anti-psychic Bill Gates.
Sorry Bill, but software is far more replicable than hardware. It's the SOFTWARE that is becoming more free as we go along.
As far as visual goes, I don't think that's correct. He's envisioning a workflow type application for controlling logic. Diagramming most code is far more difficult then simply writing it. 4GL is a pipe dream.
I DO believe that future programmers will be more like carpenters. High levels of modularity will make custom software construction as practical as cutting and nailing/gluing/screwing together the components down at Home Depot. Programs that ARE sold will be far more extensible (plugin enabled) with managed code.
The future of software is changing. As usual, Gates doesn't have a clue. He was right about ONE thing 30 years ago. He swindled the owners of Q-DOS and IBM. He's been riding that ever since.
-------- -------- Support Wesley Clark for president!!!
Just like Gillette virtually give away their shaving handles and printers cost next to nothing they're going towards making PCs like games consoles.
What is worrying is you can only succeed if you make you product unable to be used for anything else. So for games consoles you have to make it near impossible for anyone else to be able to write software (especially free software) for the device. For printers you need to make sure that nobody else can supply ink.
There's no such thing as a free lunch, you pay one way or another. If the hardware is next to free then the software will be subsidising it. The problem is for this to work for Microsoft they need a PC platform that can't run Linux, so I can see that their inroads into the BIOS, DRM etc... (see XBox for the beginnings of an implementation) are quite worrying.
Of course there will never be a situation where there won't be an x86 platform that can't run Linux, it is too popular in Japan, India and China.
Hardware costs will fall sharply within a decade to the point where widespread computing with speech and handwriting won't be limited by expensive technology, Microsoft Corp. (NasdaqNM:MSFT - news) Chairman Bill Gates (news - web sites) said on Monday.
This looks like a quote from 10 years ago talking about today. In '93, an "entry level" PC cost upwards of $2000. Today, an entry level machine that is far more capable costs only 10% of that. Not to mention that the $200 price tag represents a now miniscule fraction of most people's income.
I would say that hardware is already "free" when compared to software. This is becuase you can buy a $200 machine (real tangible manufacturing cost per unit) and put a $200 copy of Windows (with no real production cost) on it. I am sure that the hardware prices can go lower, but hardware is already a commodity. Software has yet to become a true commodity.
This is why you need to study computer science, rather than "programming". Programming is a skill that can be useful, but is, by its very nature, transient. Remember, at one point in time, auto mechanics were considered a very skilled white collar position.
Computer Science on the other hand, is a mathematical discipline which involves working out how to do things better, faster, and with less energy. It's about algorithm design, and ways in which to make a computer most efficiently process mathematical representations. It'll be useful far beyond the use of general "coding".
Coding itself is becoming more and more prevalent. I have many friends who aren't even scientists who know how to code, and were even required to for their humanities classes (from English, to History, to Foreign Language). This is a good thing, IMHO. Coding is a great general purpose skill.
Don't devote your life to the practice of programming, devote it to understanding why certain things work better, and how to further refine our techniques of computation. Work on understanding the hardwaresoftware interface, and you open up all kinds of new fields, from embedded engineering, to robotics.
Take the hint from the majority of good Universities who teach computer science, where you are simply expected to pick up a language in your spare time, because that aspect is secondary to the theory, and the easier of the two.
To be fair, it seems the (in)famous Gates 640K quote is an urban legend.
Step 1: Predict everything that can possibly happen. Nothing is too wild. Some examples:
* In the future, every home will have a robot that carries a machine gun.
* Cars will not only drive themselves, they'll demand equal rights.
* Computers will be made only of light and sound.
* Computers will learn to upgrade theselves - not because of initial programming, but as a survival mechanism to prevent obsoletion.
* IT outsourcing will be controlled in some sectors by organized crime and gangs. This will start in Las Vegas and move outward.
* Email will be beamed directly into your brain. You will be able to type an answer in your head.
Step 2: Wait for at least one prediction to come true ( even slightly true ) and be declared a prophet.
Is this kind of like in the 50s when some expert said that nuclear power was going to make electricity free?
... which turned out to be overly optimistic.
Not "free": the exact phrase, from Lewis Strauss, chairman of the Atomic Energy Commission, was:
"Our children will enjoy in their homes electrical energy too cheap to meter."
-kgj
-kgj
Visual programming is one of the canonical examples of "Gee, I have no clue how it works but wouldn't it be really cool if...". Nobody has a clue how to do significant programming in it; it's never even had a decent prototype, let alone any reason to think it will work in general.
.Net team, who probably are also cringing and shaking their heads privately as well.
Sure, there are isolated instances of it being useful, mostly in drawing flow diagrams for signal processing, but that's far from the general case.
Other then that, though, it's been a miserable failure. Software doesn't look like anything in real life, and real life metaphors are effectively useless for manipulating it. Every tried to use a multi-level UML diagram, where each box contains boxes that contain boxes? That's what visual programming looks like. A confusing, ultra-hyper-dimensional object, where every detail is critical (even the ones you can't see), where to understand a system requires hundreds of little abstract entities on the screen.
Software has more "moving parts", by factors of magnitude, then any other human endeavor; the largest software projects dwarf the complexity (in part count) of even the Space Shuttle. (We get away with it because we use effectively 100% reliable parts, whereas the Space Shuttle does not, the problems that causes and the solutions they require mean the Space Shuttle is still IMHO a superior engineering work to an office suite. Nevertheless, don't make the mistake of underestimating the complexity of software; even the smallest program can dwarf a small car in complexity.)
With a clearer understanding of what is being asked for, it is easy to see that visual programming has been a disaster for fundamental reasons, not ones that can be abstracted away. Imagine the Mozilla source code. It contains megabytes upon megabytes of code. Each and every line must be represented to understand the whole correctly (although no one person may need to understand the whole.) One way or another each line must be represented on the screen; if you're trying to do it "visually", then you're hosed. You can't abstract "(cutcrn*)DO_LOAD((void *)nm_mungl, andlefle->getLumpiness(MAX_LOAD_LUMP_COUNT, (int)uniQuad), USER_MACROS(LOAD));" visually, because you'll either lose critical information, or have an unusably cluttered screen.
There's just no way around it.
"But what if I design special modules that can be hooked together cleanly?" Then you'll have special modules that can be hooked together cleanly, as long as they do exactly what you need, which they won't. We also have tons of experience with such special modules, and they never work completely in general. You can build a DSP out of such things and that's about it... and even then, that's just compositing the existing DSPs together, I wouldn't want to build the insides in a visual language in the general case. (You could get some milage out of it, but you'd still be shelling out to text code.)
You think I'm wrong, you think you have some clever way to reduce the amount of necessary information on the screen without throwing away something the user needs, show me the code. To date, nobody else has managed that, despite a lot of trying by smart and dedicated people, and given that we clearly don't need faster computers to do "visual programming", I think you ought to consider that a damned big clue before you consider punching the "Reply" button and making vague, hand-wavy gestures to the effect that I'm wrong.
Consider the source: I think there's a reason you're hearing this from Bill Gates, who probably hasn't coded significantly in decades, and not the
Hardware will never be free as long as software continues to bloat with an ever-expanding list of core features and peopel continue to believe the MHz myth.
At one level, hardware can already be free. I saw a small PDA with about the same specs as the original Palm Pilot selling for $19.95. Yet such devices are NOT popular because everyone wants the latest wiz-bang features on their PDA.
Its the same reason why laptops get such aweful battery life. I'm sure that someone could create a very functional laptop with a 50 MHz processor that does a competent job running a basic office suite and have superb battery life. As a real-life example, my Psion 5Mx gets 30 hours on 2 AAs and does a great job of basic office work on a 37 MHz ARM processor. You don't need battery-sucking GHz to do the job.
Yet nobody wants to buy "under-powered" devices because they have been trained for 2 decades by Wintel that they must have the fastest machine to get decent performance.
Two wrongs don't make a right, but three lefts do.
Although he claims it will be falling prices, somehow I see the Gillette model creeping in (give away the razor, sell the blades at a premium) - mainly because the hardware will never be "free," as there is always manufacturing cost involved.
:)
Basically, what he's saying is that hardware prices will drop to the point where they can charge for software and give the hardware away for free. I find this quite ironic because it used to be the other way around - sell the hardware at a premium and toss the software in for free.
If I had my way, hardware prices would drop to nothing as Bill proposed, and I'd create free software for it, making it a free-for-all... nah, it'll never happen, but wishful thinking
- Chip makers will contine to create advancements and will want their R&D dollars back, just like Mr. Gates. This is why software is expensive; it is cheap to to burn a CD but time consuming to develop.
- Two words
.. advertising costs.
- Chip makers delay the release of new chip sets if they have significant inventory of other models. This keeps the prices of current chips artifically high until the manufacturers feel they can't milk any more out of consumers. Chip makers will be sure to not release new products until demand is there and they recover R&D costs for older chips.
- CPU and memory chips account for less than half the cost of a PC; disk drives, monitors, DVD/CD drives, cases and motherboards make up the rest. These items have too many mechanical/structural parts to realize significant savings from improved chip manufacturing techniques. Even if the memory and CPU were free, systems will still cost a few hundred dollars.
- Some people will always want/need advanced features, and computer systems and chip makers will always charge a premium for those items.
- Chips contain software (on-board video, BIOS,etc.). I doubt if the makers of those software components will start giving it away. But, if open-source alternatives became available, those items would realize additional savings. I would not be surprised if more software wound it's way into hardware as the cost of updating firmware becomes cheaper. Hardware video drives can be a lot more effective than OS video drivers.
Until chip manufacturers stop releasing new products every few months (reduces R&D), stop advertising, and create an entire system on a chip, including structerual components, external interfaces (wireless??), storage, and displays, computer systems will never be 'almost free'.I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
Precisely. And, for example: given how long friggin HTML has been around - plus the simplicity of that markup "language" - and we still don't have perfect (or even good) WYSIWYG editors for it.
How likely is it we'll get "visual editors" for complex systems (C/C++/et al., in combination with various other languages, frameworks, data formats/databases, etc)?
668.5
If everyone was willing to settle for older or slower hardware, demand for it, and thus prices, would be higher. Did you ever stop to wonder why older or lower-end stuff is so cheap? The people buying the new stuff at much higher prices are essentially subsidizing it.
There are some caveats on this statement however. First, software systems have discrete, digital states rather than analog behavior. That makes them quite succeptible to error behavior in boundary cases. And the state space for software is extremely large. Universal use of components developed in either an object-oriented or functional way could divide this state space up into manageable components. But one issue that is often overlooked by methodology enthusiasts is that this only increases the size of the building blocks and decreases the number of blocks used for a particular size of project. It does not eliminiate the problem that bigger programs are made from a larger number of component parts. The complexity of a program grows as a function of the complexity of the underlying problem. You can change the function with different tools, but the relationship will still exist.
But the visual aspects of pure "compatible" HTML (as in not CSS and Divs, which many design shops still stay away from) are hacks. So you have these editors trying to visually do something that HTML was never intended to do. Dreamweaver, the best of these editors, was oft called "the moody woman" at one shop I worked at, as you had to know just how to coddle it it wouldn't do what you wanted, or even what it was supposed to. Handwriting the code was still superior for these hacks...
Then CSS/Layers became totally (mostly) supported. Now WYSIWYG editors work QUITE well... (Even some non editors generate perfect code. Photoshop's image ready generates some very nice code)
Anyway, point being, when something is designed to be designed visually it can be visually designed much easier. *grin*
Look at it this way: the 48K Apple II was introduced in the US at $1795. Now, a typical bottom-end cell phone has much more computing power. You could put the entire Apple II on a $20 FPGA, or make it an ASIC and the price would be $1 or less in quantity.
I bought a 333MHZ Pentium II based PC in 1998. For software development and everything else I did, it was fine for the following five years. I finally upgraded to a 3GHz P4, just because it was cheaper than upgrading the OS and various parts individually. In my timings, this PC is roughly 15x faster than the old one, plus the video card is at least 10x faster than the one I bought in 2000. This is a lot of power, and it's the least I've ever spent on a PC.
Or consider game consoles. A $150 game system is more powerful, in all ways except memory, than a computer from 5-6 years ago. Video-wise, they're much more powerful. Next generation consoles are going to outrun current desktops...for $200.
The short version is that computers get more powerful, then they get cheap. At some point power ceases to matter, especially if you have a GPU or video compression chip to offload lots of work to. Imagine if a 2 or 3GHz chip could be made to run at 10 watts of power and cost $5. For a 65nm PowerPC, this is reasonable. What's needed is economy of scale. An alternate approach is that "low end" processors in cell phones and digital cameras get to where they're fast enough to usurp a desktop. Then put a video compression chip in there, or other custom hardware to the bulk of the work. At $20 for a complete system, that's a big deal.
Or even consider alternate, custom CPUs. An x86 desktop CPU is expensive because it includes all sorts of junk, like MMX support and 16-bit mode and legacy instructions and SSE2 and all this other marginalized stuff. And still they're too general purpose. C++ doesn't matter any more. Well, it matters because it's "fast," but not because people really like it. C++ doesn't make you happy the way Haskell or Python or Smalltalk do. Take a minimal instruction set designed to support one of those languages, then implement a simulator for it, then an FPGA, then an ASIC. Keep it simple, keep it fast. You could easily have a 20MHz part pacing high-end desktop processors for most tasks. Again, combine this with an ASIC for doing heavy lifting like graphics and compression.
Gates is wrong. Hardware prices don't depend as much on technology but on what people are willing to pay. A PC costs $1000 because that's what people are willing to pay for it, and they happen to get as much hardware and software for that as they can.
.NET-based office suite using COM, DCOM, SOAP, DHTML, and whatnot, on the other hand, won't. But Microsoft has to keep changing things in order to get people to buy and pay them more money.
I'm sure Gates would like the entire $1000 to go to Microsoft, but that's not going to happen. It's not going to happen because Microsoft isn't going to produce $900 worth of software that is capable of running on whatever $100 buys you in hardware. That's not a problem with hardware design, it's a problem with the kind of software that Microsoft develops: big and resource intensive.
On the other hand, you will probably be able to get a really cheap computer that runs Linux and runs it well. We are already beginning to see this with Mini-ITX and Nano-ITX systems: they run Linux so much better than Windows. For $200, you get a full desktop system capable of pretty much everything that a home user needs.
What really helps Linux is that it doesn't have to push an agenda or "innovate" constantly. If a 1995 word processor written in C runs fine on $1000 1995 hardware, it will run really well on a $100 2005 Mini-ITX system, with a few `bug fixes and feature enhancements. Microsoft's new
Oh, and the marketeers tend to be right? Sorry, but Bill Gates is not known for being a technology visionary.
You can pick up a Pentium II PC for a few dollars/pounds/euros. Put in 256MB of memory and it'll run Windows 9x or 2000 with an office package perfectly happily... I've got several friends and relatives who have benefitted from a lot of my old hardware, have PCs now with 300-500 Mhz CPUs that they're perfectly happy with and I've done my bit for the environment also by recycling old hardware.
I believe Mr Gates is under the illusion that because he locks his user base into his software now, that in 10 years time people will still be willing to part with hard earned cash for software which, let's face it, is hardly innovative anymore because all of the features anyone can think of implementing have just about been implemented.
If anything software innovation is becoming stale (though who cares because "if it ain't broke, don't fix it") and it's in the realms of hardware, particularly miniaturisation that the innovation is taking place currently.
I hate to dampen Bill Gates' fireworks but if Linux makes as much an advance over the next 10 years as it has done over the last 10 years, then I think he'll have a few other things on his mind in a decade than just pondering the price of hardware...
Gentoo Linux - another day, another USE flag.
It's not that insane, and remember that Gates is a billionaire in part because his company has been abusing its monopoly. To an extent, if he wants something to happen, he can make it happen. What he means by "free" is that users will "subscribe to" software and in doing so, receive a machine on which to run that software, effectively for nothing. This is what Microsoft wanted to accomplish by bullying retailers not to bundle other operating systems. My guess is that they will attempt to use "Trusted Computing" (or some technology just like it) to make their intention into a reality; if you want to run Microsoft's software you will have to run it on computers which only run Microsoft's software or software written by Microsoft's partners (in other words, companies which have bought the right to have their software run on MS's hardware). So they can make the cost of hardware approach zero, so long as they can be sure the hardware is only usable for purposes for which they can make some money. Of course, all of this depend on governments around the world letting MS get away from it.
Reality is defined by the maddest person in the room
Sure, you can visually link a few tools together, piping output from one into another, and you can click a few boxes and generate a basic SQL query. Wow.
That's great for hello-world level tasks, like calculating the fibonacci series, or defining a data model. Sure, you could essentially write a 'Notepad' equivalent with twenty clicks because it's mainly one big text-entry dialog with a file and edit menu, all of which use standard functions and know how to interact with the text dialog.
Now write the grammar-checker. Or, write a program that generates a 3d-model from a list of surface descriptions in XML format. Write a 'bot' that navigates through the 3d-world described while considering tactical and strategic concerns.
At some point all of the trivial clickable stuff is done and you need to do the heavy lifting - things for which no standard dialogs are written. And you always reach this point, if you try to go at all off the beaten path (you know, innovate). For the bot example you could 'click and drag' some inputs to customize an already-written bot AI if it was exposed as an API, but you couldn't make it do anything truly new.
And your falacy in assuming we (the doubters) will be proven wrong is that there's a difference between doubting we'll ever reach the moon and doubting that we'll reach it with method X. I don't doubt that programming simple things will become easier, I already see this in fact. I merely doubt that it'll happen in a drag-and-drop interface and that this data modelling will ever be on the cutting edge.
It'll come along and handle all the trivial stuff, like letting users script application usage, or define 'macros' in programs like Photoshop where you drag the output of a filter onto another filter, into a loop of filter and sharpen till a certain point, to a resize function, etc.
We'll get to the moon, but your hot-air balloons won't be how - not that we won't have hot-air balloons, but it's painfully obvious to someone in the aerospace field that hot-air balloons are of limited use in travel between planetary bodies (though inflatable balloons did function well as a landing mechanism), much like clickable interfaces might be used as part of many systems, but not as the core.