is dotnet a - Virtual Machine - like Java ?

T

tmb

1 - Is Microsoft dotnet a Virtual Machine... like the Java Virtual
Machine... that will run on any operating system?

2 - If so, does Microsoft give away the dotnet development system like Sun
does the Java Developmet system?

I was considering learning Java for my next project and someone suggested
dotnet instead.

3 - Can someone give me the pro's & con's of each?

thanks - tmb
 
E

Emad Barsoum

1 - Is Microsoft dotnet a Virtual Machine... like the Java Virtual
Machine... that will run on any operating system?

Yes it is virtual machine like java that can run in any operating system,
but Microsoft implmeneted it only on Windows and Pocket PC that you can used
for comercial application, and they release also the source code (name Rotor
Project with limited functionality) for Windows, Unix, Linux and MacOsX but
only for research purpose.

There are two open source projects that trying to implement .Net platform
for Linux and other system like mono (http://www.go-mono.com/) and dotGNU
(http://www.gnu.org/projects/dotgnu/).
2 - If so, does Microsoft give away the dotnet development system like Sun
does the Java Developmet system?

Yeah the .Net SDK with the compiler is free to download from Microsoft site
and you can use them freely to develop your application, and there is an
open source free ide for CSharp called sharpdevelop
(http://www.icsharpcode.net/) that you can use with the SDK.
I was considering learning Java for my next project and someone suggested
dotnet instead.

That depend on your project but both are great platform that you can used in
most projects.
3 - Can someone give me the pro's & con's of each?

This some of the pro and con in my opinion,

pro for java: that is multiplatform and supported by a lot of vendors.

con for java: that it is still slow for UI and its UI doesn't look or feel
exactly like native interface of the operating system, it is difficult in
java to call native API (Compared to .Net), and you can't use pointer or
control your object to be treated by reference or value and it is only
single language.

pro for .Net: support multilanguage, you can use pointer by mark it as
unsafe to speed some memory access (not available in all .Net language, it
is available for C# and C++), you can pass any object by reference or value,
very easy to call any DLL or COM component in windows from .Net application,
the UI is using windows API so it look the same as the native windows API,
there is a utlity called ntgen that you can use it to compile your
application to native during the installation which will avoid the startup
delay and make your application run nearly as native application, if you
already have any C++ application you can compile it in mixed mode then you
can use it in .Net easily.

con for .Net: Only windows platform, mono and dotgnu you can use them but
they don't fully support winform (the UI for .Net under windows)

There is much more pro and con for both,
Regards,
Emad
 
S

Scott M.

tmb said:
1 - Is Microsoft dotnet a Virtual Machine... like the Java Virtual
Machine... that will run on any operating system?

No. MS's .NET natively runs on only Windows platforms, although there have
been 3rd party versions of the .NET Framework that run on other OS's.
2 - If so, does Microsoft give away the dotnet development system like Sun
does the Java Developmet system?

Yes, the .NET Framework is free.
I was considering learning Java for my next project and someone suggested
dotnet instead.

With Java, you have no choice of a development language, it must be Java.
With .NET, you have a multitude of languages to choose from and they all
have access to the .NET Framework and the classes and fundamental processes
of its Common Language Runtime (CLR).
 
J

Jon Skeet [C# MVP]

Scott M. said:
With Java, you have no choice of a development language, it must be Java.
With .NET, you have a multitude of languages to choose from and they all
have access to the .NET Framework and the classes and fundamental processes
of its Common Language Runtime (CLR).

Actually, there are loads of languages which have been targetted for
the JVM. http://www.sys-con.com/story/?storyid=36574&DE=1 lists just a
few of them.

They're not generally as well integrated as with the CLR though - the
JVM was definitely designed for Java rather than for multiple
languages.
 
A

Andy Fish

3 - Can someone give me the pro's & con's of each?

Just to add to the previous responses, here's my opinion.

..Net will never become mainstream on any platforms other than windows. Java
is already mainstream on many platforms

Java will never create as good windows GUI apps as .Net does

..Net will take off but I think MS must be disappointed at how slow the
uptake has been

c# is slightly better than java in terms of language features but they are
so similar you could learn either one and switch to the other.

java has been around longer and has masses of free libraries - currently
more than .net though this might change

As for the thing about the ability of the platforms to support different
languages, I don't really see that it's a big deal. all the "different" .net
languages are just different syntax for expressing the same thing. maybe we
will someday get different programming paradigms for these VMs in which case
there will be a real choice of language to suit the application, but at the
moment choosing the .net language is just like choosing the color of your
car.

As for which to learn, if your customers/employers are microsoft shops they
will soon have to move to .net; if you want to write platform-independent
server code you should definitely go with java.

Andy
 
T

tmb

I want to thank everybody for their contribution to this thread. Very
helpful.

Multi-platform is a big issue for our next project so my guess is we will
choose Java.

Regarding being able to program multiple languages... that is not a biggie
for us... Java seems simple and straight forward... even though I can see
where not having to learn a new language would be considered good by many.

It's hard to stop MS once they start rolling on something... so my guess is
in a few years... when dot net is truly multi-platform... if ever... we
could look at this differently.

thanks again all.

tmb
 
E

Elp

tmb said:
Multi-platform is a big issue for our next project so my guess is we will
choose Java.

Yep, if multi-plateform is in the deal, forget about .NET, at least for now,
and look for something else such as Java.
It's hard to stop MS once they start rolling on something... so my guess is
in a few years... when dot net is truly multi-platform... if ever... we
could look at this differently.

I think that you're absolutely right here. Too bad that Microsoft didn't
release (and will probably never release) the .NET Framework for any other
plateform than Windows. It's even more a shame when you can see that they
actually began to port the .NET Framework to other plateform (see their
Rotor project) but, for some reason, stopped everything and focused only on
the Windows version.
 
S

Scott M.

.Net will never become mainstream on any platforms other than windows.
Java
is already mainstream on many platforms

Never say never.
.Net will take off but I think MS must be disappointed at how slow the
uptake has been

"Will take off"....I'd say has taken off. I know of many large corporations
that were using .NET for production applications on Beta 2 of .NET.
 
B

Benjamin Disraeli

Scott said:
Never say never.

mono is the fastest growing dev platform on Linux.

it's c# compiler rivals and exceeds that of Microsoft.
"Will take off"....I'd say has taken off. I know of many large
corporations that were using .NET for production applications on Beta 2 of
.NET.

Java has been effectively neutralized. Because of its proprietary nature,
it can never cover as many platforms as c#/.NET/mono

Mono/c# and gtk# are languages of choice right now for Linux developers.
 
N

Niki Estner

Andy Fish said:
...
As for the thing about the ability of the platforms to support different
languages, I don't really see that it's a big deal. all the "different" ..net
languages are just different syntax for expressing the same thing. maybe we
will someday get different programming paradigms for these VMs in which case
there will be a real choice of language to suit the application, but at the
moment choosing the .net language is just like choosing the color of your
car.

Ever heard of Perl, Hugs.net, Fortran.net, Eiffel or maybe managed C++?
Of course all these languages are "eqivalent" in the sense that they are all
turing-complete, but it's certainly more than "choosing the color of your
car" - more like choosing between a car, a ship or a bicycle...

Have a look at:
http://www.activestate.com/Products/PerlASPX
http://www.eiffel.com/
http://www.lahey.com/
http://galois.com/~sof/hugs98.net/
http://www.cl.cam.ac.uk/Research/TSG/SMLNET/
(found using google in 5 minutes...)

The last two are probably not intended for real-world use as they are
research projects, but that's probably true for most functional languages.

Niki
 
D

Daniel O'Connell [C# MVP]

Benjamin Disraeli said:
mono is the fastest growing dev platform on Linux.

it's c# compiler rivals and exceeds that of Microsoft.

HA! have you ever used it? its error messages are crap and it emits bad code
and executables sometimes. Its only perhaps decent, certainly not terrific.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top