Dropping both the penny and the nickel allows everything to be rounded to 0.1 of a dollar. Rather than $2.85, it would become $2.8 or $2.9 - the number of decimal places is arbitrary since we could always sell things to 3 decimal places if we really wanted (i.e. - $2.848 - of course, we would need new coins to do so)
We'd be better off dropping the dime than the nickel. The nickel is a factor of the quarter, and it is somewhat silly to have a larger denomination that can't be broken into smaller denominations. If something came to 10 cents, you wouldn't be able to pay with a quarter.
If you review the currency in common use, it would be pretty easy and convenient to build a system where most denominations were larger than the previous by a factor of 4 or 5. I would start with a nickel, then a quarter, then a redesigned dollar coin, then a new five dollar coin. Follow this with (maybe) a ten dollar bill, a twenty dollar bill, and a hundred dollar bill, and on to some of the infrequently used larger denominations. Other currency would be retired from circulation.
The nation would get the benefit of eliminating the notes that wear out most frequently, substituting long lasting coins. Vending machines would be easier for consumers, since those problematic bill acceptors could be eliminated. Blind people would be able to deal with currency more easily. Retailers would have to deal with only 4 coin denominations, which means that everything fits into the compartments in the tills they currently use, just like the pennies, nickels, dimes, and quarters in common use today.
...just because one US dollar can be exchanged for eight billion Ubledubgongian Frankls does not mean that a product worth one dollar in the US will cost F8 billion in Ubledubgong. It may only cost 250 Frankls. Going the other direction, just because exchanging one US dollar only gets you 50p in England does not necessarily mean that 50p has the same purchasing power as $1 would have in the US. People who don't understand economics tend to assume it works that way, but it doesn't.
Nevertheless, the fact that there seem to be arbitrage opportunities that are not being exploited is an interesting and useful datum to an economist.
Why does everybody forget the SUN? The source of 99.999% of the heat on earth varying in its output by a teeny tiny fraction of a percentage of it's output couldn't possibly make the earth warmer or colder could it?
So, your hypothesis is that the sun, which has been massively consistent in heat output for the past 60,000 years according to core samples, waited to turn up the heat until the precise moment in geological history that human beings started putting 70 million tons of CO2 into the atmosphere?
Actually, the variation in the sun's output is estimated at 0.7% (source) However, this study fails to take into account the experimentally demonstrated effect discovered by Svensmark at the Danish National Science Center.
The "Svensmark Effect" is that cosmic rays penetrate to the troposphere. Here they create ions that help induce cloud formation. The cloud formation directly reflects some radiation back into space cooling the earth. During periods of high solar activity, substantially less cosmic ray radiation penetrates to troposphere, increasing the amount of water vapor in the air. Water vapor is, of course, a much more effective greenhouse gas than CO2.
So this is a positive feedback effect. Small variations is solar output create small changes in energy absorption, but they also create larger changes in cloud cover and water vapor. 85% of the warming blamed on industrialization can be explained by small solar variation similar to that measured, in combination with cloud cover changes similar to those observed.
My experience has been the same. I live in the NYC metro area, and work primarily in that areas as well, though I do a fair amount of travel.
I originally used the old AT&T TDMA service, pre-Cingular merger. The service was not great because AT&T had oversold their network, so lots of calls didn't get through due to congestion.
I switched to T-Mobile for a few months. T-Mobile was a great deal as long as I was in cities. coverage was spotty in suburban areas and even worse in rural areas. This was 2.5 years ago and times might have changed.
I flipped to Sprint. Sprint was OK. Their data plans (I had a Treo 600, later a 650) were inexpensive, which was a big part of the attraction. Their Fair & Flexible plans, which charge small increments for overages, were very good for me. Some months I might use 700 minutes, and others I might use 1600. They also had a free roaming option, which allowed me to take advantage of Verizon's more extensive network.
After completing two years with Sprint, I flipped to Verizon. My primary goal was to consolidate everything on one bill - my wife and her parents were all sharing a Verizon family plan. I was also using a Verizon EvDO data card. The coverage is better on Verizon, though I don't care for the fact that Verizon limits what you can do with their phones.
What the best nation-wide wireless provider is. You might get different favorites, but most will say sprint sucks.
I used Sprint for about 2 years recently, and did not have any great complaints about them. Of course I had a plan with unlimited roaming, so I was using the Verizon network much of the time!
Nowadays, when breaking the law, a company-supplied penalty is paid and case closed.
"Normal" people go to jail.....
Nowadays, when something like this is in the news, Slashdot posters demonstrate that they don't know the difference between civil and criminal charges.
As you say, the rich get richer, and the poor get poorer. That is system unsustainable, and will eventually collapse.
It isn't quite that simple. It depends on whether you measure wealth in some sort of absolute or relative terms.
The gap between rich and poor may indeed be widening, but the poor are becoming wealthier as well. In absolute terms, therefore, the rich are getting richer, but the poor are getting richer as well. This can be measured in lots of ways. Life expectancy and infant mortality are usually pretty good indicators. India and China alone account for roughly 2 billion people who were barely scraping out an existence two generations ago, but who now have a much higher degree of food security, have access to a much higher level of health care, access to technology (i.e. the cell phone is rapidly becoming ubiquitous, even in rural areas).
For the system to be clearly unsustainable, one would need to believe that people would undermine a system that is delivering them a rising standard of living. It would seem unlikely that they would do so in any sort of broad, universal way.
Saudi Arabia also has Shi'a areas. And, surprise, surprise, those area have oil. You separate the Shi'a in Iraq and they get a base of operations to foment resistance to the Saudi regime.
The Saudi regime that sponsors Wahhabism throughout the region? Perhaps that isn't a bad thing.
Wow, tacit approval of ethnic cleansing, nice.
I don't approve of it. But the reality is that it is happening anyway right now.
All in all you seem to miss the point, the US in reality has no say on whether Iraq splits or not, there is and will continue to be a civil war which will decide these matters.
I disagree. The US cannot prevent a civil war at this point, but by imposing a partitioning scheme we may be able to reduce the impact on the civilian population and help Iraq reach a stable resolution quicker.
I've been a hawk since day one, and don't regret that. I do think that the aftermath of the military victory was handled poorly. I think that completely dismissing the Army and police and starting over new was a bad idea, and helped the insurgency get hold.
That being said, at this point I don't think we have the ability to stop Iraq from descending into civil war. The chaos and widespread murder is unacceptable, and I don't how we can stop it and preserve Iraq as a single entity.
The RevMike Plan
Divide Iraq into three regions. Kurdistan in the north, which would include the border areas around Mosul, the northern oil fields, etc. A central/western Sunni Arab area, and a southern/eastern Shiite Arab area, including the southern oil fields. There might be a treaty that says that the governments of all three areas split the oil revenue by some formula.
The establishment of a Kurdistan is really going to piss off Iran. Good. It will also piss off Turkey. Sucks to be them. Maybe they should have let us invade through the north too, a couple of years ago.
I'm not as worried about the Shiite dominated area. I think that, in the long run, Arab/Persian tension will keep them from being dominated by Iran. It would be nice to have alternative leadership for the Shiite world.
As for the Sunni area? They basically become irrelevant, especially since Baghdad will become Shiite. The Saudis will likely step in and offer some sort of support to stabilize this area.
As part of the deal, anyone who want to move will be given the chance. At the end of it, the two Arab regions should be fairly homogeneous, and the whole religious/ethnic issue will be gone. The Kurd dominated area is already fairly secure, and likely would remain so. The Arabs, Turkmen, and Christians in this are fairly well integrated minorities.
If you offer a ton of additional features...then it stands to reason that you will have a ton of additional bugs.
This argument in no way excuses Oracle for their timely patch cycle (or lack thereof), but may explain the higher number of patches.
It is also important that Oracle supports virtually any server platform in current use, while SQL Server only supports a small number of similar platforms. Back in 2001 I was still getting support for Oracle 7.0 on VAX/VMS! One get Oracle on Linux, AIX, Solaris, HP-UX, zOS, OS400, Windows, a variety of Alpha platforms, Itanium platforms, etc. And this isn't shallow level support. Oracle can utilize their own file systems, so they are going at the bare hardware on all these systems. Care to guess what that does to the QA cycle?
Oracle is the shiznit when it comes to high performance general database work. It will scale far beyond almost everything else, with DB2 a close #2. Niche players like TeraData have their place too, but only Oracle can scale across the entire enterprise.
a lot of economic activity is actually not 'productive' at all - for instance, selling a house in my mind is not productivity, but building a house is. Heck, if selling a house was 'productive', I could just keep selling a house back and forth between two parties and be the most productive real-estate agent in the universe - except that nothing actually changed.
Selling a house can be productive, in that it helps two parties both better align their resources with their needs. By facilitating this alignment, the economy becomes more efficient and thus more productive.
For instance, take the case of a retired couple whose large family have all left home. They have a large 5 bedroom house. The need to spend considerable amounts of money to maintain it, heat it, pay property taxes, etc. And they are under utilizing it.
If they sell that house to a young family with several children, that family can now fully utilize that house. The house is being used more productively because most or all the bedrooms are in use, rather than just one. Meanwhile the retired couple purchase an apartment and invest the excess proceeds. Now they are in a residence that they can productively utilize. Their capital is no longer tied up in an unproductive resource but is now earning them returns. They are no longer paying an opportunity cost to keep their wealth tied up in an unproductive home.
So, the facilitating the transfer of real estate can result in higher productivity.
This "efficiency of resource allocation" is actually the fundamental reason that market economies perform so much better that command economies. In a command economy, it is very difficult to obtain a particular resource at a particular time. So, if you are managing a factory in such an economy, you want to stockpile as much of your resources as possible in your warehouses ahead of time. Meanwhile, since you are hoarding whatever you can, other factories are having a hard time acquiring resources that you have hidden away in your warehouse. Lots of resources sit underutilized in warehouses, because everyone is storing them for some point in the future when they might be needed. A feedback loop gets established: resources are hoarded to compensate for shortages, which creates more shortages, which drives more hoarding.
In contrast, a market economy means that a resource will always be available. Therefore it is not necessary to hoard resources unproductively in warehouses. Since hoarding is discouraged, there are fewer shortages, and factories are far less likely to sit idle. Industrial warehouses in command economies often held months, even years worth of resources, while warehouses in market economies often hold weeks or even days worth of resources.
Ethanol, unlike fossil fuels, is a renewable resource, and burning it doesn't produce greenhouse gases.
I'm being a little pedantic, but burning ethanol does produce greenhouse gases. If the ethanol is produced organically, the same amount of greenhouse gases were absorbed to create the biomass in the first place, so there is a net zero. But it is possible to process fossil fuels into ethanol...
You are the first person I've ever seen who responded to a reasonable criticism of Java with a decent answer. Woohoo! Most people who post about it are kids who learned it in college and think it's now the one true way because it's their chosen hammer.
Thanks. My first chosen hammer was actually C with strategic bits of inline assembly. So I don't suffer from any illusions about Java being either fabulous or terrible.
Java is an interesting language. It simplifies or eliminates tons of things that cause real world problems in C and C++ programs. That means that a competent jr. developer can be trained and seasoned in less time than in a C/C+ world. On the other hand, the overhead of a virtual machine makes a bad design that much worse, so the architect role becomes more important. The middle guys who are so vital to C/C++ projects tend to be less vital in Java projects, adding value by organizing and mentoring the jr. guys and perhaps growing into architects, rather than directly contributing as much code.
The thing that amazes me about the Java world is that so much depends on the virtual machine, but so few Java developers have any understanding about the VM. The memory management and garbage collection algorithms can drive multiple order of magnitude difference in performance, but rare is the developer that can intelligently adjust those settings.
I still like Python a lot better.
Different strokes for different folks. I have no direct knowledge of Python. I always had the impression that Python performance was in the class of the other scripting languages: Perl, PHP, Ruby, etc. Typically these languages are considered 100 times slower than Java, so they are not great for a lot of heavier server tasks where Java is still very appropriate.
I've done significant amounts of Perl, and some Ruby, and so I really appreciate how quickly one can get things done with this class of languages. And, of course, 75% of the time development and maintenance costs far outweigh hardware so productive languages are more appropriate than performant languages. On the other hand, however, I've always been concerned about the lack of compilation time verification. What's your experience?
Having lived on Long Island my whole life, upstate always meant (to me) any part of NY that I need to cross 2 bridges to get to. Or, in other words, anything past Tarrytown on the Thruway.
The problem with that definition is that the East Bank of the Hudson would not be considered upstate. Certainly Poughkeepsie and Troy are upstate, but they can be reached from Westchester without crossing a bridge.
I always counted the communities outside of typical commute distance to be upstate. So generally anything beyond Westchester, Rockland, and parts of Orange.
Perhaps the best news that can come from this is that the three major platforms can potentially converge. Currently Sun, IBM, and BEA all have their own Java VMs. While compatibility is remarkably good for a specific version, each has their own strengths and weaknesses, performance wise. Each also utilize non-compatible tuning parameters and such.
A unified code base can potentially reduce these differences. We might have a single JVM that incorporates the best performance features of all three products, and can be tuned in a consistent way.
Anytime I startup a Java program I want to run and hide due to fear that the pages being swapped out to make room for it will crush me where I stand.
Maybe as open source software people will be able to look at it and ask *why* does it have to take up so much memory to do such simple jobs? Compare for example Azureus (in Java) to bittorrent (in Python).
You have to remember that you are starting up a full virtual machine environment. That is going to have lots of overhead, especially at initialization. Anyone who expects to run "Hello, World" programs efficiently is a fool.
Java really does well with big server apps, where the cost of initialization can be amortized over a long period of time. Additionally, JIT compilation and live profiling really work well here.
Server apps really do well with Java. There are fewer opportunities to create difficult to track bugs, memory management handles the fragmentation issues, etc. The performance delta between a C++ and a Java server app is often fairly negligible* while the development time is often substantially faster and it is easy to move to other platforms.
* - A well written C++ app built for a generic processor architecture and a long running Java server app will frequently run about the same. The C++ app is stuck with the tuning choices made at compile time, while JIT and profiling available in Java will tune the Java app at run time, making up for the overhead of the virtual machine. If the "Gentoo" model is followed - the compiler is carefully set to provide maximum performance for a given machine - the C++ app can run substantially faster. However, the cost is that the binary can no longer be moved to a similar but not identical machine without rebuilding. This tuning activity typically requires lots of time and expertise, and generally makes environmental management efforts prohibitively complex. These solutions don't make their way into most real world environments.
The only big market for Java now is on huge servers that have enough processing power and memory to run Java's bloated run-time compiler. That's a market dominated by a few big names: Sun, IBM, Apache,... and they've sold customers on "openness" and "portability" so it's not in their interest to start fragmenting the product.
You forgot two: BEA and Oracle.
And in my experience Java, correctly tuned, can be be quite performant in these environments. Next time you run into a bloated java app, look at the memory management model. You can probably fix it with a few command line switches.
And Buffalo is only upstate if you live south of Scarsdale. These people will also call Scarsdale (and maybe even Hempstead for that matter, which is really pretty funny) "The Country."
I caught my wife once saying that she was going "upstate" to visit a friend. I said "Upstate? They live in Yonkers!" She replied "Well, its above 96th St!"
I am not an energy expert... but it cannot possibly be true that the efficiency benefit you get from this outweighs the what.. 50% ? 30%?.. transmission losses of a centralized system? And don't even factor in maintenance costs for the transmission system itself.
On the other hand, small internal combustion generation systems typically run at efficiencies of 15 to 30%, while larger power plants Combined Cycle Gas Turbine systems run at almost 60%. http://en.wikipedia.org/wiki/Combined_cycle
While the grid does require maintenance, it simplifies fuel delivery. Delivering fuel to a few points by freight train, pipeline, and barge is many times more efficient than delivering fuel to tens of thousands of distributed points.
Anyway you slice it, the current centralized generation system is more efficient than distributed systems. I expect that the model will become more balanced as photovoltaic systems become cheaper. My opinion is that in the next 20 years or so distributed solar will supply substantial portions of the peak load while the utility will continue to generate the base load.
We'd be better off dropping the dime than the nickel. The nickel is a factor of the quarter, and it is somewhat silly to have a larger denomination that can't be broken into smaller denominations. If something came to 10 cents, you wouldn't be able to pay with a quarter.
If you review the currency in common use, it would be pretty easy and convenient to build a system where most denominations were larger than the previous by a factor of 4 or 5. I would start with a nickel, then a quarter, then a redesigned dollar coin, then a new five dollar coin. Follow this with (maybe) a ten dollar bill, a twenty dollar bill, and a hundred dollar bill, and on to some of the infrequently used larger denominations. Other currency would be retired from circulation.
The nation would get the benefit of eliminating the notes that wear out most frequently, substituting long lasting coins. Vending machines would be easier for consumers, since those problematic bill acceptors could be eliminated. Blind people would be able to deal with currency more easily. Retailers would have to deal with only 4 coin denominations, which means that everything fits into the compartments in the tills they currently use, just like the pennies, nickels, dimes, and quarters in common use today.
Nevertheless, the fact that there seem to be arbitrage opportunities that are not being exploited is an interesting and useful datum to an economist.
Actually, the variation in the sun's output is estimated at 0.7% (source) However, this study fails to take into account the experimentally demonstrated effect discovered by Svensmark at the Danish National Science Center.
The "Svensmark Effect" is that cosmic rays penetrate to the troposphere. Here they create ions that help induce cloud formation. The cloud formation directly reflects some radiation back into space cooling the earth. During periods of high solar activity, substantially less cosmic ray radiation penetrates to troposphere, increasing the amount of water vapor in the air. Water vapor is, of course, a much more effective greenhouse gas than CO2.
So this is a positive feedback effect. Small variations is solar output create small changes in energy absorption, but they also create larger changes in cloud cover and water vapor. 85% of the warming blamed on industrialization can be explained by small solar variation similar to that measured, in combination with cloud cover changes similar to those observed.
My experience has been the same. I live in the NYC metro area, and work primarily in that areas as well, though I do a fair amount of travel.
I originally used the old AT&T TDMA service, pre-Cingular merger. The service was not great because AT&T had oversold their network, so lots of calls didn't get through due to congestion.
I switched to T-Mobile for a few months. T-Mobile was a great deal as long as I was in cities. coverage was spotty in suburban areas and even worse in rural areas. This was 2.5 years ago and times might have changed.
I flipped to Sprint. Sprint was OK. Their data plans (I had a Treo 600, later a 650) were inexpensive, which was a big part of the attraction. Their Fair & Flexible plans, which charge small increments for overages, were very good for me. Some months I might use 700 minutes, and others I might use 1600. They also had a free roaming option, which allowed me to take advantage of Verizon's more extensive network.
After completing two years with Sprint, I flipped to Verizon. My primary goal was to consolidate everything on one bill - my wife and her parents were all sharing a Verizon family plan. I was also using a Verizon EvDO data card. The coverage is better on Verizon, though I don't care for the fact that Verizon limits what you can do with their phones.
I used Sprint for about 2 years recently, and did not have any great complaints about them. Of course I had a plan with unlimited roaming, so I was using the Verizon network much of the time!
Nowadays, when something like this is in the news, Slashdot posters demonstrate that they don't know the difference between civil and criminal charges.
It isn't quite that simple. It depends on whether you measure wealth in some sort of absolute or relative terms.
The gap between rich and poor may indeed be widening, but the poor are becoming wealthier as well. In absolute terms, therefore, the rich are getting richer, but the poor are getting richer as well. This can be measured in lots of ways. Life expectancy and infant mortality are usually pretty good indicators. India and China alone account for roughly 2 billion people who were barely scraping out an existence two generations ago, but who now have a much higher degree of food security, have access to a much higher level of health care, access to technology (i.e. the cell phone is rapidly becoming ubiquitous, even in rural areas).
For the system to be clearly unsustainable, one would need to believe that people would undermine a system that is delivering them a rising standard of living. It would seem unlikely that they would do so in any sort of broad, universal way.
Yep, just make it happen much quicker with a lot fewer civilian casualties.
The Saudi regime that sponsors Wahhabism throughout the region? Perhaps that isn't a bad thing.
Wow, tacit approval of ethnic cleansing, nice.I don't approve of it. But the reality is that it is happening anyway right now.
All in all you seem to miss the point, the US in reality has no say on whether Iraq splits or not, there is and will continue to be a civil war which will decide these matters.I disagree. The US cannot prevent a civil war at this point, but by imposing a partitioning scheme we may be able to reduce the impact on the civilian population and help Iraq reach a stable resolution quicker.
I've been a hawk since day one, and don't regret that. I do think that the aftermath of the military victory was handled poorly. I think that completely dismissing the Army and police and starting over new was a bad idea, and helped the insurgency get hold.
That being said, at this point I don't think we have the ability to stop Iraq from descending into civil war. The chaos and widespread murder is unacceptable, and I don't how we can stop it and preserve Iraq as a single entity.
The RevMike Plan
Divide Iraq into three regions. Kurdistan in the north, which would include the border areas around Mosul, the northern oil fields, etc. A central/western Sunni Arab area, and a southern/eastern Shiite Arab area, including the southern oil fields. There might be a treaty that says that the governments of all three areas split the oil revenue by some formula.
The establishment of a Kurdistan is really going to piss off Iran. Good. It will also piss off Turkey. Sucks to be them. Maybe they should have let us invade through the north too, a couple of years ago.
I'm not as worried about the Shiite dominated area. I think that, in the long run, Arab/Persian tension will keep them from being dominated by Iran. It would be nice to have alternative leadership for the Shiite world.
As for the Sunni area? They basically become irrelevant, especially since Baghdad will become Shiite. The Saudis will likely step in and offer some sort of support to stabilize this area.
As part of the deal, anyone who want to move will be given the chance. At the end of it, the two Arab regions should be fairly homogeneous, and the whole religious/ethnic issue will be gone. The Kurd dominated area is already fairly secure, and likely would remain so. The Arabs, Turkmen, and Christians in this are fairly well integrated minorities.
It is also important that Oracle supports virtually any server platform in current use, while SQL Server only supports a small number of similar platforms. Back in 2001 I was still getting support for Oracle 7.0 on VAX/VMS! One get Oracle on Linux, AIX, Solaris, HP-UX, zOS, OS400, Windows, a variety of Alpha platforms, Itanium platforms, etc. And this isn't shallow level support. Oracle can utilize their own file systems, so they are going at the bare hardware on all these systems. Care to guess what that does to the QA cycle?
Oracle is the shiznit when it comes to high performance general database work. It will scale far beyond almost everything else, with DB2 a close #2. Niche players like TeraData have their place too, but only Oracle can scale across the entire enterprise.
Selling a house can be productive, in that it helps two parties both better align their resources with their needs. By facilitating this alignment, the economy becomes more efficient and thus more productive.
For instance, take the case of a retired couple whose large family have all left home. They have a large 5 bedroom house. The need to spend considerable amounts of money to maintain it, heat it, pay property taxes, etc. And they are under utilizing it.
If they sell that house to a young family with several children, that family can now fully utilize that house. The house is being used more productively because most or all the bedrooms are in use, rather than just one. Meanwhile the retired couple purchase an apartment and invest the excess proceeds. Now they are in a residence that they can productively utilize. Their capital is no longer tied up in an unproductive resource but is now earning them returns. They are no longer paying an opportunity cost to keep their wealth tied up in an unproductive home.
So, the facilitating the transfer of real estate can result in higher productivity.
This "efficiency of resource allocation" is actually the fundamental reason that market economies perform so much better that command economies. In a command economy, it is very difficult to obtain a particular resource at a particular time. So, if you are managing a factory in such an economy, you want to stockpile as much of your resources as possible in your warehouses ahead of time. Meanwhile, since you are hoarding whatever you can, other factories are having a hard time acquiring resources that you have hidden away in your warehouse. Lots of resources sit underutilized in warehouses, because everyone is storing them for some point in the future when they might be needed. A feedback loop gets established: resources are hoarded to compensate for shortages, which creates more shortages, which drives more hoarding.
In contrast, a market economy means that a resource will always be available. Therefore it is not necessary to hoard resources unproductively in warehouses. Since hoarding is discouraged, there are fewer shortages, and factories are far less likely to sit idle. Industrial warehouses in command economies often held months, even years worth of resources, while warehouses in market economies often hold weeks or even days worth of resources.
I'm being a little pedantic, but burning ethanol does produce greenhouse gases. If the ethanol is produced organically, the same amount of greenhouse gases were absorbed to create the biomass in the first place, so there is a net zero. But it is possible to process fossil fuels into ethanol...
I'm in the US. What is the thermodynamic efficiency if we use Rankine instead?
http://www.cnn.com/2003/WORLD/europe/01/07/terror. poison.bulgarian/
All your tank are belong to us!
Thanks. My first chosen hammer was actually C with strategic bits of inline assembly. So I don't suffer from any illusions about Java being either fabulous or terrible.
Java is an interesting language. It simplifies or eliminates tons of things that cause real world problems in C and C++ programs. That means that a competent jr. developer can be trained and seasoned in less time than in a C/C+ world. On the other hand, the overhead of a virtual machine makes a bad design that much worse, so the architect role becomes more important. The middle guys who are so vital to C/C++ projects tend to be less vital in Java projects, adding value by organizing and mentoring the jr. guys and perhaps growing into architects, rather than directly contributing as much code.
The thing that amazes me about the Java world is that so much depends on the virtual machine, but so few Java developers have any understanding about the VM. The memory management and garbage collection algorithms can drive multiple order of magnitude difference in performance, but rare is the developer that can intelligently adjust those settings.
Different strokes for different folks. I have no direct knowledge of Python. I always had the impression that Python performance was in the class of the other scripting languages: Perl, PHP, Ruby, etc. Typically these languages are considered 100 times slower than Java, so they are not great for a lot of heavier server tasks where Java is still very appropriate.
I've done significant amounts of Perl, and some Ruby, and so I really appreciate how quickly one can get things done with this class of languages. And, of course, 75% of the time development and maintenance costs far outweigh hardware so productive languages are more appropriate than performant languages. On the other hand, however, I've always been concerned about the lack of compilation time verification. What's your experience?
Thank you Mr. Pedantic. They're making server applications and software platforms.
I went to RPI for a bit too in 91-92. I sometimes went I-87 but sometimes I'd take the Taconic as well.
The problem with that definition is that the East Bank of the Hudson would not be considered upstate. Certainly Poughkeepsie and Troy are upstate, but they can be reached from Westchester without crossing a bridge.
I always counted the communities outside of typical commute distance to be upstate. So generally anything beyond Westchester, Rockland, and parts of Orange.
Perhaps the best news that can come from this is that the three major platforms can potentially converge. Currently Sun, IBM, and BEA all have their own Java VMs. While compatibility is remarkably good for a specific version, each has their own strengths and weaknesses, performance wise. Each also utilize non-compatible tuning parameters and such.
A unified code base can potentially reduce these differences. We might have a single JVM that incorporates the best performance features of all three products, and can be tuned in a consistent way.
You have to remember that you are starting up a full virtual machine environment. That is going to have lots of overhead, especially at initialization. Anyone who expects to run "Hello, World" programs efficiently is a fool.
Java really does well with big server apps, where the cost of initialization can be amortized over a long period of time. Additionally, JIT compilation and live profiling really work well here.
Server apps really do well with Java. There are fewer opportunities to create difficult to track bugs, memory management handles the fragmentation issues, etc. The performance delta between a C++ and a Java server app is often fairly negligible* while the development time is often substantially faster and it is easy to move to other platforms.
* - A well written C++ app built for a generic processor architecture and a long running Java server app will frequently run about the same. The C++ app is stuck with the tuning choices made at compile time, while JIT and profiling available in Java will tune the Java app at run time, making up for the overhead of the virtual machine. If the "Gentoo" model is followed - the compiler is carefully set to provide maximum performance for a given machine - the C++ app can run substantially faster. However, the cost is that the binary can no longer be moved to a similar but not identical machine without rebuilding. This tuning activity typically requires lots of time and expertise, and generally makes environmental management efforts prohibitively complex. These solutions don't make their way into most real world environments.
You forgot two: BEA and Oracle.
And in my experience Java, correctly tuned, can be be quite performant in these environments. Next time you run into a bloated java app, look at the memory management model. You can probably fix it with a few command line switches.
I caught my wife once saying that she was going "upstate" to visit a friend. I said "Upstate? They live in Yonkers!" She replied "Well, its above 96th St!"
The "grid" is much more efficient. On the order of 7-8% loss. http://en.wikipedia.org/wiki/Electric_power_transm ission#Losses
On the other hand, small internal combustion generation systems typically run at efficiencies of 15 to 30%, while larger power plants Combined Cycle Gas Turbine systems run at almost 60%. http://en.wikipedia.org/wiki/Combined_cycle
While the grid does require maintenance, it simplifies fuel delivery. Delivering fuel to a few points by freight train, pipeline, and barge is many times more efficient than delivering fuel to tens of thousands of distributed points.
Anyway you slice it, the current centralized generation system is more efficient than distributed systems. I expect that the model will become more balanced as photovoltaic systems become cheaper. My opinion is that in the next 20 years or so distributed solar will supply substantial portions of the peak load while the utility will continue to generate the base load.