On this Friday we have a freelance open-source opinion article that was
written by Ciprian Khlud. This developer, who uses C# among other languages at
his place of employment along with a combination of Windows and Linux, argues
why the Mono open-source ECMA CLI/C#/.NET implementation is actually desirable
I know that Mono get some people emotional and I think that in many ways it
- Oracle was attacking Android's Java for copyright issues (no patents, sic!)
- Apple attacked Android too, an open platform
- Microsoft attacked TomTom for using extFat format in their GPS devices
What if Mono is in the same world and it would happen to be attacked by Microsoft?
As I'm not working in a legal field, I honestly don't know which will be the
next claim and which are the implications, so I take another perspective about
why Mono even with a patent attack threat is desirable and I will want to see
the impact in today's life.
So, I'm working on an average sized system with fairly high complexity written
in C# in my daily life. I use there things from Entity Framework, WPF, web services,
XML processing to daunting tasks of having an exact behavior that is hard to take
given a lot of variables that a software platform brings. So I want to say simply
that: software is complex, in fact in some cases is incredibly complex. For this
reason, I look firstly for a tool that solves most of my problems and in areas
that is not best, it offers a fairly good capabilities to work around the problem.
Some things that were true before, like: .Net was a separate install in Windows
98 SE (you could install client .Net, but no development tool will work on it),
is a Windows Update component.
So as I work many hours with C# at work, and hopefully I have some experience
with it, I also inherit from my work environment paid tools to do my job. I am
not saying by name, but they don't include just Visual Studio. All those tools
can help me to create in my little spare time some applications that I think are
necessary and I can think that I can help to create an application in the area
I know fairly well how it works.
So I can try to make an application I know how to do, let's say a Notes like
software, that has also a checklist. I will look for which options I have to write
it today and at least for the leading distribution I see for me the following
- C/Gtk+/GLib: It is possible but is really not easy, you work with macros,
the leaks and bugs are really hard to spot.
- C++ / GtkMM: it is really a good platform to do the work with, but as the
application grows, the compile time grows, sometimes the annoyance of oddities
that C++ has, like forgeting a ';' after the class definition in the header, will
make you to fix the build and wait for code to compile.
- Vala: I think is the best for now as for my C# skillset, yet, the debugging
experience is suboptimal. As for me is as hard to track bugs as it would be with
C/GLib (I see Vala as a macro expander), because there are no consistent GUI tools.
- C++ / Qt: QtCreator is really a fancy and speedy IDE, is really working,
and is mostly bug free. The environment is nice and I think is the best platform
from a "wannabee" of working with C++/Qt.
- MonoDevelop: I see it like C/GtkMM, in the way of debugging on Linux sometimes,
mostly when you go in "unsafe code", it has bugs here and there.
- Last but not at least: Python/Gtk+ is really a great platform. I don't know
Python well enough, but it looks really stable and mature software package.