Although PalmOne (now Palm) switching to Linux _by themselves_ may sound a great idea at first, there could not be any backwards compatibility (licensing), and there would therefore be no apps - and apps are the reason p1 remains in the game.
Quite to the contrary: PalmOS on Linux will be highly backwards compatible with existing Palm applications according to Palm, probably more so than than Cobalt would have been. That's one of the big attractions of doing this.
PalmOS started out as Palm libraries on top of a third party kernel. With PalmOS 5, they added a 68k emulator into the mix. With that history, moving to a different kernel while preserving backwards compatibility should not be all that hard.
This brings up a whole slew of embedded operating systems. It also leaves out PalmOS.
PalmOS isn't really an operating system, it's more like a window system, toolkit, and standard library. All that stuff already runs on top of a third party embedded, real-time kernel.
Sticking with that kernel for as long as Palm did was a mistake, as was their attempt with PalmOS 6 to develop their own kernel. What they are doing now is to take PalmOS (i.e., everything other than the kernel) and move it on top of Linux.
PalmOS on Linux combines one of the best available embedded kernels with arguably the best available user interface and core apps for PDAs/smart phones. Neither Qtopia nor PocketPC are even close.
So, moving PalmOS to Linux makes perfect sense; applications don't need to change significantly, current PalmOS applications will work much better, and Palm can focus on new functionality. The only thing that doesn't make sense is that it took so long.
I'm finding your objections and their justifications rather orthogonal. For example you say that "Matlab isn't a better numerical programming language because its string processing is poor", which is a bit like saying that "your car isn't faster because it's green".
Assume your car lacks a floor and safety belts. You can get from point A to point B without them. Yet, pretty much every modern car has them (including race cars that don't have much else) because they are actually important, and because their inclusion doesn't have any significant costs.
No, I'm doing research where I can make certain assumptions (e.g. I already have my data in a certain format and I don't have to worry about the whole pipeline). That's not to say those problems don't exist, but that they are trivial compared to the research I'm doing.
As I was saying: your problems are simple enough that you can get away with "load a bunch of data, do some array operations and linear algebra on it, save the results". Lots of real-world applications of numerical methods cannot be developed or tested that way.
If you can suggest some alternatives, I would be very interested to look into them.
Well, since you said it wasn't primarily specific toolboxes that attracted you to Matlab, you have plenty of choices.
Personally, I'm fond of Numerical Python, because its numerical array facility is at least as good as Matlab's, but in addition it is an excellent general purpose programming language, and because it has high quality visualization, parallelization, and other tools available. Abstraction, command line, and portability are as good or better as Matlab (if you find a concrete problem, please describe it so that it can get fixed). Tool support is excellent (JIT, C/C++/Fortran interfaces, library bindings, graphics, etc.). There are plenty of other choices, including Mathematica, Splus/R, and others, that are in every way a match for Matlab and each have specific advantages.
For many algorithms, in particular in computer vision, C++ is still the only realistic choice. C++ has excellent libraries available, and with debuggers, development in C++ is pretty much as interactive as in Matlab. Most importantly, C++ is in a class by itself among programming languages in supporting complex mathematical abstractions. And, as a bonus, it even implements them efficiently.
Your reply makes me think that you want Matlab to do something that it is not designed to do.
I don't want to use Matlab at all; I think it's not a well-designed tool.
Now, it is certainly the case that data mining, text mining and bioinformatics will use numerical algorithms, but the database, string processing, I/O and networking tasks you mention are simply tasks that need to occur before or after you run numerical algorithms.
Well, you are lucky that your numerical problems are simple enough that you can get by with that kind of separation. Many people working with numerical algorithms cannot: it simply is not feasible to separate the numerical and non-numerical components like that.
Matlab's design would be acceptable if it were an engineering tradeoff of some sort, but it gains nothing by forcing those restrictions on you: Matlab isn't a better numerical programming language because its string processing is poor.
As my job depends on getting results as fast as possible, I am always looking for ways of achieving that.
So does mine, which is why I don't use Matlab anymore. The only thing Matlab has going for it is its collection of toolboxes, but even that is so spotty that the tool drives your work rather than the other way around if you are satisfied with them.
Consider yourself lucky that your needs are modest enough that you can get by with Matlab; most other practitioners of numerical computation are not so lucky that they can pay $3000 to some company and have an environment that meets their needs perfectly.
Can you explain what you think Ruby on Rails does that is so great, and I don't see it. I looked at the web page, I looked at a tutorial, and it looks fairly cumbersome to me (starting with the fact that any RoR project seems to involve a minimum of 12 subdirectories).
One aspect to RoR seems to be support for MVC and Ajax, but it doesn't seem to be implemented in a way that I would consider straightforward or that I would want to use.
Being able to make HTTP requests from a client-side language without redrawing the UI is nice, although it is perhaps depressing that such an elementary capability has taken more than a decade to make it into standard browsers and that people are so starved for anything working that they celebrate something so elementary.
The problem is that the client-side language is still Javascript: a bad programming language and a bad target for compilers.
but M$'s strength (like it or not) is taking other people's ideas and beating them at their own game
No, Microsoft is not "beating them at their own game", they are just using one monopoly to accumulate vast amounts of cash, then use that cash to cut off their competitors' revenue stream and drive them out of business, and then establish a new monopoly in that market, too. There is no innovation or good business strategy involved.
In fact, that formula has been used for hundreds of years by many potentates, monarchs, feudal lords, corrupt religious organizations, and business empires. The opposite of that excess is another excess: communism. In order to avoid either excess, Western nations built up a system of democratic rights, social reforms, and business regulations. For some obscure reason, societies are bent on dismantling all of those again. We are about to repeat serious mistakes of the 19th century, and 16th century, and god knows what other centuries.
You misunderstood the question. The guy is looking for a tool for Linux that tags audio files based on a fingerprint using the MusicBrainz service. Id3 doesn't seem to do that (and id3 doesn't look like a program I'd trust anyway based on its web page).
I believe there is a MusicBrainz Perl module, which one could perhaps use for constructing a simple command line tool.
That's 1000 days, or about 2.7 years, until the money runs out. And that hurts even Bill Gates a bit more than losing 1000x$0.05 = $50 hurts a normal person.
Both game development and movie making are getting more difficult and more expensive.
Yes, they are, because they are trying to do more complicated things. But now tool makers have a market and are automating more and more of the process. It will take a few more years, but the process will be almost completely automated.
I hate to break it to you but hippies aren't going to be making them and distributing them over thar intarweb
No, hippies aren't going to be making them, but writers and storytellers are, because writing and storytelling is going to be the primary creative input to a movie or game. You may also need one or two visual artists and a composer, but that's it.
The hippies are going to be the out-of-work "artists" and programmers who have been making money painting dirt on rocks in video games and who have been fighting with Direct 3D and pointer errors.
properties like The Godfather with mass-market capability are really quite rare.
makes me sick. The Godfather is a piece of art (whether a good or a bad one is another discussion) and culturally belongs to everybody; the fact that it "belongs" to someone in some narrow copyright sense is incidental.
Fortunately, over the next decades, technology will make the creation of movies and computer games no more difficult than typing out a story on a typewriter, and computer networks make publishing them essentially free. Lots of good content will be free, and the content that won't be free will cut out the kind of windbags that talk about "properties", "franchises", and "mass-market capabilities".
Avoiding sarcasm is sound advice in any culture--the risk of being misunderstood or offending someone is just too high. Even in the US, sarcasm probably backfires more often than not.
World politics are messy, but sometimes I think that invasion is the only way to clean somewhere up. I would have taken out Iraq better than 10 years ago.
It's really not that complicated.
* If the US wants to send its military somewhere and its allies agree it's a good idea, then the US isn't damned no matter what the outcome.
* If the US fights a war against the express wishes of its allies and the international community, then the US is damned unless it is an overwhelmingly clear success (neither Afghanistan nor Iraq are).
* And for the US secret service to topple regimes or attempt secret assassinations of foreign leaders because they are left leaning and/or because they stand in the way of US economic interests is always unacceptable and indefensible.
I'll say this: 99.9% of the starvation in the world today is political in nature. And yes, I consider most war political in nature.
Yes. Unfortunately, invading nations isn't going to fix that. If the US wants to end world hunger, the best way would be to unilaterally stop trade barriers for agricultural products and convince the Europeans to do the same. That would allow third world nations to develop economically and reduce their birth rates.
2. I have never met anybody that programmed in {Scientific,Numeric,Monty} Python, from which we can conclude that they were not hired. People that keep their skills simple, like Matlab and C, usually get hired.
Well, I think that tells us more about the company you work for (and it probably shows in your products as well). We generally do not hire someone who only knows Matlab and C, because it is pretty clear that something has gone seriously wrong with their education. Their school didn't bother to teach them well, and they additionally lacked curiosity or confidence to learn anything else on their own. Put another way, Matlab is so trivial that it makes no difference whether it is on a resume or not: it doesn't demonstrate any useful skill or ability that someone who doesn't know it couldn't acquire rapidly.
3. You have not left the university yet, how would you want to be re-using your code already? I did, and I don't want to re-use my code anyway. It want it to be re-used at the university, while I make other nifty projects at my company.
That's an unwarranted assumption; in fact, I work in industry. That's exactly why it bothers me that some universities (in particular, engineering departments) turn out students who only know Matlab and C, because such graduates are useless for us, even for jobs that are not primarily software development. In my experience, such graduates are unable to understand modern algorithms, to apply modern mathematical abstractions to engineering problems, or even to communicate effectively with software engineers.
1. PhD students do not live in the real world, and therefore do not know what software costs in the real world.
And that's why their professors should make them aware early on because once they get their degree, they have to deal with that.
Matlab is actually an excellent programming language. I am currently using Java after using Matlab for a few years, and it is just so frustratingly verbose and inflexible.
Yeah, Java is so bad that it makes Matlab look good in comparison. Fortunately, the world does not consist of just Java and Matlab.
One of the reasons that Matlab is so productive is because there are so many toolboxes for it. I could use Python and feel all warm and fuzzy, but I'd have to reinvent the wheel so much.
There are many toolboxes for it, but they have a narrow focus (in part a consequence of the limitations of the language). That's a big problem with Matlab: you end up having to reinvent the wheel constantly, or you end up just not doing things you ought to be doing.
But don't knock Matlab for being bad at regular expressions or databases; that's not what it's supposed to do.
But that's what modern numerical computing increasingly involves: data mining, text mining, bioinformatics, etc. Those require database access, string processing, I/O, networking, and other features. In addition, numerical algorithms are getting increasingly complicated and need more and more complicated data structures.
and when you need to do that properly you (or your client) will be prepared to pay for the right software
Be that as it may, that decision doesn't even come up because the right software is actually cheaper than Matlab.
This isn't a partisan issue. I don't know whether the US-Saud relationship was politically wise under FDR given what they knew back then and given what the world was like back then. What I do know is that over the last 20 years, it has become increasingly clear that it is incompatible with US claims of advancing democracy and freedom around the world.
If the current president still doesn't know that continuing the US-Saudi relationship on these terms is a mistake, he is either stupid, or has a financial interest in the relationship that keeps him from doing the right thing, or both.
The US government outsources everything to companies in other countries - everything from highway construction to phone support to the IRS. Making up a number for the tax rate, call it 40%, that people pay, including the federal taxes in gas, phone service, licensing, income taxes, etc. This means that every year 40% of the countries GDP goes to another country or countries. That reduces the overall "value" of our country by that much. At the other end, if we pay nothing to other countries for services or aid or anything, the "value" of the country remains the same.
The "value" of a country is largely independent of how much of its own currency it sends elsewhere. If people have no interest in buying anything in a country or produced in that country, its value is zero. If the country sends a lot of its currency abroad, its currency will just get devalued accordingly.
The US is a bit special: because the US dollar has been used in the trade between other nations, it can't just get devalued arbitrarily. That has allowed the US to keep printing money and to keep producing goods uncompetitively with fewer consequences than other nations. But that won't work forever: people are switching to other currencies. You already see a little bit of a drop in the dollar as a consequence, but it still has a lot further to go; and its artificial stability right now may result in a sudden and catastrophic drop down the road.
The part that's expensive is not that $300. The part that's expensive is that now you have placed your future in the hands of that commercial vendor. It's the rewrites and ports you have to do when Microsoft decides to change the OS. It's the workarounds you have to come up with for bugs in the IDE or compiler until Microsoft gets around to releasing the next version. Proprietary software is risky in the long run.
Not on embedded devices. On embedded devices, Linux is where the users are.
It's the same reason I can't find cheap, reliable terminal emulation for my client's powerbook. There's not sufficient user base to make those sorts of apps profitable.
Well, you can get cheap and reliable terminal emulation for Linux, so just install that.
CompUSA: Toshiba Satellite M35X-S114 Notebook, Intel Celeron M Processor 350, 1.3GHz, 256MB RAM, 40GB HD, 15-inch XGA TFT Display, 8X DVD / 4X4X24 CD-RW , XP Home, $649. Pretty much the same as a Mac Mini ($499) with LCD screen, keyboard, mouse, and speakers (another $150 or more).
Although PalmOne (now Palm) switching to Linux _by themselves_ may sound a great idea at first, there could not be any backwards compatibility (licensing), and there would therefore be no apps - and apps are the reason p1 remains in the game.
Quite to the contrary: PalmOS on Linux will be highly backwards compatible with existing Palm applications according to Palm, probably more so than than Cobalt would have been. That's one of the big attractions of doing this.
PalmOS started out as Palm libraries on top of a third party kernel. With PalmOS 5, they added a 68k emulator into the mix. With that history, moving to a different kernel while preserving backwards compatibility should not be all that hard.
This brings up a whole slew of embedded operating systems. It also leaves out PalmOS.
PalmOS isn't really an operating system, it's more like a window system, toolkit, and standard library. All that stuff already runs on top of a third party embedded, real-time kernel.
Sticking with that kernel for as long as Palm did was a mistake, as was their attempt with PalmOS 6 to develop their own kernel. What they are doing now is to take PalmOS (i.e., everything other than the kernel) and move it on top of Linux.
PalmOS on Linux combines one of the best available embedded kernels with arguably the best available user interface and core apps for PDAs/smart phones. Neither Qtopia nor PocketPC are even close.
So, moving PalmOS to Linux makes perfect sense; applications don't need to change significantly, current PalmOS applications will work much better, and Palm can focus on new functionality. The only thing that doesn't make sense is that it took so long.
Isn't that basically like Zope without the web-based IDE?
I'm finding your objections and their justifications rather orthogonal. For example you say that "Matlab isn't a better numerical programming language because its string processing is poor", which is a bit like saying that "your car isn't faster because it's green".
Assume your car lacks a floor and safety belts. You can get from point A to point B without them. Yet, pretty much every modern car has them (including race cars that don't have much else) because they are actually important, and because their inclusion doesn't have any significant costs.
No, I'm doing research where I can make certain assumptions (e.g. I already have my data in a certain format and I don't have to worry about the whole pipeline). That's not to say those problems don't exist, but that they are trivial compared to the research I'm doing.
As I was saying: your problems are simple enough that you can get away with "load a bunch of data, do some array operations and linear algebra on it, save the results". Lots of real-world applications of numerical methods cannot be developed or tested that way.
If you can suggest some alternatives, I would be very interested to look into them.
Well, since you said it wasn't primarily specific toolboxes that attracted you to Matlab, you have plenty of choices.
Personally, I'm fond of Numerical Python, because its numerical array facility is at least as good as Matlab's, but in addition it is an excellent general purpose programming language, and because it has high quality visualization, parallelization, and other tools available. Abstraction, command line, and portability are as good or better as Matlab (if you find a concrete problem, please describe it so that it can get fixed). Tool support is excellent (JIT, C/C++/Fortran interfaces, library bindings, graphics, etc.). There are plenty of other choices, including Mathematica, Splus/R, and others, that are in every way a match for Matlab and each have specific advantages.
For many algorithms, in particular in computer vision, C++ is still the only realistic choice. C++ has excellent libraries available, and with debuggers, development in C++ is pretty much as interactive as in Matlab. Most importantly, C++ is in a class by itself among programming languages in supporting complex mathematical abstractions. And, as a bonus, it even implements them efficiently.
Your reply makes me think that you want Matlab to do something that it is not designed to do.
I don't want to use Matlab at all; I think it's not a well-designed tool.
Now, it is certainly the case that data mining, text mining and bioinformatics will use numerical algorithms, but the database, string processing, I/O and networking tasks you mention are simply tasks that need to occur before or after you run numerical algorithms.
Well, you are lucky that your numerical problems are simple enough that you can get by with that kind of separation. Many people working with numerical algorithms cannot: it simply is not feasible to separate the numerical and non-numerical components like that.
Matlab's design would be acceptable if it were an engineering tradeoff of some sort, but it gains nothing by forcing those restrictions on you: Matlab isn't a better numerical programming language because its string processing is poor.
As my job depends on getting results as fast as possible, I am always looking for ways of achieving that.
So does mine, which is why I don't use Matlab anymore. The only thing Matlab has going for it is its collection of toolboxes, but even that is so spotty that the tool drives your work rather than the other way around if you are satisfied with them.
Consider yourself lucky that your needs are modest enough that you can get by with Matlab; most other practitioners of numerical computation are not so lucky that they can pay $3000 to some company and have an environment that meets their needs perfectly.
Can you explain what you think Ruby on Rails does that is so great, and I don't see it. I looked at the web page, I looked at a tutorial, and it looks fairly cumbersome to me (starting with the fact that any RoR project seems to involve a minimum of 12 subdirectories).
One aspect to RoR seems to be support for MVC and Ajax, but it doesn't seem to be implemented in a way that I would consider straightforward or that I would want to use.
Being able to make HTTP requests from a client-side language without redrawing the UI is nice, although it is perhaps depressing that such an elementary capability has taken more than a decade to make it into standard browsers and that people are so starved for anything working that they celebrate something so elementary.
The problem is that the client-side language is still Javascript: a bad programming language and a bad target for compilers.
Give Google a break--it takes a while to negotiate all the agreements to get the mapping data for other nations.
What amazing predictive power: stuff that already existed when the book was written would get cheaper. Yeah!
Sure they'll open it up: as long as you use Visual Studio .NET, the Windows-only binary DLL, and pay a small fee for the privilege.
but M$'s strength (like it or not) is taking other people's ideas and beating them at their own game
No, Microsoft is not "beating them at their own game", they are just using one monopoly to accumulate vast amounts of cash, then use that cash to cut off their competitors' revenue stream and drive them out of business, and then establish a new monopoly in that market, too. There is no innovation or good business strategy involved.
In fact, that formula has been used for hundreds of years by many potentates, monarchs, feudal lords, corrupt religious organizations, and business empires. The opposite of that excess is another excess: communism. In order to avoid either excess, Western nations built up a system of democratic rights, social reforms, and business regulations. For some obscure reason, societies are bent on dismantling all of those again. We are about to repeat serious mistakes of the 19th century, and 16th century, and god knows what other centuries.
Sorry, I read 5 billion; I thought they had spent down their cash reserves.
You misunderstood the question. The guy is looking for a tool for Linux that tags audio files based on a fingerprint using the MusicBrainz service. Id3 doesn't seem to do that (and id3 doesn't look like a program I'd trust anyway based on its web page).
I believe there is a MusicBrainz Perl module, which one could perhaps use for constructing a simple command line tool.
That's 1000 days, or about 2.7 years, until the money runs out. And that hurts even Bill Gates a bit more than losing 1000x$0.05 = $50 hurts a normal person.
Both game development and movie making are getting more difficult and more expensive.
Yes, they are, because they are trying to do more complicated things. But now tool makers have a market and are automating more and more of the process. It will take a few more years, but the process will be almost completely automated.
I hate to break it to you but hippies aren't going to be making them and distributing them over thar intarweb
No, hippies aren't going to be making them, but writers and storytellers are, because writing and storytelling is going to be the primary creative input to a movie or game. You may also need one or two visual artists and a composer, but that's it.
The hippies are going to be the out-of-work "artists" and programmers who have been making money painting dirt on rocks in video games and who have been fighting with Direct 3D and pointer errors.
makes me sick. The Godfather is a piece of art (whether a good or a bad one is another discussion) and culturally belongs to everybody; the fact that it "belongs" to someone in some narrow copyright sense is incidental.
Fortunately, over the next decades, technology will make the creation of movies and computer games no more difficult than typing out a story on a typewriter, and computer networks make publishing them essentially free. Lots of good content will be free, and the content that won't be free will cut out the kind of windbags that talk about "properties", "franchises", and "mass-market capabilities".
Avoiding sarcasm is sound advice in any culture--the risk of being misunderstood or offending someone is just too high. Even in the US, sarcasm probably backfires more often than not.
World politics are messy, but sometimes I think that invasion is the only way to clean somewhere up. I would have taken out Iraq better than 10 years ago.
It's really not that complicated.
* If the US wants to send its military somewhere and its allies agree it's a good idea, then the US isn't damned no matter what the outcome.
* If the US fights a war against the express wishes of its allies and the international community, then the US is damned unless it is an overwhelmingly clear success (neither Afghanistan nor Iraq are).
* And for the US secret service to topple regimes or attempt secret assassinations of foreign leaders because they are left leaning and/or because they stand in the way of US economic interests is always unacceptable and indefensible.
I'll say this: 99.9% of the starvation in the world today is political in nature. And yes, I consider most war political in nature.
Yes. Unfortunately, invading nations isn't going to fix that. If the US wants to end world hunger, the best way would be to unilaterally stop trade barriers for agricultural products and convince the Europeans to do the same. That would allow third world nations to develop economically and reduce their birth rates.
2. I have never met anybody that programmed in {Scientific,Numeric,Monty} Python, from which we can conclude that they were not hired. People that keep their skills simple, like Matlab and C, usually get hired.
Well, I think that tells us more about the company you work for (and it probably shows in your products as well). We generally do not hire someone who only knows Matlab and C, because it is pretty clear that something has gone seriously wrong with their education. Their school didn't bother to teach them well, and they additionally lacked curiosity or confidence to learn anything else on their own. Put another way, Matlab is so trivial that it makes no difference whether it is on a resume or not: it doesn't demonstrate any useful skill or ability that someone who doesn't know it couldn't acquire rapidly.
3. You have not left the university yet, how would you want to be re-using your code already? I did, and I don't want to re-use my code anyway. It want it to be re-used at the university, while I make other nifty projects at my company.
That's an unwarranted assumption; in fact, I work in industry. That's exactly why it bothers me that some universities (in particular, engineering departments) turn out students who only know Matlab and C, because such graduates are useless for us, even for jobs that are not primarily software development. In my experience, such graduates are unable to understand modern algorithms, to apply modern mathematical abstractions to engineering problems, or even to communicate effectively with software engineers.
1. PhD students do not live in the real world, and therefore do not know what software costs in the real world.
And that's why their professors should make them aware early on because once they get their degree, they have to deal with that.
Matlab is actually an excellent programming language. I am currently using Java after using Matlab for a few years, and it is just so frustratingly verbose and inflexible.
Yeah, Java is so bad that it makes Matlab look good in comparison. Fortunately, the world does not consist of just Java and Matlab.
One of the reasons that Matlab is so productive is because there are so many toolboxes for it. I could use Python and feel all warm and fuzzy, but I'd have to reinvent the wheel so much.
There are many toolboxes for it, but they have a narrow focus (in part a consequence of the limitations of the language). That's a big problem with Matlab: you end up having to reinvent the wheel constantly, or you end up just not doing things you ought to be doing.
But don't knock Matlab for being bad at regular expressions or databases; that's not what it's supposed to do.
But that's what modern numerical computing increasingly involves: data mining, text mining, bioinformatics, etc. Those require database access, string processing, I/O, networking, and other features. In addition, numerical algorithms are getting increasingly complicated and need more and more complicated data structures.
and when you need to do that properly you (or your client) will be prepared to pay for the right software
Be that as it may, that decision doesn't even come up because the right software is actually cheaper than Matlab.
This isn't a partisan issue. I don't know whether the US-Saud relationship was politically wise under FDR given what they knew back then and given what the world was like back then. What I do know is that over the last 20 years, it has become increasingly clear that it is incompatible with US claims of advancing democracy and freedom around the world.
If the current president still doesn't know that continuing the US-Saudi relationship on these terms is a mistake, he is either stupid, or has a financial interest in the relationship that keeps him from doing the right thing, or both.
The US government outsources everything to companies in other countries - everything from highway construction to phone support to the IRS. Making up a number for the tax rate, call it 40%, that people pay, including the federal taxes in gas, phone service, licensing, income taxes, etc. This means that every year 40% of the countries GDP goes to another country or countries. That reduces the overall "value" of our country by that much. At the other end, if we pay nothing to other countries for services or aid or anything, the "value" of the country remains the same.
The "value" of a country is largely independent of how much of its own currency it sends elsewhere. If people have no interest in buying anything in a country or produced in that country, its value is zero. If the country sends a lot of its currency abroad, its currency will just get devalued accordingly.
The US is a bit special: because the US dollar has been used in the trade between other nations, it can't just get devalued arbitrarily. That has allowed the US to keep printing money and to keep producing goods uncompetitively with fewer consequences than other nations. But that won't work forever: people are switching to other currencies. You already see a little bit of a drop in the dollar as a consequence, but it still has a lot further to go; and its artificial stability right now may result in a sudden and catastrophic drop down the road.
The part that's expensive is not that $300. The part that's expensive is that now you have placed your future in the hands of that commercial vendor. It's the rewrites and ports you have to do when Microsoft decides to change the OS. It's the workarounds you have to come up with for bugs in the IDE or compiler until Microsoft gets around to releasing the next version. Proprietary software is risky in the long run.
Too bad windows is where the users are.
Not on embedded devices. On embedded devices, Linux is where the users are.
It's the same reason I can't find cheap, reliable terminal emulation for my client's powerbook. There's not sufficient user base to make those sorts of apps profitable.
Well, you can get cheap and reliable terminal emulation for Linux, so just install that.
CompUSA: Toshiba Satellite M35X-S114 Notebook, Intel Celeron M Processor 350, 1.3GHz, 256MB RAM, 40GB HD, 15-inch XGA TFT Display, 8X DVD / 4X4X24 CD-RW , XP Home, $649. Pretty much the same as a Mac Mini ($499) with LCD screen, keyboard, mouse, and speakers (another $150 or more).