[Mono-list] FW: evangelizing mono

Richard Norman Jazzynupe@sbcglobal.net
Sun, 15 Feb 2004 12:47:57 -0800

I am a listener too. Here I what I think about the situation (I am primarily
a Windows Developer - Hey they give me great tools that are easy to use).
With C#, you can get that "Cross-platform" capability with not too much
effort on the part of the developers. With C++ you have a lot more work in
front of you. Also the memory management and garbage collection and so on of
the CLI is great help compared to C++.

Now if you look at Java (C# is a close cousin), you see that (in my opinion)
C# made some optimizations up front that makes it have the slight edge (and
the reason why Java is in the process of duplicating some of the features
i.e. J2SE 1.5).

Several people have already given solutions of how to handle the "Mono
file.exe" issue. And in terms of mono being Un-Unix like, direct them to the
various other implementations of the CLI and they will see that it is more
than just a Windows technology (like Rotor, dotGNU, and I believe that Intel
has an implementation of JVM and CLI). It is just that I believe that Mono
has the most "complete" implementation of the libraries and classes that
give you additional functionality outside of the base requirements without
going to Microsoft's implementation.

So what I am getting at is that while you can look at a lot of various
technologies, I believe that CLI is one that is growing and progressing in
the right directions and with enough flexibility (so much so that if you
wrote code in C# today, you will be prepared for Longhorn tomorrow)

Anyway, that's my comments on your issues, C++ is great if you need the bare
metal performance and every ounce of processor power needs to be controlled,
however this falls into a very niche segment now. Things like drivers,
Kernel modules, High end games, RTP engines, etc. So I would advocate for at
least Java, but definitely push C# cause it gives you that bare metal
capability while having the protection of the Garbage Collector.

Richard Norman
Web/Application Developer

-----Original Message-----
Message: 6
From: "Jeffrey McManus" <jeffreyp@well.com>
To: <mono-list@lists.ximian.com>
Date: Sat, 14 Feb 2004 11:57:48 -0800
Subject: [Mono-list] evangelizing mono

Hey team,

Long-time listener, first-time caller. I wanted to get your advice on
something...I'm helping a high-energy team of Linux ninjas who are
interested in creating an OSS app that makes it easier to sell stuff on
eBay. (Giving developers this kind of help is actually part of my job at
eBay.) These guys just got into the planning stages of their project and are
trying to settle on a choice of language/framework/etc. They want to use a
client/server architecture which actually makes a lot of sense for a variety
of reasons mostly having to do with caching and handling eBay data from
eBay's API in an intelligent way.

It's my intuitive sense that C#/Mono may be a good choice for this kind of
project. Maintainability and developer productivity is a big deal with
custom eBay clients that use the API because eBay changes so frequently, and
I've had to agonize with developers that have made sub-optimal language and
architecture choices in the past and paid for it dearly as their
applications implode repeatedly.

However, they're gravitating to C++, at least for their server piece, which
may be a good choice for the lead developer(s) who I think already knows
C++, but may be a sub-optimal choice for the project in general. I fear  
they may be in "when you have a hammer, every problem looks like a nail"

One tactical thing they seem to be getting hung up on is the fact that you
need to run Mono apps with a command line (and, secondarily, an executable
that ends in *.exe reeks of evil Windows; I explained to them that this is
what chmod +x is for, but anyway).

My questions are:

 - Do you have good evangelism tactics for Linux developers who evaluate
Mono and find it somehow "un-Unix-like"?
 - Is there a technical answer to the "mono my.exe" command-line objection?
 - Is there an elegant solution for distributing the Mono framework onto
client machines today?
 - Are there examples of functioning high-performance client/server apps
running on Mono today?

I suspect that this kind of discussion will be useful in a general-purpose
sense as you take the message of Mono out to the rest of the universe, but
feel free to respond to me privately if you like.

If you're interested, the original discussion is over on the Gentoo forums