That's funny, because I don't remember that at all. Truman brought the war to the end, but FDR, Churchill and Stalin get credit for winning the war.
Without the constant pressure from without, how would any coup have succeeded against a successful politburo?
Possibly. The amount of money spent on the military by Gorbechev was less than his predessors, and the simple existance of more successful societies put a lot of stress on the system.
As I said in the other reply on this thread, if you bought a reference book for your company to use, modified it, added pages, ripped pages out, etc, and used it internally, none of that would trigger any copyright protections.
Actually, preparing a derivative work is under copyright law. In theory, if you did that, you could be sued for copyright infringment.
Here's the tricky part. There is no difference if you download the software 50 times to put on each person's desktop, and then patch that each copy with your modifications, than it is to just distribute your modified version within the company.
Since there is a lack of a practical difference there, and the first case is strongly analogous of buying 50 copies of the paper reference manual and modifying all 50 copies to read the same and handing them out, I think it is safe to say that at least in the "zero cost" GPL case, copyright law can't apply to internal modification and distribution.
If there's no difference between the scenario, what lets you conclude it corresponds to the case you want? There's an equal argument the other way, and if the FSF is prepared to argue that in court, are you confident enough to fight it out?
And of the 10 home-schooled kids I know, fully five of them couldn't handle real college and ended up in local community colleges to stay close to their parents.
So 100% of the home-schooled kids you know went to college, and 50% went to (at least) a state college? That's pretty good.
To reiterate, a house of cards can stand forever until someone pushes it over. The credit goes to the person who pushes. If you don't like Reagan, just say so, and leave it at that.
So if you're shot by a dozen people in an alley, we should blame the cat that walked across your chest and pushed you over the edge? Or the guy who fired the last bullet and shot you in the toe?
In any case, why Reagan? He was hardly the only person to pushing on the Soviet Union when it fell; in fact, the biggest push was by the military coup. If we have to ascribe all credit to the immediate proximate cause, I don't think Reagan should get any at all; it was the coup leaders that collapsed the government.
The problem, as I see it, with all this Cheezewhiz in the "blog-O-sphere" is that it is predominantly boring as hell, and everybody is too polite to tell these people to go off and pop bubblewrap someplace, please, anything, just do it off-line.
There's thousands of books in the "library" that are predominantly boring as hell; should we tell those authors to go off and do anything that's not published? If someone wants to write, and can find a way to publish their words, what buisness do you have to bitch about it? Don't read them if you don't want to.
Of course the goal with the Iraq Iran war (for the US) was to prevent the more powerful (and Soviet aided) Iran from gaining a major victory and achieving regional dominance.
"Soviet aided"? The no. 1 seller of weapons to Iraq was the Soviet Union, with China coming in second.
Actually no student is required to say the Pledge of Allegiance.
It was never presented as an option to me, and in my years of school I never saw any dissenters. My sister has; they were threatened with being sent to the principal's office. It is not required only in the theoretical sense.
And that's the core of why kids don't understand about freedom of speech: the left (yes, the left) has taught them all the way from their Headstart preschool that they are not allowed to say anything that someone else might take offense at.
Whatever. Kids get their mouths washed out with soap or spanked for using bad language or mouthing off to their parents all the time, whether they're left or right. You say something that offends your parents or your teachers, you get in trouble.
When is saying something being honest, and when will it get you in trouble? (And in trouble, I mean fired, beaten up, or found in contempt of court; or just lose you friends or make it harder to work with a group of people you need to work with). That's a hard question for even adults. Nobody but an idiot or asshole is going to teach a kid to speak without thinking about who it will offend. "Grandma, you're ugly and your breath stinks" isn't a good thing to say, and the right realizes that as well as the left. The appropriate use of freedom of speech isn't something a preschooler can grasp, and I've never seen a parent that lean on the side of letting a child say everything instead of punishing him for saying inappropriate things.
public expression of religious views brings down a torrent of ridicule.
Which is why George W. Bush is in office and Jesse Jackson is an important political figure. Which is why every president since Lincoln has been a church-going Christian.
The only "first amendment rights" people get passionate about are exactly the ones that weren't even intended by the framers: frivolous and indecent expression that serves no decent purpose at all.
First place, that's not even close to true; many of the recent arguments have been over school prayer and 2-ton blocks of granite with the Ten Commandments carved on them. (Okay, so they were frivolous and indecent, but I don't think that's the way you were using the words.)
Secondly, what is a decent and nonfrivolous purpose is a political question. George Carlin's "Seven Dirty Words" is certainly a political rant, as is "South Park: Bigger, Longer & Uncut". Any sitcom with two gay people in it can be viewed as indecent and frivolous; or it can be viewed as an active political attempt to push for acceptance for gay people.
Students who take part in school media activities, such as student newspapers or TV production, are much more likely to support expression of unpopular views, for example.
That has nothing to do with whether or not the First Amendment applies to the school newspaper.
The very term "political correctness" is an abomination. It explicitly assumes that there is a type of politics that is correct, and that academia is the possessor of this knowledge.
That's illogical, as academia didn't create the term; political correctness has always been a derogratory term used by its opponents.
Political correctness is also much like using the term racist in an argument; it's more a term of insult than meaning. Is it rude, or unPC to call someone a whore? a bitch? Mrs. Zaccaro? I would consider it horribly rude to address her as Mrs. Zaccaro instead of Ms. Ferraro, but others would consider it just a PC complaint. Which is why just calling something PC isn't enough.
This is either uninformed or disengenuous. High school newspapers have been excluded from first ammendment protections by the Supreme Court.
But that's beside the point. In fact, a high school newspaper editor getting censored by the principal is probably more likely to support the First Amendment, because they've felt the hand of authority suppress important news (and it wouldn't have been an issue if the editor hadn't thought it important news.)
Allowing children to read a prayer at their graduation is not a violation of the First Amendment. In fact it probably is more of a violation of the intent of the First to prevent the students from doing just that.
And if the children don't want to pray, then school boards have informed them that they need to go back and rethink their decision. How does that differ from the school board mandating prayer in the first place? The day that I can honestly believe that the Marilyn Manson-loving valadicatorian would actually be permitted to lead a prayer to Satan, I might start to come around to your way of view.
You can bet your ass if something similar happens on the next few flights, they're going to inspect the damage, rather than ignore it.
If the exact same problem happens again, they'll inspect the damage. But they knew after the Columbia mission that they needed to stop ignoring problems, that they couldn't look at a problem, and say it didn't kill us the last few times, so it's routine. Both the foam and O-rings were recurring problems that happened never to be severe enough to destroy the shuttle, so they were classified as routine. If they couldn't learn from Columbia, why will they learn from this incident?
Not burying functionality into invisible menus is good UI design.
They aren't any more invisible than the menus on the top of the screen; in each case, you have to click on something to see them. Furthermore, the option a lot of programs seem to have used is instead of trying to put that functionality into visible controls, they delete it, as too complex for the users. Well, maybe it is for the users who can't learn to right click, but it's invisible for them.
But the fact that Ada has 2 or 3 ways to enforce things that are damned awkward in C++ is only an obstacle for me. [...] I wish there were as clean a way to emulate bit lenghth wraping and packing in C++...they are primative in Ada so code that uses them has no syntactic handles upon which to work an automated change.
So Ada is bad because it does something's better than C++? If it's easy in Ada and hard in C++, shouldn't that make Ada the better language?
the "I'm not going to give you a chance to screw up" approach to programming embodied in Ada does not map well to typical [if somewhat shoddy] coding practices and creates a much steeper learning curve for would-be programmers.
And for that we all pay on a daily basis as boxes get rooted and used as zombies and spam servers. It is so easy to stop buffer overflows, at such a little cost, that it's a crying shame C is still being written for anything that connects to the network. (C++ might be better, if people would give up their arrays and use bounds checked classes instead.)
That version supported provability of correctness,
There's only steps of provability. Ada 83 was more provable than most languages, but there's a lot more to it. And its failure in many cases seems to have been high-price, low-quality compilers designed for sale only to the DoD, which fought Ada internally in a lot of places.
he next version, Ada 95, added features in a vain attempt to achieve OOness
In a vain attempt? Do you care to explain why Ada 95 is not an OO language?
explicitly abandonded provability
Not really. Again, there are steps of provability, and Ada is still easier to prove correct than C. It's also possible to produce an Ada subset (SPARK) that is strongly provable; the company that did that has looked at a C++ subset on the request of customers and dismissed it as impossible.
what got proved was that Ada proved to be a language even its mother didn't love.
There's a lot of people out there that love Ada. Personally I got tired of beating my head against C++. (No, this is not an excuse for a flamewar; it's a personal choice.)
[I mean the BNF has 277 production rules...it is seriously ugly to map to other languages.]
C++ is a complete pain to map to other languages, and nobody seems to care. I don't know where you came up with that number, but I strongly suspect that C++ would be more. In any case, if everyone liked simple syntax, we'd all be using Lisp; most grammar complexities are added on the excuse of making things easier for the programmer at the cost of making it harder for the compiler.
LISP does lack some high level expressiveness, but just like any turing complete language, you can of course invent such expressiveness in your code at the cost of some more characters typed.
Why do you say it lacks some high level expressiveness? LISP macros can do things that C macros can't even start to do.
LISP is not as "expressive" by virtue of the fact that not as many idioms are embedded into the language design.
Common Lisp can format outputted numbers in Roman letters. However gratitious that feature may be, it leads me to wonder you mean by this statement. It's object-orientated (CLOS), it's functional which is something very, very hard to do in C, it's iterative, Common Lisp will practically walk the dog and feed the cat.
And it wouldn't be that hard to write a C-parsing library like our XML-parsing libraries.
Have you ever looked at the problem? Yes, it is a hard problem. You'd need two C parsing libraries, one for CPP and one for C itself. At which point, you'd actually need to understand C, because it's a context-sensitive grammar at points.
When people write tools that need to parse C, they tend to just roll their own.
Again, G++ rolled their own C++ parser. They had to spend several months rewriting it. Almost nobody has a full C parser; they have an ad-hoc thing that mostly does what they need.
But the grammars of these languages are virtually required by the complexity of expression they offer the user.
That's funny; Common Lisp has a virtually trivial grammar and an incrediably complex language. There is really no excuse for the C grammar, and the C++ grammar can't put all its blame on the C grammar. The only reason why they are hard to parse is because the creators didn't think about parsing it.
and I might remind you that XML parsing in itself isn't all that trivial, which is why we have support libraries just for that
It doesn't matter how simple XML parsing is, since we have support libraries for that. Note that most programs that deal with C code outside of compiling use adhoc measures; they never completely parse the code.
is by designing a really horribly inexpressive language.
Really. Can you show me any evidence that an LALR(1) language can't be every bit as expressive as C++? Common Lisp isn't generally considered horribly inexpressive, either.
You're arguing that programming languages are hard to parse, because, if you don't use any of the tools developed over the last 35 years to parse programming languages, it's hard?
If those tools were so magical, why did the GCC team have to throw them out and write the code by hand to get a correct working C++ parser? Of the languages in common use, LISP is about the only one that can actually be parsed by BISON (= has an LALR(1) grammar).
By this criterion we should replace human languages by XML as well.
If it were of high importance to have computers understand human languages, we'd have to change them. Loglan is an interesting study of that.
XML is not the end-all and be-all of everything. But following this proposal and having the format be XML, but hidden from the programmer, would make writing tools that parse code feasible. There are many programmer tools that just don't get written because C++ is a monster hairball; to get G++ to correctly parse C++ was a massive project that involved a complete rewrite of the parser. That kind of effort can't be justified for a tiny little utility to look for a certain type of error. In exchange, it would call for adding a certain distance from the exact text of the code, of making stuff that used to be hands on more computer controlled. Much like letting assemblers create machine code instead of writing machine code by hand.
HTML The ideal format for documents which have mostly text interspersed with markup.
HTML is just an application of SGML or XML.
In any case, HTML works for webpages, but text documents in general? There's no way of representing a footnote as a footnote in HTML and a million other missing features. Which is why things like DocBook and TEI-Lite, both of which are applications of XML, exist, so that you can represent text documents that aren't webpages.
LISP The ideal format for encoding data structures in a human readable format.
Yeah, right. Half the reason people don't like LISP is because it's a sea of parenthesis; data files in LISP formats tend to remembering what the nth element in the mth sublist stands for.
It seems to me that XML tries to do all three and does not do a particularly good job with any one purpose.
XML is a tool for storing data; it's up to you what you do with it.
why it would be superior to any of the three technologies I've mentioned for the respective three uses!
I've just pointed why HTML sucks for the general purpose you assign to it; but more importantly, HTML is merely an application of XML or its predecissor, SGML. To say that XML is bad for that and HTML is good is absurd.
The assumption you make is that a parser is necessary for reading files.
Any non-trivial file format needs broken down into parts. If you can read a trivial sequence of bytes and offsets, then you have a pretty trivial file format. Of course, you run into the problem of what happens when you need to extend the file format and those trivial sequence of bytes and offsets is not so easy.
LISP also had a remarkably simple parser, so the argument that most other languages use very hard to parse syntaxes does not hold.
As I said, LISP excepted. LISP is hardly the end all and be all of languages. C takes two nontrivial parsers (cpp and the main compiler). It was a major project for G++ to rewrite the parser so it would actually work right.
even with XML you need to write code that takes the output of the XML parser and transforms that into whatever data structures you need.
That's not something a library can do for you; it has to do with your specific internal data structures. It shouldn't be any harder than dealing with the output of a Word library.
Having a common XML parser seems to add very little, since it's just adding complexity to the data file without really solving that much.
Have you examined the Word format? The Word format takes its own OLE library to parse it, before we ever get to interpreting the contents. That's exactly what XML is supposed to prevent.
But of late I've seen too many people pushing XML files for things like word processor documents, [...] which are better off with a binary format (so long as the code which generated them is itself open).
Why are word processor documents better off as binary format? It's not size; Word documents aren't particularly small. Why do we need to multiply entities unnecessarily? KWord uses XML files inside a tar.gz file, all three of which have commonly available free parsers. Nobody needs drag around specialized libraries just to parse KWord documents.
XML makes you think about transforming the document into something you can export. Half the time, binary formats are just "simply fairly straight-forward dumps of in-memory data structures", which means if your in-memory data structures aren't exactly the same, you're in trouble. Also, one of the wonderful features of Word is that the "dumps of in-memory data structures" also include random junk, including stuff from top secret reports or early drafts of this report.
Truman got credit for WWII (at least in the U.S.)
That's funny, because I don't remember that at all. Truman brought the war to the end, but FDR, Churchill and Stalin get credit for winning the war.
Without the constant pressure from without, how would any coup have succeeded against a successful politburo?
Possibly. The amount of money spent on the military by Gorbechev was less than his predessors, and the simple existance of more successful societies put a lot of stress on the system.
As I said in the other reply on this thread, if you bought a reference book for your company to use, modified it, added pages, ripped pages out, etc, and used it internally, none of that would trigger any copyright protections.
Actually, preparing a derivative work is under copyright law. In theory, if you did that, you could be sued for copyright infringment.
Here's the tricky part. There is no difference if you download the software 50 times to put on each person's desktop, and then patch that each copy with your modifications, than it is to just distribute your modified version within the company.
Since there is a lack of a practical difference there, and the first case is strongly analogous of buying 50 copies of the paper reference manual and modifying all 50 copies to read the same and handing them out, I think it is safe to say that at least in the "zero cost" GPL case, copyright law can't apply to internal modification and distribution.
If there's no difference between the scenario, what lets you conclude it corresponds to the case you want? There's an equal argument the other way, and if the FSF is prepared to argue that in court, are you confident enough to fight it out?
And of the 10 home-schooled kids I know, fully five of them couldn't handle real college and ended up in local community colleges to stay close to their parents.
So 100% of the home-schooled kids you know went to college, and 50% went to (at least) a state college? That's pretty good.
To reiterate, a house of cards can stand forever until someone pushes it over. The credit goes to the person who pushes. If you don't like Reagan, just say so, and leave it at that.
So if you're shot by a dozen people in an alley, we should blame the cat that walked across your chest and pushed you over the edge? Or the guy who fired the last bullet and shot you in the toe?
In any case, why Reagan? He was hardly the only person to pushing on the Soviet Union when it fell; in fact, the biggest push was by the military coup. If we have to ascribe all credit to the immediate proximate cause, I don't think Reagan should get any at all; it was the coup leaders that collapsed the government.
The problem, as I see it, with all this Cheezewhiz in the "blog-O-sphere" is that it is predominantly boring as hell, and everybody is too polite to tell these people to go off and pop bubblewrap someplace, please, anything, just do it off-line.
There's thousands of books in the "library" that are predominantly boring as hell; should we tell those authors to go off and do anything that's not published? If someone wants to write, and can find a way to publish their words, what buisness do you have to bitch about it? Don't read them if you don't want to.
Of course the goal with the Iraq Iran war (for the US) was to prevent the more powerful (and Soviet aided) Iran from gaining a major victory and achieving regional dominance.
"Soviet aided"? The no. 1 seller of weapons to Iraq was the Soviet Union, with China coming in second.
That's great, but there's clearly ancedotes to the contrary, so it's not the same way everywhere.
Actually no student is required to say the Pledge of Allegiance.
It was never presented as an option to me, and in my years of school I never saw any dissenters. My sister has; they were threatened with being sent to the principal's office. It is not required only in the theoretical sense.
And that's the core of why kids don't understand about freedom of speech: the left (yes, the left) has taught them all the way from their Headstart preschool that they are not allowed to say anything that someone else might take offense at.
Whatever. Kids get their mouths washed out with soap or spanked for using bad language or mouthing off to their parents all the time, whether they're left or right. You say something that offends your parents or your teachers, you get in trouble.
When is saying something being honest, and when will it get you in trouble? (And in trouble, I mean fired, beaten up, or found in contempt of court; or just lose you friends or make it harder to work with a group of people you need to work with). That's a hard question for even adults. Nobody but an idiot or asshole is going to teach a kid to speak without thinking about who it will offend. "Grandma, you're ugly and your breath stinks" isn't a good thing to say, and the right realizes that as well as the left. The appropriate use of freedom of speech isn't something a preschooler can grasp, and I've never seen a parent that lean on the side of letting a child say everything instead of punishing him for saying inappropriate things.
public expression of religious views brings down a torrent of ridicule.
Which is why George W. Bush is in office and Jesse Jackson is an important political figure. Which is why every president since Lincoln has been a church-going Christian.
The only "first amendment rights" people get passionate about are exactly the ones that weren't even intended by the framers: frivolous and indecent expression that serves no decent purpose at all.
First place, that's not even close to true; many of the recent arguments have been over school prayer and 2-ton blocks of granite with the Ten Commandments carved on them. (Okay, so they were frivolous and indecent, but I don't think that's the way you were using the words.)
Secondly, what is a decent and nonfrivolous purpose is a political question. George Carlin's "Seven Dirty Words" is certainly a political rant, as is "South Park: Bigger, Longer & Uncut". Any sitcom with two gay people in it can be viewed as indecent and frivolous; or it can be viewed as an active political attempt to push for acceptance for gay people.
Still, it says
Students who take part in school media activities, such as student newspapers or TV production, are much more likely to support expression of unpopular views, for example.
That has nothing to do with whether or not the First Amendment applies to the school newspaper.
The very term "political correctness" is an abomination. It explicitly assumes that there is a type of politics that is correct, and that academia is the possessor of this knowledge.
That's illogical, as academia didn't create the term; political correctness has always been a derogratory term used by its opponents.
Political correctness is also much like using the term racist in an argument; it's more a term of insult than meaning. Is it rude, or unPC to call someone a whore? a bitch? Mrs. Zaccaro? I would consider it horribly rude to address her as Mrs. Zaccaro instead of Ms. Ferraro, but others would consider it just a PC complaint. Which is why just calling something PC isn't enough.
This is either uninformed or disengenuous. High school newspapers have been excluded from first ammendment protections by the Supreme Court.
But that's beside the point. In fact, a high school newspaper editor getting censored by the principal is probably more likely to support the First Amendment, because they've felt the hand of authority suppress important news (and it wouldn't have been an issue if the editor hadn't thought it important news.)
Allowing children to read a prayer at their graduation is not a violation of the First Amendment. In fact it probably is more of a violation of the intent of the First to prevent the students from doing just that.
And if the children don't want to pray, then school boards have informed them that they need to go back and rethink their decision. How does that differ from the school board mandating prayer in the first place? The day that I can honestly believe that the Marilyn Manson-loving valadicatorian would actually be permitted to lead a prayer to Satan, I might start to come around to your way of view.
The problem is that the courts always overlook the word CONGRESS.
No, they look at the 14th Amendment and use that to apply the Bill of Rights to the states, as it was intended.
You can bet your ass if something similar happens on the next few flights, they're going to inspect the damage, rather than ignore it.
If the exact same problem happens again, they'll inspect the damage. But they knew after the Columbia mission that they needed to stop ignoring problems, that they couldn't look at a problem, and say it didn't kill us the last few times, so it's routine. Both the foam and O-rings were recurring problems that happened never to be severe enough to destroy the shuttle, so they were classified as routine. If they couldn't learn from Columbia, why will they learn from this incident?
Not burying functionality into invisible menus is good UI design.
They aren't any more invisible than the menus on the top of the screen; in each case, you have to click on something to see them. Furthermore, the option a lot of programs seem to have used is instead of trying to put that functionality into visible controls, they delete it, as too complex for the users. Well, maybe it is for the users who can't learn to right click, but it's invisible for them.
But the fact that Ada has 2 or 3 ways to enforce things that are damned awkward in C++ is only an obstacle for me. [...] I wish there were as clean a way to emulate bit lenghth wraping and packing in C++...they are primative in Ada so code that uses them has no syntactic handles upon which to work an automated change.
So Ada is bad because it does something's better than C++? If it's easy in Ada and hard in C++, shouldn't that make Ada the better language?
the "I'm not going to give you a chance to screw up" approach to programming embodied in Ada does not map well to typical [if somewhat shoddy] coding practices and creates a much steeper learning curve for would-be programmers.
And for that we all pay on a daily basis as boxes get rooted and used as zombies and spam servers. It is so easy to stop buffer overflows, at such a little cost, that it's a crying shame C is still being written for anything that connects to the network. (C++ might be better, if people would give up their arrays and use bounds checked classes instead.)
That version supported provability of correctness,
There's only steps of provability. Ada 83 was more provable than most languages, but there's a lot more to it. And its failure in many cases seems to have been high-price, low-quality compilers designed for sale only to the DoD, which fought Ada internally in a lot of places.
he next version, Ada 95, added features in a vain attempt to achieve OOness
In a vain attempt? Do you care to explain why Ada 95 is not an OO language?
explicitly abandonded provability
Not really. Again, there are steps of provability, and Ada is still easier to prove correct than C. It's also possible to produce an Ada subset (SPARK) that is strongly provable; the company that did that has looked at a C++ subset on the request of customers and dismissed it as impossible.
what got proved was that Ada proved to be a language even its mother didn't love.
There's a lot of people out there that love Ada. Personally I got tired of beating my head against C++. (No, this is not an excuse for a flamewar; it's a personal choice.)
[I mean the BNF has 277 production rules...it is seriously ugly to map to other languages.]
C++ is a complete pain to map to other languages, and nobody seems to care. I don't know where you came up with that number, but I strongly suspect that C++ would be more. In any case, if everyone liked simple syntax, we'd all be using Lisp; most grammar complexities are added on the excuse of making things easier for the programmer at the cost of making it harder for the compiler.
LISP does lack some high level expressiveness, but just like any turing complete language, you can of course invent such expressiveness in your code at the cost of some more characters typed.
Why do you say it lacks some high level expressiveness? LISP macros can do things that C macros can't even start to do.
LISP is not as "expressive" by virtue of the fact that not as many idioms are embedded into the language design.
Common Lisp can format outputted numbers in Roman letters. However gratitious that feature may be, it leads me to wonder you mean by this statement. It's object-orientated (CLOS), it's functional which is something very, very hard to do in C, it's iterative, Common Lisp will practically walk the dog and feed the cat.
And it wouldn't be that hard to write a C-parsing library like our XML-parsing libraries.
Have you ever looked at the problem? Yes, it is a hard problem. You'd need two C parsing libraries, one for CPP and one for C itself. At which point, you'd actually need to understand C, because it's a context-sensitive grammar at points.
When people write tools that need to parse C, they tend to just roll their own.
Again, G++ rolled their own C++ parser. They had to spend several months rewriting it. Almost nobody has a full C parser; they have an ad-hoc thing that mostly does what they need.
But the grammars of these languages are virtually required by the complexity of expression they offer the user.
That's funny; Common Lisp has a virtually trivial grammar and an incrediably complex language. There is really no excuse for the C grammar, and the C++ grammar can't put all its blame on the C grammar. The only reason why they are hard to parse is because the creators didn't think about parsing it.
and I might remind you that XML parsing in itself isn't all that trivial, which is why we have support libraries just for that
It doesn't matter how simple XML parsing is, since we have support libraries for that. Note that most programs that deal with C code outside of compiling use adhoc measures; they never completely parse the code.
is by designing a really horribly inexpressive language.
Really. Can you show me any evidence that an LALR(1) language can't be every bit as expressive as C++? Common Lisp isn't generally considered horribly inexpressive, either.
You're arguing that programming languages are hard to parse, because, if you don't use any of the tools developed over the last 35 years to parse programming languages, it's hard?
If those tools were so magical, why did the GCC team have to throw them out and write the code by hand to get a correct working C++ parser? Of the languages in common use, LISP is about the only one that can actually be parsed by BISON (= has an LALR(1) grammar).
By this criterion we should replace human languages by XML as well.
If it were of high importance to have computers understand human languages, we'd have to change them. Loglan is an interesting study of that.
XML is not the end-all and be-all of everything. But following this proposal and having the format be XML, but hidden from the programmer, would make writing tools that parse code feasible. There are many programmer tools that just don't get written because C++ is a monster hairball; to get G++ to correctly parse C++ was a massive project that involved a complete rewrite of the parser. That kind of effort can't be justified for a tiny little utility to look for a certain type of error. In exchange, it would call for adding a certain distance from the exact text of the code, of making stuff that used to be hands on more computer controlled. Much like letting assemblers create machine code instead of writing machine code by hand.
HTML
The ideal format for documents which have mostly text interspersed with markup.
HTML is just an application of SGML or XML.
In any case, HTML works for webpages, but text documents in general? There's no way of representing a footnote as a footnote in HTML and a million other missing features. Which is why things like DocBook and TEI-Lite, both of which are applications of XML, exist, so that you can represent text documents that aren't webpages.
LISP
The ideal format for encoding data structures in a human readable format.
Yeah, right. Half the reason people don't like LISP is because it's a sea of parenthesis; data files in LISP formats tend to remembering what the nth element in the mth sublist stands for.
It seems to me that XML tries to do all three and does not do a particularly good job with any one purpose.
XML is a tool for storing data; it's up to you what you do with it.
why it would be superior to any of the three technologies I've mentioned for the respective three uses!
I've just pointed why HTML sucks for the general purpose you assign to it; but more importantly, HTML is merely an application of XML or its predecissor, SGML. To say that XML is bad for that and HTML is good is absurd.
The assumption you make is that a parser is necessary for reading files.
Any non-trivial file format needs broken down into parts. If you can read a trivial sequence of bytes and offsets, then you have a pretty trivial file format. Of course, you run into the problem of what happens when you need to extend the file format and those trivial sequence of bytes and offsets is not so easy.
LISP also had a remarkably simple parser, so the argument that most other languages use very hard to parse syntaxes does not hold.
As I said, LISP excepted. LISP is hardly the end all and be all of languages. C takes two nontrivial parsers (cpp and the main compiler). It was a major project for G++ to rewrite the parser so it would actually work right.
even with XML you need to write code that takes the output of the XML parser and transforms that into whatever data structures you need.
That's not something a library can do for you; it has to do with your specific internal data structures. It shouldn't be any harder than dealing with the output of a Word library.
Having a common XML parser seems to add very little, since it's just adding complexity to the data file without really solving that much.
Have you examined the Word format? The Word format takes its own OLE library to parse it, before we ever get to interpreting the contents. That's exactly what XML is supposed to prevent.
But of late I've seen too many people pushing XML files for things like word processor documents, [...] which are better off with a binary format (so long as the code which generated them is itself open).
Why are word processor documents better off as binary format? It's not size; Word documents aren't particularly small. Why do we need to multiply entities unnecessarily? KWord uses XML files inside a tar.gz file, all three of which have commonly available free parsers. Nobody needs drag around specialized libraries just to parse KWord documents.
XML makes you think about transforming the document into something you can export. Half the time, binary formats are just "simply fairly straight-forward dumps of in-memory data structures", which means if your in-memory data structures aren't exactly the same, you're in trouble. Also, one of the wonderful features of Word is that the "dumps of in-memory data structures" also include random junk, including stuff from top secret reports or early drafts of this report.