One of the big reasons for this is that capital gains tax rates in the US are lower than income tax rates.
A company that has earnings (is profitable) can choose to retain those earnings, or give them to shareholders as dividends. If the company retains them, the value of the company goes up, and the stock price goes up (in general). When a shareholder sells the stock, they still get the value of those earnings (in the increased stock price), but only pay capital gains tax on it. If the company had paid dividends, those dividends would have been taxed at the higher income tax rate.
Not every company chooses to retain all their earnings; there are some reasons not to, like some mutual funds or pensions won't invest in companies that don't pay dividends. However, the reasons to retain earnings are strong enough to create the change you're talking about.
The remoting optimization relies fundamentally on the immutability of an object.
Not exactly; value types are mutable types that can be marshaled by copying them. By using a value type, the programmer is explicitly telling the runtime that it's okay if an object gets out of sync once it's been passed to or returned from a function (for a remoted object, that it's okay if the local and remote copies differ). Since remote value types are mutable, I don't see what you mean by the above quoted statement.
A combination of escape analysis, immutability analysis/notation and use of the 'final' keyword gives the compiler enough information to perform all the optimization automatically without compromising uniformity.
Well, I've read in several places that best practice in Java is not to use final. If even one of the methods of a class is not final, the JIT will be unable to prove that the run time type is immutable. That's a pretty strong limit on the applicability of the approach you're talking about.
In addition, there are legitimate situations where it would be nice to have mutable types on the stack.
Chris Brumme at microsoft has some interesting discussion of this stuff in his blog. The post dealing with proxying talks about why value types are baked into the class hierarchy. For example, being able to remote a value type (to another machine, for example) by copying it can in some situations be a big performance win over having to forward method calls on the object back to the machine where it lives.
Structs? Have you heard of classes?.NET included structs which was nice but its only there for compatibility with older languages like C. You shouldnt use them for straight.NET development. Its up there with continueing to use pointers. If you have to have those sort of things why even use.NET?
One nice thing about value types in.NET is that they can be allocated on the stack; this does eliminate some pressure on the GC. Most garbage comes from short-lived objects, which are good candidates for stack allocation. Value types are especially used in the drawing APIs, becuase if you have GC pauses while you're redrawing the UI it will look slow to the user.
Generics exist in Java. They existed as open source projects and are now part of the language (see version 1.5). Ive heard this argument in the past:.NET has this feature and Java doesnt. Apparently no one gave thought to the idea that Sun would just put out a new version with that feature included also.
Yes, they will exist in Java once 1.5 is released. However, they are implemented differently in Java and in.NET. The.NET version of generics includes support in the VM itself; this means that if you instantiate a generic type with a basic type (e.g., an ArrayList of int, in Java terms) in.NET you get unboxed types (actual ints) and in Java you get boxed types (Integers). This adds a lot of indirection, which has performance implications
It's also nice to be able to introspect on generic types and get the answers that you would expect, given your code.
The patent applications are on the API itself, so it's not possible to "work around the patent issues by using a different technique that retains the API but changes the mechanism"
This is not big news. Companies don't want to be sued by shareholders if their business goes bad, so they mention everything they can think of that might hurt them in their SEC filings. It's just an ass-covering exercise.
To the extent the Open Source model gains increasing market acceptance, sales of the Company's products may decline, the Company may have to reduce the prices it charges for its products, and revenues and operating margins may consequently decline.
I have somewhat more trouble imagining why aliens would give a shit about making crop circles (if it's communication they want, surely they can be more direct about it!) unless it's really a biohazard marking to warn their fellows.;)
Or hobochalking for the intergalactic hitchhiker:)
Today, chipmaking systems cost in the billions of USD. No one is going to start a garage shop to fabricate these things - they will have to come from established (read: large) manufacturers
Yes, fabs now require huge investments, but one does not need to have one's own fabs. Contract fabs in taiwan can provide one with very advanced process technology for which you would only need to pay the marginal price of making your chips.
Most of Intel's patents surely come on the process side of things, rather than the design side. You might not be able to start out of a garage, but if a large market suddenly opened up (say, because of palladium), then I don't see why ARM or MIPS or Transmeta couldn't get into the desktop market (Even if all of the PowerPC manufacturers get on the palladium bandwagon, which is doubtful).
So, I don't know about "GNU Hardware", but alternatives don't have to come only from large companies. Also, I'm skeptical of the "sic the SEC on your financial statements" bit. I know, this is Slashdot, but lighten up already.
Dvorak is a bomb-thrower--he makes his living on bold statements. The particular details of each have only passing relevance.
For example, his online columns for pc mag often include some wild remark followed by a request for feedback in their online forum. There (unlike/.), viewing a single comment generates a page-view, so the number of comments a particular column can multiply the number of pageviews (and therefore ad-views) the column gets.
He's the Howard Stern of tech journalism. This is not a criticism--I get a chuckle out of what he says sometimes.
From the description of Red Carpet, and the things I've read about Eazel, it sounds like Helix and Eazel are going after very similar markets. Am I missing something, or are Helix and Eazel going to be direct competitors?
One of the big reasons for this is that capital gains tax rates in the US are lower than income tax rates.
A company that has earnings (is profitable) can choose to retain those earnings, or give them to shareholders as dividends. If the company retains them, the value of the company goes up, and the stock price goes up (in general). When a shareholder sells the stock, they still get the value of those earnings (in the increased stock price), but only pay capital gains tax on it. If the company had paid dividends, those dividends would have been taxed at the higher income tax rate.
Not every company chooses to retain all their earnings; there are some reasons not to, like some mutual funds or pensions won't invest in companies that don't pay dividends. However, the reasons to retain earnings are strong enough to create the change you're talking about.
Not exactly; value types are mutable types that can be marshaled by copying them. By using a value type, the programmer is explicitly telling the runtime that it's okay if an object gets out of sync once it's been passed to or returned from a function (for a remoted object, that it's okay if the local and remote copies differ). Since remote value types are mutable, I don't see what you mean by the above quoted statement.
Well, I've read in several places that best practice in Java is not to use final. If even one of the methods of a class is not final, the JIT will be unable to prove that the run time type is immutable. That's a pretty strong limit on the applicability of the approach you're talking about.
In addition, there are legitimate situations where it would be nice to have mutable types on the stack.
Chris Brumme at microsoft has some interesting discussion of this stuff in his blog. The post dealing with proxying talks about why value types are baked into the class hierarchy. For example, being able to remote a value type (to another machine, for example) by copying it can in some situations be a big performance win over having to forward method calls on the object back to the machine where it lives.
One nice thing about value types in
Yes, they will exist in Java once 1.5 is released. However, they are implemented differently in Java and in
It's also nice to be able to introspect on generic types and get the answers that you would expect, given your code.
The patent applications are on the API itself , so it's not possible to "work around the patent issues by using a different technique that retains the API but changes the mechanism"
Now all we need to do is gather a large collection of documents generated by Office 2003 and run Microsoft's schema inference tool on them.
inference tool code & demo
This is not big news. Companies don't want to be sued by shareholders if their business goes bad, so they mention everything they can think of that might hurt them in their SEC filings. It's just an ass-covering exercise.
In fact, this is from their last quarterly report, in November:
Yes, fabs now require huge investments, but one does not need to have one's own fabs. Contract fabs in taiwan can provide one with very advanced process technology for which you would only need to pay the marginal price of making your chips.
Most of Intel's patents surely come on the process side of things, rather than the design side. You might not be able to start out of a garage, but if a large market suddenly opened up (say, because of palladium), then I don't see why ARM or MIPS or Transmeta couldn't get into the desktop market (Even if all of the PowerPC manufacturers get on the palladium bandwagon, which is doubtful).
So, I don't know about "GNU Hardware", but alternatives don't have to come only from large companies. Also, I'm skeptical of the "sic the SEC on your financial statements" bit. I know, this is Slashdot, but lighten up already.
How about:
We can know one thing for sure, which is that we can't know anything else for sure.
I took french in high school, and I'm guessing that the way we learned to say things there doesn't apply here.
so: How does one pronounce "libre", anyway?
Dvorak is a bomb-thrower--he makes his living on bold statements. The particular details of each have only passing relevance. For example, his online columns for pc mag often include some wild remark followed by a request for feedback in their online forum. There (unlike /.), viewing a single comment generates a page-view, so the number of comments a particular column can multiply the number of pageviews (and therefore ad-views) the column gets.
He's the Howard Stern of tech journalism. This is not a criticism--I get a chuckle out of what he says sometimes.
here
From the description of Red Carpet, and the things I've read about Eazel, it sounds like Helix and Eazel are going after very similar markets. Am I missing something, or are Helix and Eazel going to be direct competitors?