Announcement

Collapse
No announcement yet.

Why Mono Is Desirable For Linux

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • ciplogic
    replied
    Originally posted by Sidicas View Post
    (...) I'm sticking to using C++/C#, but seeing 98% of the application's CPU usage get sucked down because of 2D graphics work being done on the CPU (in Windows) is discouraging. Shame on you Qt! It's clear Qt favors Linux, how can it really be considered cross-platform when they half-ass the support for other platforms??. I'll definitely give Mono a try.
    Just to say in passing, some people here do not have any reason to use or not use excluding hate, impressionism, mis-characterization, and so on. You're fully right that WPF on Windows and Gtk# on Linux are both GPU accelerated, so Mono applications seem to run faster at least based on UI snappiness if you target WPF and Gtk#.
    Being said that, Gtk# on Windows has the same problems as you described with Qt, but the fault is not on the # side, but on Gtk+ side: GDK APIs and Cairo APIs are translated via GDI+, and Cairo painting is painfully slow because of this translation (yet is a bit faster than Qt). So C/C++ side is slow, because doesn't take advantage of the underlying hardware. For this reason, Mono applications can be abstracted easier based on underlying hardware, and a lot of ways to do it, and this is the Mono's way to do this.
    One last part which I appreciate in your comment is that what's matter for user is the overall experience, and this can be provided given the tools in a lot of other languages/platforms. Users don't care that is written in "optimized C++" if is that sluggish, but they will ditch the application and will use one that looks just nice, and runs fast enough in Adobe AIR or in .Net

    Leave a comment:


  • Sidicas
    replied
    Hate to quote myself, but I can't edit my post anymore...
    Originally posted by Sidicas View Post

    It appears when Qt applications run on linux they get the benefit of some 2D accelerations that they don't get under Windows.
    This would be the Qt "native" renderer for the platform which is X11/XRender. X11/XRender is, IMO, a lot better than Raster as it scales up to very high resolutions very beatufully with only modest hardware. The Raster painter in Qt 4.3 and later, in my opinion, simply sucks. As the Qt developer who worked on Raster said...
    "Double the size of the primitive in each direction and you have one quarter the performance. "
    "if you compare the N900 to the desktop Windows machine you see that despite windows only having a 4 times faster processor the speed is often around 10 times worse. "

    Yes, with a 4 times faster processor your Qt applications run 10x slower! That's not platform favoritism at all, is it? /sarcasm.

    I just wish that a Qt developer wrote somewhere that Qt simply sucks on Windows and I wouldn't have even bothered to try it as a cross platform solution. So yes, Mono here I come. I saw this thread already was a ranting thread so I might as well put my 2 cents in as well.
    Last edited by Sidicas; 26 September 2012, 06:59 AM.

    Leave a comment:


  • Sidicas
    replied
    I read the article and I read through all 30+ pages of the arguing back and forth and I have to say.. I agree Mono should be used.

    In fact, I'm thinking about using it instead of Qt. , I have found that Qt applications on Windows run slowly because they are using a "Raster" renderer, so when you run them on a very high resolution display (say, 1920x1080 or higher) the redraw speed of a Qt application with tons of widgets is very slow (ie: Almost "Java" slow). This is on a system with dual GTX 470 water cooled graphics cards. Just try for yourself running an application like Amarok on Windows 7, the graphical user interface is a little sluggish and heavily stresses a 6-Core Phenom II CPU with all the rastering work. I've tried forcing "OpenGL" graphics systems mode for Qt in Windows, but it just crashes, forcing OpenGL rendering doesn't seem to work in Linux either.

    It appears when Qt applications run on linux they get the benefit of some 2D accelerations that they don't get under Windows. I don't know, but it's something that is driving me up the wall, and making me consider not using Qt for application development. I'm leaning towards something that can make use of DirectDraw / 2D Acceleration on Windows while also making use of 2D accelerations on Linux, so I think Mono is the way to go there, but I really don't know for sure.

    For some reason, a while back, some Qt Developers promised DirectDraw / 2D Accelerated rendering of Qt applications on Windows but apparently it never became stable so it just isn't used yet. The only choices Qt gives me on Windows is "Raster" or "CRASH!".

    I'm sticking to using C++/C#, but seeing 98% of the application's CPU usage get sucked down because of 2D graphics work being done on the CPU (in Windows) is discouraging. Shame on you Qt! It's clear Qt favors Linux, how can it really be considered cross-platform when they half-ass the support for other platforms??. I'll definitely give Mono a try.
    Last edited by Sidicas; 26 September 2012, 06:19 AM.

    Leave a comment:


  • crazycheese
    replied
    Originally posted by BO$$ View Post
    MONO is shit and should be banned from linux because we can't have linux core programs written in C# and thus be made dependent on Microsoft. They can always fuck us over so don't give them the opportunity. Basically don't start writing new apps in C# or convert existing ones to C#. Unless you want to bend over and take it from Mr. I can't program but I am the CEO of a software company Ballmer.
    Thanks, captain obvious

    Leave a comment:


  • directhex
    replied
    Originally posted by narciso View Post
    I'm getting this error while trying to run Wizorb 64:

    Missing method .ctor in assembly /opt/wizorb/MonoGame.Framework.Linux.dll, type System.Runtime.CompilerServices.ExtensionAttribute
    Can't find custom attr constructor image: /opt/wizorb/MonoGame.Framework.Linux.dll mtoken: 0x0a0003a9

    Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
    File name: 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
    at Paris.Paris..ctor () [0x00000] in <filename unknown>:0
    at Paris.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
    [ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
    File name: 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
    at Paris.Paris..ctor () [0x00000] in <filename unknown>:0
    at Paris.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

    Does anyone knows what it means?
    Assuming a Debian-based distribution, install libmono-system-core4.0-cil?

    Leave a comment:


  • ciplogic
    replied
    Originally posted by narciso View Post
    I'm getting this error while trying to run Wizorb 64:

    Missing method .ctor in assembly /opt/wizorb/MonoGame.Framework.Linux.dll, type System.Runtime.CompilerServices.ExtensionAttribute
    Can't find custom attr constructor image: /opt/wizorb/MonoGame.Framework.Linux.dll mtoken: 0x0a0003a9

    Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
    File name: 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
    at Paris.Paris..ctor () [0x00000] in <filename unknown>:0
    at Paris.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
    [ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
    File name: 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
    at Paris.Paris..ctor () [0x00000] in <filename unknown>:0
    at Paris.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

    Does anyone knows what it means?
    The stack can be read from bottom to top, so it seems that the first thing that Paris namespace/class does it tries to call the constructor, and in constructor is a System.Core call (like Linq call) that fails to load the assembly.
    In a similar note it seems to fail on loading System.Runtime.CompilerServices.ExtensionAttribute runtime.

    I cannot say what eventually leads to it, but if you have a 64 bit machine, try to install just install it in a 32 bit Linux and I think that the issues will be solved.
    If it fixes, is most likely that this game embeds the Mono engine and didn't set all assemblies to be ANY CPU, but they set them as Intel 32 bit ones (x86). As Mono is packaged, in some 64 bit distros may have set some assemblies (here System.Core) with AMD64 flag, which will make to fail loading applications in 32 bit context.
    Last edited by ciplogic; 25 September 2012, 05:37 PM.

    Leave a comment:


  • narciso
    replied
    I'm getting this error while trying to run Wizorb 64:

    Missing method .ctor in assembly /opt/wizorb/MonoGame.Framework.Linux.dll, type System.Runtime.CompilerServices.ExtensionAttribute
    Can't find custom attr constructor image: /opt/wizorb/MonoGame.Framework.Linux.dll mtoken: 0x0a0003a9

    Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
    File name: 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
    at Paris.Paris..ctor () [0x00000] in <filename unknown>:0
    at Paris.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
    [ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
    File name: 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
    at Paris.Paris..ctor () [0x00000] in <filename unknown>:0
    at Paris.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

    Does anyone knows what it means?

    Leave a comment:


  • directhex
    replied
    Originally posted by BO$$ View Post
    MONO is shit and should be banned from linux because we can't have linux core programs written in C# and thus be made dependent on Microsoft. They can always fuck us over so don't give them the opportunity. Basically don't start writing new apps in C# or convert existing ones to C#. Unless you want to bend over and take it from Mr. I can't program but I am the CEO of a software company Ballmer.
    Meanwhile, another Mono-based game has been added to Humble Indie Bundle 6.

    Basically BO$$ hates Linux games.

    Leave a comment:


  • randomizer
    replied
    Originally posted by entropy View Post
    tl;dr

    Anyone volunteer for a short summary of this thread?
    A handful of bitter old farts arguing about politics.

    Leave a comment:


  • peperoni
    replied
    This thread is another M$ epic fail! Muahahahahaha!
    I would say I almost roll on the floor laughing. LOL!
    If somebody ask me why mono is 'desirable' for Linux I would probably say 'Yes, to not to stop laughing!!!'
    Last edited by peperoni; 25 September 2012, 08:55 AM.

    Leave a comment:

Working...
X