Well, as far as information is concerned, every operation is either a transformation or a NOP. All you're doing is drawing a distinction between different levels of complexity.
I wouldn't say it's so crippled. But it certainly is tuned towards the novice user, and it's usability studies like the one here done by Sun and those done my Microsoft, and most other commercial software developers that improves the acceptance of their software in the marketplace. The adage "We are not the user" is something that generally differentiates most commercial projects from open-source software, makes commercial software easier to use and learn (for novice users, at least) and therefore gains them position in the marketplace. If systems like GNU/Linux & Ximian wish to appeal to more users then they seriously need to address these usability issues.
I find it somewhat ammusing that the Sun study basically recommends, where applicable, that the GNOME features be made to work more like windows. Not because windows is better (or worse), just because most novice users think the same way and Windows has already taken most of that into account through extensive usability testing. The fact that some of the users in the test had already used other, well-tested systems, like Windows and Mac obviously shows through. But I believe that if you took computer 'virgins' and ran them through the same tests, they'd probably come up with similar results, especially in the areas of error-elimination and better up-front user education.
It's interesting that Linux and Windows are tending towards similar user experiences, but from completely different angles: Unix has traditionally been for the expert and is moving towards the novice. Windows and the Mac have traditionally been for the novice but both are providing more customizability and advanced features for the expert.
Great, the Chinese will have the communications so locked down by the time the Olympics roll around that we won't know the results until the athletes are 'allowed' to return home. After the celebratory interregations, of course. Do you think they'll impose summary executions for those caught using performance enhancing drugs?
Studies like this are performed on windows systems and applications. Microsoft has special usabiliy labs, complete with one-way mirrors and video-monitoring for analysing common usage patterns and problems.
I'm not that familiar with the Alpha's instruction set, but I'm quite sure that the decored for the ARM instruction set is much simpler than the x86 decoder in the P4. If they can run that monster at 1.7GHz with dual ALUs and an FPU then it would seem to me that there must be room for improvement in the ARM?
Yes, except that it only implements about 1% of the functionality that IE/MSHTML exposes. The IWebBrowser interface is a very high-level control for hosting pages. It doesn't expose the underlying HTML object model
Microsoft "invented" shared code very late in the game
I didn't say anything about Microsoft's involvement in the usage of shared code. I just stated that open-source developers have historically not made much use of it. (apart from the standard libraries, of course)
Besides, there's no legitimate reason the Windows shell DLLs couldn't themselves have dynamically linked against a libc DLL -- which itself could then be shared amongst all apps -- rather than exporting incompatible substitutes.
The legitimate reasons are that
they didn't need all the functions in libc so they didn't want to load it. the c-runtime was seen mainly as a unix compatibility layer. most of the functions in libc are implemented on top of native win32 calls anyway. since the windows developers were initimately knowledgeable about the win32 api (they were implementing it, after all) most of their code was native code. But everyone needs string handling routines, especially ones that handled locales and code pages (which the libc ones didn't, at the time) so they put them in there.
the size of libc was too big on a 4Mb win95 system. Performance was a key issue and saving pages meant winning the perf battle against OS/2. they originally didn't even load OLE2.dll to do the COM stuff in the shell - they just rewrote a very minimal version that they statically linked into the shell to save space. Not exactly what you'd call code-shring, I know, but the code was available to 3rd parties elsewhere (OLE2.dll) and a small footprint was critical.
it's implemented as a single DLL on windows (and I believe on most other OSs) for performance reasons. Requiring extra levels of indirection like you suggest requires more disk accesses, loader fixups and indirect calls, also the compiler can't make use of inlining or global optimizations across these modules.
Thus, your program will only consume memory for the functions it's actually using.
Modern operating systems such as Unix and Windows use virtual memory and demand-loading of modules, so modules only consume the physical memory that is currently paged in.
Microsoft has an internal tool that reorganizes the functions in a module (DLL/EXE) that causes functions that are commonly called together to be placed in contiguous memory locations (ie in the same 64K segment) thus drastically cutting down on the number of page faults and allocated physical memory segments required to execute common call chains. This gives them a 10-15% increase in performance above compiler and linker optimizations. These kinds of optimizations are not possible across module boundaries.
Imagine the code inside each of your 'sub-DLLs' that need to call 'strcpy()' (or some other commonly used libs routing). Every time you wanted to call this routine, instead of just using a 'jmp' instruction you have to use a 'call' to another DLL, your performance is going to suffer, badly.
It's just good, solid, clear thinking
Yeah, good idea, but unfortunately it's lacking a bit on the practical side. Of course, if you don't care about performance go right ahead.
well win95 ran faster that win3.1 on a 4Mb machine at the time it shipped (and this was the time that these functions were introduced). I'm not sure of the specs of the win98/ME target machines but that same perf test were run against those.
NT3.51 was faster than 3.5, 4.0 faster than 3.51. i'm not sure about 2k.
"No, I do not want my attitude to be misunderstood. I shall be glad to state it for the record. I am in full agreement with the facts of everything said about me in the newspapers - with the facts, but not with the evaluation. I work for nothing but my own profit - which I make by selling a product they need to men who are willing and able to buy it. I do not produce it for their benefit at the expense of mine, and they do not buy it for my benefit at the expense of theirs; I do not sacrifice my interests to them nor do they sacrifice theirs to me; we deal as equals by mutual consent to mutual advantage - and I am proud of every penny that I have earned in this manner. I am rich and I am proud of every penny I own. I made my money by my own effort, in free exchange and through the voluntary consent of every man I dealt with - voluntary consent of those who employed me when I started, the voluntary consent of those who work for me now, the voluntary consent of those who buy my product. I shall answer all the questions you are afraid to ask me openly. Do I wish to pay my workers more than their services are worth to me? I do not. Do I wish to sell my product for less than my customers are willing to pay me? I do not. Do I wish to sell it at a loss or give it away? I do not. If this is evil, do whatever you please about me, according to whatever standards you hold. These are mine. I am earning my own living, as every honest man must. I refuse to accept as guilt the fact of my own existence and the fact that I must work in order to support it. I refuse to accept as guilt the fact that I am able to do it better than most people - the fact that my work is of greater value than the work of my neighbours and that more men are willing to pay me. I refuse to apologise for my ability - I refuse to apologise for my success - I refuse to apologise for my money. If this is evil, make the most of it. If this is what the public finds harmful to its interests, let the public destroy me. This is my code - and I will accept no other. I could say to you that I have done more good for my fellow men than you can ever hope to accomplish - but I will not say it, because I do not seek the good of others as a sanction for my right to exist, nor do I recognise the good of others as a justification for their seizure of my property or their destruction of my life. I will not say that the good of others was the purpose of my work - my own good was my purpose, and I despise the man who surrenders his. I could say to you that you do not serve the public good - that nobody's good can be achieved at the price of human sacrifices - that when you violate the rights of one man, you have violated the right of all, and a public of rightless creatures is doomed to destruction. I could say to you that you will and can achieve nothing but universal devastation - as any looter must, when he runs out of victims. I could say it, but I won't. It is not your particular policy that I challenge, but your moral premise. If it were true that men could achieve their good by means of turning some men into sacrificial animals, and I were asked to immolate myself for the sake of creatures who wanted to survive at the price of my blood, if I were asked to serve the interests of society apart from, above and against my own - I would refuse. I would reject it as the most contemptible evil, I would fight it with every power I possess, I would fight the whole of mankind, if one minute were all I could last before I were murdered, I would fight in the full confidence of the justice of my battle and of a living being's right to exist. Let there be no misunderstanding about me. If it is now the belief of my fellow men, who call themselves the public, that their good requires victims, then I say: The public good be damned, I will have no part of it!"
MS SQL server is viewed as a joke relative to Oracle
yes, mainly by Oracle DBAs that charge huge amounts to support Oracle's databases. From by (albeit limited experience) SQL Server is much easier to administer than Oracle, and thus threatening those DBAs.
hang on. who is to decide that image handlers are low-level (and therefore acceptable for inclusion into an OS) and HTML parsers are high-level (and therefore not).
This seems to me to be a pretty arbitrary distinction - something that, by definition, the courts should not be ruling on (arbitrary laws are bad, right?)
by your logic, a few years ago a TCP/IP stack, or a JPEG library would have been considered high level. what changed between then and now?
the 'StrCpy' version was define so they didn't have to load the whole 320K msvcrt.dll just to copy a string. on a machine with 4Mb RAM you can't afford to do that, especially when the operating system you're about to ship (win95) has to run faster that OS/2 on that machine.
the reason that windows includes its own implementations of these routines is for historical reasons. they were originally included in the OS because the C-runtime DLLs were not commonly available on user's machines and were considered much too large/monolithic to be included in most applications. The routines were exported from the shell DLLs so that other components could use them without having to bring in the whole crt dll. this was especially important when trying to get win95 to run as fast as win3.1 on a machine with 4Mb RAM (the target machine for Win95). this practice is called code-sharing, and as alien as this sounds to open-source developers, it is actually quite common in modern software engineering practices.
this is bulshit, if you took the time to look through the headers that microsoft supplies with their freely downloadable platform SDK, then you'll see that these functions are callable using their non-underscored names just like on any other system.
I don't see how bundling IE is limiting a consumer's choice. Sure, it's making the choice much easier to make since it's there already, but it's in no way preventing you from downloading an alternative to the browser, or to the whole OS, as so many people here are so ready to attest.
not so hollow considering that each new release of the operating system is supposed to run faster than the previous version on the current 'average' system.
big secret: just like the quick-launch bar (I can't believe you disabled that!!!) and the active desktop (that too? man, use your imagination: you can put anything on your desktop) you can disable most of the things in XP that are 'in-your-face'. I'm running XP here and I have it looking pretty much the same as my win2k boxes: i have the quicklaunch bar up with all of my commonly used applications right there so i don't have to hunt through the start menu (one-click) and I have active desktop enabled with a jpg, a custom google html page, an address bar on my desktop. (you can see it here)
Well, as far as information is concerned, every operation is either a transformation or a NOP. All you're doing is drawing a distinction between different levels of complexity.
I find it somewhat ammusing that the Sun study basically recommends, where applicable, that the GNOME features be made to work more like windows. Not because windows is better (or worse), just because most novice users think the same way and Windows has already taken most of that into account through extensive usability testing. The fact that some of the users in the test had already used other, well-tested systems, like Windows and Mac obviously shows through. But I believe that if you took computer 'virgins' and ran them through the same tests, they'd probably come up with similar results, especially in the areas of error-elimination and better up-front user education.
It's interesting that Linux and Windows are tending towards similar user experiences, but from completely different angles: Unix has traditionally been for the expert and is moving towards the novice. Windows and the Mac have traditionally been for the novice but both are providing more customizability and advanced features for the expert.
Great, the Chinese will have the communications so locked down by the time the Olympics roll around that we won't know the results until the athletes are 'allowed' to return home. After the celebratory interregations, of course. Do you think they'll impose summary executions for those caught using performance enhancing drugs?
Studies like this are performed on windows systems and applications. Microsoft has special usabiliy labs, complete with one-way mirrors and video-monitoring for analysing common usage patterns and problems.
I'm not that familiar with the Alpha's instruction set, but I'm quite sure that the decored for the ARM instruction set is much simpler than the x86 decoder in the P4. If they can run that monster at 1.7GHz with dual ALUs and an FPU then it would seem to me that there must be room for improvement in the ARM?
Yes, except that it only implements about 1% of the functionality that IE/MSHTML exposes. The IWebBrowser interface is a very high-level control for hosting pages. It doesn't expose the underlying HTML object model
Microsoft has an internal tool that reorganizes the functions in a module (DLL/EXE) that causes functions that are commonly called together to be placed in contiguous memory locations (ie in the same 64K segment) thus drastically cutting down on the number of page faults and allocated physical memory segments required to execute common call chains. This gives them a 10-15% increase in performance above compiler and linker optimizations. These kinds of optimizations are not possible across module boundaries.
Imagine the code inside each of your 'sub-DLLs' that need to call 'strcpy()' (or some other commonly used libs routing). Every time you wanted to call this routine, instead of just using a 'jmp' instruction you have to use a 'call' to another DLL, your performance is going to suffer, badly.
Yeah, good idea, but unfortunately it's lacking a bit on the practical side. Of course, if you don't care about performance go right ahead.NT3.51 was faster than 3.5, 4.0 faster than 3.51. i'm not sure about 2k.
that enough for you?
sure, just like TCP/IP stacks. to help the users and reduce support costs they integrated it.
what are you talking about? the interfaces to the components we're talking about here (mshtml/ie/etc...) are all available on microsoft's website
No, a dictatorship involves a controlling physical force - the army. Microsoft is not holding a gun to your head telling you to buy windows/ie.
"No, I do not want my attitude to be misunderstood. I shall be glad to state it for the record. I am in full agreement with the facts of everything said about me in the newspapers - with the facts, but not with the evaluation. I work for nothing but my own profit - which I make by selling a product they need to men who are willing and able to buy it. I do not produce it for their benefit at the expense of mine, and they do not buy it for my benefit at the expense of theirs; I do not sacrifice my interests to them nor do they sacrifice theirs to me; we deal as equals by mutual consent to mutual advantage - and I am proud of every penny that I have earned in this manner. I am rich and I am proud of every penny I own. I made my money by my own effort, in free exchange and through the voluntary consent of every man I dealt with - voluntary consent of those who employed me when I started, the voluntary consent of those who work for me now, the voluntary consent of those who buy my product. I shall answer all the questions you are afraid to ask me openly. Do I wish to pay my workers more than their services are worth to me? I do not. Do I wish to sell my product for less than my customers are willing to pay me? I do not. Do I wish to sell it at a loss or give it away? I do not. If this is evil, do whatever you please about me, according to whatever standards you hold. These are mine. I am earning my own living, as every honest man must. I refuse to accept as guilt the fact of my own existence and the fact that I must work in order to support it. I refuse to accept as guilt the fact that I am able to do it better than most people - the fact that my work is of greater value than the work of my neighbours and that more men are willing to pay me. I refuse to apologise for my ability - I refuse to apologise for my success - I refuse to apologise for my money. If this is evil, make the most of it. If this is what the public finds harmful to its interests, let the public destroy me. This is my code - and I will accept no other. I could say to you that I have done more good for my fellow men than you can ever hope to accomplish - but I will not say it, because I do not seek the good of others as a sanction for my right to exist, nor do I recognise the good of others as a justification for their seizure of my property or their destruction of my life. I will not say that the good of others was the purpose of my work - my own good was my purpose, and I despise the man who surrenders his. I could say to you that you do not serve the public good - that nobody's good can be achieved at the price of human sacrifices - that when you violate the rights of one man, you have violated the right of all, and a public of rightless creatures is doomed to destruction. I could say to you that you will and can achieve nothing but universal devastation - as any looter must, when he runs out of victims. I could say it, but I won't. It is not your particular policy that I challenge, but your moral premise. If it were true that men could achieve their good by means of turning some men into sacrificial animals, and I were asked to immolate myself for the sake of creatures who wanted to survive at the price of my blood, if I were asked to serve the interests of society apart from, above and against my own - I would refuse. I would reject it as the most contemptible evil, I would fight it with every power I possess, I would fight the whole of mankind, if one minute were all I could last before I were murdered, I would fight in the full confidence of the justice of my battle and of a living being's right to exist. Let there be no misunderstanding about me. If it is now the belief of my fellow men, who call themselves the public, that their good requires victims, then I say: The public good be damned, I will have no part of it!"
This seems to me to be a pretty arbitrary distinction - something that, by definition, the courts should not be ruling on (arbitrary laws are bad, right?)
by your logic, a few years ago a TCP/IP stack, or a JPEG library would have been considered high level. what changed between then and now?
4) VB.Net - replaces 1 & 2, can be used instead of 3.
what are you saying? that microsoft should provide cross platform versions of all it's operating system libraries?
the 'StrCpy' version was define so they didn't have to load the whole 320K msvcrt.dll just to copy a string. on a machine with 4Mb RAM you can't afford to do that, especially when the operating system you're about to ship (win95) has to run faster that OS/2 on that machine.
typedef long LONG;
typedef unsigned long ULONG;
typedef void * PVOID, LPVOID;
(just in case you don't get it, the above is a joke)
the reason that windows includes its own implementations of these routines is for historical reasons. they were originally included in the OS because the C-runtime DLLs were not commonly available on user's machines and were considered much too large/monolithic to be included in most applications. The routines were exported from the shell DLLs so that other components could use them without having to bring in the whole crt dll. this was especially important when trying to get win95 to run as fast as win3.1 on a machine with 4Mb RAM (the target machine for Win95). this practice is called code-sharing, and as alien as this sounds to open-source developers, it is actually quite common in modern software engineering practices.
this is bulshit, if you took the time to look through the headers that microsoft supplies with their freely downloadable platform SDK, then you'll see that these functions are callable using their non-underscored names just like on any other system.
I don't see how bundling IE is limiting a consumer's choice. Sure, it's making the choice much easier to make since it's there already, but it's in no way preventing you from downloading an alternative to the browser, or to the whole OS, as so many people here are so ready to attest.
I think you must be using some definition of the word 'easy' that I was previously unaware of.
not so hollow considering that each new release of the operating system is supposed to run faster than the previous version on the current 'average' system.
big secret: just like the quick-launch bar (I can't believe you disabled that!!!) and the active desktop (that too? man, use your imagination: you can put anything on your desktop) you can disable most of the things in XP that are 'in-your-face'. I'm running XP here and I have it looking pretty much the same as my win2k boxes: i have the quicklaunch bar up with all of my commonly used applications right there so i don't have to hunt through the start menu (one-click) and I have active desktop enabled with a jpg, a custom google html page, an address bar on my desktop. (you can see it here)