[Mono-list] What does this do for me??

Jonathan Pryor jonpryor@vt.edu
10 Dec 2002 21:14:23 -0500

On Tue, 2002-12-10 at 14:40, David Thompson wrote:
> Hey List members!!
> OK...just one question....I know, I know....I'm a newbie idiot who
> obviously needs to take a running leap off of Microsoft's tallest
> tower....BUT
> PLEASE....
> If someone could provide a laymen's terms explanation of what Mono
> does for me? (sorry...for the bluntness)

Simple layman's terms: It does stuff.
Less simple: it's a software thing.

Strictly speaking, the "layman" shouldn't care about .NET.  At least,
the aspects that Mono appears to implement.  .NET is a development
platform.  It's also Microsoft's latest marketing drive, but their
marketing isn't targeted at the layman either, it's targeted at
developers and managers.

As far as most of the world is concerned, .NET is something to ignore,
just like programming language, operating systems, and the internals of
the game machine of the week.  Most people don't care about the
internals of an X-Box vs. a PlayStation 2; they care about the games

Then again, "most people" are in the third world and don't own


However, given your questions below, it sounds like you don't want a
layman's view of .NET, you want a developers view of it.

In short, .NET is a way to develop software.  That's it.  It has its
benefits -- garbage collection, easier cross-language use of classes, a
simple way to call existing libraries, easier "legacy" code re-use -- 
but it all boils down to a simpler way to develop software.

Though probably not as simple as Perl or Python...  ;-)

It's debatable.  But that's the general idea: make development easier.

> e.g.  This will allow you to write programs that will work on both
> Windows and Linux

Maybe.  It is possible to write programs that will work cross-platform
without changes.  It is also possible to write platform-specific

Programs using Windows.Forms *right now* are platform-specific.  That
will change as Mono's Windows.Forms implementation is fleshed out.

Programs using some 3rd party custom control which uses large portions
of non-.NET code may never work cross-platform.  Consider VB apps using
Crystal Reports.  Crystal Reports (AFAIK) doesn't run on Linux, so even
if you were using VB.NET, you couldn't run your app on Linux.
> or
> e.g.  This will allow you to run programs written in C# (originally
> only for Windows) on Linux

Maybe.  This has the same constraints as the previous question.  Mono
and .NET use the same binary format, so the binary format isn't the
limiting factor -- you can run Mono-generated programs on .NET and run
.NET-generated programs on Mono.  The limiting factor is the program's
dependencies: if you depend on something within .NET and Mono has also
implemented it (e.g. System.Console, System.Xml), it will execute

If you depend on something that hasn't been implemented under Mono or
doesn't exist in .NET, such as COM+ or System.EnterpriseServices, it
won't run under Mono.  It may never run under Mono.

In some sense, it reminds me of POSIX.  You can write to POSIX and be
portable, and you can use Vendor's extensions, but if you use the
extensions you may no longer be portable.  Such is the cost of choice.

I hope this starts to answer your questions...

 - Jon
> Something along those lines...
> Anyone??  Thank you for your patience and assistance.
> David Thompson
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.427 / Virus Database: 240 - Release Date: 12/6/2002