embryo2 wrote:Schol-R-LEA wrote:What he has said time and again is not this is wrong and always will be wrong, but rather, where is the advantage in it? All you need to do is go through the numbers and demonstrate that there are advantages to a managed system that cannot be achieved through an unmanaged system - something he would argue that you should have already done anyway before committing to this course of action.
I have it done. [emphasis added] We had discussions before and the advantage list was introduced.
embryo2 wrote:Schol-R-LEA wrote:You do understand that it is the person making a claim who holds the burden of proof, don't you? That's one of the cornerstones of both the scientific method and general engineering.
I made the claim - there's no sane comparison. Next
I have shown the problem with the existing comparison search [emphasis added].
I must have missed the part where you showed, well, anything at all. I'll go back and look through the old posts, I guess. If you have links, I would appreciate it, though I should be able to find them myself with a little time and effort.
Getting back to what you said earlier in the post:
embryo2 wrote:Schol-R-LEA wrote:you haven't agreed on your terminology
Ok, I can repeat it.
Managed environment employs a number of technics to control the software it runs. It means the environment
manages the code.
OK, then, now we are getting somewhere. The definition is a bit tautological and incomplete - it amounts to "A managed environment is one which manages code" without specifying what managing the code actually means - but it is more than we've had up until now. So, let's start by asking, what techniques do
all 'managed environments' use?
embryo2 wrote:The forms of management are many and they differ one from another.
This is something of a handwave, and while I understand that the two most widely used managed environments - JVM and .NET CLI - are quite different, you haven't explain how they are
similar, and what makes them 'managed' versus, say, UCSD Pascal or FIG FORTH. What is it that makes a system 'managed', and what qualifies as a 'managed environment' that is new and unique? Would (for example) a compile-and-go Common Lisp REPL qualify as a 'managed environment'? What about Smalltalk-80 or Squeak? Or the original Dartmouth BASIC interpreter? What are the
defining qualities of a managed environment, and how do they differ from earlier systems with some or all of the same properties?
Are their any characteristics that are
absolutely required for a system to be considered 'managed'? A bytecode virtual machine (such as a p-machine interpreter or the Smalltalk engine)? A JIT compiler (like a Lisp or Scheme compile-and-go REPL)? Garbage collection (like more languages than I could hope to name, starting with LISP 1.5 in 1958 and including things as disparate as SNOBOL and Rust)? Runtime bounds checking (like every Pascal compiler ever written)? All of the above? None of the above? Something else? Definitions need to define, not just describe.
embryo2 wrote:The overall result of the technics employed is cost, speed and quality enhancement.
The cost here means total ownership costs for the user's system, including hardware, software, learning and support.
The speed here means:
- software performance in terms of time taken for a task to be completed
- developer performance in terms of "time to market"
The quality here means:
- less bugs
- better security
- better user experience
- less efforts for user to make his job done.
And how is it supposed to accomplish these goals, and why can they be achieved in a 'managed environment' but not an 'unmanaged' one? As I've already pointed out, all the trappings of 'managed environments' that have been mentioned so far have appeared in the past, both individually or as a collection, so differentiating how a 'managed environment' differs from (for example) a UCSD Pascal p-System OS application with run-time checks running partly in an interpreter and partly as natively-compiled code isn't at all clear, nor is it clear that these properties add value that cannot be achieved in some other manner.
Unlike Brendan, I don't really have an axe to grind about this; indeed, my own planned language and runtime system will have a lot of these properties themselves. I am, however, trying to determine how to minimize the impact of them, by (for example) finding ways of performing static checks to eliminate most runtime checks, amortizing compilation time by moving most of the analysis to the AOT compile stage and bundling those results along with the AST, reducing repeated compiles through caching, and various other means of making the runtime environment
less 'managed'. What I want to know is, how do
you intend to address these issues in your system? Hell, if you're doing something interesting, I'd love to hear it so I can consider if I can apply it to my own work.
TL;DR - You need to figure out why you are doing what you are doing, and understand the trade-offs you are making for it, rather than spouting off lofty intentions with no idea how to achieve them.
embryo2 wrote:Schol-R-LEA wrote:The problem isn't the hardware, it's the software, and the effort it would take to either port the code or develop a software emulator that would perform adequately while supporting a sufficient portion of the existing code base, or some combination of the two.
Yes, compatibility is a problem. But do you agree the ARM has chance to win? It was the root message. And in fact you have agreed in a bin unclear manner (Intel is trash and so on).
ARM specifically? Hard to say. If any of the current systems are going to, it probably will be ARM, if only because with the rise of it's use in mobile systems, the chip production runs are now large enough to gain traction over the x86. However, it isn't clear if anyone (least of all the consumers) are going to win at all, or when. I don't doubt that ARM can outperform x86, if enough development work goes into pushing its performance; the questions are a) will any of the chip manufacturers currently producing that design be able and willing to commit to doing so, b) will the majority of software vendors - including, but not limited to, Microsoft - be able and willing to commit to transitioning to it at the cost of most of their existing software base, and c) will the motherboard and peripheral vendors go along with it.
This has nothing to do with technology and everything to do with profitability and risk management. As I said, everyone is expecting to happen eventually (if not with ARM, then some other, newer architecture), but no one is willing to stick their necks out to do it until they have no choice, especially at a time when the desktop market is already taking a beating from mobile platforms.
If you think you can talk, say, Asus into building an ATX form factor mobo that uses an ARM processor, then convince Microsoft to re-write desktop Windows for ARM,
and then convince a significant number of users to buy them even though they won't run most Windows software, then maybe something will happen. In the meanwhile, we as hobbyists can wait and work on Raspberry Pis and
BeagleBoards until the rest of the industry changes.
TL;DR: I agree, but what two hobbyist OS devs happen to think means nothing in the light of commercial reality.
embryo2 wrote:Schol-R-LEA wrote:Microsoft has been delaying the reckoning they know is coming on this matter, and until they act, the larger PC manufacturers will keep focusing their efforts on cheap PCs regardless of the long-term fallout because that's what their competitors are doing, and the software developers will keep doing things that misuse both the hardware and the OS in non-portable ways because they need an edge over their competitors. Until one of them changes what they are doing, the other two have to keep at it, too, or risk losing everything.
Ok, the problem is described by you. But why do you deny the solution? It's managed environment.
embryo2 wrote:Ok, do you know (as an OS developer) about efforts required to port Linux to the ARM or PowerPC? Has the Linux community managed to find resources for such efforts? Do you think Linux community has spent more resources than Microsoft on it's .Net?
Actually, I would say that the total effort needed to port Linux to these platforms has been about the same, possibly greater. The difference is that the Linux work was done over a period of years, by large numbers of independent developers working on many independent projects, with few if any hard deadlines, so it is much harder to gauge the overall work put into it.