As an update to the recent tax cut discussion here, I think these two posts by Josh Claybourn are extremely relevant.
All of this leaves you wondering why we let Republicans get away with calling themselves "the party of fiscal responsibility." Let's recap. State Republicans are worse in the area of spending than Democrats, but so are national Republicans. In other words, Republicans spend more than Democrats hands down. And since this disgusting spending was far greater than the rate of inflation, the vast budget woes states have are just as much the fault of Republicans as it is a poor economy (assuming that the two aren't related, when they might be).
There is no excuse, political or otherwise, for the irresponsible spending habits of Republicans at every level of government. Peter Ferrara recently wrote in NRO, "The real reason liberals are against the tax cuts has nothing to do with the deficit or sound economic policy. They just want as much tax revenue as possible so they can increase spending and feed their political machine." Uh, maybe, but the party that's best at increasing spending and feeding their political machine is none other than the GOP. It's criminal for Republicans to keep calling themselves the party of small of[sic] government.
... no matter how you slice it, state GOP governments have increased spending on par with the Democrats. But the argument doesn't hinge on state spending anyway. On the national scene the Republican Congress has increased the budget by 50% since 1995. I'm not arguing that Democrats are more fiscally conservative than Republicans. I'm arguing that Republicans are just as bad as Democrats. The difference is important.
The most disheartening thing in all of this is the unwillingness to hold representatives accountable, especially those within our own party. ... It's unwise and unhealthy to toe the party line when it goes against reason and proven success. ... The GOP is already supreme and has been for some time. But it's now turning its back on core principles that got it there.
Because of Perl's extreme DWIMmetry, and use of different syntaxes for similar things, it winds up being often less flexible from an abstraction standpoint than more regular languages like even Java are capable of being.
For instance, you can do a while(<FOO>){} loop with an open filehandle. If you open a filehandle like this: open $foo, 'filename' - then you can do it like: while(<$foo>){}. Perl will also let you read from an array like this: while(<@foo>){}, but because Perl insists on using different syntaxes for these things, I can't make the subject of the same while loop be either an array or a file (or a socket, etc.).
Here's why I don't grok namespaces. First, some context:
"Sam Ruby didn't get everything he wants in RSS 2.0, neither did Tim Bray. They both want the same thing, the ability to include elements of RSS in other XML formats.
As I understand it, namespaces were intended to make possible exactly this.
So, supposedly you have some standard XML-based markup language (SXBML), and you want to include a document of some other standard XML-based markup language (SOSXBML) inside an SXBML document. So as to not "pollute" your pure SXBML, you distance yourself from that foreign markup by saying "Hey, he's not with me", and you partition it within your document using a namespace.
You'll never want to include some XML that isn't part of some standard and therefore has no namespace, you see. And naturally, each of your standards has been defined by some magnificent schema that encapsulates all the semantics (meaning) about every tag. This lets you use automated tools that magically know what to do with your document.
Yeah, right.
Well, if a computer can't divine what to do with a piece of XML without having code written by a human process it -- the human's mind is the only place where the "meaning" of the XML can be said to be known, not in some "schema" -- then what does the namespace give us (besides a headache)? I say nothing.
If I nest one document within another, the human programmer understands this. It doesn't matter that a tag is preceded by some alphanumeric characters and a colon, which form a string that the XML document says is used a certain way within the document and points the reader towards some globally, interplanetarilly, universally unique string that... well, what does that string do for us?
I'm just sick of everybody trying to write some labels down (that's all an XML document is) and claim that it has some "meaning" apart from a mind understanding it. A mind can understand the document just fine whether the label it's understanding is xhtml:body or xhtml-body. And therefore the code that a programmer writes with that understanding can work with either equally well.
E-mail headers, MIME, HTTP, etc. have gotten along fine by using X- headers for non standardized extensions. And in practice you can make up whatever you want and it doesn't matter. But what if two people use the same name? A standards body is supposed to make the official list to keep that from happening for anything that counts. I probably wouldn't get the standards organizations to recognize a Keith-is-awesome: e-mail header. Nor Slashdot's Futurama quote http header. So the developers of XML wanted to distribute this authority. XML lets people define their own namespaces for their custom name, and then the person putting together the final "document" can associate each piece with a namespace so that there's no conflict
The problem is that XML has gone and distributed both ends, which is just silly. XML makes it possible for anyone to be their own standards body for their own personal SXBML, and at the same time anyone else can make a tag for that standard. But what kind of standard is it anyway if anyone can go making his own tags? How can he expect his tags to magically work without a community consensus? A community has to decide collectively what something means for there to be interoperable software written. It seems like people are trying to have a "schema" decide meaning, rather than what works: "rough consensus and working code".
Update: Keep in mind that namespaces in programming languages serve a very different purpose than they do in markup languages like XML.
In source code, the authority to name things is distributed only on one end, not two. So, anyone can write code, but if another person wants to use that code he has no control over what names were used. It's sort of the opposite of the HTTP and MIME example. Namespaces in programming languages are an important feature, so it seems that distribution of authority on one side works, just not two.
Namespaces serve a significant function in programming languages. They help prevent name conflicts, and that's important when you want to include code that (possibly many) others have written along with your own code, since, unlike with SXBML and unlike with HTTP or MIME, there's no central standards body defining what names you can use for things. That's why Java's convention is to provide code in packages identified by globally unique strings. Everyone can have their own namespace.
Namespaces aren't always called that, however. Some languages call them "modules", some "packages", others simply use classes as the basic form of namespace, and some provide "namespaces" explicitly.
Namespaces in programming languages are especially important for another reason as well. Source code is generally very flat, often just one level of functions, and maybe one level of classes. Markup languages like XML, on the other hand, can nest to any depth. That's why languages like C++ and PHP have explicit namespaces, or are getting them. Both languages don't have any higher level packaging mechanism other than the class, and both also allow plain functions outside of a class.
Joel Spolsky: "Yo, Netscape employees! This poor sod Adam Lock is working in his spare time to save all your jobs. Wake up."
Joel also points out an excellent example of how monopolies wind up stagnating:
there has been virtually no work on the IE web browser for a couple of years now and it looks like Microsoft has no interest in spending resources on a battle they already feel they've won.
Where's that "freedom to innovate" Microsoft talks so much about? Boo.
new⇒Quantum physics and free will
I knew you were going to say that....
Tom Massey: Mar 15, 9:26pm