CGI: an Interface Not a Programming Language

CGI - Black BoxCGI is not a computer language, and you can date me by the fact that I’m going to rant about it for a few hundred words. That’s because I set up my first web server in 1993. It was on an IBM RS/6000 named Eeyore which sat right on the internet. It was a time when the internet was basically Usenet (eg, rec.arts.startrek) and annonymous FTP for people who knew anything and AOL for their parents. The funny thing is, for most people not much has changed. Then the internet was AOL and now the internet is Facebook. At least it is for most people.

In 1993, there wasn’t much you could do with web pages. It was cool. You could put pictures on pages. You could have section headers and paragraphs. Text could be bold and italics. And there were lists and forms. But there was no interactive content — except with CGI. CGI stands for Common Gateway Interface. And it was a way to run programs remotely through your web browser. In theory, you could create a content management system using CGI.

But what was really cool about CGI was that it was, as its name indicates, an interface. I wrote a bunch of CGI programs. Some of them were compiled C programs, other were shell scripts, and still others were Perl scripts. It didn’t matter. As long as the web server could run the programs, and the programs were written to receive and transmit data correctly, you were golden.

CGI: Time Waster

Now you might wonder why I was writing these things. There’s a simple answer: I was a graduate student. And unless you are less than six months from defending your dissertation, finding ways to not do your work is critically important. I did many other things along these lines: I wrote a graphic program for X-Windows, I wrote an editor in 8086 assembly language, and I did a lot of really destructive things what I will say with complete humility was due to my genius for digital electronics.

I didn’t know anyone who was running a web server for a few months. So messing around with CGI was just play for me. Truthfully, at the time, GNU/Linux seemed like a much more serious thing. And by the time Netscape came around and made the web a much more serious thing, I was finishing my dissertation and then teaching pre-meds physics. (That was a scarring experience because I now know that doctors are (1) mentally insignificant; and (2) soulless.)

People Don’t Know Anything

The world can be forgiven for thinking that CGI is a programming language. Because what we used to do with CGI we now do with programming languages like PHP. But it still annoys me. Most things about computers annoy me. What cars were to my father’s generation, computers are for mine. As simple tools, they’re fine. It doesn’t matter. I remember one time I was an undergraduate doing some work for a research faculty member. I couldn’t leave a note because I didn’t have a word processor, so I wrote a really rudimentary one that allowed me to output to the printer. It’s better to just have a word processor.

Just the same, if you’re into computers on a deeper level, it seems to me that you ought to know how a CPU works. You should know what the difference is between a heap and a stack. You should know what a line of Pascal code would look like in assembly language. But I know that’s asking too much. Almost no one knows why the moon has phases. We’ve all become so specialized that should there ever be even the smallest tremor in our social networks, we’d be doomed.

Meaning Requires Knowledge

It’s no wonder people struggle to find meaning in their lives. Every thing in their lives is a black box.

But I’m grumpy enough. Don’t tell me CGI is a programming language.

Forget Tax Reform; Paul Ryan Wants Tax Redistribution

Paul Ryan - Tax RedistributionNow that repealing and replacing Obamacare has failed, Republicans in Congress say they are moving on to something different: tax reform. They are actually moving on to the same thing all over again. The American Health Care Act was a plan to give high-income Americans a big tax cut that would be financed with cuts to health-care subsidies for low- and middle-income people. Tax reform, at least as Paul Ryan and his allies envision it, is a plan to give high-income Americans an even bigger tax cut, financed by tax increases on lower- and middle-income Americans. Both plans are deeply unpopular (a poll found Americans opposing tax cuts for the wealthy by a three-to-one margin) and also have drawn opposition from powerful lobbies (in the case of tax reform, retailers violently oppose the border-adjustment tax that would offset much of the lost revenue).

Republican debates about tax policy are shrouded in a mist of obfuscation, since the party’s central goal, reducing taxes for the rich, is too unpopular to be described frankly. Instead, the intra-party strategy has been hashed out euphemistically, which has made the media coverage difficult to decipher. The terms “tax reform” and “tax cuts” have been thrown around almost interchangeably to describe the Republican plans. They’re very different. Tax reform is what Ryan and many of his allies say they’ll do, and possibly want to do. Tax cuts are what they will do.

Tax reform means a revenue-neutral adjustment of the tax code, which cleans out tax deductions and other preferences, and uses the revenue gained by this to reduce tax rates. The attraction of tax reform is that it avoids a drawback in Senate rules. The only kind of legislation that can pass the Senate by a majority vote, without being filibustered, is a budget-reconciliation bill. But these budget-reconciliation bills can’t increase the budget deficit after ten years. That requirement forced the Bush tax cuts to phase out after a decade. Republicans hope to avoid this fate by writing a bill that does not increase the long-run deficit. Hence their stated desire to pass tax reform rather than tax cuts. …

Why would Ryan attempt to shepherd into law a bill so dangerous, creating many times more losers than winners? Because Ryan does not want to settle for ten years of lower taxes that will expire automatically when he could have a permanent decrease. (Leave aside the fact that a “permanent” tax reform could be rewritten the next time Democrats win full control of government.) Ryan has repeatedly described the current government as “a once-in-a-generation opportunity.” Remember, the 1986 Tax Reform Act passed with bipartisan support. If Ryan wanted a 1986-type bill, the current all-Republican government wouldn’t be such a unique chance. Opportunities to pass bipartisan legislation arise all the time. In 2014, Dave Camp, the retiring chairman of the Ways and Means Committee, produced a plan that reformed the tax code without lessening the burden on rich people. The Republican Party pretended it never happened. That’s because tax reform is not their goal. Tax redistribution is.

–Jonathan Chait
Tax Reform Is Hard. Tax Cuts Are Easy.