Advertisement

Opinions on Mono?

Started by June 21, 2003 03:25 AM
20 comments, last by Oluseyi 21 years, 4 months ago
Keeping with the current trend of posting controversial topics or seeking divisive opinions (largely just kidding), what do you all think about The Mono Project? I like it. Its viability as a general-purpose .NET implementation remains to be proven (a complete WinForms implementation would go a long way to help that), but I''m mightily impressed by how much they''ve done so far. What do you think?
Impressive, sure. I don''t think .Net is going to be relevant a few years from now anyway. It has never been as popular as MS had liked and now they''re even beginning to drop the branding too.

On a ideological level, I''m split. I don''t know whether it''s best for people to try and port MS stuff to Linux, or to try and write something better. The first option makes Linux a more viable platform but doesn''t help it stand out at all. The second option is better in the long term but requires a leap of faith from users.

[ MSVC Fixes | STL Docs | SDL | Game AI | Sockets | C++ Faq Lite | Boost
Asking Questions | Organising code files | My stuff | Tiny XML | STLPort]
Advertisement
I think .Net will be relevant a few year from now. Its a very strong idea. The problem is the marketing deciding to call everything .net, narrowing the definition to only mean the development model is a wise choice.

You can mix and match programming langauges and use them together. I believe Microsoft is working on Functional languages and on doubt various other langauges to add in as well. All tied to a windows framework its great!

The major drawback is cross compatibility and blocking out rivals such as Linux. Therefore I think Mono is pretty wonderful.
In this business you have .NET and J2EE (Sun''s Java plataform).

While i think Mono is interesting, i wonder if it wouldn''t be much more simple to adopt the J2EE solution, since Sun already is so much involved with the Unix systems.

Regardless of which one is best (J2EE or .NET), i believe that (business) people will often go for the solution that they are already used to. That is, if you''ve always used Microsoft''s solution and you''re very happy with it, it''s very likely you''ll go for .NET, even if J2EE is better (i''m not saying it is, it''s just an example).

On the other hand, if you''ve always used the *nix solution, it''s very likely you''ll go for Java, for reasons i already mentioned before.

So, why Mono? Why not J2EE?

Victor.
c[_]~~
I actually agree with Kylotan in regards to the .NET framework becoming irrelevant in the future. My reasoning? Not enough people know what it is. It''s undergone little to no promotional techniques and MS just hasn''t marketed it well. Plus, by tacking ".NET" onto all of their products they''re further adding to the confusion of what it is.

Frankly, I''m reluctant to switch over. I''m fine and comfortable with VC6. But on the topic, I think that it''s a very interesting idea, and it would be great to see it come to fruition. I just don''t think it''d be very practical in a few years.
Although not big in gaming circles, .net does seem to have taken over to a certain extent in application programming circles as a replacement for MFC, especially with regards to internet programming. Mono does look excellent, BTW.
Advertisement
quote: Original post by -vic-
So, why Mono? Why not J2EE?
J2EE is proprietary. .NET is an ECMA standard, and ISO ratification is underway.

I think .NET will be relevant, but not in the way most of us think of. Its major advantages aren''t so much for desktop application development but more for web applications - SOAP, XML, web services, etc. As such paradigms solidify and conventions are developed around them, tools like .NET and J2EE will become more prevalent and the battle for dominance will heat up.
I''ve actually been doing a lot of .NET development lately (getting optimizing the Framework down prior to launching heavily into game development with it), and at least for Windows, I do think that .NET has a lot more to offer than lots of people seem to see.

Mono will bring lots of advantages to Linux. On the development side, sharing a code base between Windows and Linux will be much easier (i.e., less #ifdef''s). Mono applications on Linux will lose the Linux version of DLL Hell (Which version of glibc does he have? What options did he use to compile his kernel?) due to .NET''s versioning support. Do you like that library that Windows programmer is using? As long as it was written to the BCL, just drag it to your Linux box and use it. Porting Windows libraries and applications that aren''t written to the BCL becomes a matter of writing a signature compatible assembly or a P/Invoke-compatible interop assembly rather than trying to reverse-engineer Windows DLL''s. Since the signatures are exposed via .NET''s metadata, divining the interfaces becomes much easier. Once you''re done, add one line to either your app''s .config file or your system''s .config file, and the application works. Sorry if it sounds like a pain in the butt to do that, but Windows developers will be doing the same thing to snag Mono assemblies.

If Mono has one disadvantage, it''s the sheer number of Linux distributions available. Windows applications are hard enough to test with the various versions of Windows and their various service pack levels. With Linux, there are more distributions available than total versions of Windows (including service packs), and I have yet to meet two people who actively use Linux who have their systems configured in an even remotely similar fashion. The general attitude I get from the Linux users I interact with seems to be more "I have a distribution that lets me be an individual" than "I have a distribution that lets me actually run software." I do not pity Mono''s test team.
Michael Russell / QA Manager, Ritual EntertainmentI used to play SimCity on a 1:1 scale.
quote: Original post by RomSteady
I''ve actually been doing a lot of .NET development lately (getting optimizing the Framework down prior to launching heavily into game development with it), and at least for Windows, I do think that .NET has a lot more to offer than lots of people seem to see.

Mono will bring lots of advantages to Linux. On the development side, sharing a code base between Windows and Linux will be much easier (i.e., less #ifdef''s). Mono applications on Linux will lose the Linux version of DLL Hell (Which version of glibc does he have? What options did he use to compile his kernel?) due to .NET''s versioning support. Do you like that library that Windows programmer is using? As long as it was written to the BCL, just drag it to your Linux box and use it. Porting Windows libraries and applications that aren''t written to the BCL becomes a matter of writing a signature compatible assembly or a P/Invoke-compatible interop assembly rather than trying to reverse-engineer Windows DLL''s. Since the signatures are exposed via .NET''s metadata, divining the interfaces becomes much easier. Once you''re done, add one line to either your app''s .config file or your system''s .config file, and the application works. Sorry if it sounds like a pain in the butt to do that, but Windows developers will be doing the same thing to snag Mono assemblies.

If Mono has one disadvantage, it''s the sheer number of Linux distributions available. Windows applications are hard enough to test with the various versions of Windows and their various service pack levels. With Linux, there are more distributions available than total versions of Windows (including service packs), and I have yet to meet two people who actively use Linux who have their systems configured in an even remotely similar fashion. The general attitude I get from the Linux users I interact with seems to be more "I have a distribution that lets me be an individual" than "I have a distribution that lets me actually run software." I do not pity Mono''s test team.


You want to write software that runs in Linux and Windows? Use Java.

Victor.

c[_]~~
quote: Original post by Oluseyi
quote: Original post by -vic-
So, why Mono? Why not J2EE?
J2EE is proprietary. .NET is an ECMA standard, and ISO ratification is underway.

I think .NET will be relevant, but not in the way most of us think of. Its major advantages aren''t so much for desktop application development but more for web applications - SOAP, XML, web services, etc. As such paradigms solidify and conventions are developed around them, tools like .NET and J2EE will become more prevalent and the battle for dominance will heat up.


Java is a standard de facto, instead. Java was on its way to the ECMA, but Sun abandoned the process, for a good reason. The reason is that Sun was afraid that making it ECMA standard would cause some Java programs to not work on different enviroments. Microsoft isn''t very interested in the "write once, run anywhere" the way Sun is. In my opinion, Java already is open enough.

Victor.


c[_]~~

This topic is closed to new replies.

Advertisement