Boston Linux & Unix (BLU) Home | Calendar | Mail Lists | List Archives | Desktop SIG | Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings
Linux Cafe | Meeting Notes | Blog | Linux Links | Bling | About BLU

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Mono, gcj, java, c++, what?



On 8/28/2010 6:53 AM, Mark Woodward wrote:
> OK, how about a little thought experiment, say you want to write a 
> server based back-end system these days. The conventional wisdom was 
> that you would use java/J2EE ala tomcat or jboss. With Oracle making 
> legal actions against google for dalvik, there is speculation that java 
> may not be free for very much longer, or at least the "free" version may 
> become stagnant.
> 
> Without debating the point, suppose it is true and the Java runtime 
> becomes effectively non-free. Sure the GPL version will exist, but would 
> a community build around it or would it disband like the open solaris 
> group did?

Hard to say, but I'm not sure it's a good comparison, just because the
size of the community we're talking about is orders of magnitude
different (and even so, it's not clear that the very much smaller open
solaris community is dead, they've just forked off the version that was
partially supported by Sun).  Then there's all the other big-name
companies that have investments in Java.  If there's a critical mass of
community and commercial support that a project needs to thrive, I think
you'd be hard pressed to find a better candidate than Java.

> What about gcj? Anyone really use it? Is it any good? I've tended not to 
> use it, opting for the standard sun or open jdk.

I used it on some embedded projects a few years ago (our target was an
ARM processor and there wasn't a good JVM implementation for that arch
at the time; gcc supported it, which is all you need to support java via
gcj).  Being able to compile java down to native executables has lost
some of its luster since most JVM implementation's base performance has
gotten so much better.  But if you have a target arch that isn't well
supported by mainstream JVMs, but is supported by gcc, that's the sweet
spot for gcj.

> How about Mono? To be honest, I like the c# language better than Java, 
> (almost identical, but some nice additions) but because of its Microsoft 
> underpinnings, I have been reluctant to use it.

If you're scared of what will happen to Java, you should be terrified of
Mono.  Sun and Microsoft both made royalty-free patent licenses for
fully conforming implementations of their respective language standards
(the current kerfuffle with Google is over the micro-edition of Java,
which does not fall under the 'fully-conforming' umbrella).

There are several fully-conforming JVM implementations from a variety of
vendors.  Redhat (Jboss), IBM (Websphere), and lots of others have a big
investment in their java middleware, and I don't see them retiring that
anytime soon, regardless of Oracle's desires.

There are a few problems with CLI.  First, how to tell that Mono is a
fully conforming implementation.  Sun provided a 'compatibility test
suite'.  If your JVM passed the tests, your implementation was
conforming.  The bigger problem is to do anything useful, you need to go
outside the CLI standard, and use libraries not covered by the
patent-pledge:
  http://www.fsf.org/news/2009-07-mscp-mono

> Stick with Java?
> 
> Write in C++ using a web service library?
> 
> The most probable answer is stick with Java as Mono is still Microsoft, 
> C++ is still a rare in that space, and gcj (to me at least) not well 
> accepted. Thoughts?

You'd be pretty safe with that approach, IMHO.  Or you could just do it
all in perl!

HTH,
Matt






BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org