Brendan wrote:The main reason I'm going for "services" is for scalability (e.g. being able to use many CPUs in many separate computers in a distributed system). It's not about "bubble wrap" at all.
If you mean there is no similarity between wrapping a code within a managed environment and wrapping parameters and return value within a message, then I just don't know how to explain it better.
But at least I see you are trying to trade some benefits (like scalability) for performance. And you just refuse to accept such trade when we talk about reliability and security.
May be you can implement some very restrictive compiler, that will refuse to compile if it is unable to infer a variable's value, but what development speed decrease it will lead to? Here we have another trade, when development speed is traded for (may be) better execution speed. But why the same thing (execution speed) is traded back and forth? And the answer is that your priorities dictate such trade. But if your priorities allow to trade the speed in whatever manner, then why, for example, my priorities can not trade the speed for something else? Do you see the importance of priorities? You just can't get everything better and need to trade something less important for something more important. And it's actually the same trade as is the case for managed systems, but with different priorities.
And if we speak about just execution speed and software reliability, then may be your approach is good enough. But if it is about things like development speed, then your approach just squeezes a programmer with help of a too restrictive compiler.
Brendan wrote:So, the exact same Java application will run more efficiently on your OS than it does on both Windows and Linux? That's nice...
Yes, it's nice. But may be it would be more correct if we see it as a general performance problem, including execution and development time with addition of software usage costs.
Brendan wrote:I sit in a room surrounded by a pool of 25+ computers on a LAN. Almost all of them are idle almost all of the time. Are you suggesting there isn't enough processing power here for one computer to be editing text while 10 other computers do unit tests?
No, you have enough computer power, but you are not the only person who has some power. And other people had decided long ago that a button "run unit tests" is a really good solution. But here again we should remember that your preferences can be different.
Brendan wrote:Of course there would be some logic built in. E.g. there's no point running the unit tests while the source is constantly being modified - you have some sort of time delay (if the code the unit test relies on hasn't been modified for 60+ seconds, then start the unit test). You also wouldn't repeat tests if the pieces of source code they test weren't modified since last time.
60+ seconds is too much. There is just one moment, when I want to start unit tests, and this moment usually happens a way before 60+ seconds after I have my code ready for testing. But if instead of 60+ seconds you switch to 10, 20, 30 or whatever, then again the moment when I want to see the unit tests results is still unpredictable and it happens just once per relatively big chunk of work. So, your 20-40 seconds interval definitely will make an annoyance for many developers, even if the difference between the moment a developer wants it and the actual tests start will be just 5 seconds. And if it will be more than 5 seconds, then all developers will cry "where our 'run tests' button?".
Brendan wrote:In that case, it'll be like
UAC in Vista, where everything caused the dialog box to pop up and users clicked on it without thinking (until they found a way to disable UAC).
The UAC issue in fact is not so important. I have it turned on and see no problem if it disturbs me once in a week or even a month.
And about asking user in general - we just can select some better time to ask. For example, asking a user at the time he installs an application is just as natural as it can be on Windows, because all installers always ask something and those who don't are perceived as abusing user's trust.