Gates: Hardware, Not Software, Will Be Free 993
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."
Visual design (Score:5, Insightful)
but who will visually debug the visual designer?
"/Dread"
Yeah, right (Score:5, Insightful)
Free (Score:5, Insightful)
Please Bill.. (Score:5, Insightful)
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..
Re:Visual design (Score:5, Insightful)
Hrmmmm.... (Score:5, Insightful)
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.
Microsoft leading the way (Score:4, Insightful)
Bill is right (Score:2, Insightful)
Bill Gates + free (Score:0, Insightful)
Software will never be easy (Score:5, Insightful)
Billy should know better.
Ah, visual design in VB (Score:4, Insightful)
Re:Free (Score:5, Insightful)
Re:Hrmmmm.... (Score:2, Insightful)
Surly such a statement would mean that Microsoft are planning to buy dell and give ther stuff away, locking people into windows forever and ever. Oh wait people are already locking into windows forever and ever.
I can imagine how (Score:5, Insightful)
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.
Yeah, yeah, yeah... (Score:5, Insightful)
Re:Please Bill.. (Score:5, Insightful)
Yet, hardware has gone down in price from where it was in the mid 80's while software has gone up.
Mr 640k and unimportant internet (Score:5, Insightful)
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.
Gillete model, Consoles, Printers etc... (Score:5, Insightful)
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.
Free hardware. Riiiiiiiiiight. (Score:4, Insightful)
How many laws will be purchased be the large companies so Cuecat-esque hardware EULAs will actually have teeth and be enforceable?
~Philly
Puhleeeez...... (Score:5, Insightful)
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.
been there, didn't do that (Score:4, Insightful)
Now we're running on Unix, and saving money. Bill's just blowing smoke, telling us his dreams.
A step backwards? (Score:2, Insightful)
Just like programmable logic! Errr, wait. It seems like (visual) schematic capture is what gets used if you don't have a real FPGA designer, so somebody has to wear a new hat that doesn't know (textual) languages like VHDL or Verilog. I don't know anyone who knows VHDL or Verilog that would want to do a design in schematic capture.
So if the same thing will apply, people who don't know how to program will use graphical programming, and people who do will write real code. Graphical programming won't be the only (or best) way to go, it will just be more approachable.
Maybe we'll be lucky and soon this will be an easy way to separate the wheat (real computer scientists and software engineers) from the chaff ("coders" who want the easiest way to make a few bucks).
Re:I hope not (Score:5, Insightful)
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.
this is *his* vision.. (Score:3, Insightful)
For Microsoft and for a lot of other companies, I think the realization has dawned that concentrating on hardware is a losing proposition .. (Hello, Sun ? are you listening ? Maybe you know better than these guys). As a counterpoint, though, I'd like to offer Apple and their iPod/iTunes strategy. Offer software on the cheap to push out the hardware..
You may upgrade your machine once every 6 months to an year.. However, your software would be service oriented, so you'd be bled dry as updates/small missing features and patches were charged for. A constant stream of revenue, with margins that can't be squeezed out due to competing manufacturers and improving manufacturing processes. A steadier way of earning revenue, if you will. This is what I would imagine Microsoft to want.
Here's the problem, though. The free software genie has been let out of the bottle. Just like the lowered price on the XBox made several people (myself included) think about buying one for a low cost machine and installing Linux on it, if there is a free software alternative that will run on this free hardware, you will get people using it. Ultimately, this will just lead to stronger protection against "illegal" modifications to the software.. For example, if you get a PC free, you must run Windows on it, and never format it to install Linux.. something along those lines. He wants it. I personally do not. Cheaper hardware is good, but I want choice in what software I use and I don't think being locked into one company will offer me this.
I agree with his point about visual software though. VB was tremendously popular for that reason. Because it let people quickly design interfaces and software that sort of worked. For folks who don't do programming for a living (and maybe a few who do), the thought of whipping out something that they can actually use on their own computer is a tremendously appealing notion. More than anything else, Visual Basic helped a whole new bunch of people (who might otherwise have not programmed at all) get into the software industry. The problem is: who will write the server side software ? Who will perform the tweaks ? Who will administer and optimize and tune things ? The need for programmers and for code crunching won't go away overnight, and I doubt it will go away at all. There are advantages to textual representations (as opposed to visual ones) in existing tool support, and there are also advantages in that textual means of representing a problem work on many different paradigms (not just client interfaces).
Comment removed (Score:2, Insightful)
Re:Visual design (Score:5, Insightful)
Re:Please Bill.. (Score:3, Insightful)
Yes, once it is developed, it can be copied 'freely', in quotes because I do not want to put out the same connotation as others may want to read into this.
To get to that point, you have thousands of manhours put into the development. After you get to that point, thousand more manhours are put into maintaining it. Where does the money come from? Are we just going to change our motos to Off The People For The People and put up our hammers and sickles? I *LOVE* OSS and I contribute to several projects (as well as having convinced my employeer to OSS some stuff in the past of which I maintained until it got to be more of a job than what I was being paid for -- and not interesting enough to do outside of work).
Too many people have this complete all or nothing hippy commie perspective on OSS. They think love and hugs will get everything done. It might in the future. It might after a revolution where Haliburton doesn't control the free world. It might when there is free healthcare and folks aren't living under the bridge down the street from me and the mentally ill are not turned out on their own simply because they are not a threat to others.
Software has a cost. Do what you can to promote free software and free speech and your damn group hugs, but realize some of us need to eat as well.
Posted anonymously as a test to see if anyone is paying attention or if this will just be rated a troll as
Re:Gillete model, Consoles, Printers etc... (Score:3, Insightful)
Exactly. But at the same time your product must remain inter-operable with others on higher, meta-level: your game console should be able to connect to the Internet, your printer should be able to connect to various computers, etc.
So the result of these two trends will be the world of higly specialized nearly disposable devices you can plug in and out as needed.
Tinkering will be reduced to meta-tinkering and the ability to introduce new "device" to the net.
There's free and then there's "free"-tm (Score:3, Insightful)
The only way for the computer to be "free" is the way cell phones are now "free". When you sign-up for 3 years of M$ OS/Office suite subscription, MSN broadband with obligatory Passport suppport for on-line shopping and agree to transfer $500 to that account you will get a "free" PC. Ignore the fact that you will be paying $100/month to M$ for that "free" PC.
This fits in well with the M$ philosophy of business - they don't really care what "product" they sell as long as it comes with a M$ EULA and license. Check my journal for a more detailed look at the M$ business plan.
=tkk
Re:Please Bill.. (Score:5, Insightful)
But for software, it is much more difficult to measure improvement in a quantitative sense. It can be done, but not easily if the vendor wants to muddy the waters. I believe feature creep & bloat in Windows is to prevent direct comparisons with previous iterations of the product.
Although hardware costs have come down, its the result of competition in the free market, easily understood and measured as a physical good. Microsoft OS? They've become more expensive, with less value add in each iteration.
Re:Visual design (Score:3, Insightful)
It's like saying "all software will be written in high-level, garbage-collected languages like Java, C#, python, perl, et al".
Rebutals that "yeah, but what is the Java runtime written in?" or "the OS kernel has to be written in C" are true, but miss the point - these activities are niches, so the original statement is over-general but mostly true. Most application software will be written at a higher level.
Visual programming - snort! (Score:5, Insightful)
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
Re:Yeah, right (not with bloatware) (Score:5, Insightful)
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.
He is right .. you know. (Score:3, Insightful)
So lets say the trend continues
Looking at TCO over the period of the computer -- computer hardware = $400, software/services = $3240. So yah, hardware will be essentially free..
Seriously... (Score:0, Insightful)
"Hardware will be free and Software will not." Translation: "I sell software not hardware, and I'm going to unethically leverage my monopoly until I get all your $$. Also I think you are too dumb to see how absurd my lies are. That'll be $199 per license please."
Re:Visual design (Score:5, Insightful)
Depends on how it is done. There are some well designed visual modeling & simulation development tools for electronics (Simulink, PSpice, etc.) and mechanical systems (finite element, etc.) These do a relatively good job of simulating "systems". Software processes are not that different from physical processes in electronics and mechanical system. Software rules (e.g., syntax) are analagous to physical laws.
I actually think this is a good idea, if done properly (i.e., not by Microsoft). I'd be a little surprised if this hasn't already been done, I guess nobody has done it well yet.
Perhaps a good open source project. In fact, it could be a big stepping stone for open source. If visual programming (no, not as in Visual C/C++, Basic, etc.) makes programming easier and faster, think of how many more people (like me) could get involved in open source projects. I actually really like this idea.
Reminds me of "The Last One" (Score:3, Insightful)
See The Last One [presshere.com] for a writeup from 1981 of "a program which could become the last one ever written by a human being." The hype was spectacular, but those with some clue knew that while it would be useful in a narrow application domain, it would not make any significant dent in the quantity of code being written.
Bill Gates may be rich, but I don't believe his prediction that programming will somehow magically become simpler, and be done with visual tools any more that it could be automated 20 years ago. Writing the code may seem hard to those who do not do it, but knowing what code to write is much harder, and the kind of tools Bill was talking about are not going to do much to help there.
As for hardware prices, for general purpose systems, we now get a lot more for slightly less money than we did a few years ago, and this pattern seems to be fairly constant. I see nothing to suggest that the trend will not continue. More things will have embedded chips, and they will become even cheaper, but with general purpose machines we will continue to increase what we want from them to consume all the extra processing, memory etc. that can be bought for the same money.
Re:Free (Score:5, Insightful)
$750 of Microsoft software for a $2500 computer didn't seem like all that much to most people back in the 1990s, but the times, they are a-changin'.
Gillette model? (Score:5, Insightful)
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
On Visual Programming... (Score:3, Insightful)
Now Billco(tm) wants to devolve the computer user futher. Now we can scratch some icons out on the cave walls and create a program? Gee, thanks, Bill! Don't get me wrong, I'm not a CLI zealot by any means.
I've done some "visual" programming in the past (LabView from NI) and while it was OK for simple Input->process->output type of tasks, once you had to perform any sort of (Even not-so) complicated decision making or logic it got really, really, ugly. Going to be hard to trace a program when you're trying to follow a little dot around all the "wires" you've got criss-crossed and entangled in your "program."
On another note, This type of programming is *exactly* what Billco's vision of the future of computing is. That is, to take as much information (which ==power remember) *away* from the user as possible, and make them more *dependent* on Microsoft than they already are.
As for the speech recognition thing. This has been Bill's little fantasy for quite a few years already, hasn't it? I think we've got a *loooong* way to go before that becomes what he's hoping it will.
$.02
Where is all the communists rhetoric now? (Score:3, Insightful)
But when Bill Gates suggests that hardware should be free, why, this is a good thing!
Hardware fabrication has a real multiplier effect in the economy: IC fabrication plants cost millions and provide work to the poeple who build them, run them, maintain them, etc; resistors, capacitors, connectors and PCBs all have entire industries associated with them that provide income for millions of people.
Software, on the other hand, promotes no such multiplier. Once written, it can be copied countless times with very little supporting industry. It provides work to only a small group of programmers and one company, without the multipliers mentioned above for hardware.
Why should software be prized so highly in our economy and hardware denigrated economically? Because Bill Gates says so?
Re:Visual design (Score:2, Insightful)
Those of us that actually code knows it goes more like :
turtles
...
dogs
cats
Zebras
wombats
snakes
dingos
fish
nematodes
and then finally, you get down to the level where you're dealing with quantum wave functions and wave guides.
It's managing the levels of abstraction that's the real magic trick.
Re:Mr 640k and unimportant internet (Score:5, Insightful)
SB
Precisely - we can't even get WYSIWYG HTML right.. (Score:5, Insightful)
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)?
Re:Visual design (Score:3, Insightful)
Software, even software written in text, even OSS, is already visually designed. It always has been. Flow charts, diagrams, screenshot mockups -- shit, I've gotten specs that were nothing more than a drawing on a paper plate.
The only difference is that Bill forsees getting rid of the intermediate step of writing code to represent the visual system. Which is not, inherently, a bad idea, as that's the step that introduces the most bugs. Some humans are great optimizers, but the average coder is not very good at it. Therefore, using visual tools to generate efficient, secure, bug-free code would be ideal. I use VS.NET and Eclipse and I have to admit: when I use the visual tools for constructing datasets, my code is far less buggy and no slower than if I'd written it myself. I continue to write it myself because I like to, and nobody's caught wind of the fact that half the bugs in my folder are due to this stubbornness.
And personally, I don't know what the FUCK you're talkign about. Programs that look pretty but don't work can be written in any IDE. A skilled coder will take the best tools available and use them to great advantage. A shitty coder will take the best tools available and make something that doesn't work. It seems to me your only complaint is that if something doesn't work, it should LOOK like it doesn't work. And since there's no method in any toolkit I can think of to make an interface look trashy, it sounds to me you've just got sour grapes.
(Oh, and please don't reply to this citing some irony you feel inmy associating Microsoft with "efficient, bug free code." That's an argument of a different color, and I'm kind of playing devil's advocate in that shade. I should point out that the
Re:Yeah, right (not with bloatware) (Score:5, Insightful)
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.
Visual design inevitable (Score:3, Insightful)
Then look at something like Visual Basic (sorry, VB.NET). It's interface creation is all graphical, only the logic is code. The next natural step is to make the logic drag and drop too. Some current day rules engines try to do this and fail. Look at the little "fx" insert function button in MS Excel, it guides you through creating logic. All of this will come together and allow anyone to create logic, the same way that anyone can create presentation today with HTML.
And yes, it'll screw up sometimes. And yes, there will be really ugly (and wrong) logic in some applications either because the tools suck or because people don't know how to use them (or aren't capable of abstract thought, but that's another story). But this is the inevitable march of progress.
Besides, you didn't really want to deal with every stupid business person changing their mind all the time about when a program should say Potato and when it should say Potatoe, did you? I know I'd rather write software that allows them to do it themselves. And the rest of you code monkeys can go back to working at Best Buy.
Re:I hope not (Score:2, Insightful)
It is this slacker approach that is responsible for all the crap software out there. Get it through your head: software engineering is compeletely different from writing a self-recursive factorial function demo.
Academia likes to push Abstract Data Types, but when you force them to sit down and write any moderatly sized program in the language of their choice, (say, a game demo or desktop calculator), you'll find many of them totally at a loss on how to apply their ADTs or even structure their programs in a way that others can read. Usually this is accompanied by some lame-ass statement about "in a real program we'd do it this other way". Well what are people going to school FOR? To write non-real programs? I think not.
Algorithms are easy - just read a book or search the web. Good software development on large projects is much harder.
Why visual design will help, but is no panacea (Score:5, Insightful)
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.
Re:Gillete model, Consoles, Printers etc... (Score:3, Insightful)
If you don't manage to get them do other things then the comparison of a small piece of metal and plastic with a large pile of plastic, silicon etc.. is valid IMHO.
Re:Please Bill.. (Score:3, Insightful)
So in other words, it's a troll.
Re:Visual design (Score:2, Insightful)
It's kind of like a Politician saying we should have this great program and then somebody else has to find a way to pay for it.
almost free hardware makes sense (Score:5, Insightful)
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.
I don't think so (Score:5, Insightful)
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
experience (Score:2, Insightful)
Re:Visual design (Score:3, Insightful)
Visual design is nice and all, but I've never seen a visual design engine that was capable enough to replace an actual coder.
It's the difference between an Access database and a php/mysql (or similar) database. You can do a lot of things in Access, you can fiddle with the wizards, and stick cute little things together, etc, but, in the end, you need a VB programmer to come in and write code to make it do the things that you need it to do, but which the designers decided not to implement. And when you're writing that code, Access is fighting you because it isn't designed to be easily extendible.
Whereas php/mysql may not be tinker-toy-esque, but you can truly customize it, right down to the last detail, without trying to work around a clunky existing framework.
I wouldn't be surprised if visual designers became more popular, but I can't imagine them ever replacing a skilled programmer. Then, as now, visual designers will be used by semi-skilled end users that need little more than basic functionality.
Visual Programming (Score:2, Insightful)
Both are very graphically contained, but what you design is yet the dataflow, and the methods.
Be it a top-down, or a bottom-up process, you have to think of how to implement methods and actual data processing.
Yet, I think that the amount of work that is put in projects, especially bigger ones, is bigger in the design-methology-dataflow part (which can be graphical), than in the actual coding work.
Moreover, teamwork is much easier if the code design (whatever it be) is graphical.
Think of the many many possobilities you have to achieve a task in C, and its very hard for even a team-member to read and understand your code at once, be it well documented as is, yet it is a LOT easier to read graphics.
Re:Precisely - we can't even get WYSIWYG HTML righ (Score:4, Insightful)
Ever build an SQL query with Access? Pretty simple if you ask me. How about an excel spreadsheet formula?
Ever use a tool like Together, Rational Rose, etc to build a UML class diagram and have it generate the skeletal source code (class definitions, method names, variable declarations, etc)
Look up Jackson Structured Programming (JSP), it's not popular here in the US, but it's a way to visually design the flow of a method and have your editor spit out code in any one of many languages.
Also, expecting to get such an editor for C/C++ is silly. Not only will the tools evolve, but also the languages.
And on general principle, the doubters usually turn out to be wrong. We made it to the moon, we have a computer in every house, etc.
Multi-lingual nightmare. (Score:3, Insightful)
You design apps from the objects and relationships (not to mention security considerations mean that an individual may not be entitled to see all of them) out.
Presentation occutrs in whatever language/ script/ medium is available.
Interaction and therefore selection of triggers to object events, depends on what the individual is allowed to do.
Gates will go the way of Smalltalk and Java PARTs and other visual programming toys.
He hasn't got a fucking clue how the world works. I pity him.
it's quantity, not quality (Score:3, Insightful)
I fear Gates understands that method. If you make lots of predictions, chances are some of them will be right. The general public usually remembers your correct predictions, not your failures. Just look at how many journalists consider Gates a visionary.
Chairs want to be expensive (Score:3, Insightful)
Free? (Score:3, Insightful)
Re:Visual design (Score:5, Insightful)
Re:Visual design (Score:5, Insightful)
Yeah, but that happens to also be the step that introduces the details of the logic! These details can't be magically derived. They must be crafted by a programmer. If that involves drawing lots of highly detailed pictures within pictures at the "design" level, then fine, but it wouldn't make anything less complex or less bug-ridden. For the most part, the complexity of programming is inherent. Abstraction and the use of building-block libraries help tremendously, of course, but these techniques work just as well in the written-programming-language world as they do in the design-by-drawing-pictures world.
of course (Score:3, Insightful)
Hardware will have to be free to justify the fact that the DRM running the hardware will make sure you won't be free to use the machine how you want to use it.
He's basically just outlining a new marketing plan to get the masses to stomach Trusted Computing.
That's odd - visual design of software (Score:4, Insightful)
Methinks the emperor has simply announced he wants a change of fashion, and all the trendy loyal subjects in the kingdom have to change their style to fit in.
Re:Precisely - we can't even get WYSIWYG HTML righ (Score:5, Insightful)
Oh, and the marketeers tend to be right? Sorry, but Bill Gates is not known for being a technology visionary.
Re:Visual design (Score:3, Insightful)
Here's an example I hit the other day... I was using a linked list to store a set of objects. I was using the "LinkedList()" class that is part of Java. Well, my program was pretty memory intensive, and the list wasn't doing what I needed it to, so I ended up having to re-implement a LinkedList to streamline my code and to get rid of 4 funtions I didn't need and add the 1 that I did.
With a visual editor I might have clicked on the "Data structure button" and then chosen something that had a similar functionality to a linked list...But how the hell could I have optimized it? Seems like you'd just end up with tons of big bloated Objects with tons of features added to make them fit every concievable need, which would then sit in memory eating of resources and slowing everything down.
The Paradigm shift... (Score:3, Insightful)
This shift has very little to do with Open Source or Free Software, although they are convenient mediums for it. The shift is towards open standards. By making a piece of software Open Source/Free Software, you expose its protocols to the world.
This is what customers want. They don't want lock-in, they don't want lack of interoperability. They want their machines to play together without problems.
GJC
Re:Yeah, right (not with bloatware) (Score:3, Insightful)
Handwriting recognition (Score:2, Insightful)
Re:Software will never be easy (Score:3, Insightful)
Yeah, totally visual program design is unlikely to happen for the same reason that great novels aren't written using only pictures. At some point you have to design complex data relationships, and that's going to have to be done in an algebraic fashion. Ol' Bill is probably envisioning a time when there'll be pre-built libraries for all your algorithmic needs, but that won't make software development "visual", it'll just split the job field into two parts: visual object assemblers (monkeys), and library builders (real programmers). What makes the "visula development" notion even sillier is that for complex projects you'll need custom-built libraries for very specific, complex functions, and those will have to be written by somebody.
The idea of "totally visual development" is ignorant. We developed complex written (human) languages for a reason: cave paintings only carry so much info. Computer languages are no different.
Yawn (Score:3, Insightful)
On the whole, they were right: hardware prices have fallen dramatically, and software now routinely costs more than the hardware that runs it.
What did they get wrong? Bloatware kept increasing hardware requirements, and a lot of software became free. I like the idea of nearly free computers with all the basic applications available for free: browser, mail, office suite and solitaire.
But what of specialized software? F/OSS is great, but we shouldn't lose sight of the fact that companies will still need to pay programmers for custom work. And they will pay programmers far more than they spend on hardware, as long as our software helps them make more money.
Even a small business can spend more on a couple web applications than they do on hardware- it is certainly true of all my customers.
As for hardware, there is one factor that will keep me spending more money even though I might have enough with last year's technology. I want screens with high resolution, as easy on the eyes as paper; computers that are light and have very long battery life. Once we achieve a computer that has those features, manufacturers might find something else that will keep us buying expensive boxes/pda/wearables, or prices will go down.
I Hate The Bastard But He's Right. (Score:3, Insightful)
I once engaged Michael Tiemann, CTO of Red Hat and doer of many of GNU things, [redhat.com] on the subject of visual programming and he refused to even concede that it is possible.
Well, to Michael and all of you who scoff, I say first: "You will not be among those who make it possible or who will benefit from it"
We have begun to create, to learn to manipulate and to use as building blocks of new formal symbolic systems (languages), the graphic equivalents of phonemes and morphemes, words, syntax and grammar. If we can build civilizations on sounds, then we can build extensions to civilizations and things as yet undreamed with graphic symbols.
You all can scoff, laugh, snort milk out your nose and, like Tiemann, bury your vision in the deserved pride in your own accomplishments, but that won't stop the development of new languages based upon graphics. And I don't mean just new programming languages. I mean languages.
This will be done by children who will be unaware of your own self-imposed mental handicaps and defeatest attitudes, children who scoff at your scoffing, who have disdain for your disdain. Your world of text programming languages is passing, and will one day be a mere footnote.
It doesn't matter if you understand this or not, if you like it or not, if you do it or not.
Comment removed (Score:5, Insightful)
Re:Visual design (Score:5, Insightful)
The basic unit of code in LabView is called a VI (Virtual Instrament - think function). When creating a VI you have two parts - the Front Panel (interface) and the Block Diagram (implementation). On the front panel you create a bunch of widgets which serve as the input and output to the VI. Each control has it's own data type for example numeric controls, and sliders are int or float, buttons, swithes and LED's are binary, text feilds are string, pulldowns are enum, etc. You have an array controls and cluster (think struct) controls which can contain other controls. You also have a few highlevel controls like a graph for the waveform type, and some abstract types for standard error handling, and references for open instrement objects, ActiveX objects etc. You should also draw an icon for the VI, which will be it's representation when being called from other VIs. So basically every function you write automatically has a user interface, which doubles as it's signature declaration. This comes in handy when doing black box testing.
Now in the Block Diagram these controls show up as input and output terminals, which you wire to other things. For example you can call other VIs, by wiring data to the inputs on the left of the VI icon and the outputs on the right hand side. The types on both ends of the wires must match and the wires are drawn with different colors to indicate their type (derived from whatever their input is - you don't have to explicitly specify wire type).There are no variables (well there are globals, but you don't use them much) data just flows from the input terminals to the output terminals, with the runtime system executing whatever happens to be in the way and taking care of memory management.
You have all the standard flow control constructs. A switch statement is a box with a special terminal that you wire for the conditional, and then a pull down box at the top, that lets you enumerate and switch between all the different cases. You can wire just about any type into the conditional terminal. The simplest example would have a boolean input wire and only one case - true - ie an if statement. You have foreach loops which iterate through all the elements of an array you wire in, and while loops (technically a do-while) which is another box with an internal terminal for the conditional. And so on.
One of the intersting things about this language is that because execution order is determined by data flow, not program text, it is inherently parallel. If you draw two loops on the same diagram, and one isn't dependent on the other for data, then they will operate concurrently.
Okay enough explaining the interesting parts of the language, onto the thrashing. Do not believe what NI (the makers of LabView) tell you about increased productivity. It is true that you save some time due to the fact that this is a high level language, and comes with a nice set of libararies. However, this is offset by the fact that it takes so much longer to draw code then it does to type it. A picture may be worth a thousand words but an icon is worth exactly one. It only takes slighly to wire up a function, or draw a loop than it does to type it. But where the really killer comes in is you now have the added complexity of having to think about how to layout all these elements, and predict how much space you will need for them. If you predict wrong you will be constantly resizing boxes and rerouting wires. As you can imagine refactoring is a huge pain, so you better have a perfect design when you start, and we all know that we never have bugs in the design, right? And we never want to modify our program to do things in the
BS. real speech recognition is far away (Score:4, Insightful)
Gates and other marketing experts are managing expectations in the wrong direction. They promise something that they cannot realize. What common people understand when Gates talks about "real speech recognition" is a computer that will analyze your input in a noisy environment (where it matters most: out on the street!), contextualize it with what you've said before and with what's on the screen and with all the things that we call 'common sense', and then react accordingly.
A lot of these things are possible in very limited, well-modelled domains. But not in applications for 'real users' that deal with a variety of information. And it won't be there in ten years. There are many hard problems to solve, both in defining what is actually linguistically the case or how to learn it from a corpus, and how to implement processes that happen in parallel in our brains on sequential machines.
It doesn't help if Gates and co promise the world and hope that their scientists will deliver.
Re:Please Bill.. (Score:3, Insightful)
Software Has A Design Cost
So does hardware. And it has a higher replication cost.Each piece of hardware has to be designed. The processor, the motherboard, the RAM, the networking cards, the graphics cards, the hard drive controllers - the hard drives. All these things have a high research and development cost as well as a high replication cost.
Software just has a high design cost. I write proprietary software, and I expect to get paid for it. But that doesn't suddenly mean that the hardware I write the software on doesn't have a design cost, or doesn't have a high replication cost.
Hell, my value to my employer - and therefore my contribution to the cost of their software - is an entirely arbitrary value set by current labour rates. The cost of pressing a microprocessor onto silicon, however, is dictated by the labour cost of the design teams + the cost of the silicon + the cost of the plant etc. etc.
Or are you contending that hardware designers are somehow worth less than software designers?
Gates is justifying Windows' cost (Score:2, Insightful)
Also worth noting MS, a software company, has been trying to sell its XBox for what many believe is less than the cost of manufacturing in order to boost sales of its software games. He's probably also trying to deflect investor/analyst criticism for lowering the retail price of the XBox to $150.
Bill has so little credibility its amazing MSFT lets him talk in public.
Re:Visual design (Score:5, Insightful)
Excellent Question (Score:3, Insightful)
You have to do it slowly though, so people don't notice your slipping the reigns on. A little bit at a time, let them get used to it, then do the next part.
Printers have started down this path. Imagine if computers do too. Damn, my PC has a Virus... well I might as well just get a new one - cheaper then buying AV software.
Re:I Hate The Bastard But He's Right. (Score:4, Insightful)
Yes! Death to text! If you need proof that communication can be more efficiently done in a visual medium, you need look no further than this very web site where we converse exclusively using...
Oh. Never mind. Move along, nothing to see here.
Re:Why visual design will help, but is no panacea (Score:3, Insightful)
There are already some visual programming IDE's that are supposed to work at this gross chunked (fit them together like pipes) component level. I've noticed that they cluster around the B2B integration tool space.
Here are some examples. M$FT uses their acquired Visio engine in their biztalk server to model dataflow [codeproject.com]. BEA Systems does something very similar in their Weblogic Workshop IDE. Go to page 8 in this white paper [bea.com] of theirs.
Is this true programming? IMHO, its as much programming as writing a shell script.
Re:Visual design inevitable (Score:3, Insightful)
I'm sure most of the amateur web sites out there use Dreamweaver, et al. to generate their HTML, and under heavy load it shows.
I work for a professional web shop (about 30 million page views a day across all the sites we've made) and every line of HTML code here is written by hand. It's currently the only way to guarantee an efficient and responsive product.
Re:I Hate The Bastard But He's Right. (Score:3, Insightful)
Text . . . the graphic equivalent of phonemes and morphemes, words, syntax, and grammar. Maybe I should try to sell somebody on this "text" revolution.
Re:Visual design (Score:4, Insightful)
In fact, it's likely to just make things more confusing. There's a reason that mathematicians don't do geometric proofs so much anymore - symbolic manipulation is more clear, more general, and more compact. It's the same reason that hardware designers use things like VHDL now.
Many people seem to think that a "graphical language" makes things easier for lay-people to understand. And that's true at the very highest levels of abstraction. But when you get down to the details a graphical language must have the same expressiveness as an equivalent symbolic language. That means that it will almost inevitably have the same level of complexity as the symbolic language, and be equally impenetrable to lay-people. One only has to look at the newest versions of UML to see this effect in action.
Bottom line: graphics are great at a high level of abstraction, and as documentation to aid understanding of a symblic expression, but for implementing complex systems symbolic languages are much better.
The real trend line Mr. Gates misses (Score:2, Insightful)
This is a difficult model for Microsoft to see, since it cuts at the heart of their business model which is based on the IP of their software. Some within MS do get it, but it is hard to turn a big ship.
The real challenge for the FOSS community is to recognize that in order to avoid vendor lockin there must be standard interface protocols for the evolving service delivery models. For example if the US or other governments (or large enterprises for that matter) would adopt OASIS as a common document storage standard, then vendor lockin for document management can be avoided.
The growth and adoption of the Internet is a good analogy in this regard. The Internet did not fragment as some predicted because interoperability was a key driver for the consumers of Internet services.
In the same way the adoption of key standards further up the protocol stack will be a brake to single vendor lockin. It will take the active participation of user to prevent the natural tendencies of software houses to lock customers into their products. What we as users should be demanding is service interoperability.
Just as I can use my Nokia cellphone to talk to someone using a Motorola cell phone, I should not be required to use MS Word in order to send a document to someone who happens to use MS Word.
Microsoft wants the world to be a monoculture where they control the software gene pool. This is very dangerous to the health of the software industry as a whole.
the software overhang (Score:2, Insightful)
However, if the last fifteen years of microsoft dominance were a business phenomenon but a technological aberration, software prices may just be in a real overhang due to correct in the next few years. There has to be some sort of economic entropic balance between hardware machines and the software that runs on them -- perhaps modded by the productivity gained. If this pseudo-natural system is not in balance, it will (eventually) correct itself. -wheatking and pretty things.
Re:Please Bill.. (Score:3, Insightful)
And it will continue to do so as long as hardware is a commodity market, and software is a monopoly.
Office XP isn't worth $300, and the features added from the last version are certainly not worth as much as they charge for an upgrade. I do not know of a single feature that has been added since Office 97 that I have needed. In fact I would argue that for most institutions, they loose money on every upgrade, not only from cost of purchase, but also from deployment and temperary loss of productivity due to the changes. Why do they upgrade then? Because they would loose even more money if they were not compatible with the rest of the world.
Design everything first my ass (Score:3, Insightful)
So you ALWAYS design your ENTIRE PROGRAM before you start coding? You obviously haven't worked on any sort of real project, with intermediate deadlines, changing requirements, extensibility requirements, etc., etc.
If you're trying to do a 2 year project and after the first 1.5 years you still have no code, and therefore nothing even resembling a prototype, because you're still designing, don't think you're going to get funded.
Re:Visual design (Score:5, Insightful)
Starting around the time of Windows NT4, Windows got reasonably stable by itself. Windows 2000 took it a good deal further and there was less wrong with the OS than ever before (excluding security issues). Windows XP and 2003 Server have certainly raised the bar quite a bit. So why do we get all these stories about the OS "crashing" all the time? I'll tell you why:
1. Poorly written/Buggy application or server software (Office Suites, Web Servers, Mail Servers, etc...)
2. Misconfigured application or server software
3. Misconfigured OS settings by people who don't really know what they are doing despite their certs
4. Underpowered hardware (overclocked CPUs or just plain slow/older machines, not enough RAM, etc..)
5. Inappropriate hardware (Using a Gateway brand desktop PC as a Domain Controller) non-ECC RAM, etc..
6. Malfunctioniing hardware (bad RAM, MB, CPU, cooling problems, etc...)
In many instances, the people responsible for these machines either don't know HOW to fix the problem, or CAN'T (proprietary software) until their vendor puts out a fix. These people may not know how to figure out where the problems is. Is it hardware? Is it software? Where in the chain does it exists? If anything, most tech's troubleshooting skills are pretty poor. But the ever present pressures from clueless suits to "make it work!" lead to workarounds or... the ubiquitous scheduled nightly reboot. This is NOT the fault of the OS. Don't get me wrong, I'm not saying that Windows is a reliable OS compared to other OSes. I'm saying it's more likely that the applications and services that people are running on their machines are more likely to be the cause of crashes or forcing the nightly reboot. Windows has plenty of issues at the server and the desktop that ARE Micro$oft's fault. But seriously people... put the blame where it belongs the other 50% of the time.
Re:Precisely - we can't even get WYSIWYG HTML righ (Score:5, Insightful)
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.
Re:Precisely - we can't even get WYSIWYG HTML righ (Score:3, Insightful)
Some good points (but "Access"? No need for profanity, Sir - and if that's the cost to create databases visually, I win! ;) ). I do believe there will be (and that there already exist) domains where visual design/'programming' works quite well.
The HTML example wasn't meant as a literal one, or that it follows that every visual design approach is inherently broken. A clearer example might have been the command line (the *n*x one) - decades old and non pareil for quite a lot of stuff, regardfless of the billions spent in GUI development. It's even coming back (OSX, Windows).
Of course. Languages evolve, as do all things. The entire software/hardware ecology evolves - that's kind of my point too. Evolution also means that what we can (or want to) achieve with programming will evolve. And that we never can take 'everything' into account. Moving targets, the lot of them. Perhaps the frameworks/systems needed to visually create tomorrow's applications will handle all the special cases, and make visual creation of "everything" faster, more powerful/flexible, etc. I'm a doubter ;) (and have been wrong before).
Microsoft might have the magic bullet, with their gargantuan .NET framework, managed code etc. VisualEverything *shudder* might become feasible - we'll see, nay, visualize ;).
Re:Visual design (Score:2, Insightful)
There should be no reason for a program like aim to make your system reboot from buggy dlls. Btw, replacing the BSOD with just rebooting the computer doesn't fix the problem.
Re:Visual design (Score:5, Insightful)
Re:Design everything first my ass (Score:2, Insightful)
Don't get me wrong. Design is important. To a degree. You have to establish general architecture, boundaries and concepts. But at a certain level of detail, you're making assumptions that you shouldn't waste your time with.
Forget about "poorly defined requirements". What about well defined constantly changing ones? Big Design Up Front makes a gamble that the project won't evolve or change shape during development. The odds are worse than a lottery ticket in Hong Kong.
Common sense, motivation, self-discipline, communication, and, most importantly, hard work will ship a project far more on target than reams of design docs and meetings. I'll take 5 good code monkeys over your 10 engineers any day. bee-otch.
Re:Visual design (Score:3, Insightful)
A faulty application should not bring down your OS. It is the OS' fault if it dies. Even if it's written badly.. or if it's misconfigured (2).
Maybe #3 has some merit.. bad OS settings, but what settings can you set up in Windows that would crash it?
4. Underpowered hardware (overclocked CPUs or just plain slow/older machines, not enough RAM, etc..)
Even if it's slow, that isn't an excuse for it crashing.
5. Inappropriate hardware (Using a Gateway brand desktop PC as a Domain Controller) non-ECC RAM, etc..
The first example is ridiculous, it should not fail just because it's under too much stress.
If my OS dies because of a program that I ran as a normal user or a MS driver I just installed (You'd be surprised.. or.. maybe you wouldn't be?) it's the OS's fault.
Please let this be an end to the: "[Outlook/Apache/other server/other program/other game] locked my computer.. it's no Windows' fault" It is, nothing short of loading a junk driver that's malicious (and you do need admin for that I beleive) or.. an error in the OS should crash it ( barring hardware and with sane settings *read, sane, not optimum.. sane*)
As a sidenote, I use Linux at home, I use Windows XP at school and I repair all sorts of Windows computers. The most damage I've ever seen software and hardware wise has been by techsupport people (A+, et al. certified support)
Re:Yeah, right (Score:3, Insightful)
Solution: have two dish washing robots.
One has a sign labeled "Clean", the other "Dirty.
Take dishes out of the Clean robot. Use. Then place into the Dirty robot. Once all dishes transfered, then activate the Dirty one, and switch the signs.
Re:Visual design (Score:3, Insightful)
Most of this programming is done in-house and is never released. This kind of program is just linking smaller programs together, routing information through the right channels, politics etc. Slowly most of this is going visual. You have programmers that make modules by hand but as time goes on more and more of these modules will be pre-made and then you just link them together in the correct order.
People will still need someone to make the modules but if Microsoft or your ISV provides them you don't know and don't care.
For most of use this seems crazy but over the next 10 years software will become more regulated. Where I'm working we have 3 ISO standards and 3 other standards that we've got to comply with. Basically they mean we have to validate out software and then validate any changes. Since validation is a lot of work we try to buy software, modules that have already been validated (No opensource!) so we don't have to.
Currently we only have to do this with stuff that deals with production. So normal software isn't affected only the software that runs our company.
Anyway only time will tell.
Not necessarily visual... (Score:3, Insightful)
In th beginning programs were most assembly/machine code. No abstraction. Ultimate flexibility and power to control the system, very little help in doing mundane or repetetive coding tasks.
Then came the early higher level languages. Whether procedural or functionally based (or some other paradigm), these gave programmers powerful tools to create more complex programs with only marginal loss in flexibility and power. Later methods such as OOP seekd to improve the levels of abstraction.
More recently, "scripting" languages have started to come into being as able to prototype and in some cases fully develop complete applications. Python and Perl, have less pure control and usually lower performance than languages like C or Fortran, but are much faster to develop in and are usually much easier to debug due to less code needed to solve the same problems.
The question is: what is the next level? Some day I think we'll get to have Star Trek like interfaces to our computers. Ask a question in natural language, which would then presumably be processed into an Ultra-High Level language description the computer can process directly. Obviously this is way off in the future, but I think that the trend is clear: as computers get more powerful we will use ever increasingly high level interfaces to get tasks done, relying on processing power to make up for less efficient algorith representations and a rich set of existing APIs to solve the majority of the problems that any application has to solve.
Microsoft thinks that the next level is a visual development environment. I think this is probably wrong, visual layout is inherently difficult and constraining, source code divided into distinct modules is not limited by spatial dimensions an facilitates searches and queries much more readily.
I think that the Open Source community is currently and a much better route, though through evolutionary rather than revolutionary means. Open source languages like Python (and probably Ruby, which I do not know but a lot of people seem to like) are very high level, easy to learn, and expose a huge number of APIs coded in higher performance languages like C. These APIs solve most of the common problems, and HLLs bring them together to form applictions. When more power or flexibility is neededdevelopers can drop into the lower level languages and develop their own modules which are linked into the HLL. If necessary, this can be done all the way down to the bare metal. A Python application could use C code for certain computationally intensive sections, which may in turn use assembly to take advantage of special instructions on the target architecture.
An even higher level language could be built that uses Python as a lower language when necessary, whihc in turn could use C, etc. The trick is developing a language that makes a significant proportion of tasks significantly easier than Python, or a language like. This will be done I feel, though it may require even richer and more powerful APIs than are currently available.
This progression to increasingly high level textual descriptions certainly meshes better with the Start Trek goal, and does not impose any of the restrictions of a visual environment upon the developer at any stage along the way. it will be interesting to see which method is more successful in the future.
Re:Please Bill.. (Score:3, Insightful)
It's only a problem for dolts like you who can't understand that OSS does NOT mean zero cost. It means source code and the ability to create derivative works[1].
I would pay _MORE_ for those rights.
[1] Full definition of OSS at www.opensource.org.