Jeffrey Yasskin’s blog

3/5/2005

Flat tax?

Filed under: Framing, Taxation — Jeffrey Yasskin @ 10:27 pm

I’ve been thinking about taxes recently and reading Andrew Sullivan’s opinions on them, and I’m mostly convinced that a flat tax with a significant standard deduction/personal exemption is at least a reasonable idea. I haven’t yet convinced myself to support it, but I can’t think of any arguments against it. The Rockridge Institute has a good argument that rich people should be expected to pay more in taxes than poor people: they get more in return from the government. But that doesn’t easily extend to an argument that they should pay a higher percentage of their income. If you have a good argument against a flat tax, please comment.

If we assume that no tax should interfere with your ability to feed and house your family and that taxes should treat everyone equally otherwise, then we get the following system. First, add up all of your income. That includes both money you worked for and interest and capital gains. Subtract the poverty line for your household. Multiply that by the tax rate, which is the same for everyone. Pay that amount to the government. Oh, and payroll taxes are evil and should be rolled into the standard income tax.

tax        = net_income * tax_rate
net_income = income - poverty_line(your_household)
income     = earned_income + capital_gains
             + interest + forgotten_stuff?

Variations are possible on this theme. We’d probably want to keep some deductions, like for green vehicles, mortgage payments, and charitable donations. These can be subtracted from the net_income. Given deductions, we might want an alternative minimum tax, which could be simply (income - poverty_line) * lower_tax_rate, and then your tax is the larger of the two. Finally, we might want some tax credits. I suspect that these are a bad idea, and that the government should directly subsidize anything it is tempted to give a tax credit for, but they easily fit in as a decrease in the total tax.

3/4/2005

Obligations to Shareholders

Filed under: Corporations — Jeffrey Yasskin @ 2:23 pm

In Tim Bray’s second post of opposition to Google AutoLink, he mentions that they owe it to their shareholders to do one of two evil things. Now, neither of Bray’s suggestions may actually be in Google’s long-term interest, but they certainly are in its short-term interest.

The basic question is, does our culture really believe that a corporation’s highest obligation is to its shareholders? That is, are corporations out there solely to make money? If a corporation obviously sacrifices sort-term or even long-term profits in order to, say, make the internet a better place for everyone, does it open itself up to shareholder lawsuits, as Cryptonomicon suggests? Corporations and their shareholders receive from society significant advantages simply because they are incorporated. They should be expected to give up some profits in order to give something back.

3/2/2005

Microsoft seeking (to stifle) Linux developers

Filed under: Open Source — Jeffrey Yasskin @ 4:00 pm

Scoble claims that Microsoft is a great place for Linux developers to work and that the kernel team is looking to hire some. Pardon me for being cynical, but this sounds like Microsoft is just trying to get some people to stop developing Linux. Sure, they’ll get some good kernel developers, but does anyone think they’ll let their new employees keep contributing to Linux in their spare time?

Java does not support Unicode

Filed under: Programming — Jeffrey Yasskin @ 1:08 am

Despite what Java partisans will tell you, Java does not fully support Unicode. Unicode, since at least version 3.1 in 2001, defines 21-bit characters, and the surrogate pairs to encode them in UTF-16 have been reserved since 2.0 in 1996. Yet a Java char value is only 16 bits long, and a Java String consists of a sequence of characters. See anything wrong with this? The documentation for Java 1.4.2’s Strings doesn’t even mention this problem. Now, it’s always been handled by using UTF-16 to encode the strings, which preserves the data, but sometimes uses two chars to represent a single character. This means that the length() method returns a pretty meaningless result.

Java 1.5 finally admits that it has a problem and defines some new codePoint* methods to actually handle Unicode. This is a step in the right direction, but it only helps if developers actually use the new functions. Unfortunately, Sun has been lying that Java natively supports Unicode for so long that very few programmers are likely to realize that they need to change their coding habits. Sun doesn’t help by doing an incomplete job. They haven’t deprecated the old char-based methods and haven’t updated the CharSequence interface. And, of course, Sun employees need to stop claiming that Java has been based on Unicode since version 1.0.

Powered by WordPress