[linux-elitists] Do programmers prefer Microsoft .Net ?

Matt Reynolds entropy@loopysoft.com
Sat Dec 3 18:01:17 PST 2005

On Sun, 2005-11-27 at 22:05 -0800, Larry M. Augustin wrote:
> Has anyone else observed this?  Anyone care to comment on the ease of
> development using Microsoft .Net?  How about Mono on Linux verses J2EE
> on Linux?

I have seen this as well.  It's for all of the "Right Reasons" for
start-ups to get off the ground, but they're ignoring the lack of
flexibility available to them later (which open source languages/tools
can help with).  Mono helps to ease the pain, but it's not a final
solution as MS's tools and infrastructure for developing software are
non-free and non-portable.

Java is significantly harder to develop with for various reasons (lack
of adoption by open source operating systems/distros, stupid decisions
by Sun, lack of cross-language-pollination in the development
community).  It's even harder to develop with on Windows (I've yet to
create or run across a factual argument for why Java apps, say Eclipse,
suck on Windows but run very well on my Ubuntu laptop).  My start-up
would have abandoned Java long ago (for PHP, Perl, Ruby), except that I
managed to build enough infrastructure up to make it viable for the rest
of my development team (PHP, Perl, and Ruby guys).  Java is hard to get
into, but provides alot once you're there.

C# doesn't have these issues and is easy to get into, but lacks the
polish that Java has.  However, it seems like a matter of time till
C#/.NET gets that polish given their community (that may take a while,
though, if developers scratch their itches on Windows with MS tools).

A question I would ask of these start-ups is where/how they develop
their software?  And what software are they writing?  My company is
pretty much a Windows shop for development and a Linux shop for
deployment.  This would fit the model you've expressed, and would also
explain how C# would be easier and provide a superior development stack.
Also, web work on linux with C# seems to be great, while the "back end"
systems are only to be found on MS.

I don't use Windows, so my C# exploration wasn't easy.  I've found that
it is exceedingly difficult to develop good .NET apps that compete with
well-written Java apps (Specifically not J2EE, those might as well be in
their own special language).  Java's available open-source
infrastructure (Java's open source community is surprisingly good),
mind-share (same here), and development tools (Eclipse) make Java a
rather good fit with open source (minus the whole, you know, non-free
thing, doh.  Stupid Sun).

So, while I agree with the basic premise, I would be interested in
hearing how people manage to pull off the balance.  While C#/Mono is a
wonderful development environment, it's not at the point where it can
replace the stack Java (off of Windows) (there are a significant number
of ports of core Java code to .NET).

This is true for other languages I've run across, and I'm not sure how
people solve these same problems with, say, PHP/Ruby/Perl.  

The software that sets Java apart from the rest I've seen are :
* Eclipse (Dev tools)
* Hibernate (ORM/Persistence for non-trivial solutions)
* Mule (If you can use C libs, you probably don't need this)
* Spring (Good web framework and glue code)
* Pretty much anything from Apache (which is quite a bit of software)
* JBoss (To appease the banks)

I haven't found another language that has all of these on free OSes.  C#
has them, but only on the MS platform.  PHP/Ruby/Python have some
(Twisted rocks), but I need all of them (Except JBoss).  If anyone knows
of replacements, I'd love to hear them even if I have to bribe you with
free beer.

My hunch (from going to the HappyDevFunHouse and from "reading the
Internet) is that start-ups aren't trying to build robust, long-lasting
infrastructure immediately.  Many are focused on getting something out
there and making it stable/useable/whatever later.

As a side note, I'd switch to writing code for Mono/C# if I could find
replacements for the above software.  Till then, I'm working on making
IKVM work (better).

Oh, J2EE.  I guess I stopped worrying about J2EE years ago, given that
it was seemingly created by businesses wanting to sell software, rather
than solve problems.  The open source tools are far better than the
offerings from vendors in most cases.  Hibernate > EJB, etc.

Developing J2EE applications (Excepting JBoss) carries the same risks as
developing on MS solutions, minus the platform independence (ha ha).
C#/Mono have found a middle ground, but it'll take a while for it to
really bloom.
Matt Reynolds <mreynolds@loopysoft.com>

More information about the linux-elitists mailing list