The sad thing is that although the generalisation is true a lot more often than not, IME there really are a significant number of exceptions, and it really is a waste when these people can't get the head-start in their careers that their skill merits.
Nor is Tex. Its a good skill to list, but not as a programming language.
And not mis-typeset when the TeX community makes a bizarrely huge thing about that particular issue. It's like using void main() in C++; in practice, it very rarely does any harm, but it is incorrect, and using it makes an informed critic wonder what else you do wrong...
This is probably a bit O/T, but since it seems people are interested enough to reply/mod up in this subthread...
I believe most educational centers use Java as their demonstration language these days
That was the trend a few years ago, but I get the feeling it's been reversing for a while now. Java is a decent tool for plenty of jobs, but teaching really isn't one of them, and never was. There's just too much overhead and irrelevant detail before you get to the core concepts, and then part of the point of Java is that it's very limiting in what you can do in some key areas. For example, you can't teach a comprehensive understanding of OO when the assumption is that all classes share a common root and there's little consideration for multiple inheritance and mix-ins. You can argue that Java is a better language without those things, but how can you explain that to someone who doesn't know what they are?
I suspect the same is true of using any.Net language as your first. You're better off learning underlying programming techniques using something simple -- try Python for procedural, Smalltalk to understand objects, ML to learn functional programming, C to learn low-level stuff and basic data structures, etc. Then there are only a fairly small number of somewhat unique features in.Net languages, which you can pick up fairly quickly if you understand the basic ideas: delegates aren't particularly challenging to anyone who's done a bit of functional programming or even worked with function pointers, for example, though they might seem a bit strange to people who haven't experienced either. The rest is just a class library, and you learn it on demand, just as you would with Java's, or with CPAN, or whatever.
On a site with 50 different elements if it takes me ten minutes per element to figure out a work around
...then you're in the wrong line of work.
Seriously, we all know that IE's handling of CSS is buggy as hell, and there are plenty of bugs in other browsers, too. However, the vast majority of problems come down to the same half-dozen or so "frequent offenders", and the circumstances when they arise and the workarounds for them are widely known and readily available for the price of a search engine query. If it takes you more than a few minutes to patch up the CSS for a sensibly-designed site to make it compatible with the vast majority of browsers in use today, then you need to spend less time slagging off other people's software on Slashdot and more time reading introductory tutorials on browser compatibility.
And yes, I have done the CSS for several moderately large web sites, and yes, they do all display correctly on all recent versions of all major browsers.
As strange as it sounds, I actually want the next round of DRM to get dramatically worse, for one simple reason: I think it's going to get worse before it gets better whatever happens, because not enough people are currently being annoyed by it to care, and the sooner it gets to the turning point, the sooner we can get past it.
When silly things happen, the market will tolerate them, and legislators will even support them if well-enough bribed, but only for so long. One breath too many makes the whole stack of cards fall down. History suggests that consumer markets and governments often lag behind new technology by several years, but are remarkably consistent in eventually telling those with abusive pro-their-business, anti-anyone-else proposals where to go.
For example, the idea that the DRM groups will be able to force hardware makers who want to support their DRM technology not to support anything else is a bit like Microsoft telling PC vendors that they could only ship with Windows preinstalled. For a while they got away with it, but now the tables have turned, they've been ruled against in court, they're being fined left, right and centre, and the big PC vendors are shipping Linux servers without a care in the world.
Similar idiocy will happen with DRM and copyright laws, until it gets to the point that the average Joe can no longer do reasonable but technically illegal and/or DRM-restricted things, and gets upset about it. Then, probably quite suddenly, public opinion will turn overwhelmingly against those seen to be supporting such measures. The technology companies will back away, and those who offered less offensive alternatives will profit greatly. The legislators will turn on the media companies like piranha on raw meat, and several will fall as they try to distance themselves from any pro-abusive-system laws they voted on previously. The effective monopolies run by media groups will collapse, as the public flees to safer, more reasonable, and probably higher quality (but less advertised) alternatives. The picture will change within a few months, and the art and media world will be much better for it from then on.
So bring it on, I say. Add DRM to all music CDs, so none of them will play in anyone's car CD player or PC, and no-one can rip them to an MP3 player. Put unskippable thirty-minute ad sequences before every film on HD-DVD and Blu-Ray. Force product activation for all new Windows operating systems, and make everyone call a premium rate phone number to reactivate every time they change any aspect of their hardware configuration. Show major sports finals in HD-TV formats only with HDCP, and make sure the only recorders that can save them for later viewing cost at least 50% more than the boxes that do everything the same except for HDCP. Do all of this tomorrow, please!
Because if that happens, then by 2007, restricting any reasonable use of legally obtained content will probably be illegal in every major economy in the first world.
The US fair use and UK fair dealing provisions are broadly similar, but the US version is rather more generous in what it (theoretically, in light of subsequent legislation) allows. However, the way national reference libraries are supported, which is what we're talking about here, is covered by its own little bit of law in the UK, not under the general fair whatever exemptions that anyone can use. (IIRC, in the US the Library of Congress has similar rights, but you'd have to ask someone better informed about the details.)
If I decide I want to go a step further with something I produce, and lock it up in a way that will keep people from doing what they want with it after I can no longer count on legal protection, then isn't that my prerogative?
Normally, yes, I'd agree with you. If the market doesn't like it, it doesn't have to buy/license your product, and if they choose to accept your terms, that's fair enough.
However, as I noted in my earlier post, the national reference libraries have certain legal privileges here that don't apply to anyone else. Normally, you may not publish a book in the UK and then refuse to give them a copy if they ask for one, for example.
We don't have "fair use" in UK copyright law, at least not in the sense it's usually used around here to refer to the exemptions in the US.
However, a small number of national reference libraries in the UK, including the British Library, have a special legal right to claim a free copy of works published in the UK.
Re:(ot-ish) Perl is not too loose and messy
on
Beyond Java
·
· Score: 1
When people talk about maintainability what they mean is the ability of a programmer who is:
1) Unfamiliar with the program
2) Junior
3) Does not have access to good information
To quickly and easily change programs.
The thing is, there is no way to achieve that reliably in any language. Programming is, and fundamentally always will be, a skill. You cannot take someone unskilled, unexperienced and unassisted, and reasonably expect them to achieve the same results that a skilled and experienced colleague could.
That said, the syntax of Perl in the grep example we're looking at is particularly unfortunate, as your list of "interesting features" demonstrates. It seems to me that the main difference between the original looping version and the Perl grep example is that the former is imperative in style and the latter is functional. If I'd written:
print (filter exists) files
in a fictitious-but-not-unrealistic programming language with native functional programming support, none of your "interesting features" is present, at least in the same form, yet the example remains pretty much the same in spirit. You'd still need to understand the basic concept of lists and filtering to understand it, but anyone at all familiar with functional programming could immediately grok it.
Re:Java's regexp support is yucky
on
Beyond Java
·
· Score: 1
Blockquoth the AC:
And it all comes down to "hey, look at how few I use! Isn't it cool?". Software development is much more than that.
That's true, of course.
Nevertheless, the lines-of-code test is a remarkably accurate measure of the expressive power of a programming language. Plenty of research has found that programmers generate roughly the same number of finished lines of code per day, regardless of language. Thus a much more more concise language will, in a measureable and objective sense, often result in more productive developers.
Systems programming as we know is dead in the long run.
It won't matter what OS you use in the future. What matters is if you can run distributed applications.
So the hype goes, but I can't see it. Many (almost all?) applications simply aren't meant to run in a web browser or whatever, and once you've got to the stage of basically downloading the current version of some software on demand, you're not really running a distributed app, you just have a smarter installer.
You presuppose that D is an improvement on C++. To me, it's a language that's aiming at the same market, but whose designers didn't understand why decisions about C++ were made the way they were, and thus made the wrong decisions instead (for a language aiming at that market). Java and C# suffer the same drawback.
There are plenty of things to improve in C++ if you're going to write a language for a different target audience, but in that case, I don't think a Java/C#/D style language is ever going to be a natural heir to the throne.
Re:It really is true...
on
Beyond Java
·
· Score: 1
Blockquoth the AC:
A true OOP-aware designer would know that you should never access the fields directly. Really, it should be:
this.that().the().other().doSomething()
Tell that to everyone who's ever used
System.out.println("What, no parentheses?\n");
I suspect the average Java programmer doesn't even know what the types of and relationships between System, out and println are.
Besides, surely a true OOP-aware designer would assess the relative merits of data hiding vs. simplicity in context, and choose the option that fits best? Much of the time, that will involve indirection for future-proofing, but dogmatically insisting on that has been the cause of more unnecessary code bloat in "OO" projects than just about anything else I've ever encountered (except over-using inheritance, of course).
Java really is a bloated beast. Let's take a few specific examples from your post, shall we?
What Java has is an extensive set of libraries that provide all kinds of common functionality. If I were asked to trim it down, I'd have a hard time nixing anything that wouldn't get me in trouble with a LOT of people.
That may be, but it still has huge amounts of duplicated functionality in its standard library: it pretty much has two complete GUI frameworks, for a start! Of course you can't remove either without breaking any code. That's what happens when you throw not-so-great stuff straight into a standard library with little consideration for the maintenance issues, and then you have to play catch up. Such problems are ridiculously common in the Java world, and practically define "bloated".
The main problem that Java still has is a large memory footprint. This is due to loading all those libraries into memory at startup. Why is this done? To reduce startup time.
And yet, somehow countless properly compiled languages manage neither to preload their entire standard library nor to have extensive start-up times. As you say, it's difficult for Java to win this one, but that's because Java has a fundamental architectural disadvantage. Other languages don't.
The only real solution to this dichotomy is to make Java an operating system component.
That's pretty much an admission that Java is "guilty as charged"... Why should any even moderately efficient programming language need OS support just to gain acceptable performance?!
But really, I'm not sure the library issues are even the major bloat problem in Java. Just take a look at the code. "Hello, world" takes something like four lines of actual code, ignoring punctuation. And before anyone pipes up that you can't compare languages used to develop large-scale applications based on such a trivial example, let me just say: like hell I can't. Everything that's weighing down "hello, world" weighs down the whole language: pointless use of classes, this.that.the.other.do.something(), qualifiers all over the place, etc. Don't even mention the repetitive SomeClass object = new SomeClass() everywhere, even where there's no need to use polymorphism where the types might actually be different for a good reason.
Compared even to something like C++, Java's syntax is cumbersome and full of unnecessary repetition. Compared to a neat language -- whether your interpretation of that is Python or Haskell or Ruby or whatever -- Java's syntax is almost prehistoric. If it were more powerful to compensate, that would be one thing, but the simpler, more elegant languages are almost universally far more expressive than Java as well. Again, the syntax is bloated, pure and simple.
The C and C++ standards might be roughly the same length, but when you look inside, you'll find that the latter basically says "...oh, and throw in everything in C, too". C++ is a vastly more complicated language, whether or not you're including standard libraries.
Thank you for spectacularly missing my point. I'll add <sarcasm> tags for you next time.
You and I know very well what First4Internet was in trouble for, and that it was some of Sony's music CDs that contained the software. However, the average punter in the street can't even remember which companies were involved, nor what the basic problem was.
Attempting to start some sort of mass-boycott is unlikely to meet with success until the average punter is much better informed (and that may never happen) or you're not just relying on average punters (e.g., because the action is held to be illegal and banned by the courts).
What gives somebody a right to patent a method of using two products that *I* created.
Patent law does.
The vast majority of patents are based on existing work. There's not necessarily anything wrong with that: the improvement could be worthwhile in it own right. If the improvement is obvious, or unoriginal, then of course it shouldn't get a patent, but it should be denied on those grounds, not just because it happens to build on earlier work.
And what is otherwise provided in that title? I personally use dozens of patented things every day, yet I haven't made a single licensing agreement with any patent holder directly. Am I breaking the law every time I ever use a product covered by a patent? The patent system in the US can be daft at times, but it's not that daft.
The thing is, right now it's not a big enough issue outside the techie/geek community for that to work. Just ask First4Internet, and "whichever of those big companies it was whose DVDs couldn't play in car CD players or something". The two minutes of bad press they got was pretty damning, but how many people really remember it, or care enough to act on it?
The licence is pretty close to the regular packages in the important details. (In particular, the idea that you can't do commercial development with them is a myth.)
The point is more what's missing. For example, Visual C++ 2005 Express Edition comes with the basic CRT/STL stuff, and with the ability to use.Net in all its glory, but doesn't ship with MFC and requires a separate download+installation if you want to use the Win32 SDK. It also doesn't feature some of the most advanced new features (IIRC it's missing profile-guided optimisation, for example) or the high-end team system stuff.
I'll leave others to comment on the limitations of VB/C# 2005; I don't use those regularly.
If only that were true. I suspect the National Identity Register will die a well-deserved death when Blair goes. However, the basic idea of biometric passports has been carefully woven into all sorts of international agreements. Now every government can just say "Well, you'll need biometrics or nowhere else will respect your passport" as a convenient excuse for not defending the ability of their citizens to move freely and legitimately across national borders without such measures.
If some combination of the US and the larger European nations turned round and set "we won't issue them" tomorrow, the whole scheme would die by the day after tomorrow. But it won't happen until we get rid of the current political mindset in (among other places) the US, the UK, Germany and Australia. That requires a fundamental regime change -- not just getting rid of Blair, but getting rid of the entire New Labour club, and anyone from any other political party who has sympathies with them.
Fortunately, opinion seems to be turning overwhelmingly against all these draconian measures: hardly a day has gone by in the past fortnight without a major defeat in the Lords for some "anti-terror" or ID-related proposal by the New Labour government, or some report reminding everyone that they wouldn't have helped prevent the 7 July bombings, Spain had them when Madrid was bombed, the US was already collecting more information than it could understand before 11 September, etc. I suspect this means that any other parties will be coming down against the ID card proposals even if they'd really like them; David Cameron is certainly establishing his party as pretty clearly anti-ID-card under his leadership.
At any rate, even if it does make the transition, I do believe this would be the last major flu pandemic. The next time people will not be so complacent. The billions the first-world nations have just pledged to fight Avian Flu will be pledged much more quickly.
The thing is, I'm not sure how much money matters here. The problem seems to be that we don't know how to make an effective vaccine to fight a mutant strain until we've got a sample of the actual strain; generic H5N1 isn't good enough. The time to make that vaccine once a sample is available seems to depend on who you ask and how much faith they have in recent advances that could speed things up, but it's still measured in months, during which time anyone unlucky enough to catch the infection won't have good chances.
It doesn't sound like money is really the problem. You could pay the medical experts more, but there are still only so many people in the world capable of researching this area, and I doubt they're going slowly because they want a pay rise.
For now, it seems our best bets are to research ways to shorten the sample->vaccine time, and develop plans to isolate any outbreaks as much as possible with the goal of slowing the spread until a vaccine can be produced and distributed.
The problem is, once you've seen their code, you're no longer allowed to re-implement it, as Microsoft surely would be quick to "point out" (i.e. lawsuit) that you've infringed their copyright.
There are two pretty clear problems for MS if they try to prevent someone else using the same protocols that way, though:
I'm pretty sure the EU ruling required that the disclosure had to be under conditions where anyone getting access could then write code to interoperate with the MS software. That is the point, after all.
In many jurisdictions, there are exemptions to copyright and reverse engineering rules for the purposes of interoperability.
In other words, giving someone access to the code and then making any attempt to stop them taking advantage of what they learn to interoperate with Microsoft products would practically be a signed affidavit confirming that MS was acting in bad faith all along. And courts really love it when companies do that to their rulings, y'know?;-)
The sad thing is that although the generalisation is true a lot more often than not, IME there really are a significant number of exceptions, and it really is a waste when these people can't get the head-start in their careers that their skill merits.
And not mis-typeset when the TeX community makes a bizarrely huge thing about that particular issue. It's like using void main() in C++; in practice, it very rarely does any harm, but it is incorrect, and using it makes an informed critic wonder what else you do wrong...
This is probably a bit O/T, but since it seems people are interested enough to reply/mod up in this subthread...
That was the trend a few years ago, but I get the feeling it's been reversing for a while now. Java is a decent tool for plenty of jobs, but teaching really isn't one of them, and never was. There's just too much overhead and irrelevant detail before you get to the core concepts, and then part of the point of Java is that it's very limiting in what you can do in some key areas. For example, you can't teach a comprehensive understanding of OO when the assumption is that all classes share a common root and there's little consideration for multiple inheritance and mix-ins. You can argue that Java is a better language without those things, but how can you explain that to someone who doesn't know what they are?
I suspect the same is true of using any .Net language as your first. You're better off learning underlying programming techniques using something simple -- try Python for procedural, Smalltalk to understand objects, ML to learn functional programming, C to learn low-level stuff and basic data structures, etc. Then there are only a fairly small number of somewhat unique features in .Net languages, which you can pick up fairly quickly if you understand the basic ideas: delegates aren't particularly challenging to anyone who's done a bit of functional programming or even worked with function pointers, for example, though they might seem a bit strange to people who haven't experienced either. The rest is just a class library, and you learn it on demand, just as you would with Java's, or with CPAN, or whatever.
...then you're in the wrong line of work.
Seriously, we all know that IE's handling of CSS is buggy as hell, and there are plenty of bugs in other browsers, too. However, the vast majority of problems come down to the same half-dozen or so "frequent offenders", and the circumstances when they arise and the workarounds for them are widely known and readily available for the price of a search engine query. If it takes you more than a few minutes to patch up the CSS for a sensibly-designed site to make it compatible with the vast majority of browsers in use today, then you need to spend less time slagging off other people's software on Slashdot and more time reading introductory tutorials on browser compatibility.
And yes, I have done the CSS for several moderately large web sites, and yes, they do all display correctly on all recent versions of all major browsers.
As strange as it sounds, I actually want the next round of DRM to get dramatically worse, for one simple reason: I think it's going to get worse before it gets better whatever happens, because not enough people are currently being annoyed by it to care, and the sooner it gets to the turning point, the sooner we can get past it.
When silly things happen, the market will tolerate them, and legislators will even support them if well-enough bribed, but only for so long. One breath too many makes the whole stack of cards fall down. History suggests that consumer markets and governments often lag behind new technology by several years, but are remarkably consistent in eventually telling those with abusive pro-their-business, anti-anyone-else proposals where to go.
For example, the idea that the DRM groups will be able to force hardware makers who want to support their DRM technology not to support anything else is a bit like Microsoft telling PC vendors that they could only ship with Windows preinstalled. For a while they got away with it, but now the tables have turned, they've been ruled against in court, they're being fined left, right and centre, and the big PC vendors are shipping Linux servers without a care in the world.
Similar idiocy will happen with DRM and copyright laws, until it gets to the point that the average Joe can no longer do reasonable but technically illegal and/or DRM-restricted things, and gets upset about it. Then, probably quite suddenly, public opinion will turn overwhelmingly against those seen to be supporting such measures. The technology companies will back away, and those who offered less offensive alternatives will profit greatly. The legislators will turn on the media companies like piranha on raw meat, and several will fall as they try to distance themselves from any pro-abusive-system laws they voted on previously. The effective monopolies run by media groups will collapse, as the public flees to safer, more reasonable, and probably higher quality (but less advertised) alternatives. The picture will change within a few months, and the art and media world will be much better for it from then on.
So bring it on, I say. Add DRM to all music CDs, so none of them will play in anyone's car CD player or PC, and no-one can rip them to an MP3 player. Put unskippable thirty-minute ad sequences before every film on HD-DVD and Blu-Ray. Force product activation for all new Windows operating systems, and make everyone call a premium rate phone number to reactivate every time they change any aspect of their hardware configuration. Show major sports finals in HD-TV formats only with HDCP, and make sure the only recorders that can save them for later viewing cost at least 50% more than the boxes that do everything the same except for HDCP. Do all of this tomorrow, please!
Because if that happens, then by 2007, restricting any reasonable use of legally obtained content will probably be illegal in every major economy in the first world.
Thanks, I hadn't come across that one. The remedy section has all kinds of interesting implications...
The US fair use and UK fair dealing provisions are broadly similar, but the US version is rather more generous in what it (theoretically, in light of subsequent legislation) allows. However, the way national reference libraries are supported, which is what we're talking about here, is covered by its own little bit of law in the UK, not under the general fair whatever exemptions that anyone can use. (IIRC, in the US the Library of Congress has similar rights, but you'd have to ask someone better informed about the details.)
Normally, yes, I'd agree with you. If the market doesn't like it, it doesn't have to buy/license your product, and if they choose to accept your terms, that's fair enough.
However, as I noted in my earlier post, the national reference libraries have certain legal privileges here that don't apply to anyone else. Normally, you may not publish a book in the UK and then refuse to give them a copy if they ask for one, for example.
We don't have "fair use" in UK copyright law, at least not in the sense it's usually used around here to refer to the exemptions in the US.
However, a small number of national reference libraries in the UK, including the British Library, have a special legal right to claim a free copy of works published in the UK.
The thing is, there is no way to achieve that reliably in any language. Programming is, and fundamentally always will be, a skill. You cannot take someone unskilled, unexperienced and unassisted, and reasonably expect them to achieve the same results that a skilled and experienced colleague could.
That said, the syntax of Perl in the grep example we're looking at is particularly unfortunate, as your list of "interesting features" demonstrates. It seems to me that the main difference between the original looping version and the Perl grep example is that the former is imperative in style and the latter is functional. If I'd written:
in a fictitious-but-not-unrealistic programming language with native functional programming support, none of your "interesting features" is present, at least in the same form, yet the example remains pretty much the same in spirit. You'd still need to understand the basic concept of lists and filtering to understand it, but anyone at all familiar with functional programming could immediately grok it.
Blockquoth the AC:
That's true, of course.
Nevertheless, the lines-of-code test is a remarkably accurate measure of the expressive power of a programming language. Plenty of research has found that programmers generate roughly the same number of finished lines of code per day, regardless of language. Thus a much more more concise language will, in a measureable and objective sense, often result in more productive developers.
So the hype goes, but I can't see it. Many (almost all?) applications simply aren't meant to run in a web browser or whatever, and once you've got to the stage of basically downloading the current version of some software on demand, you're not really running a distributed app, you just have a smarter installer.
You presuppose that D is an improvement on C++. To me, it's a language that's aiming at the same market, but whose designers didn't understand why decisions about C++ were made the way they were, and thus made the wrong decisions instead (for a language aiming at that market). Java and C# suffer the same drawback.
There are plenty of things to improve in C++ if you're going to write a language for a different target audience, but in that case, I don't think a Java/C#/D style language is ever going to be a natural heir to the throne.
Blockquoth the AC:
Tell that to everyone who's ever used
I suspect the average Java programmer doesn't even know what the types of and relationships between System, out and println are.
Besides, surely a true OOP-aware designer would assess the relative merits of data hiding vs. simplicity in context, and choose the option that fits best? Much of the time, that will involve indirection for future-proofing, but dogmatically insisting on that has been the cause of more unnecessary code bloat in "OO" projects than just about anything else I've ever encountered (except over-using inheritance, of course).
Java really is a bloated beast. Let's take a few specific examples from your post, shall we?
That may be, but it still has huge amounts of duplicated functionality in its standard library: it pretty much has two complete GUI frameworks, for a start! Of course you can't remove either without breaking any code. That's what happens when you throw not-so-great stuff straight into a standard library with little consideration for the maintenance issues, and then you have to play catch up. Such problems are ridiculously common in the Java world, and practically define "bloated".
And yet, somehow countless properly compiled languages manage neither to preload their entire standard library nor to have extensive start-up times. As you say, it's difficult for Java to win this one, but that's because Java has a fundamental architectural disadvantage. Other languages don't.
That's pretty much an admission that Java is "guilty as charged"... Why should any even moderately efficient programming language need OS support just to gain acceptable performance?!
But really, I'm not sure the library issues are even the major bloat problem in Java. Just take a look at the code. "Hello, world" takes something like four lines of actual code, ignoring punctuation. And before anyone pipes up that you can't compare languages used to develop large-scale applications based on such a trivial example, let me just say: like hell I can't. Everything that's weighing down "hello, world" weighs down the whole language: pointless use of classes, this.that.the.other.do.something(), qualifiers all over the place, etc. Don't even mention the repetitive SomeClass object = new SomeClass() everywhere, even where there's no need to use polymorphism where the types might actually be different for a good reason.
Compared even to something like C++, Java's syntax is cumbersome and full of unnecessary repetition. Compared to a neat language -- whether your interpretation of that is Python or Haskell or Ruby or whatever -- Java's syntax is almost prehistoric. If it were more powerful to compensate, that would be one thing, but the simpler, more elegant languages are almost universally far more expressive than Java as well. Again, the syntax is bloated, pure and simple.
The C and C++ standards might be roughly the same length, but when you look inside, you'll find that the latter basically says "...oh, and throw in everything in C, too". C++ is a vastly more complicated language, whether or not you're including standard libraries.
Thank you for spectacularly missing my point. I'll add <sarcasm> tags for you next time.
You and I know very well what First4Internet was in trouble for, and that it was some of Sony's music CDs that contained the software. However, the average punter in the street can't even remember which companies were involved, nor what the basic problem was.
Attempting to start some sort of mass-boycott is unlikely to meet with success until the average punter is much better informed (and that may never happen) or you're not just relying on average punters (e.g., because the action is held to be illegal and banned by the courts).
Patent law does.
The vast majority of patents are based on existing work. There's not necessarily anything wrong with that: the improvement could be worthwhile in it own right. If the improvement is obvious, or unoriginal, then of course it shouldn't get a patent, but it should be denied on those grounds, not just because it happens to build on earlier work.
And what is otherwise provided in that title? I personally use dozens of patented things every day, yet I haven't made a single licensing agreement with any patent holder directly. Am I breaking the law every time I ever use a product covered by a patent? The patent system in the US can be daft at times, but it's not that daft.
The thing is, right now it's not a big enough issue outside the techie/geek community for that to work. Just ask First4Internet, and "whichever of those big companies it was whose DVDs couldn't play in car CD players or something". The two minutes of bad press they got was pretty damning, but how many people really remember it, or care enough to act on it?
The licence is pretty close to the regular packages in the important details. (In particular, the idea that you can't do commercial development with them is a myth.)
The point is more what's missing. For example, Visual C++ 2005 Express Edition comes with the basic CRT/STL stuff, and with the ability to use .Net in all its glory, but doesn't ship with MFC and requires a separate download+installation if you want to use the Win32 SDK. It also doesn't feature some of the most advanced new features (IIRC it's missing profile-guided optimisation, for example) or the high-end team system stuff.
I'll leave others to comment on the limitations of VB/C# 2005; I don't use those regularly.
If only that were true. I suspect the National Identity Register will die a well-deserved death when Blair goes. However, the basic idea of biometric passports has been carefully woven into all sorts of international agreements. Now every government can just say "Well, you'll need biometrics or nowhere else will respect your passport" as a convenient excuse for not defending the ability of their citizens to move freely and legitimately across national borders without such measures.
If some combination of the US and the larger European nations turned round and set "we won't issue them" tomorrow, the whole scheme would die by the day after tomorrow. But it won't happen until we get rid of the current political mindset in (among other places) the US, the UK, Germany and Australia. That requires a fundamental regime change -- not just getting rid of Blair, but getting rid of the entire New Labour club, and anyone from any other political party who has sympathies with them.
Fortunately, opinion seems to be turning overwhelmingly against all these draconian measures: hardly a day has gone by in the past fortnight without a major defeat in the Lords for some "anti-terror" or ID-related proposal by the New Labour government, or some report reminding everyone that they wouldn't have helped prevent the 7 July bombings, Spain had them when Madrid was bombed, the US was already collecting more information than it could understand before 11 September, etc. I suspect this means that any other parties will be coming down against the ID card proposals even if they'd really like them; David Cameron is certainly establishing his party as pretty clearly anti-ID-card under his leadership.
What makes you think they're going to request it? :-/
The thing is, I'm not sure how much money matters here. The problem seems to be that we don't know how to make an effective vaccine to fight a mutant strain until we've got a sample of the actual strain; generic H5N1 isn't good enough. The time to make that vaccine once a sample is available seems to depend on who you ask and how much faith they have in recent advances that could speed things up, but it's still measured in months, during which time anyone unlucky enough to catch the infection won't have good chances.
It doesn't sound like money is really the problem. You could pay the medical experts more, but there are still only so many people in the world capable of researching this area, and I doubt they're going slowly because they want a pay rise.
For now, it seems our best bets are to research ways to shorten the sample->vaccine time, and develop plans to isolate any outbreaks as much as possible with the goal of slowing the spread until a vaccine can be produced and distributed.
There are two pretty clear problems for MS if they try to prevent someone else using the same protocols that way, though:
In other words, giving someone access to the code and then making any attempt to stop them taking advantage of what they learn to interoperate with Microsoft products would practically be a signed affidavit confirming that MS was acting in bad faith all along. And courts really love it when companies do that to their rulings, y'know? ;-)