.Net and Mono

Why I don't stick with C#/.Net/MONO? 2006-July Talks

I only have a personal answer for that, so excuse me for it. I trully believe in one of the main UNIX mottos: keep it simple idiot - KISS.

For me it is just a matter of keeping the things simpler. Reducing the dependency tree we reduce the effort to mantain it, debug it, improve it, extend it. For me, C#/.NET/MONO is like killing a fly with a cannon. I don't see any point in doing GNOME crossplataform. I don't see a Windows user using GNOME. A Windows user already knows Windows, its standards, its look-and-feel and feels confortable and confident sticking with it. A hacker would do it, but come on.

But, then arises all the embedded features and improvements of the MONO framework, like garbage collector, a miriad of exotic data, class and object definitions and manipulations, all of them so abstract that seems hard to me to solve some real world problems using them. If that was a killing argument we would see other desktops and even OSes implemented in languages like MONO, Java, or any other exotic feature rich language. All of them would be killing examples, right out-of-the-box. Honestly, I don't see that right now.

Other principle that I like either is Occam's Economic Principle, it loosely concludes that if there are too solutions for the same problem, the simpler one is the most correct.

I'm don't telling that Java, C#/MONO, and like are all crap. They aren't. I trully believe that they are amazing technologies, in fact, I even use them for some of my solutions. But there are simpler solutions for the same problem. If the choice tend for MONO I'll be happy either. But they are so high level, that when you need to do some low level solution you feels like in a dead end road. Where to move? Implement a C/C++ wrapper for a low level operation, write some sort of binding for the framework doesn't qualifies a good framework for me. Sounds like something were missed in the design. A good should stabilish the base to walk upwards.

TuomoSipola notes: Getting past C would be a great step forward. Implementing the platform in a new language will be a huge task but it seems that it is the only way to move on. There are many alternatives among C++, C#, Python etc. C++ is basically just C with some object-orientation patches. I would love to see all of it with such a new language as D. I also could understand the C# but there seems to be too much religious hatred towards it.

CostinChirvasuta notes: I really don't see what the hipe about C#, Python, Mono etc. is... What do they really help you create? I've always used C, not even C++ and in time I learned how to write well structured code. I've realized that by writing good C code you end up making really efficient, clean programs. C for me is perfect: it allows the programmer enough abstraction to write easily and it's simple enough for the programmer to be able to structure his own code and encourages him to do so. The result of C was UNIX - immensely robust and efficient. Instead of looking for a new programming language people should work on programming more elegantly. Take a look at Linux's fork() for example... so simple and efficient (and visually appealing :). That's what people should look for.

Code cleanup and rewriting are the true Mecca of programming.

LucaCappelletti notes: I don't want to see any MONO into a standard GNOME installation.How many stacks are out there? Java for OO, Python, MONO!!! There was Java out there that works very well to do anything you need. Why they choose MONO? How is really cross platform MONO?

SethKriticos notes: Staying with C is a good choice for the base and helps keeping the system fast and consistent. It is also widely used and keeps compatibility. Wrappers for Python and other languages are good for developers who want to write their add-on applications in their favorite language, but these should be also kept out of the core system. .Net and Mono are full fledged frameworks. Gnome already uses GTK+, so I don't see the point in integrating it in the core system. If Gnome wants to stick to the incremental changes target, then only staying with C is an option - and a good one for that.

OSShalakhin notes: A lot of GNOME users don't like Mono. Python is not so fast to make it as GNOME main language. To my mind, it is better to choose Vala. It has a lot of advantages and gives an opportunity for fast development. I've just started learning Vala and I think this is the way for GNOME to go. So, C and Vala. No Mono with its ".exe" files.

WolterHellmund notes: I personally think that the world is moving on and giving the user great possibilities of using programming languages such as C++ and D--though this last one is still very immature. Staying with C is appealing for the simple fact of its cleanness and low-level attributes, but there are a few things that these new languages can pull off-hand that a programmer in C has no access to--like classes, for example. I will probably get stoned to death for this last one, but I got some news for you aging developers: the community has to grow, and the new developers would like to have their applications be cooked with fresh ingredients instead of learning the arts of the ancient cuisine.

Attic/ScratchPad/DotNetAndMono (last edited 2013-12-03 19:46:29 by WilliamJonMcCann)