Calling this thing a "Java desktop" is rather deceptive. Sun took the Gnome desktop, bundled it with a Java runtime and JavaCard authentication, made some cosmetic changes, and then just called it a "Java desktop". Pretty much all the applications, all the policy decisions, all the behavior, and all the functionality are Gnome's. If this is a "great desktop", then so must Gnome be.
In seven years, Java desktop application use is virtually non-existent. Sun has already tried and failed to create and establish a Java-based desktop with Java applications. So, what do they do? They take a successful open source desktop written mostly in C and C++ and call it a "Java desktop". I think that speaks volumes about the suitability of Sun Java and Swing for writing desktop applications and about how desparate Sun is getting. I think it also shows a disrespect Sun has for open source, despite a veneer of support and opportunistic open source licensing of some of their products (mostly in an attempt to harm competitors or to prop up bad Sun standards).
From a practical point of view, this won't matter. Basically, what this really says is that Sun is replacing CDE and OpenWindows with Gnome on their machines, and that they are shipping Java along with it (surprise). Sun had already announced that they were going to do that.
What will be really interesting is whether Sun will start shipping Mono with that, since it looks increasingly likely that at least some Gnome applications will be written in Mono (just like some Gnome applications are written in Python, Perl, and C++).
OO is BAD, OO SUCKS, OO BLOWS Scripting is COOL, Scripting is GOOD, Scripting is FAST
Your remark is really stupid. Scripting languages like PHP, Python, and Perl have far more powerful object systems than Java or.NET.
The fact that managing distributed XA transactions and integrating with multiple datasources is the requirement doesn't matter...
And how exactly does using a statically typed language that generally requires several times as much code as a scripting language to accomplish the same thing make "managing distributed XA transactions" simpler?
What's even more ironic about your example is that most database operations involve the use of a scripting language (SQL), even when the applications language is something like Java or C#.
Java and C# have their uses, but you haven't named any yet.
That's the whole point of asking the question: the three are different "things", but they are all being used for the same applications. So, which of those three platforms is the "best" for web applications?
Frankly, I think for most web applications, languages like PHP are far more effective tools than Java or.NET.
RISC CPUs and UNIX OSs are rather obscure technicalities compared to Apple's really big achievements in the eighties: Desktop Publishing and the LaserWriter. That really changed the world.
Like a lot of other technology attributed to Apple, desktop publishing, Postscript, and laser printing came out of Xerox. And most of the guts and implementation of those products came from companies other than Apple as well. Apple recognized their importance and managed to ship and market products when the prices of those technologies had come down enough for the mass market. Apple had a good business sense, but it's not exactly fair to consider those "Apple's achievements".
What's there to "respect" about the Micky Mouse protection act?
I'd like an internet where a small software development shop can compete against large shops and make a fair profit without today's reality that any software that becomes popular gets pirated en masse, ultimately benefitting only the established names.
Small software development shops creating innovative products can profit today.
I'd like an internet without the "geektelligencia" going 180 degrees the wrong way and bitching and whining about copyrights, when they should be the first one to see their value and fight vigorously to protect them.
Maybe the "geektelligencia" knows that they can make a living without bizarre 70+ year restrictions on copying stuff. You, in contrast, just seem like just one of thoe incompetent whiners who thinks that because you can do half-assed VB programming, the world owes you a fat paycheck.
Your "stylesheets to convert WordML to HTML" aren't particularly persuasive when they are distributed in.EXE format with no license information on the web page and with requirements of "Supported Operating Systems: Windows XP".
If you want to convince people that Microsoft is becoming more open, you have a lot of work ahead of you learning how to distribute standards, sample implementations, and other documentation:
Put license information on the web page prominently. People should know what the license is before they download.
Distribute your content in a neutral, non-executable format. ZIP is OK. Gzipped tar is OK.
Pick a license for things like your style sheets and schemas so that people can actually use them to build interoperable products freely.
Until you start distributing stuff so that people can actually download and use it without Microsoft products and without signing their life away, all that talk of embracing open standards is just meaningless fluff.
I suggested that the portals to the public databases be replaced with a challenge/response system such that if someone wanted my address, I'd get a notification from the QSL bureau, or the FCC that so-and-so was requesting access to my data.
That's not a "challenge/response system". Challenge/response is when you try to authenticate yourself to a computer, the computer challenges you with a question, and you respond.
You want to approve who gets to see your records. Sensible, perhaps, but completely different.
I think the solution to getting something like Half Life 2 on Linux is to create open source versions of similar games.
Given the amount of effort that has gone into HL2, it may sound naive to propose that. But a lot of the work in HL2 is the result of pushing the limits of current technology. If you take something like Quake or Quake 2, there is probably far more free game content out there than there was available commercially with the original games, and there are open source renderers with comparable quality (and distinct from the open source releases of the original game engines). Contrary to what people claim, there are a lot of people outside the industry who create 3D models, art, sound, music for fun, not profit.
Companies are good at pushing the limits in areas like gaming; for that, they earn a lot of money, and for that they have to put in a lot of messy, unpleasant work (like dealing with DirectX). Open source then is the market mechanism by which those technologies then come down in price until they are free. If you absolutely must have the latest and greatest right now, then buy the commercial stuff. If you just want good games, wait a few years until similar open source Linux games come out.
That patent uses two parabolic mirrors, but it isn't even about the "floating in air" bit, it's about dynamic interaction with the "floatin in air" bit. The parabolic mirror technique is an old magician's trick, and the interactive bit is a trivial and obvious extension. None of that has even anything to do with the MIT stuff.
There are two distinct groups developing and commercializing similar technology.
It's pretty silly what goes as "technology" these days. Come on: putting together a fog generator and a projector? People have been doing that for art installations on and off for years.
Given the glass sphere that surrounds it, that looks like your usual project-onto-quickly-rotating-thingy kind of 3D display. All of this stuff has been thought of decades ago, and there is no innovation here. It's only that prices and computers have finally come down enough that it makes sense to produce some, at least for specialty markets.
In C#, you just have to use a class called StringBuilder. It works just like you would expect a string class to operate, it's efficient, and converts itself to a string type when it's needed...
Yes, so does Java (in fact, that's just one of the many design decisions Microsoft copied from Java).
But, fundamentally, read-only strings mean that pretty much whenever you need to construct a string to hand to some function, there is at least one memory allocation happening somewhere. The overhead for that is enormous compared to the kind of string code people regularly write in C or Cobol. The StringBuffer or StringBuilder classes only keep an already bad problem from getting even worse.
Of course, C# and Java compilers "measure up" in terms of simple benchmarks: they are statically typed languages, somewhat simplified from C/C++. They don't have pointers, but pointer manipulation does not speed up code with modern compilers on modern architectures. They do have garbage collection, but garbage collection is generally at least as efficient as manual storage management. Many library routines (string handling, etc.) are coded in C or assembly anyway. The only places where there is potentially more overhead is in a few more places where they do error checking, but that overhead is a few percent at most.
The biggest difference between C/C++ and Java is probably in terms of memory usage. Java slaps a three word (!) header onto every object. So, an array of one million structures consisting of two shorts each takes 20Mbytes in Java, while it only takes 4Mbytes in C or C++. In C#, you can avoid that overhead by using value classes, although for heap allocated objects, it still uses more memory than C and probably C++.
These days, the real question is how these language "measure up" in terms of facilities, and that does have a profound influence on performance. Both languages use read-only string types, which result in enormous overhead for string manipulation code written in what programmers consider the "natural" common way. One can argue that that overhead is acceptable, but it is there. To avoid it, you have write your Java code completely differently. C# has value clases while Java doesn't, which means that writing a lot of scientific code is much easier in C# than in Java.
Libraries are another big issue. The standard Java libraries are inefficient in many places: often, their implementation is bad, and in many cases, the API simply does not allow an efficient implementation. I would guess the C# libraries are pretty similar, given that they are so closely modeled in Java.
Note that this is also a major problem with C++ libraries: the compiler can be as good as it gets, but if the libraries are designed and implemented badly, the resulting programs will still be bloated and slow. That's why so many programmers still prefer C: programming in C is such hard work that C programmers don't make their libraries very complex and general, and as a result, they tend to be more efficient.
With these high-level languages, the question is not whether they perform well on microbenchmarks--they do--the question is how well they encourage and support writing efficient code. Java downright discourages it. C# is a little better. C++ lets programmers write efficient code easily, but it also makes abstraction so easy that many programmers still end up writing overly general and inefficient code.
Further, by terminating H-1B employment, you ensure that American jobs stay with Americans.
You seem to think these jobs somehow belong to Americans. B.S. Companies like Coca Cola, Intel, GE, GM, AT&T, IBM, Sun, Apple, Xerox, etc. may have originated in the US, but they are multinationals. In some cases, the majority of their business is outside the US. Why should the jobs in one of their departments go predominantly to US workers?
And what do you think all those skilled workers who don't get H1b visas to come to the US will do? Take up gardening? Work in garment sweat shops? No, they'll build IT companies in their countries of origin, IT companies that won't pay US taxes, won't be subject to US labor laws, and will compete with US companies.
they insist that cannot find American workers for critical jobs and that they must hire H-1Bs.
Yes, and they are usually right.
We in the Slashdot community should say, "Fine. Go set up shop overseas. There is plenty of labor there."
I'm all for terminating the H1b visa program. It's a question of fairness--not to US IT workers, but to foreign tax payers. Right now Indian, Chinese, and European tax payers are paying for the lack of investment in public education and social capital in the US. Terminating the H1b visa program would finally permit those nations to retain their best workers, workers whose education they have often invested large sums of money in, and build larger, more competitive IT industries domestically. However, if you think that that is good for the US or US workers, you are kidding yourself.
When you buy a car, do you just hand $20k in cash to some salesman and say "drop off the car whenever you feel like it"? Or do you insist on a purchase contract and title? It's the same with software licenses: you need sound contractual language.
So, my point is not that you shouldn't trust Sun, my point is that you should insist on a sound legal basis for any important business dealings. The reason that point needs to be made about McNealy and Sun is because McNealy has said "trust us on Java". I'm saying that's not good enough. McNealy's interview shows clearly that he views the Java platform as Sun's property, and he is right. The reason Sun tolerates various open source efforts around is is because it is, as you point out, in their business interest--for now. But as Caldera has shown, business interests can change overnight.
Sun has done the right thing with OpenOffice--they have put it under an irrevocable, open source license. That's the way any software company wishing to participate in the open source movement should operate for every single contribution.
But the same is not true for Java--neither the licenses for the Java specification nor the licenses for Java implementations are open source licenses, and the Java language is designed and explicitly intended to replace the underlying operating system. If you build on it, you hand control of the platform you are building on to a Sun-led industry consortium. McNealy says "trust us, we'll do the right thing with it". I'm saying, that's not good enough for me--it shouldn't be for any open source developer.
Here's the problem. Programmer makes 80K a year. Boss thinks, "gee, I can hire a guest worker for 50K a year instead". So. Boss gets 30K more a year, guest workter gets $50K a year.
No, sorry, that's not the way it works. I'm sure there are some H-1b workers that are underpaid, but that's not the usual situation in my experience. H-1b workers are a lot of work to hire in the first place and any manager recruiting overseas in an attempt to save money would be a fool. Furthermore H-1b visas have become fairly portable so if he underpays them, they can just leave.
The reason why companies hire H-1b workers is because there really is a shortage of good software professionals in the US, at any price. If the boss really wanted to save money, he'd outsource the job to India. The fact that he offers people H-1b visas to come to the US is a perk he uses to compete for an already small and competitive pool.
And American looses his job. Yes. World is technicly better off. But American workers are NOT better off.
"American" loses his job anyway--it wasn't an "American" job in the first place. I mean, Sun and companies like that are global companies--they sell everywhere, they should hire everywhere. But they still have disproportionate numbers of jobs in the US. In any case, if it's outsourced to India rather than handled by an Indian immigrant, "American" doesn't even get the tax benefits.
What's worse, the American worker paid for the road that that the foreign worker now drives to work and pays for the school that the foreign workers kids now go to.
And the foreign worker's education and health care was paid for by the tax payers where he grew up. To get the equivalent of one high-powered programmer through the H-1b program, the US would have to give dozens of kids a high quality education domestically so that one of them would turn out to take that job. Given that the US really only hires the best and brightest, this is one sweet, money-saving deal for the US and one lousy deal for everybody else.
Furthermore, the notion that people come to the US for tax-payer funded education or other government services is laughable. To get a good education, they either have to move into very high-priced neighborhoods, or they just have to pay for a good schools outright.
Yup, most are subsidized by the government. Most Americans have student debt up to their eyeballs.
Bingo: the US is just not paying for the education of its own workers, and imports workers educated at the expense of other nations. That's because of incessant anti-government rhetoric by certain political groups in the US that has fallen on fertile ground with greedy voters (e.g. "Proposition 13"). The result has been a dismantling of public education in the US. Now, that you have a perfect right to complain about.
The reason to stop the H-1b program is not some bogus argument of it being unfair to US workers--it isn't unfair to US workers at all; the reason to stop it is that it's unfair to India, China, and Europe, who spend enormous resources educating people while Americans drive around in SUVs and build a megalomaniacal military with the money they save on social services and education.
Of course, if the H-1b workers aren't allowed in the US anymore, IT jobs won't magically appear in the US--the US just doesn't have the people to fill them with native-born workers. Instead, the IT industries in India, China, and Europe will become much more important relative to the US. US workers will only benefit once the US makes the additional effort of investing heavily in public education and social services. That means hundreds of billions of dollars a year in real tax dollars, like for example the hundreds of billions of dollars we are spending on wars and the military.
McNealy is clearly a shrewd, profit-maximizing businessman, not someone who feels deeply about technology. He has told us this much: he "doesn't get paid to feel". He gets paid to maximize profit, by any legal means.
That means, among other things, taking advantage of the SCO situation by telling people to buy Linux or Solaris from Sun so that they can't get sued by SCO.
And you can see his current thinking in this quote:
We have one of two developer communities left on the planet, (Microsoft) . Net being the other.
Note the "we have", as in "Sun has". The guy obviously views Sun's ownership of Java as analogous to Microsoft's ownership of.NET. And right he is: for most practical purposes, Sun retains as much ownership of Java as Microsoft retains ownership of Windows.
Linux or POSIX don't even enter into his thinking as platforms. He already thinks of the Linux and POSIX APIs as being irrelevant, supplanted by Java APIs, APIs that, by his own statement, Sun effectively owns.
At least with Gates, people know exactly where he stands. McNealy is dangerous because some people actually believe his talk of openness and support of free software. But make no mistake: if it would help his business, the guy would clearly not hesitate a second to kill Linux or grab control of it. And that's just what he is trying to do, both with Java and with his SCO-related efforts.
Rational people don't "hate Microsoft", they "hate Microsoft's conduct"--anti-competitive business practices, vaporware, shoddy software development, aggressive purchases of startups, bundling deals, etc.
Eolas patent not only is a software patent, it is a bad software patent, and there is prior art. Microsoft is clearly getting a raw deal here and they are being wronged by Eolas. On this matter, the open source community should take Microsoft's side.
However, if you still like something to "hate" about Microsoft, it is that they keep bungling their legal cases. IANAL, but it really sounds like Microsoft got a much worse result than they should have. While prior art and other defenses often are apparently difficult to make during the first legal round, it seems like Microsoft managed to get potential prior art (the Viola browser) thrown out, and there were several other unfavorable rulings against them during the trial. For that, you can "hate" them, because with billions upon billions of dollars in the bank, Microsoft should be able to hire better lawyers. It seems, Microsoft's lawyers are as shoddy and inexperienced as their programmers.
Funny how most of the Europeans I know who have lived in the US for any amount of time have really liked it here. Some enough to stay here permanently.
That's not contradictory. Those Europeans live in the few percent of the US that is modern, fairly civilized, and interesting, where some non-negligible fraction of the population actually knows of the existence of places outside the US, and where there are at least acceptable cultural institutions and events (museums, theater, opera, lectures, chamber music, etc.). They live in places like Boston, New York, San Francisco, Seattle, and maybe a handful of others. And they live in the 5% of the income distribution where life in the US is pretty convenient, where they can send their kids to good schools, and where their friends, acquaintances, and co-workers have actually also gone to good schools. In short, Europeans often like living in the US because they can choose to live in the nicest places and because they usually command a large income.
But when those same Europeans venture outside those few areas, they see most Americans living depressing, backwards lives in depressing, backwards places.
The article makes the usual muddled mess of an argument. Let's be clear:
Stopping the H-1b program doesn't slow down outsourcing to overseas, it actually accelerates it: after all, all those qualified workers who can't move to the US are going to work for even less overseas. If they come to the US, at least they are considerably more costly to employers, thereby raising wages in the field, and they pay taxes to the US government.
Steel workers, textile workers, and farmers have had to deal with cheap competition from overseas, why should programmers be any different?
Why should the software jobs for companies like MacDonalds, CocaCola, IBM, etc. go to US workers in the first place? Those companies sell all over the world, it makes sense that they should do their software development all over the world.
The US had it really easy after WWII: Europe was in ruins and much of the rest of the world was saddled with inefficient economic systems. Investments in many places other than the US were viewed as very risky. That's all changing now. As countries like China and India are becoming more efficient and more competitive, US workers may well have to work harder to maintain their standard of living, or accept making do with less. And US unemployment, still low compared with many other nations, will probably equilibrate with other nations. Whining about it won't help, and protectionism and closing borders would probably just make things worse for the US.
TV, radio, even the internet were all initialy military projects.
Nonsense. Radio was invented by Marconi, and it was financed by the British Post (here). You can read about the development of television here, in which the military is conspicuous by its absence.
There is nothing "bad", "evil" or "immoral" about it. In the end it's technology and the military power that came with it which allows this country to exist as it does today. How you see that, good/bad is your own opionion.
Well, which is it? Is it up to people themselves to decide whether that's bad, or do you categorically insist that "there is nothing 'bad' [...] about it"?
And even if one were to view the US as an unequivocally good force in the world (a view even most thinking Americans would probably not subscribe to), that doesn't mean that all its military campaigns were "good". To many people, the end does not justify the means.
The Creative Zen gets 14h play time and recharges over USB, so it is possible to do this; its main disadvantage are its software, user interface, and design. The Zen is somewhat larger than the iPod, but I'd rather have a larger MP3 player that doesn't die halfway through the day. With some careful engineering, Apple might be able to get Zen-like battery-life in a unit the size of the old iPod (all the extra thickness could be battery).
They would have a point if they were an ordinary company. But Microsoft has grown so huge that the only effective competition against them, the only kinds of organizations with enough resources to establish alternative operating systems as standards, are governments. And that's OK: governments are in the business of dealing with monopolies--that is one of their purposes.
From designing interfaces, to writing code, to generating code, to debugging code, to remote debugging, it's just awesome and completely customizable.
You know, that sort of thing may impress you and a million other McProgrammers out there. If you knew what you were doing, you wouldn't need interface designers, code generators, or debuggers.
Calling this thing a "Java desktop" is rather deceptive. Sun took the Gnome desktop, bundled it with a Java runtime and JavaCard authentication, made some cosmetic changes, and then just called it a "Java desktop". Pretty much all the applications, all the policy decisions, all the behavior, and all the functionality are Gnome's. If this is a "great desktop", then so must Gnome be.
In seven years, Java desktop application use is virtually non-existent. Sun has already tried and failed to create and establish a Java-based desktop with Java applications. So, what do they do? They take a successful open source desktop written mostly in C and C++ and call it a "Java desktop". I think that speaks volumes about the suitability of Sun Java and Swing for writing desktop applications and about how desparate Sun is getting. I think it also shows a disrespect Sun has for open source, despite a veneer of support and opportunistic open source licensing of some of their products (mostly in an attempt to harm competitors or to prop up bad Sun standards).
From a practical point of view, this won't matter. Basically, what this really says is that Sun is replacing CDE and OpenWindows with Gnome on their machines, and that they are shipping Java along with it (surprise). Sun had already announced that they were going to do that.
What will be really interesting is whether Sun will start shipping Mono with that, since it looks increasingly likely that at least some Gnome applications will be written in Mono (just like some Gnome applications are written in Python, Perl, and C++).
OO is BAD, OO SUCKS, OO BLOWS Scripting is COOL, Scripting is GOOD, Scripting is FAST
.NET.
Your remark is really stupid. Scripting languages like PHP, Python, and Perl have far more powerful object systems than Java or
The fact that managing distributed XA transactions and integrating with multiple datasources is the requirement doesn't matter...
And how exactly does using a statically typed language that generally requires several times as much code as a scripting language to accomplish the same thing make "managing distributed XA transactions" simpler?
What's even more ironic about your example is that most database operations involve the use of a scripting language (SQL), even when the applications language is something like Java or C#.
Java and C# have their uses, but you haven't named any yet.
These are 3 quite different things.
.NET.
That's the whole point of asking the question: the three are different "things", but they are all being used for the same applications. So, which of those three platforms is the "best" for web applications?
Frankly, I think for most web applications, languages like PHP are far more effective tools than Java or
Just put it into a plastic bag that you discard regularly. You can hear through it and operate it through it.
RISC CPUs and UNIX OSs are rather obscure technicalities compared to Apple's really big achievements in the eighties: Desktop Publishing and the LaserWriter. That really changed the world.
Like a lot of other technology attributed to Apple, desktop publishing, Postscript, and laser printing came out of Xerox. And most of the guts and implementation of those products came from companies other than Apple as well. Apple recognized their importance and managed to ship and market products when the prices of those technologies had come down enough for the mass market. Apple had a good business sense, but it's not exactly fair to consider those "Apple's achievements".
With people who RESPECT copyrights
What's there to "respect" about the Micky Mouse protection act?
I'd like an internet where a small software development shop can compete against large shops and make a fair profit without today's reality that any software that becomes popular gets pirated en masse, ultimately benefitting only the established names.
Small software development shops creating innovative products can profit today.
I'd like an internet without the "geektelligencia" going 180 degrees the wrong way and bitching and whining about copyrights, when they should be the first one to see their value and fight vigorously to protect them.
Maybe the "geektelligencia" knows that they can make a living without bizarre 70+ year restrictions on copying stuff. You, in contrast, just seem like just one of thoe incompetent whiners who thinks that because you can do half-assed VB programming, the world owes you a fat paycheck.
If you want to convince people that Microsoft is becoming more open, you have a lot of work ahead of you learning how to distribute standards, sample implementations, and other documentation:
Until you start distributing stuff so that people can actually download and use it without Microsoft products and without signing their life away, all that talk of embracing open standards is just meaningless fluff.
I suggested that the portals to the public databases be replaced with a challenge/response system such that if someone wanted my address, I'd get a notification from the QSL bureau, or the FCC that so-and-so was requesting access to my data.
That's not a "challenge/response system". Challenge/response is when you try to authenticate yourself to a computer, the computer challenges you with a question, and you respond.
You want to approve who gets to see your records. Sensible, perhaps, but completely different.
I think the solution to getting something like Half Life 2 on Linux is to create open source versions of similar games.
Given the amount of effort that has gone into HL2, it may sound naive to propose that. But a lot of the work in HL2 is the result of pushing the limits of current technology. If you take something like Quake or Quake 2, there is probably far more free game content out there than there was available commercially with the original games, and there are open source renderers with comparable quality (and distinct from the open source releases of the original game engines). Contrary to what people claim, there are a lot of people outside the industry who create 3D models, art, sound, music for fun, not profit.
Companies are good at pushing the limits in areas like gaming; for that, they earn a lot of money, and for that they have to put in a lot of messy, unpleasant work (like dealing with DirectX). Open source then is the market mechanism by which those technologies then come down in price until they are free. If you absolutely must have the latest and greatest right now, then buy the commercial stuff. If you just want good games, wait a few years until similar open source Linux games come out.
That patent uses two parabolic mirrors, but it isn't even about the "floating in air" bit, it's about dynamic interaction with the "floatin in air" bit. The parabolic mirror technique is an old magician's trick, and the interactive bit is a trivial and obvious extension. None of that has even anything to do with the MIT stuff.
There are two distinct groups developing and commercializing similar technology.
It's pretty silly what goes as "technology" these days. Come on: putting together a fog generator and a projector? People have been doing that for art installations on and off for years.
Given the glass sphere that surrounds it, that looks like your usual project-onto-quickly-rotating-thingy kind of 3D display. All of this stuff has been thought of decades ago, and there is no innovation here. It's only that prices and computers have finally come down enough that it makes sense to produce some, at least for specialty markets.
In C#, you just have to use a class called StringBuilder. It works just like you would expect a string class to operate, it's efficient, and converts itself to a string type when it's needed...
Yes, so does Java (in fact, that's just one of the many design decisions Microsoft copied from Java).
But, fundamentally, read-only strings mean that pretty much whenever you need to construct a string to hand to some function, there is at least one memory allocation happening somewhere. The overhead for that is enormous compared to the kind of string code people regularly write in C or Cobol. The StringBuffer or StringBuilder classes only keep an already bad problem from getting even worse.
Of course, C# and Java compilers "measure up" in terms of simple benchmarks: they are statically typed languages, somewhat simplified from C/C++. They don't have pointers, but pointer manipulation does not speed up code with modern compilers on modern architectures. They do have garbage collection, but garbage collection is generally at least as efficient as manual storage management. Many library routines (string handling, etc.) are coded in C or assembly anyway. The only places where there is potentially more overhead is in a few more places where they do error checking, but that overhead is a few percent at most.
The biggest difference between C/C++ and Java is probably in terms of memory usage. Java slaps a three word (!) header onto every object. So, an array of one million structures consisting of two shorts each takes 20Mbytes in Java, while it only takes 4Mbytes in C or C++. In C#, you can avoid that overhead by using value classes, although for heap allocated objects, it still uses more memory than C and probably C++.
These days, the real question is how these language "measure up" in terms of facilities, and that does have a profound influence on performance. Both languages use read-only string types, which result in enormous overhead for string manipulation code written in what programmers consider the "natural" common way. One can argue that that overhead is acceptable, but it is there. To avoid it, you have write your Java code completely differently. C# has value clases while Java doesn't, which means that writing a lot of scientific code is much easier in C# than in Java.
Libraries are another big issue. The standard Java libraries are inefficient in many places: often, their implementation is bad, and in many cases, the API simply does not allow an efficient implementation. I would guess the C# libraries are pretty similar, given that they are so closely modeled in Java.
Note that this is also a major problem with C++ libraries: the compiler can be as good as it gets, but if the libraries are designed and implemented badly, the resulting programs will still be bloated and slow. That's why so many programmers still prefer C: programming in C is such hard work that C programmers don't make their libraries very complex and general, and as a result, they tend to be more efficient.
With these high-level languages, the question is not whether they perform well on microbenchmarks--they do--the question is how well they encourage and support writing efficient code. Java downright discourages it. C# is a little better. C++ lets programmers write efficient code easily, but it also makes abstraction so easy that many programmers still end up writing overly general and inefficient code.
Further, by terminating H-1B employment, you ensure that American jobs stay with Americans.
You seem to think these jobs somehow belong to Americans. B.S. Companies like Coca Cola, Intel, GE, GM, AT&T, IBM, Sun, Apple, Xerox, etc. may have originated in the US, but they are multinationals. In some cases, the majority of their business is outside the US. Why should the jobs in one of their departments go predominantly to US workers?
And what do you think all those skilled workers who don't get H1b visas to come to the US will do? Take up gardening? Work in garment sweat shops? No, they'll build IT companies in their countries of origin, IT companies that won't pay US taxes, won't be subject to US labor laws, and will compete with US companies.
they insist that cannot find American workers for critical jobs and that they must hire H-1Bs.
Yes, and they are usually right.
We in the Slashdot community should say, "Fine. Go set up shop overseas. There is plenty of labor there."
I'm all for terminating the H1b visa program. It's a question of fairness--not to US IT workers, but to foreign tax payers. Right now Indian, Chinese, and European tax payers are paying for the lack of investment in public education and social capital in the US. Terminating the H1b visa program would finally permit those nations to retain their best workers, workers whose education they have often invested large sums of money in, and build larger, more competitive IT industries domestically. However, if you think that that is good for the US or US workers, you are kidding yourself.
When you buy a car, do you just hand $20k in cash to some salesman and say "drop off the car whenever you feel like it"? Or do you insist on a purchase contract and title? It's the same with software licenses: you need sound contractual language.
So, my point is not that you shouldn't trust Sun, my point is that you should insist on a sound legal basis for any important business dealings. The reason that point needs to be made about McNealy and Sun is because McNealy has said "trust us on Java". I'm saying that's not good enough. McNealy's interview shows clearly that he views the Java platform as Sun's property, and he is right. The reason Sun tolerates various open source efforts around is is because it is, as you point out, in their business interest--for now. But as Caldera has shown, business interests can change overnight.
Sun has done the right thing with OpenOffice--they have put it under an irrevocable, open source license. That's the way any software company wishing to participate in the open source movement should operate for every single contribution.
But the same is not true for Java--neither the licenses for the Java specification nor the licenses for Java implementations are open source licenses, and the Java language is designed and explicitly intended to replace the underlying operating system. If you build on it, you hand control of the platform you are building on to a Sun-led industry consortium. McNealy says "trust us, we'll do the right thing with it". I'm saying, that's not good enough for me--it shouldn't be for any open source developer.
Here's the problem. Programmer makes 80K a year. Boss thinks, "gee, I can hire a guest worker for 50K a year instead". So. Boss gets 30K more a year, guest workter gets $50K a year.
No, sorry, that's not the way it works. I'm sure there are some H-1b workers that are underpaid, but that's not the usual situation in my experience. H-1b workers are a lot of work to hire in the first place and any manager recruiting overseas in an attempt to save money would be a fool. Furthermore H-1b visas have become fairly portable so if he underpays them, they can just leave.
The reason why companies hire H-1b workers is because there really is a shortage of good software professionals in the US, at any price. If the boss really wanted to save money, he'd outsource the job to India. The fact that he offers people H-1b visas to come to the US is a perk he uses to compete for an already small and competitive pool.
And American looses his job. Yes. World is technicly better off. But American workers are NOT better off.
"American" loses his job anyway--it wasn't an "American" job in the first place. I mean, Sun and companies like that are global companies--they sell everywhere, they should hire everywhere. But they still have disproportionate numbers of jobs in the US. In any case, if it's outsourced to India rather than handled by an Indian immigrant, "American" doesn't even get the tax benefits.
What's worse, the American worker paid for the road that that the foreign worker now drives to work and pays for the school that the foreign workers kids now go to.
And the foreign worker's education and health care was paid for by the tax payers where he grew up. To get the equivalent of one high-powered programmer through the H-1b program, the US would have to give dozens of kids a high quality education domestically so that one of them would turn out to take that job. Given that the US really only hires the best and brightest, this is one sweet, money-saving deal for the US and one lousy deal for everybody else.
Furthermore, the notion that people come to the US for tax-payer funded education or other government services is laughable. To get a good education, they either have to move into very high-priced neighborhoods, or they just have to pay for a good schools outright.
Yup, most are subsidized by the government. Most Americans have student debt up to their eyeballs.
Bingo: the US is just not paying for the education of its own workers, and imports workers educated at the expense of other nations. That's because of incessant anti-government rhetoric by certain political groups in the US that has fallen on fertile ground with greedy voters (e.g. "Proposition 13"). The result has been a dismantling of public education in the US. Now, that you have a perfect right to complain about.
The reason to stop the H-1b program is not some bogus argument of it being unfair to US workers--it isn't unfair to US workers at all; the reason to stop it is that it's unfair to India, China, and Europe, who spend enormous resources educating people while Americans drive around in SUVs and build a megalomaniacal military with the money they save on social services and education.
Of course, if the H-1b workers aren't allowed in the US anymore, IT jobs won't magically appear in the US--the US just doesn't have the people to fill them with native-born workers. Instead, the IT industries in India, China, and Europe will become much more important relative to the US. US workers will only benefit once the US makes the additional effort of investing heavily in public education and social services. That means hundreds of billions of dollars a year in real tax dollars, like for example the hundreds of billions of dollars we are spending on wars and the military.
That means, among other things, taking advantage of the SCO situation by telling people to buy Linux or Solaris from Sun so that they can't get sued by SCO.
And you can see his current thinking in this quote: Note the "we have", as in "Sun has". The guy obviously views Sun's ownership of Java as analogous to Microsoft's ownership of
Linux or POSIX don't even enter into his thinking as platforms. He already thinks of the Linux and POSIX APIs as being irrelevant, supplanted by Java APIs, APIs that, by his own statement, Sun effectively owns.
At least with Gates, people know exactly where he stands. McNealy is dangerous because some people actually believe his talk of openness and support of free software. But make no mistake: if it would help his business, the guy would clearly not hesitate a second to kill Linux or grab control of it. And that's just what he is trying to do, both with Java and with his SCO-related efforts.
Rational people don't "hate Microsoft", they "hate Microsoft's conduct"--anti-competitive business practices, vaporware, shoddy software development, aggressive purchases of startups, bundling deals, etc.
Eolas patent not only is a software patent, it is a bad software patent, and there is prior art. Microsoft is clearly getting a raw deal here and they are being wronged by Eolas. On this matter, the open source community should take Microsoft's side.
However, if you still like something to "hate" about Microsoft, it is that they keep bungling their legal cases. IANAL, but it really sounds like Microsoft got a much worse result than they should have. While prior art and other defenses often are apparently difficult to make during the first legal round, it seems like Microsoft managed to get potential prior art (the Viola browser) thrown out, and there were several other unfavorable rulings against them during the trial. For that, you can "hate" them, because with billions upon billions of dollars in the bank, Microsoft should be able to hire better lawyers. It seems, Microsoft's lawyers are as shoddy and inexperienced as their programmers.
Funny how most of the Europeans I know who have lived in the US for any amount of time have really liked it here. Some enough to stay here permanently.
That's not contradictory. Those Europeans live in the few percent of the US that is modern, fairly civilized, and interesting, where some non-negligible fraction of the population actually knows of the existence of places outside the US, and where there are at least acceptable cultural institutions and events (museums, theater, opera, lectures, chamber music, etc.). They live in places like Boston, New York, San Francisco, Seattle, and maybe a handful of others. And they live in the 5% of the income distribution where life in the US is pretty convenient, where they can send their kids to good schools, and where their friends, acquaintances, and co-workers have actually also gone to good schools. In short, Europeans often like living in the US because they can choose to live in the nicest places and because they usually command a large income.
But when those same Europeans venture outside those few areas, they see most Americans living depressing, backwards lives in depressing, backwards places.
The US had it really easy after WWII: Europe was in ruins and much of the rest of the world was saddled with inefficient economic systems. Investments in many places other than the US were viewed as very risky. That's all changing now. As countries like China and India are becoming more efficient and more competitive, US workers may well have to work harder to maintain their standard of living, or accept making do with less. And US unemployment, still low compared with many other nations, will probably equilibrate with other nations. Whining about it won't help, and protectionism and closing borders would probably just make things worse for the US.
TV, radio, even the internet were all initialy military projects.
Nonsense. Radio was invented by Marconi, and it was financed by the British Post (here). You can read about the development of television here, in which the military is conspicuous by its absence.
There is nothing "bad", "evil" or "immoral" about it. In the end it's technology and the military power that came with it which allows this country to exist as it does today. How you see that, good/bad is your own opionion.
Well, which is it? Is it up to people themselves to decide whether that's bad, or do you categorically insist that "there is nothing 'bad' [...] about it"?
And even if one were to view the US as an unequivocally good force in the world (a view even most thinking Americans would probably not subscribe to), that doesn't mean that all its military campaigns were "good". To many people, the end does not justify the means.
The Creative Zen gets 14h play time and recharges over USB, so it is possible to do this; its main disadvantage are its software, user interface, and design. The Zen is somewhat larger than the iPod, but I'd rather have a larger MP3 player that doesn't die halfway through the day. With some careful engineering, Apple might be able to get Zen-like battery-life in a unit the size of the old iPod (all the extra thickness could be battery).
They would have a point if they were an ordinary company. But Microsoft has grown so huge that the only effective competition against them, the only kinds of organizations with enough resources to establish alternative operating systems as standards, are governments. And that's OK: governments are in the business of dealing with monopolies--that is one of their purposes.
From designing interfaces, to writing code, to generating code, to debugging code, to remote debugging, it's just awesome and completely customizable.
You know, that sort of thing may impress you and a million other McProgrammers out there. If you knew what you were doing, you wouldn't need interface designers, code generators, or debuggers.