Announcement

Collapse
No announcement yet.

I love mono and C#!

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

  • I love mono and C#!

    Hi guys.

    I just started to learn C# out of curiosity. First now I realize that the binary file compiled by mono can actually execute on both linux and windows! This is great. I do not know why there are so many mono haters out there, because it is brilliant in its way of not needing to be recompiled in order to run on different platforms.

    I have a couple of questions though.
    1. Please explain why you have so much against mono?
    2. How fast is the mono implementation versus the visual studio implementation of C#?
    3. How fast is mono versus java, which I assume works in a similar way as JAVA?

    Thanks

  • #2
    Originally posted by tball View Post
    1. Please explain why you have so much against mono?
    Because it's a Microsoft technology, and Microsoft has clearly stated in the past that they intent to destroy Linux using its own weapons. (http://en.wikipedia.org/wiki/Halloween_Documents)

    Because of this, I don't care about 2. and 3.

    Edit:
    Btw, the rumor that the binaries run on both Linux and Windows is a myth. The net is full of people trying to port their .NET programs to Linux and failing horribly. The programs don't run or crash at random. An exception are trivial, "hello world"-like programs.
    Last edited by RealNC; 07-26-2011, 02:20 PM.

    Comment


    • #3
      Originally posted by RealNC View Post
      Because it's a Microsoft technology, and Microsoft has clearly stated in the past that they intent to destroy Linux using its own weapons. (http://en.wikipedia.org/wiki/Halloween_Documents)

      Because of this, I don't care about 2. and 3.
      Yeah but what can they do about mono and the applications developed by mono? Destroy them legally?

      Originally posted by RealNC View Post
      Edit:
      Btw, the rumor that the binaries run on both Linux and Windows is a myth. The net is full of people trying to port their .NET programs to Linux and failing horribly. The programs don't run or crash at random. An exception are trivial, "hello world"-like programs.
      Well let be correct myself and you. The binary doesn't run on linux or windows, but in a virtual machine, just like JAVA. So if the application crash, I guess it is due to the lack of features in the underlying VM implementation, like mono.

      Comment


      • #4
        I love Islam and the Koran!

        Hi guys.

        I just started to study the Koran out of curiosity. First now I realize that you can actually read the Koran forwards and backwards! This is great. I do not know why there are so many Islam haters out there, because it is brilliant in its way that you can have more than one wife!

        I have a couple of questions though.
        1. Please explain why you have so much against Islam?
        2. How awesome is the Koran versus the Bible?
        3. How awesome is the Koran versus the Torah, which I assume is similar to the Koran?

        Thanks
        Seriously, I don't know if you are trolling but you sound like a religious fanatic to me. Don't get me wrong, I'm happy that you are happy with your new found religion, but can't you Mono guys just go to Redmond on Sunday's and practice your religion over there?

        Comment


        • #5
          Originally posted by AnonymousCoward View Post
          Seriously, I don't know if you are trolling but you sound like a religious fanatic to me. Don't get me wrong, I'm happy that you are happy with your new found religion, but can't you Mono guys just go to Redmond on Sunday's and practice your religion over there?
          Wait what??? Who is the guy sounding religious again?
          All I am asking for is an explanation for all the Mono hatred.

          So what if C# is developed by Microsoft. I never use windows, but I have no problems using a language they have developed. Jeez, maybe you should take a pill or something.

          Comment


          • #6
            All programming languages are cross platform. You can easily create binaries for multiple platforms with very little efforts. (Unless, of course, if you're using Visual Studio and other Microsoft technologies).

            Most c# (mono) applications are slower and more taxing on the system. Not in the regard of how many operations it manages to calculate per second. Rather its how the final results somehow lacks in responsiveness. It's like walking into a brick wall.

            You don't want your programs to be run through a number of additional layers. It just adds more complexity. If you encounter a rare bug in your system it's easier to track it with fewer layers in between. Each additional layer also introducer more delays.

            If you're only after cross platform stick with the GNU Compiler Collection. If it's scripting you want there are plenty of good alternatives. Most of them are completely open source as well with good availability for multiple platforms.

            If you're interested in increasing you programming speed, then you're on shallow water. Programming (as in writing the code) is probably the easiest and smallest part of the development of many common application.

            The biggest problem with c# (mono) is that you can't just give someone a copy of the application. Imaging going to an open source friendly location, like the phoronix forum, and advertise that you just created a great application. Not many users will try it because not too many will want riddle their system with a huge beast just to run a small application.

            Comment


            • #7
              Originally posted by tball View Post
              Yeah but what can they do about mono and the applications developed by mono? Destroy them legally?
              I gave you a link which shows what they can do, you didn't read it, I'll stop wasting my time with you.

              Comment


              • #8
                Most of the hate is targetted towards DotNet as such, since it is a Microsoft technology.

                C# was developed after Sun took MS to court over Java. They took them to court over Java because they were caught adding MS-only extensions, trying to undermine Java's multiplatform capabilities.

                After they were banned from making Java, MS made their own version of Java and called it C#.

                The same thing applies as before -- the language itself and the bytecode is open (but heavily patented), however most C# programs make use of .Net libraries, which are Windows only and will not run under anything else. Because of this, many people feel that this is not really a multi-platform solution, but an attempt to get Java people to switch to a Windows-only platform.

                If MS really wanted C# to be cross platform, they would offer an SDK for Linux, under an open source license, including the entire .Net stuff. They obviously won't do that, so open source people are stuck reimplementing that stuff instead of contributing to something meaningful.

                And yes, the danger is that if some crucial parts of the Linux desktop start depending on Mono (this is especially true in the Gnome world due to the de Icaza connection). Then MS could hit RedHat and Ubuntu with a huge patent lawsuit and we'd all land in the shitter.

                So writing things in Mono is a lot like writing Linux stuff in MS Office Visual Basic. Maybe you like the language, but there are so many decent options out there which are actually free and don't carry the same risk. It's better to use really open languages and compilers than to depend on technology made by a company who is just waiting to destroy you.

                Comment


                • #9
                  @Silverthorn and @pingufunkybeat
                  Thanks for your excellent replies That was just the words I needed to understand why mono isn't popular.

                  Two last questions. Is a .NET implementation not allowed to be implemented on other OS'es than windows? Or why doesn't there exist a Linux version?

                  Why does Microsoft invent a language such as C#, instead of just using plain C or C++? Just to be able to have a similar language such as JAVA, with their own extensions? I don't see the point in having something similar as JAVA, if you are not targeting multiple platforms.

                  Comment


                  • #10
                    To give the appearance of "new, shiny". Oh, and to force-sell new versions of Visual Studio.

                    Comment


                    • #11
                      Mono hatred is mostly irrational FUD, ignore it.

                      Comment


                      • #12
                        Originally posted by tball View Post
                        Two last questions. Is a .NET implementation not allowed to be implemented on other OS'es than windows? Or why doesn't there exist a Linux version?
                        Nobody knows if it's allowed or not, as large parts of .Net are not a part of the ECMA standard. Mono people are trying to reimplement .Net for Linux, but this is basically the same thing as trying to reimplement WinAPI, which is what WINE is doing -- there's lots of guessing, Microsoft keeps changing things and introducing incompatibilities, so it is essentially a windows-only technology.

                        From wiki: The Microsoft compatibility stack provides a pathway for porting Windows .NET applications to GNU/Linux. This group of components include ADO.NET, ASP.NET, and Windows.Forms, among others. As these components are not covered by Ecma standards, some of them remain subject to patent fears and concerns.

                        You CAN use C# by sticking only to the international standard, and avoid any .Net extensions, but you are still under threat of patent litigation. And then there are many safer options, the first of all being Java.

                        Why does Microsoft invent a language such as C#, instead of just using plain C or C++?
                        Control. They are the only ones with a complete implementation.

                        With C++, if you don't want to pay MS anymore, you switch to a different compiler, maybe even a free and open source one. With C#, you can't do it. The Mono guys are trying to offer C# users such a possibility, by reimplementing the standard from scratch, but many people in the Linux world don't feel comfortable depending on such technology.

                        Developing Linux apps for Mono/C# is almost the same as developing apps using Windows API and running it through WINE. It might work, but there are more free options that work just as well.

                        Just to be able to have a similar language such as JAVA, with their own extensions? I don't see the point in having something similar as JAVA, if you are not targeting multiple platforms.
                        There are advantages to running your stuff over a VM. Android is doing it (Dalvik), and many languages such as Perl and Python are doing it.

                        There are also disadvantages, of course.
                        Last edited by pingufunkybeat; 07-27-2011, 02:53 PM.

                        Comment


                        • #13
                          Originally posted by bwat47 View Post
                          Mono hatred is mostly irrational FUD, ignore it.
                          While Microsoft and their partners hold patents[citation needed] for the CLI and C#, ECMA and ISO require that all patents essential to implementation be made available under "reasonable and non-discriminatory terms". In addition to meeting these terms, the companies have agreed to make the patents available royalty-free.

                          However, this does not apply for the part of the .NET Framework which is not covered by the ECMA/ISO standard, which includes Windows Forms, ADO.NET, and ASP.NET. Patents that Microsoft holds in these areas may deter non-Microsoft implementations of the full framework.[17]


                          That software is openly violating MS patents. You are free to be almost compatible, but not to run Windows C# programs.

                          Use it if you feel comfortable. Base your whole business on it if you want to

                          Just keep it out of Linux.

                          Comment


                          • #14
                            Originally posted by tball View Post
                            Hi guys.

                            I just started to learn C# out of curiosity. First now I realize that the binary file compiled by mono can actually execute on both linux and windows! This is great. I do not know why there are so many mono haters out there, because it is brilliant in its way of not needing to be recompiled in order to run on different platforms.

                            I have a couple of questions though.
                            1. Please explain why you have so much against mono?
                            2. How fast is the mono implementation versus the visual studio implementation of C#?
                            3. How fast is mono versus java, which I assume works in a similar way as JAVA?

                            Thanks
                            1 Mono and .NET are being forced down my throat.
                            Ubuntu has ditched Gimp saying there was no room. But they keep even more room for the Mono runtime and some applications which can easily be replaced with other ones.
                            Parts of .NET are patented.
                            It's like allowing Microsoft to control everything. They want to destroy their competition, it includes Linux and many other companies and software projects.
                            Lately they are pretending to be nice but actually aren't.

                            2 Mono, and this is more important than performance, is very incomplete.
                            There are a lot of things not implemented. If you start in Linux. You're going to find bugs or missing features you would want to use.
                            The Mono developers also added some things that aren't in .NET on windows so the reliability that everything would work on windows goes out of the window.

                            You're actually better off with java. Which is more accepted and actually cross platform.
                            The binary fine is actually compiled to MSIL Microsoft Intermediate Language with is programming language independent and only should contain .NET Framework Class Library calls.
                            The file can thus be compiled to machine code on the users computer if a suitable .NET environment is found.

                            This idea of an intermediate language is also what java does.
                            In terms of java versus mono, it's not about the technologie concepts but the speed of the software/implementation that matters here.

                            Don't you find the creators of java en the Java Virtual Machine equally brilliant then?
                            Also all scripting languages e.g. Python also do this. http://www.python.org/

                            And if you're interested in binary file compatibility look for Java and Parrot Virtual Machine.
                            http://en.wikipedia.org/wiki/Comparison_of_application_virtual_machines


                            Comment


                            • #15
                              Mono is awesome, don't listen to the haters. It's fast, stable and versatile - just avoid the windows-centric technologies (WPF, WinForms), and you'll be fine.

                              Binaries do run everywhere without recompilation (I have worked on two 0.5-1 Mloc projects that work fine) and can also be ported to Android/iPhone/WP7 with little trouble.

                              If you need to distribute a Mono-based application to people without Mono/.Net, you can embed a cut-down version of the Mono runtime in ~4MB. Mono haters won't even realize you are using Mono, then

                              Finally, just ignore the bile in this thread. These haters are a tiny minority of a tiny minority. Normal people don't care what programming language you use - just pick something you are productive with and code away

                              I love C#, F#, Boo (as well as Python, Ruby, Ocaml and many more) - if one or two people refuse to use my products due to not being written in object-oriented assembly, that's their loss.

                              My 2cc.

                              Comment

                              Working...
                              X