Defection To Mono

Elias mentioned Mono to me the other day. I kind of ignored Mono these last couple of years, waiting to see if Microsoft tried to shaft them in some way.

However, I think Mono has gotten to the point where it might actually be the solution to all my Java problems, and there’s an irony.

My Java problems are thusly:

[] Not officially allowed to ship tweaked VMs embedded into my products. Looking at the Sun license this is actually a bit of a grey area but the fact is it’s not endorsed and my efforts to get permission to do this have been faced variously with silence, ridicule, vague promises to contact someone about it, or hostility. Why do I need to do this anyway? Because Webstart is shit for my customers - period - and I won’t here another word said about the subject by anyone not in my position. Talk to the hand, baby.
[
] Proper generics, delegates, etc. and a host of other C# niceness. C# has some very, very cool language. It’s as if a magic fairy got fed up with all the annoying bits in Java and fixed them. And then released the language to a standards body!
[] Easy compilation down to native code. .net was designed to allow this kind of thing. Sure I’ll lose 10% performance. But as the Java freaks in here are so happy to point out, who cares when I’m not using anywhere near 100% CPU even on weedy machines?
[
] Easy integration with native libraries. Imagine just how easy LWMGL would be to code when 90% of the glue needn’t be written, as Mono can call GL directly for most of its calls.
[] The extreme mismanagement of all things Sun. Endless meetings to discuss minutiea of GL bindings, for chrissakes! A blithering CEO without a clue!! The ever-mysterious GTG who’ve been on the case for well over a year now with nothing to actually show for it!!! Where’s my million bucks guys? Do you want to showcase Java or just let it all happen by accident? See the pioneer over there? He’s the guy with the arrow in his back! It ain’t gonna happen without proper money!
[
] Consoles. I’ll not be getting Java on any console, ever, in a capacity that I can use. Mono on the other hand might as well just be a nice portable DLL. Perfect.

Besides, using monkeys for a mascot how could they go wrong?

Cas :slight_smile:

Just a question, maybe I’m dumb, but what do you call “Mono” ?

Chman

could you make a summary of what your customers don’t like in Webstart please?
I’m curious about that.
I’d also be curious to have an idea of how many license you could sell for one given software or during any given month, provided you want to talk about that.I have the impression you were one of the little guys who was succesful in selling java software, even if course it would never be as succesful as a 100%windows app.

As for Microsoft suing Mono I don’t think so, actually I wouldn’t be surprised if they were secretely encouraging it. To promote .Net and to hurt java (and it works doesn’t it?).

thanks.

[quote] Besides, using monkeys for a mascot how could they go wrong?
[/quote]
Ouch.

All I can say is, look at Microsoft’s track record. Mono isn’t important enough for them to kill it yet. When the time comes that they consider it a threat they will not let it succeed. They will change the Windows code such that nothing written for the .Net CLR will work on Mono, or they will deprecate the entire CLR (more likely - they are a pretty stupid bunch)

You would think that people would remember how Microsoft screws them (and the entire computer industry) over repeatedly, but sadly people always come crawling back to be part of the big monopoly.

[*] Consoles. I’ll not be getting Java on any console, ever, in a capacity that I can use. Mono on the other hand might as well just be a nice portable DLL. Perfect.

It’s even better than that: Since Mono programs are compatible with the MS VM, and assuming they’ll bring it to XBox 2, one’s games might even run as first class citizens on those platforms.

  • elias

Cas, I think you’ll get what you deserve.
And so do we all.

PS: Swpalmer’s summation is smart.
PPS: My main problem with the attractive Mini Mac is that very probably the day I’m going to touch it I’d never again want to use a Wintel PC.

[quote]PPS: My main problem with the attractive Mini Mac is that very probably the day I’m going to touch it I’d never again want to use a Wintel PC.
[/quote]
How is that a problem?
I see it as a solution. :slight_smile:

[quote]It’s even better than that: Since Mono programs are compatible with the MS VM, and assuming they’ll bring it to XBox 2, one’s games might even run as first class citizens on those platforms.
[/quote]
Do you think MS would let Mono run on XBox AND a competing console? They don’t have their monopoly to protect them in the console market.

Mono will give you games that run on Windows… Maybe if you are lucky they will run on Linux, though I somehow doubt it will “just work”.

[quote] Mono will give you games that run on Windows… Maybe if you are lucky they will run on Linux, though I somehow doubt it will “just work”.
[/quote]
I don’t know much about this, but I’d like to ask why you think that?

[quote]Question 20: Has the GNOME Foundation or the GNOME team adopted Mono?

Mono is too new to be adopted by those groups. We hope that the tools that we will provide will be adopted by free software programmers including the GNOME Foundation members and the GNOME project generally.

Question 21: Should GNOME programmers switch over to Mono now?

Yes, we believe that Mono 1.0 is ready to be used as the main development platform for building applications for the GNOME desktop. Mono includes Gtk# a .NET binding for GTK+ and various GNOME libraries which together with C# and the System libraries provide developers with great productivity for building graphical applications especially when compared to GTK+ or Java Swing
[/quote]

