[Mono-list] Moving from Mono/C# from C/Linux world

Michael Schurter michael at synthesyssolutions.com
Tue Mar 7 12:07:26 EST 2006


Honey, Steve wrote:
> I’ve been evaluating Mono/C# for a few weeks now and am generally 
> impressed by what I see.
> 
> 
> 
> My group works currently in the C/Linux world where we develop near 
> real-time scientific application software.
> 
> I’m looking at C#/Mono because:
> 
> a) Another group at our company uses C# / Windows and they rave about
>  it.
> 
> b) I’d like to bring get my group using something more modern then C.
> 
> c) It would be nice if the two groups use the same development 
> language to encourage code reuse.
> 
> I have two questions.
> 
> The first is what are there any things I need to worry about that 
> would be difficult to do in the Mono/C# world that are fairly easy 
> and standard in the C world?  Note we have a distributed environment
>  where most of the programs are fairly small.  The programs typically
>  perform a specific function (e.g. ingest the data, or run an 
> algorithm on it) and then pass it on to the next program.  Data is 
> passed in a number of ways, but mainly through file sharing and 
> pipes.  We often use shell scripts to control the flow of data and 
> the programs to do the actual work.  In addition, we have fair number
>  of existing C functions that I wish not to duplicate (at least not 
> initially) but I believe I can incorporate them using SWIG.

.Net and therefore Mono is a complete platform/framework whereas
it sounds like you use the more traditional C/Unix environment of C as 
the language, and Unix as the platform.  There's no reason you can't use 
the same development methodology with Mono (small apps, shell ties them 
together), but I think you'll be disappointed with the performance.

IMHO Mono will work much better if you work toward adopting it not just 
as a language, but as a framework.  Use remoting instead of sockets and 
pipes.  Write larger applications, so you don't have to tie them 
together with shell scripts.  And definitely encourage good OO 
programming techniques so that your entire organization can reuse code 
and build a common internal framework.

This is just my $0.02.  I'm not saying Mono won't work as a drop-in 
replacement for small C apps.  I'm just saying thats not where its 
strengths lie.

> Secondly, I’m slightly concerned that at some point down the road 
> (say 3 – 5 years) Mono, for whatever reason, will no longer be 
> supported.  From what I’ve seen so far, Mono is a solid project with
>  a strong following of core programmers supporting it and I see no 
> reason why it might fade away.  But I don’t have a good feel for how
>  many people are using it and if that number is growing from year to
>  year or if it has started to stagnate, i.e. has Mono hit critical 
> mass?

This seems to be a pretty common fear, but I think you can be at ease
about the longevity of Mono.  First of all subscribing to the mono-devel
list will give you a good idea of how quickly mono is progressing.  Also
Mono has a major corporate backer, Novell.  While Novell has seen better
days, they're not going away anytime soon, and they've completely
committed to Linux and Mono as their platform.

For the most part, the free and open source software world has accepted
Mono after some trepidation.  Popular databases distribute Mono specific
interfaces, and many popular Java projects have been ported (such as
(N)Hibernate or iText#).  RedHat's Fedora distribution even includes
Mono now, even though RedHat remains very committed to Java in the
enterprise (vs. Mono/.Net).

Also, the ECMA specifications themselves seem to be constantly
improving. There were lots of exciting language and framework improves 
in .Net 2.0, and lots of interesting work being done for 3.0.

The main area I see Mono acceptance as being slow is ISVs, and thats
because they're probably using Microsoft .Net, C++, or Java as their
development environment.  I think as Linux continues to gain market
share and the support of ISVs, you'll see more ISVs choosing .Net & Mono
as their cross platform development framework.  However, thats largely
speculation, and there's a pretty good argument for Java
staying/becoming dominant in the cross platform space.

-- 
Michael Schurter
Synthesys Computer Solutions
http://www.synthesyssolutions.com/
michaelss at users.sourceforge.net



More information about the Mono-list mailing list