Re: What will many cores mean to future Windows releases?



m. Th. wrote:
Paul Nichols [TeamB] wrote:
Esteban Pacheco wrote:
This is a good article about what is going on with Microsoft around the new trend on Multi Core devlopment.

http://blogs.zdnet.com/microsoft/?p=485

You got to love AMD Opterons :)

Yeah make an operating system, like Vista, that requires all of them :)

Now why do I need a 2 gz. processor and a gig of ram just to run the OS again?


Agreed.

We used to call this "sloppy or bad programming/skills". Now its call "innovation"!


Well, perhaps is better to enhance the language in order to improve the developer's thinking and ways of expression, not to build complicated abstraction isolation layers/VM hoping that they'll catch the programmer's faults. IMHO, is much easier to prevent than to cure.

In our case, can a managed code layer / VM help me not to write things like:

procedure Foo;
var
i: integer;
lTemp: TStringList;

begin
lTemp.Add('a');
lTemp.Add('b');
lTemp.Add('c');
for i:=0 to lTemp.Count do
writeln(lTemp[i]);
end;

And can a VM catch the (at least) three mistakes which are hidden in the above code?

IMHO, is much better to have language/compiler enhancements in order to have a much safer code:

The only time a VM is necessary, is when you are writing to different OS and hardware, IMHO. I certainly do not see why a VM is necessary for a single hardware platform and OS. To me, this makes no sense whatsoever.

I am a huge Java fan, but not because it is a VM. I am a huge fan, because it allows me to create XPlatform apps, which our job requires.

I do not care if I am deploying to Windows, Linux, Mac, Solaris, AIX, OS400, OS390. I just write once, compile once, and deploy where ever. This is an example of when a VM is a huge benefit and indeed is essential.

Where a VM is NOT essential, is when I am writing to a single OS for a specialized task or application. If I am writing a Windows only program for a Windows only platform for an X86 only processor core, why in the world would I want to use a VM? What are the benefits?

As you stated, the only possible reason is to catch programmatic errors. So the trade off is I am going to eat RAM and CPU cycles because I do not know how to program very well or I am very lazy. You are also correct in assuming, it would not catch the index out of bounds problems and cast type exceptions, until runtime, as per your example.

That is one reason, I have never understood the need for DOT.NET. Although the idea of NET is that it could be XPlatform, MS controls the specifications of each release, meaning that primarily NET is a MS only specification. So why are we running a VM for a mono operating system and hardware platform? This is supposed to be an advancement for the programming world, to write more inefficient programs?

The good side of NET is that I could theoretically, write Windows based applications that can run on MS Windows based desktops and Windows CE based devices. Here, the relevance is the same as Java, concerning the hardware part of the equation. That is where I could see the need for NET, but not for Windows based GUI apps. I can even see some need for VMed applications for server side based Web programming, where it could save taking down the entire systems for inadvertent memory leaks or buffer overruns.

However, I guess many do not remember the days when CPU cycles and memory constraints were real concerns for programming. During those days, writing inefficient code was costly in more ways than one. No, I am not clamoring for these "good ole days" but the principles imposed were good. Can we imagine what we could do with the hardware we now have, if we were following the days when coding was tight and memory and CPU cycles were precious? We would have small modular programs that took up very little memory that would literally take milliseconds to perform their tasks. We could be running so many processes in parallel, that it boggles the mind. PDAs could suddenly be running older mainframe type programs. Well, enough of the "pie in the sky musings", time to go back to the reality of bloatware! :)

In closing, I guess if we programmers, architects, and system engineers truly ran IT, perhaps we could have real open standards that might make it possible to have real compilers that would work on multi-platforms without having to maintain a plethora of proprietary APIs, which would make it possible to maintain a single code base that we could natively compile anywhere on any OS and any hardware platform, that would negate the need of a VM. Hmmm, sounds like I an advocating Open Source and open standards. Naw, surely I jest!! :)

.



Relevant Pages

  • Re: About loading an image
    ... Yours is a bit more complex than just a programming issue. ... For windows you have one of the options like ... and memory allocation. ... appropriate format and then view them using some independent software ...
    (microsoft.public.vc.language)
  • Re: Displaying pixels (OS framework)
    ... about early Windows programming methodologies: ... idea of windows systems, and built a graphics-based ... memory will be plenty and not to worry about. ... sub-monitor inside a larger screen/monitor. ...
    (microsoft.public.windowsxp.general)
  • Turning Windows into a personal developer OS environment
    ... This thesis is on a new simplified concept on Windows ... OS Display Management, based on my 1980's generic ideas ... about early Windows programming methodologies: ... memory will be plenty and not to worry about. ...
    (microsoft.public.vstudio.development)
  • Displaying pixels (OS framework)
    ... This thesis is on a new simplified concept on Windows ... OS Display Management, based on my 1980's generic ideas ... about early Windows programming methodologies: ... memory will be plenty and not to worry about. ...
    (microsoft.public.windowsxp.general)
  • Re: [SLE] Developing a Real Time Data System
    ... The KBasic License is valid for both operating systems: Windows and Linux. ... Modern BASIC language ... chapters learning about the programming language. ...
    (SuSE)