[quote]However, I think Mono has gotten to the point where it might actually be the solution to all my Java problems, and there’s an irony.
[/quote]
Whether you’re right or not, it’s interresting to note that mono doesn’t actually solve any of your problems, which afaik boils down to distribution:

And mono solves this how?

Irrelevant IMO. The productivity gains between Java and C# is next to 0. And it is certianly not something that would make me change language because I want to make games!

And this differs from java how?

Who cares? LWJGL is already “done” - point is moot

And Microsoft is going to manage the game tools better than sun for indies? - fat chance. All of their new stuff (XNA) is minded towards AAA titles.

Is Mono available on Mac ?

I did some quick searching and found this: http://thinstall.com/help/index.html?microsoft_netframeworklinki.htm

and…

Looks to me like they’re in the same boat - at least for now.

Just get used to Intellij and you won’t even think about switching to C# ever again :stuck_out_tongue:

[quote]The ever-mysterious GTG who’ve been on the case for well over a year now with nothing to actually show for it!!!
[/quote]
Now thats unfair. They put up a “Comming soon” banner up on the games homepage.

[quote]All I can say is, look at Microsoft’s track record. Mono isn’t important enough for them to kill it yet. When the time comes that they consider it a threat they will not let it succeed.
[/quote]
Ah, but you’re missing the really, really important bit: Microsoft taking action in the future is completely irrelevant to the here and now.

If, right now, you can make more money shipping solutions on Mono than on Java, then it would be stupid to not do it. This is the tech world - there’s no place for stability here! If Mono gets shut down at some point, you can always move on to something else - something will appear to take its place, guaranteed. Once the transmutation of code into cash has taken place, nothing that happens in the future will revert it.

If you’re trying to make money from programming, then you either need to be the pioneer or the sheep. The pioneer fails most of the time, but has a slim chance of making a lot of money, while the sheep follows market trends and enjoys the “fad” payoffs.

Now, the Java developer, um. Hang on… Ah!

You see, the tapeworm finds a good thing and sticks with it. Unfortunately, while the money comes in, it never does so in large quantities, and the malnourishment of the host will eventually spell doom for the happy little tapeworm.

Is that a sufficiently emotive analogy for you? ;D

The parts of Mono that I am interested in are free from Microsoft’s clutches. In fact they are the bits the Microsoft have explicitly endorsed - the runtime implementation is a cleanroom implementation of the CLR, which is actually in the hands of the ECMA now. Furthermore it’s LGPL so no-one’s going to be taking it off us as it is practically impossible to contain.

I can throw out the vast majority of Mono under this license and leave myself with something that looks uncannily like my little micro-game-JVM. All I then need is “LWMGL” and I’m back to where I was before with Java, without fear of anyone dicking me over and certainly with no fear that anyone’s going to pull any stupid stunts on me (like for example suddenly producing a crap generics implementation, or totally ignoring a request for a very important feature like structs for years and years).

I’m not anti-Microsoft by any stretch of the imagination. I love some of M$'s products. But this isn’t Microsoft, it’s LGPL, and it has all of the advantages of Java that I currently enjoy - managed memory, crossplatform, general total ease of programming - but none of the disadvantages.

Go on, bite me. Tell my why I should stick with it.

Cas :slight_smile:

Does Mono have a Mac version though? Any why C#/Mono, rather than Blitz or D?

Yes, there’s an OSX implementation. And the reason “why C# not D” is because of support. There’s a massive infrastructure conveniently built up around .net that’s all compatible. I expect Eclipse will support it soon enough too if it doesn’t already.

And as for why not Blitz, well, it’s because I’m very comfortable with Java-style syntax and paradigms, no need to go totally uprooting everything.

Cas :slight_smile:

Aren’t you a bit afraid of gc ? Mono uses boehm’s gc, which was certainly a state of art implementation of gc for C/C++ 15 years ago… but today, for managed languages, it is a bit rusty IMHO.

I know that I won’t touch conservative gc any more even with a 10-foot pole for any serious work (we hit MAJOR problems with IBM jvm for very serious client and only answer from IBM was to allocate smaller byte arrays - we tried to allocate 16MB array with 200MB of free memory on heap and failed). For smaller projects it might be ok - but anyway, boehm is way very dated technology, created for C, and not managed vm.

With C#, gc performance/reliability might be of less importance because of structs, but have you actually tried to do some memory/garbage intensive test with mono ? It would be very bad to again hit 100ms gc breaks, when java finally have got over with it…

The Boehm collector concerns me greatly but the great thing is they’re working to replace it with a precise GC. As I hardly hit the GC at all in games development it’s not a huge worry.

Cas :slight_smile:

[quote] Go on, bite me. Tell my why I should stick with it.
[/quote]
I’m just curious, why mono and not c++/ogl? You want small executables, easy distribution, and crossplatform. That sounds like gnu tools and sdl to me. There are alot of c++ garbage collectors around too. ???