1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

Why Mono Is Desirable For Linux

Ciprian Khlud

Published on 14 September 2012
Written by Ciprian Khlud
Page 2 of 2 - 314 Comments

Do you know what? I still have the tools like Visual Studio that my company offers. With paid plugins (which sadly are not opensource), you are more productive than most of the environments said before. Some are getting close(r) (I talk here mostly about Java tools, which are really great like IntelliJ IDEA, Eclipse and NetBeans, and to not forget QtCreator), but still a developer as myself, doing all day C#, will do best C#. And if I have free time and I can make an application with C# and target Gtk#, and see if it compiles in MonoDevelop for Windows, it will mostly work on Linux. I don't have to write fancy Linux/Windows codes.

Another reason why is desirable to use C#, is that, without wanting to give specific numbers, C# tends to be faster to write, and in practice, the speed of the application you cannot see it slower, without a stopwatch. If an application is profiled in C#, and even Mono offers a primitive profiler, on Windows I do recommend using SharpDevelop that it has a visual pie-like profiler, you can get really speedy applications. Some people complain on GC, that you can have "visual glitches because GC hits", after you open a file, an operation that the user expects that it can take some time, the program can do a silent full GC. If the user does a small operation, like changing the color of a note, clearing the generation zero GC, is imperceptible for most users (on a phone takes like 3-4 ms, on a desktop machine is in 1 ms range) and make that GC pauses are less frequent. Those kinds of tricks for performance driven code, and what user expects are in fact on any language, platforms. Constant references are recommended and used widely in Qt APIs to give a good performance and the C++ compiler can optimize better based on this information.

Part 2 - Worst Case Scenario

Let's say in 3 years from now, company X attacks Xamarin or Mono project about an obscure patent claim that states that an operation in your program is not allowed. In this hypothetic case, the way you save the notes, they are saved using a future API that can save the notes as they are based on an annotation [Serializable]. This would impact a lot of software in Mono. But as trials are, they will likely attack Xamarin, not my software. Which is the outcome? Xamarin will start the legal battle that will take time. Even if I will be 100% sure that Xamarin it will lose and it will remove this specific functionality, nothing stops me to find another opensource project that does the salvation of the data in different format (to not rewrite by myself). That's it.

What it would be more strange, it would be that sometimes some operations (like Entity Framework, discussed in a separate post, that do use annotations to store everything in a database) are known for most database developers how to do it (maybe in a less efficient way) for close to a decade, so the impact of removing Entity tomorrow from Mono will impact a little the software that works with a database, as they would need to rewrite this functionality by themselves. In a repetitive way, of course, but not out of reach.

The issue is at least for Free/OSS not paid developers is:

- How can I invest my free time to create software a person can use?

- Which tool can give the end-user experience that user expects? Is it Gtk?

More things about the author: Ciprian Khlud it is a Senion Software Engineer who writes code using C#, little Delphi, legacy code in VB6, etc. at Litera Corp, a company specialized in Legal Documents Software.

Latest Linux Hardware Reviews
  1. AMD's New Athlon/Semprons Give Old Phenom CPUs A Big Run For The Money
  2. 13-Way Low-End GPU Comparison With AMD's AM1 Athlon
  3. ASUS AM1I-A: A Mini-ITX Board For Socketed Kabini APUs
  4. Mini-Box M350: A Simple, Affordable Mini-ITX Case
Latest Linux Articles
  1. How Much Video RAM Is Needed For Catalyst R3 Graphics?
  2. Ubuntu 12.04 LTS vs. 14.04 LTS Cloud Benchmarks
  3. Ubuntu 12.04.4 vs. 13.10 vs. 14.04 LTS Desktop Benchmarks
  4. AMD OpenCL Performance With AM1 Kabini APUs
Latest Linux News
  1. OpenELEC 4.0 Beta 6 Works On 4K Graphics, RPi ALSA
  2. Linux 3.15 Lands Some DRM Graphics Driver Fixes
  3. AMD Is Disabling DPM Support For RV770 GPUs
  4. ReactOS Working On A Community Windows OS
  5. Borderlands Is Being Considered For Linux
  6. Mesa 10.0 & 10.1 Stable Get Updated
  7. Getting Hit By The Variable Performance Of The Public Cloud
  8. Git 2.0 Test Releases Begin With Many Changes
  9. Wine 1.7.17 Works On Its Task Scheduler, C Run-Time
  10. The Improv ARM Board Still Isn't Shipping; Riding A Dead Horse?
  11. Debian To Maintain 6.0 Squeeze As An LTS Release
  12. Wasteland 2 Is Finally Released For Linux Gamers
Latest Forum Discussions
  1. The GNOME Foundation Is Running Short On Money
  2. Updated and Optimized Ubuntu Free Graphics Drivers
  3. Catalyst 14.3 Beta
  4. Suggestions about how to make a Radeon HD 7790 work decently?
  5. Radeon 8000M problematic on Linux?
  6. Linux Kernel Developers Fed Up With Ridiculous Bugs In Systemd
  7. After Jack Keane, RuseSoft will briing Ankh 3 to Linux through Desura
  8. Suspected PHP Proxy Issue