On last.fm: Taylor Swift photos and free music!
BNET Business Network:
BNET
TechRepublic
ZDNet
TalkBack 4 of 12:
Next »
« Previous
MS frameworks and other night time stories
``First of all, you seem to think that the concept of the virtual machine came along with Java. Not quite. VM's have been around a while, and actually Java borrowed a lot from Smalltalk which predates Java by about 15 years. So, yes Microsoft borrowed from Java, which borrowed from Smalltalk. The VM is a very fundamental concept in computing, so to see Microsoft implement the idea isn't stealing in any way.''

The idea of VMs is very old in computer science with respect to compilation into and subsequent interpretaition of an intermediate language. A prime example of this is the p-code that was a target VM for the Pascal language.

The smart idea of SUN was to design and implement the VM in the context of distributed processing. Noone I know of had this idea before SUN did.

The abstraction of a VM in distributed processing is very robust one: a VM is implemented usually in s/w ON TOP of a platform (= OS + h/w) and the the VM happily runs the platform independent intermediate language. Therefore, correct and compliand VMs could run the SAME code and support IDENTICAL SEMANTICS (i.e., behavior) on all platforms for which a VM exists.

The HLL chosen by SUN was a C++ like pointerless language. At the time C/C++ was the dominant language for SERIOUS programming and they were the ONLY ones (besides Fortan90/95) with stable and standard specification (although C++ was officially standardized a few years later but it had a stable specification since the middle-90s).

ALthough one may argue that any other HLL language should be included in the mix, this is trivially possible. You can have Lisp, or ADA to compiler into byte code and then let the VM do the work in the background.

The BASIC tenent of the Java VM is to compile into bytecode ONCE and run ANYWHERE: platform indepence. This is the MOST CRICITAL feature in developing distributed applications were the cooperating processes can run an ANY POSSIBLE platform. The application PORTABILITY is a very significant aspect in professional development. Without platform independence, developers need to rewrite their apps for EACH target platform (new GUIs, new threading semantics, new APIs for file systems, etc.)

MS copied the VM idea and generated its own VMs for the MS windows ONLY. So there is NO RUN ANYWHERE. One may have to license MS VMs for the various platforms and I am not sure that there are MS VMs that run on other platforms besides ms windows.

On the contrary, one can find Java VMs running on ANYTHING (PDA, wristwatch, supercomputer, mainframe, PC, etc.)

Then again WHAT is the NEED of a VM if there is only ONE target platform? Just use native machine code !

The .net 'framework' is simply Jave that is NOT and can be used only on MS windows. Ofcourse this is biting MS in the rear since developers do not want to write the same application anew each time they have to PORT it to a new platform.

MS's intention was to leverage the ms desktop ubiquity and force the developers to use VB and .net to develop simple GUI apps. How they did this? Initially, they adulterated their JVM not to be Java compliant: so developers should have TWO Java code trees. Then after the court prohibited them from an MS Java, they embarked into the .net which is just a VM for the MS intermediate code.

They have provided nice VB/VC tools to create quicklyGUI apps. Great. However, they didn't figure out how to make this framework as SECURE as it should be. It's a different story to create web pages with receipes, from implementing SECURE transactions on private data, for instance.

Java on the other hand, has very clear security definitions and mechanisms. That is why IBM and other heavy weights are using Java. They understand the advantages of the design and implementation.

If MS writes VMs for their .net and distribute them for FREE then people can compare Java and .net head to head.

They way that things stand right now, Java is a universal framework that is platform independent and .net is just a PC toy. BTW why has MS stopped talking the .net talk and why have they started saying that 'distributed objects is the wrong framework for distr. applications, etc' ?

Make sure that your .net investment wont go down the tubes next time MS decides it now likes a different framework. This is not unthinkable with MS. So be careful....

-m
Posted by: michael-t   Posted on: 03/01/04 You are currently: a Guest | Members login | Terms of Use

Alert moderator to an offensive message

Subscribe to this discussion via Email or RSS

Framework: not a virtual machine  solprovider | 02/29/04
Got it a little wrong.  Heatlesssun | 02/29/04
You missed my point  solprovider | 03/01/04
MS frameworks and other night time stories  michael-t | 03/01/04
.NET Framework defined  KeithRisler | 03/01/04
When criminals manufacture locks for the whole World legally ? ...  Vily Clay | 02/29/04
development tools  V Sanders | 02/29/04
The old "shift the blame" FUD  Xunil_Sierutuf | 03/01/04
Security for XP alone is meaningless  KeithRisler | 03/01/04
Great, if it works  issthatso | 03/01/04
Things that make you go "Hmmm..."  Netizen Kane | 03/01/04
Untrustworthy in any sense  michael-t | 03/01/04

What do you think?

SponsoredWhite Papers, Webcasts, and Downloads

advertisement
advertisement

Enterprise Applications

  • Check out some of the easiest and most powerful ways to boost productivity while saving money on your application infrastructure. See ZDNet's comprehensive Enterprise Application resource center, now!
  • New Online Dashboard
  • Read about top issues IT decision-makers face every day, plus get cost effective solutions to real life IT problems. Oracle Topline