And if you don't want to spend even more of your day straining your eyes by looking at a computer monitor, and (like the vast majority of subjects in formal tests) you find it easier and significantly faster to read old-fashioned paper and ink?
I can't imagine how much autodesk or catia would cost if each industry niche needed a custom version that only implimented the 2-300 functions that industry needs.
As someone who writes software in that industry for a living, I can answer that one for you pretty easily: too much. The level of detail to be represented in a typical high-end CAD application, and the complexity of some of the manipulations such an application must support, are both vast.
Tipping a hat to certain programming communities: simple things should be simple, and complicated things should be possible. If everything had to be explained in 500 or fewer words of kiddiespeak, we'd still be in the stone age.
Joe User is receiving a perfectly legal copy from someone who is sharing it with him. Joe User is not stealing anything. That person who is sharing the copy, in most cases, legally purchased a copy. All whimsical arguments about licensing aside, once a person legally purchases a product and is in possession of it then it is perfectly legal for them to share it with any and everyone.
Um, no. Sorry, but those arguments aren't whimsical at all, and your argument is factually incorrect.
Firstly, copyright exists precisely because you don't have an open-ended right to copy things. If you did, there would be no point to copyright, because once the first copy was sold it could be reproduced arbitrarily with no further compensation to the provider. This is an economic nonsense.
Secondly, the argument that a receiver is innocent and it's the sender who's making the copy and therefore guilty of copyright infringement is only applicable in some jurisdictions. This is a legal nonsense even today in many jurisdictions, and at best an open question in many others.
You are applying a model that works for physical goods to an information-based economy. That just isn't constructive, which is exactly why more or less every country in the modern world has evolved some sort of intellectual property framework in its legal system. Some of these are tipping the balance too far in favour of distributers now, and I'm as anti that as anyone, but the principle is sound.
My cynicism about employers and their contracts comes from situations like this one where the abusive manager had HR in his pocket, was a long-time favorite of the established upper management above him, was a 15-year industry veteran and a regular attendee at some very prestigious world conferences in the industry and who was taking out his personal and professional frustrations on a hardworking employee with the work ethic of a Catholic and the patience of an elephant who was only a single year out of undergraduate school.
And yet, in the post you linked to, you wrote this:
When I left my last employer I gave no notice and informed my manager that I was taking my two weeks of vacation as I walked out the door.
and this:
Call a lawyer? I'd been so harassed and was so out of sorts at the time that no lawyer even wanted to talk to me. Truthfully, I wouldn't have wanted to talk to me at that time either.
which rather suggests that the damage in that case may have been mostly self-inflicted. You didn't mention whether there was any stipulation in your contract about either taking an exit interview or payment in lieu of holiday not taken, so it's hard to tell.
I'm also trying to work out the timeline; you suggested in the parent post that you'd only been out of school for a year, yet said in your other post that you'd been in that job three years. Was it not a full-time job? What was all the abusive behaviour you've claimed but not described anyway?
The big clash that was always going to happen is between DRM and anti-circumvention laws (an absolute requirement for the distributors to be able to prevent copying) and fair use rights (an absolute requirement that the distributors cannot prevent copying in certain cases). Note that the latter is very different to fair use exemptions (which is all you currently have in most jurisdictions, if you have anything at all) because the exemption says "If you can copy it, then the act is not illegal", while the right says "The distributor must not prevent you from copying it".
There isn't really much scope for compromise here. The distributor can never have rock solid controls on copying anyway (it's technologically implausible) and even if they did, they'd then have to undertake to provide copies as the law requires, such as on any new media format, or for backup (which is financially implausible and not future-proof), so that idea isn't really worth pursuing, legally or technologically.
You say that such a thing might lead to an industrial tribunal. In practice, however, how impartial are such tribunals?
In the UK, generally very good. They are composed of three people, whose combined experience is usually extensive and includes legal proceedings, working on behalf of employers and working on behalf of employees.
Tribunals are generally held to be no-nonsense, firm but fair deals. If you try to get damages because you did something stupid and got yourself fired, they'll usually throw it out. If your employer really was acting improperly, you'll generally get fair compensation. Even organisations like Citizens' Advice speak well of them.
What is the cost barrier for representation?
You can take representation if you want, but often it's not necessary. A simple statement of your grievance may suffice.
What are the various social stigmas which may follow an employee before, during, and after the proceedings of such a tribunal?
For the kind of case you'd take to a tribual, relatively few. For employers, however, having a tribunal (which is public) find against you is a pretty damning indictment, and if it gets a lot of press locally it's a good way to run out of good staff to hire real quick.
OK, your turn: where does all this cynicism come from? We have a system, it works pretty well both in theory and more importantly in practice, and it's immune to some of the gross abuses that get mentioned here pretty frequently under employment-at-will. What's your problem with it?
So that as long as the manager who's harassing you can wheedle in good with HR, he's free to harass you for as long as he likes and you still have to put up with a notice period should you decide to leave?
No; just as a company could usually fire someone immediately for something like misconduct or negligence, so an employee who's harrassed, discriminated against or otherwise mistreated could usually walk away without notice. In the UK, for example, this might lead to an industrial tribunal where the employee claims compensation for effectively being constructively dismissed, on the grounds that the employer broke the fundamental trust relationship with the employee. Rather less dramatically, there are typically legal obligations on an employer covering both grievance and disciplinary procedures. You're imagining a problem where in reality one doesn't really exist, and giving up on an altogether more professional and constructive employment system as a result.
You're assuming the original poster is in an employment-at-will jurisdiction. In many places, for example much of Europe, it's quite normal and perfectly legal for employment contracts to require notice periods by both parties prior to termination under normal circumstances. It's also common to include a "garden leave" clause where an employer who's letting you go may require you not to attend work during your notice period (for example to prevent further access to confidential company information) and provisions for immediate dismissal in the event of gross misconduct. In many ways, the notice-is-normal approach is far superior to employment-at-will for all concerned; it implies a certain level of mutual responsibility that can only be constructive in an employer-employee relationship.
Are the lighting subcontractors in the Quake universe as horrible as those in the Doom 3 universe?
We'll never know, since they were all tragically killed by a highly implausible combination of physically impossible events during the introductory movie at the start of the game...
Yep, and another well-kept secret is that the brown walls will be lit with the latest super-graphics-card-powered hardware-enabled lighting and shadow technology, thus forcing anyone wanting to play the game to spend 300+ on the latest and greatest video card.
Which will be a waste of money, since by the time the game actually ships, you'll be able to buy the same card for half the price, and you'll know that the game actually requires something even more powerful anyway.
Quake 2 was OK as far as it went, but for me the peak of multiplayer FPS was still the original Quake, when the "clan" idea was first taking off and there were some excellent deathmatch maps where genuine tactics and communications were necessary to win a team game.
The problem with a lot of the more recent incarnations, at least those I've played, is that while huge, wide-open maps give a much more visually impressive game for the first ten seconds, they also mean lots of wandering around without seeing anyone, followed by a frantic game of shooting with every gun there is (since you picked five of all of them up since the last fight anyway), followed by the same again. There's no concept of controlling space and resources/power-ups, and team tactics basically come down to "two of us versus one of him is probably 1-0 to us". Booooooring.
I also find that once I get going, I end up throwing away or heavily refactoring a lot of legacy code anyway. So if I had written tests, I'd be throwing them out, too.
If your unit tests are testing observable behaviour as they should be, and your refactoring doesn't change observable behaviour at all as it shouldn't, then you don't need to throw away the tests. Similarly, if you're throwing away old code then presumably that's because you have new code that produces the same required behaviour, and therefore the tests for that behaviour will still be equally valid. If you find yourself left with irrelevant tests in either case, then probably your tests weren't very well written in the first place...
And it doesn't require draconian legislation requiring that all communication from every machine be traced and logged.
But who said anything about such drastic measures? Simply requiring ISPs to comply with some basic common sense (such as dealing with notifications of bot nets within this millenium) on pain of being exclded entirely from the network themselves would suffice in most cases.
"Sorry sir, no email for you until you reformat"...uhh huh. That'll happen.
Doubtful, but perhaps it should.
Consider another everyday activity, with a lot of benefits but some inherent risks, which works fine when people take care but goes wrong when they don't: driving. In most places, you don't get to drive without taking a simple test to prove you're reasonably safe and competent. Then if you're caught driving in a way that's hazardous or inconsiderate to others, a nice policeman pulls you over. Depending on the significance of the violation, you get a verbal warning, a formal sanction, or read your rights and your vehicle confiscated.
If a similar principle applied to the Internet, with minor offences attracting a polite warning up to running a grossly insecure system that causes widespread inconvenience to other netizens getting you completely blocked, people would soon learn to respect the technology and others using it. But first we have to get over this strange idea that because it's The Internet, everyone should be allowed to use it, without any traceability or responsibility for their actions whatsoever, regardless of the harm it may cause others. I doubt that'll be a popular viewpoint around these parts.
Problem is, peaceful means like trade sanctions won't work against the US. [...] So you need the military upper hand as well if you're going to get anywhere.
US vs. The Rest Of The World isn't a tough one to call.
Ultimately, slamming the US in every way but military may be the only way for the rest of the world to make them understand that they are not the world's leaders, the world's policemen, and the world's judge, jury and executioner if they want to be. The US administration has delusions of grandeur on an horrific scale, as demonstrated pretty clearly by the fact that we're having this discussion in the first place. Profit-hungry US megacorps now control a large amount of that administration, yet have little credibility anywhere else. Even the mindset of the US people as a collective (and I do realise that a lot of individual US citizens strongly oppose this) has become increasingly arrogant in recent years.
It's now almost inevitable that someone will take action to give the people making the decisions over there a little perspective sooner rather than later, before their meddling does too much damage anywhere else. The only question is who's going to do it first, China unilaterally, the middle east collectively, Europe, or someone else. In any case, if Bush gets away without a serious international incident for the remainder of his second term, I'll be amazed.
Not really. Unlike Iraq, Canada and those who would immediately ally with her have more than enough firepower to level the entire United States several times over. More realistically, they have more than enough trade power to cripple the US economy several times over.
Indeed I did. I summarised how it works, and the conditions necessary for it to provide a real world improvement in performance. I then contended that these circumstances aren't particularly likely in realistic code.
A compiler can run as a low-priority background thread and still gather enough information to do a good job.
No, it can't. That's my point. Look at what it takes just to gather that information in the specialist profiling context I mentioned before. You cannot have this for free, no matter how much you might wish it. Background threads still require processor time. Gathering enough information to do adaptive optimisation still requires a lot of processor time. Where are you magically getting this time from?
This is a lazy answer. I'm assuming people can use google. Just go to www.javasoft.com and look it up!
Which part of that site do you think I haven't read many times before? I don't care about trivial benchmarks. The usual LinPack stuff is about as trivial as you can get, and I already dealt with that in an earlier post.
What I want is a real example of a non-trivial application where Hotspot actually shows Java seriously outperforming properly compiled native C or C++. Just show me one example of such an application, from any context. If you can, I'll be happy to take a look, and to admit that I've been too harsh on the technology in this discussion.
Yes it has, because the original post said that Java always needed to do bounds checking.
Java does always need to do bounds checking. That's part of the language spec. Obviously, well-optimised code will minimise the number of independent places where extra logic is needed to provide the required guarantees, but sometime, somewhere, it is still being done. The same is true of checking dynamic types, etc.
This is not the way Hotspot works. Please go and read about the technology before posting! It does NOT instrument the code this way.
I didn't say it did; I was simply illustrating the performance hit that actively monitoring code without hardware support typically introduces.
BTW, before you start making assumptions of your own: I'm very familiar with the ideas behind Hotspot. I write high-performance code for a living, so any potential methods to significantly increase that performance are of immediate interest. I've been monitoring the development of Hotspot, and in particular the approach it's taken to adaptive optimisations, for years.
firstly. that monitoring has significant overheads (it doesn't)
That's amazing! The state of the art in software-based profiling technology still incurs massive run-time overheads, yet Hotspot is able to identify highly-used code (and while running as an interpreter at first, too), gather the same sort of information about how it's being used as the profiler, and then perform more aggressive optimisations than a static code generator that's not constrained by how long it takes to run, all without significant overheads? They should file a load of patents, and then release the best C++ profiling tools in the world!
secondly that optimising at run-time is in some mysterious way automatically inferior to optimising at compile time.
There's nothing mysterious about it at all. You incur the run-time overheads necessary to identify the code worth optimising, to monitor the contexts in which that code is used, and then to generate the optimised code. Any optimisations you find there must then be more efficient than the statically-optimised equivalent, just to make up for the run-time overheads. Once you've reached that point, then you can start going faster.
I have always acknowledged that reaching that point is possible. What I'm questioning is how often you're ever going to get the necessary combination of factors in reality.
The reverse is obviously correct, as run-time optimising is based on evidence of how the program is actually running, not some kind of prediction about how it might run.
It's not obvious at all. You are assuming that there is sufficient scope in the extra optimisations you can identify based on run-time analysis to make up for and then exceed the time required to gather the necessary information and then perform those optimisations.
I would, in return, please ask you to look at actual benchmarks and evidence rather than simply publishing your own opinions.
I'd love to, but I notice you haven't yet replied to the other post that asked you to cite any such benchmarks or evidence. In the absence of that, having extensive experience of producing tightly optimised code in other languages for a living, and having been monitoring Sun's progress with this technology for years, I can only conclude that common sense has not completely left the building, and while Hotspot may improve things, it's probably not the revolutionary step forward you seem to believe it is.
Would you care to cite examples instead of calling me crazy?
Sorry, the reply was flippant; I should have added a smiley.
But seriously, what is it about Swing that makes you say it's cooler than other major GUI toolkits? Admittedly I've never used it much, but it seems to be remarkably difficult to implement essentials like native look and feel properly in Swing compared to the alternatives, which pretty much turned me right off it. What makes it so cool in your view?
No, it's not. The theoretically impossible has not magically become possible because of a few more years of hype.
Optimised Java does not need to do bounds checking, and does not have this overhead. The Hotspot technology does run-time analysis so that the ranges of loops and potential value limits of variables are determined. This means that bounds checking can be removed in almost all cases.
In almost all cases, yes. As I said before, a lot of Java's overheads now tend towards the efficiency of something like C as a limit. But the overheads must still be there somewhere; you don't get extra processing for free, ever.
The Hotspot optimiser does things that no C compiler can ever do - it can determine at run time the best order for machine code instructions for best use of pipelines in certain processors.
Sure, and that's the case I mentioned where it is theoretically possible for Java to outperform C in a real scenario. The problem is how many factors have to go in Java's favour before this actually happens in reality.
Consider the impact of instrumenting code for profiling. On most platforms, you don't get hardware support, and the run-time for an instrumented build can easily increase by a factor of 5-10x or more. Compared to profiling with HP's Caliper tool on an Itanium box, where this is hardware support and run-time overhead is a few percent, it's a different world.
Now, Java's Hotspot technology is basically profiling at run-time. Please read the above, and consider the overheads involved in gathering the information necessary to do the dynamic optimisation. Then consider the benefits gained by having better optimised code over just moderately optimised code. You would need a pretty favourable set of circumstances to gain much real advantage from using Hotspot, and you're risking making performance worse because of the monitoring overheads in all other cases.
The bottom line is that Hotspot is an interesting techology that has genuine applications, but it hasn't suddenly rewritten decades of computer science, the laws of physics, and the common sense of the programming community. As has been said so many times and in so many contexts, there are no silver bullets in programming.
And if you don't want to spend even more of your day straining your eyes by looking at a computer monitor, and (like the vast majority of subjects in formal tests) you find it easier and significantly faster to read old-fashioned paper and ink?
As someone who writes software in that industry for a living, I can answer that one for you pretty easily: too much. The level of detail to be represented in a typical high-end CAD application, and the complexity of some of the manipulations such an application must support, are both vast.
Tipping a hat to certain programming communities: simple things should be simple, and complicated things should be possible. If everything had to be explained in 500 or fewer words of kiddiespeak, we'd still be in the stone age.
Um, no. Sorry, but those arguments aren't whimsical at all, and your argument is factually incorrect.
Firstly, copyright exists precisely because you don't have an open-ended right to copy things. If you did, there would be no point to copyright, because once the first copy was sold it could be reproduced arbitrarily with no further compensation to the provider. This is an economic nonsense.
Secondly, the argument that a receiver is innocent and it's the sender who's making the copy and therefore guilty of copyright infringement is only applicable in some jurisdictions. This is a legal nonsense even today in many jurisdictions, and at best an open question in many others.
You are applying a model that works for physical goods to an information-based economy. That just isn't constructive, which is exactly why more or less every country in the modern world has evolved some sort of intellectual property framework in its legal system. Some of these are tipping the balance too far in favour of distributers now, and I'm as anti that as anyone, but the principle is sound.
And yet, in the post you linked to, you wrote this:
and this:
which rather suggests that the damage in that case may have been mostly self-inflicted. You didn't mention whether there was any stipulation in your contract about either taking an exit interview or payment in lieu of holiday not taken, so it's hard to tell.
I'm also trying to work out the timeline; you suggested in the parent post that you'd only been out of school for a year, yet said in your other post that you'd been in that job three years. Was it not a full-time job? What was all the abusive behaviour you've claimed but not described anyway?
The big clash that was always going to happen is between DRM and anti-circumvention laws (an absolute requirement for the distributors to be able to prevent copying) and fair use rights (an absolute requirement that the distributors cannot prevent copying in certain cases). Note that the latter is very different to fair use exemptions (which is all you currently have in most jurisdictions, if you have anything at all) because the exemption says "If you can copy it, then the act is not illegal", while the right says "The distributor must not prevent you from copying it".
There isn't really much scope for compromise here. The distributor can never have rock solid controls on copying anyway (it's technologically implausible) and even if they did, they'd then have to undertake to provide copies as the law requires, such as on any new media format, or for backup (which is financially implausible and not future-proof), so that idea isn't really worth pursuing, legally or technologically.
Immovable object, meet irresistable force.
Which is particularly amusing since she's one of the most qualified lawyers in the country...
In the UK, generally very good. They are composed of three people, whose combined experience is usually extensive and includes legal proceedings, working on behalf of employers and working on behalf of employees.
Tribunals are generally held to be no-nonsense, firm but fair deals. If you try to get damages because you did something stupid and got yourself fired, they'll usually throw it out. If your employer really was acting improperly, you'll generally get fair compensation. Even organisations like Citizens' Advice speak well of them.
You can take representation if you want, but often it's not necessary. A simple statement of your grievance may suffice.
For the kind of case you'd take to a tribual, relatively few. For employers, however, having a tribunal (which is public) find against you is a pretty damning indictment, and if it gets a lot of press locally it's a good way to run out of good staff to hire real quick.
OK, your turn: where does all this cynicism come from? We have a system, it works pretty well both in theory and more importantly in practice, and it's immune to some of the gross abuses that get mentioned here pretty frequently under employment-at-will. What's your problem with it?
No; just as a company could usually fire someone immediately for something like misconduct or negligence, so an employee who's harrassed, discriminated against or otherwise mistreated could usually walk away without notice. In the UK, for example, this might lead to an industrial tribunal where the employee claims compensation for effectively being constructively dismissed, on the grounds that the employer broke the fundamental trust relationship with the employee. Rather less dramatically, there are typically legal obligations on an employer covering both grievance and disciplinary procedures. You're imagining a problem where in reality one doesn't really exist, and giving up on an altogether more professional and constructive employment system as a result.
You're assuming the original poster is in an employment-at-will jurisdiction. In many places, for example much of Europe, it's quite normal and perfectly legal for employment contracts to require notice periods by both parties prior to termination under normal circumstances. It's also common to include a "garden leave" clause where an employer who's letting you go may require you not to attend work during your notice period (for example to prevent further access to confidential company information) and provisions for immediate dismissal in the event of gross misconduct. In many ways, the notice-is-normal approach is far superior to employment-at-will for all concerned; it implies a certain level of mutual responsibility that can only be constructive in an employer-employee relationship.
We'll never know, since they were all tragically killed by a highly implausible combination of physically impossible events during the introductory movie at the start of the game...
Yep, and another well-kept secret is that the brown walls will be lit with the latest super-graphics-card-powered hardware-enabled lighting and shadow technology, thus forcing anyone wanting to play the game to spend 300+ on the latest and greatest video card.
Which will be a waste of money, since by the time the game actually ships, you'll be able to buy the same card for half the price, and you'll know that the game actually requires something even more powerful anyway.
Quake 2 was OK as far as it went, but for me the peak of multiplayer FPS was still the original Quake, when the "clan" idea was first taking off and there were some excellent deathmatch maps where genuine tactics and communications were necessary to win a team game.
The problem with a lot of the more recent incarnations, at least those I've played, is that while huge, wide-open maps give a much more visually impressive game for the first ten seconds, they also mean lots of wandering around without seeing anyone, followed by a frantic game of shooting with every gun there is (since you picked five of all of them up since the last fight anyway), followed by the same again. There's no concept of controlling space and resources/power-ups, and team tactics basically come down to "two of us versus one of him is probably 1-0 to us". Booooooring.
If your unit tests are testing observable behaviour as they should be, and your refactoring doesn't change observable behaviour at all as it shouldn't, then you don't need to throw away the tests. Similarly, if you're throwing away old code then presumably that's because you have new code that produces the same required behaviour, and therefore the tests for that behaviour will still be equally valid. If you find yourself left with irrelevant tests in either case, then probably your tests weren't very well written in the first place...
But who said anything about such drastic measures? Simply requiring ISPs to comply with some basic common sense (such as dealing with notifications of bot nets within this millenium) on pain of being exclded entirely from the network themselves would suffice in most cases.
Doubtful, but perhaps it should.
Consider another everyday activity, with a lot of benefits but some inherent risks, which works fine when people take care but goes wrong when they don't: driving. In most places, you don't get to drive without taking a simple test to prove you're reasonably safe and competent. Then if you're caught driving in a way that's hazardous or inconsiderate to others, a nice policeman pulls you over. Depending on the significance of the violation, you get a verbal warning, a formal sanction, or read your rights and your vehicle confiscated.
If a similar principle applied to the Internet, with minor offences attracting a polite warning up to running a grossly insecure system that causes widespread inconvenience to other netizens getting you completely blocked, people would soon learn to respect the technology and others using it. But first we have to get over this strange idea that because it's The Internet, everyone should be allowed to use it, without any traceability or responsibility for their actions whatsoever, regardless of the harm it may cause others. I doubt that'll be a popular viewpoint around these parts.
It's an enterprise-class model for evaluating the effectiveness of synergies between your production deliverables and your consumer base requirements.
US vs. The Rest Of The World isn't a tough one to call.
Ultimately, slamming the US in every way but military may be the only way for the rest of the world to make them understand that they are not the world's leaders, the world's policemen, and the world's judge, jury and executioner if they want to be. The US administration has delusions of grandeur on an horrific scale, as demonstrated pretty clearly by the fact that we're having this discussion in the first place. Profit-hungry US megacorps now control a large amount of that administration, yet have little credibility anywhere else. Even the mindset of the US people as a collective (and I do realise that a lot of individual US citizens strongly oppose this) has become increasingly arrogant in recent years.
It's now almost inevitable that someone will take action to give the people making the decisions over there a little perspective sooner rather than later, before their meddling does too much damage anywhere else. The only question is who's going to do it first, China unilaterally, the middle east collectively, Europe, or someone else. In any case, if Bush gets away without a serious international incident for the remainder of his second term, I'll be amazed.
That reminds me of an old martial arts joke...
Q: What do you call a guy who dies in hospital two days after a knife fight?
A: The winner.
Not really. Unlike Iraq, Canada and those who would immediately ally with her have more than enough firepower to level the entire United States several times over. More realistically, they have more than enough trade power to cripple the US economy several times over.
Indeed I did. I summarised how it works, and the conditions necessary for it to provide a real world improvement in performance. I then contended that these circumstances aren't particularly likely in realistic code.
No, it can't. That's my point. Look at what it takes just to gather that information in the specialist profiling context I mentioned before. You cannot have this for free, no matter how much you might wish it. Background threads still require processor time. Gathering enough information to do adaptive optimisation still requires a lot of processor time. Where are you magically getting this time from?
Which part of that site do you think I haven't read many times before? I don't care about trivial benchmarks. The usual LinPack stuff is about as trivial as you can get, and I already dealt with that in an earlier post.
What I want is a real example of a non-trivial application where Hotspot actually shows Java seriously outperforming properly compiled native C or C++. Just show me one example of such an application, from any context. If you can, I'll be happy to take a look, and to admit that I've been too harsh on the technology in this discussion.
Indeed, but what about something like f g h?
Java does always need to do bounds checking. That's part of the language spec. Obviously, well-optimised code will minimise the number of independent places where extra logic is needed to provide the required guarantees, but sometime, somewhere, it is still being done. The same is true of checking dynamic types, etc.
I didn't say it did; I was simply illustrating the performance hit that actively monitoring code without hardware support typically introduces.
BTW, before you start making assumptions of your own: I'm very familiar with the ideas behind Hotspot. I write high-performance code for a living, so any potential methods to significantly increase that performance are of immediate interest. I've been monitoring the development of Hotspot, and in particular the approach it's taken to adaptive optimisations, for years.
That's amazing! The state of the art in software-based profiling technology still incurs massive run-time overheads, yet Hotspot is able to identify highly-used code (and while running as an interpreter at first, too), gather the same sort of information about how it's being used as the profiler, and then perform more aggressive optimisations than a static code generator that's not constrained by how long it takes to run, all without significant overheads? They should file a load of patents, and then release the best C++ profiling tools in the world!
There's nothing mysterious about it at all. You incur the run-time overheads necessary to identify the code worth optimising, to monitor the contexts in which that code is used, and then to generate the optimised code. Any optimisations you find there must then be more efficient than the statically-optimised equivalent, just to make up for the run-time overheads. Once you've reached that point, then you can start going faster.
I have always acknowledged that reaching that point is possible. What I'm questioning is how often you're ever going to get the necessary combination of factors in reality.
It's not obvious at all. You are assuming that there is sufficient scope in the extra optimisations you can identify based on run-time analysis to make up for and then exceed the time required to gather the necessary information and then perform those optimisations.
I'd love to, but I notice you haven't yet replied to the other post that asked you to cite any such benchmarks or evidence. In the absence of that, having extensive experience of producing tightly optimised code in other languages for a living, and having been monitoring Sun's progress with this technology for years, I can only conclude that common sense has not completely left the building, and while Hotspot may improve things, it's probably not the revolutionary step forward you seem to believe it is.
Why? Are you (mistakenly) assuming that the tuples must contain only objects of related types?
Sorry, the reply was flippant; I should have added a smiley.
But seriously, what is it about Swing that makes you say it's cooler than other major GUI toolkits? Admittedly I've never used it much, but it seems to be remarkably difficult to implement essentials like native look and feel properly in Swing compared to the alternatives, which pretty much turned me right off it. What makes it so cool in your view?
No, it's not. The theoretically impossible has not magically become possible because of a few more years of hype.
In almost all cases, yes. As I said before, a lot of Java's overheads now tend towards the efficiency of something like C as a limit. But the overheads must still be there somewhere; you don't get extra processing for free, ever.
Sure, and that's the case I mentioned where it is theoretically possible for Java to outperform C in a real scenario. The problem is how many factors have to go in Java's favour before this actually happens in reality.
Consider the impact of instrumenting code for profiling. On most platforms, you don't get hardware support, and the run-time for an instrumented build can easily increase by a factor of 5-10x or more. Compared to profiling with HP's Caliper tool on an Itanium box, where this is hardware support and run-time overhead is a few percent, it's a different world.
Now, Java's Hotspot technology is basically profiling at run-time. Please read the above, and consider the overheads involved in gathering the information necessary to do the dynamic optimisation. Then consider the benefits gained by having better optimised code over just moderately optimised code. You would need a pretty favourable set of circumstances to gain much real advantage from using Hotspot, and you're risking making performance worse because of the monitoring overheads in all other cases.
The bottom line is that Hotspot is an interesting techology that has genuine applications, but it hasn't suddenly rewritten decades of computer science, the laws of physics, and the common sense of the programming community. As has been said so many times and in so many contexts, there are no silver bullets in programming.