Announcement

Collapse
No announcement yet.

Mono Developers Renew Their Love For Microsoft

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

  • #16
    Originally posted by Filar View Post
    Why would anyone not want to have mono on Linux?
    The linux universe is full of nazi gnu people and trolls, be water my friend.

    Comment


    • #17
      Originally posted by Phoronix
      they don't seem to have a play at the moment for the rush of new Windows desktop games and software coming to Linux.
      Are you kidding me? Considering that Unity3D utilizes Mono, I would say that a great deal of new Linux games make use of Mono, as a great deal of them use Unity3D, whether you like it or not. Personally, I do not really care about proprietary applications using Mono, although I am still a little concerned about its use in free software projects.

      Comment


      • #18
        Originally posted by Filar View Post
        Why would anyone not want to have mono on Linux?
        because java already exists

        Doesn't matter much, the age of virtual machine languages is coming to an obvious end. Scripting languages are much more popular as "first class" languages than ever and taking java/C#'s place everywhere but business cubicles.

        Comment


        • #19
          Originally posted by BO$$ View Post
          Hahaha. Java dying? Are you sure you're not on some heavy stuff? Just because you can't code for shit and all your programs are slow-ugly-memory hogging pieces of shit doesn't mean it's Java's fault. Java is very efficient if you actually know your stuff.
          Java is awesome and far from dying, but there is still a lot to be desired from the consumers perspective. The "sluggishness" that users percieve is due to the JIT compiler at startup. Oracle should once and for all solve this problem by implementing JIT caching and re-using the optimisations from the previous run, which would make it a lot faster at startup (console apps are just fine, but GUI (Swing) would hugely benefit from the caching).

          On the memory argument, while I agree that Java is efficient if you know your stuff, you have to work around the memory overhead which not every programmer is willing to make. You can use for example, ByteBuffer to store/represent large amounts of data and then abstract it, but why do that? The point is, you should not have to go that lengths to reduce memory usage drastically, because with that much effort you could just as well use C or C++.

          Another annoyance for users is installing the monstrous JVM, which is around 168MB on windows. Granted you only have to install it once, but it is still an annoyance.

          Java on the server is a different story, there fast startup and large virtual machines don't matter as much.

          My conclusion: Java is a great language, but I honestly would not choose Java over C or C++ in software projects which will run on computers other than my own. I use Java and Python to rapidly develop and test my ideas in practice, simply because it's convenient and I can throw together a working example with bells and whistles really quickly.

          Comment


          • #20
            yes there is

            Originally posted by Detructor View Post
            the problem is, aside from C#/.NET there is no real(=professional) cross-platform language available. Aside from the slow-ugly-memory hogging piece of shit that is called Java. And luckily that has been left to die when it was given to Oracle. OpenJDK is just the last struggle before the inevitable death of that language.

            The only true crossplatform solution would be something browserbased and that's just not feasible for most projects.
            I've used C++ and Qt and I can tell you it's really quite nice and cross-platform. Also performs better than anything else because well ... it's C++ . With Qt added to provide the cross-platform stuff and pretty much all the things you'd need not only for GUI but also for XML, networking, database and what not there's really no reason why you'd need anything else with Qt having been ported to iOS and Android.
            Browser based stuff with HTML5 still suck big time IMO and can't get anywhere near Java or C#, not to mention C/C++.

            Comment


            • #21
              Originally posted by e8hffff View Post
              Because it broke the customs of Linux Users and freedom. Mono was tethered to Microsoft indirectly. If Mono was used, then something completely open and free may not. Also initially people were suspicious with the licensing but Microsoft cleared that up with public announcements.
              Except that those announcement (far as I can tell as an outside observer) didn't really clear anything up. Those who wanted to believe, accepted these "promises" as definitive, those who didn't trust Microsoft pointed out that they weren't, actually -- they were either not truly binding, or in so far as they were binding, were too narrow and arbitrary in scope to be relied on in real life or in the future.

              Comment


              • #22
                Originally posted by mcirsta View Post
                I've used C++ and Qt and I can tell you it's really quite nice and cross-platform. Also performs better than anything else because well ... it's C++ . (...)
                This is not true anymore.

                I can say that there are definitely parts where Mono and .Net (and to some extend Java) are faster than C++:
                - inlining, most simple properties are inlined by the Mono or .Net. You can even hint this to
                - allocation of heap short lived objects because of GC
                - Mono.Simd can run faster on Mono even your code was not compiled on a machine that has the actual SIMD instructions as we can talk for a future CPU. Using intrinsics for let's say SSE2 will run for SSE2 CPUs, but a Mono.Simd can (at least theoretically) run on AVX2 with no work on your side (this is only for Mono, not for Java)

                There is one case when Mono runs virtually the same as C++: on iOS as it uses the same compiler/optimizations as a C++ compiler would do it.

                Comment


                • #23
                  Originally posted by peppercats View Post
                  because java already exists

                  Doesn't matter much, the age of virtual machine languages is coming to an obvious end. Scripting languages are much more popular as "first class" languages than ever and taking java/C#'s place everywhere but business cubicles.
                  Your first argument is wrong:
                  - "Why would anyone not want Ruby on Linux?" - "Because Python already exists"
                  - "Why would anyone not want Python on Linux?" - "Because Perl exists"
                  - "Why would anyone not want Java on Linux?" - "Because C++ exists"
                  - "Why would anyone not want C++ on Linux?" - "Because C exists"

                  Age of virtual machine languages is coming to an obvious end, if you exclude that JavaScript is run on a virtual machine. By design and by default. Not an interpreter but a tiered Jit (like in IonMonkey or V8) or a Hot-spot like one (WebKit or IE). They come with generational GC too.

                  Both Tiobe and PyPL indices show that virtual machine languages (like PHP too, which is also "dead" for some) are in the first two spots and also they are more than 25% of usage of entire languages all the time. Is JS that popular? Tiobe gives a 2% usage (compared with a 24% Java + C#). PyPL states that JS is 7% popular, if you like this numbers, just that PyPL put like this numbers for the language popularity:
                  1 Java 27.0 %
                  2 PHP 13.0 %
                  3 Python 10.3 %
                  4 C# 10.0 %

                  And C++, where is it?
                  It is on the 5th place with 9.6%.

                  Comment


                  • #24
                    I really like C# as a language. But the way Microsoft treat is I'm never gonna use it when I have the choice.
                    Microsoft need to create a full standard and make an open implemention the reference.

                    Also with Java 8 i feel less urge to use C#

                    Comment


                    • #25
                      Originally posted by ciplogic View Post
                      - Mono.Simd can run faster on Mono even your code was not compiled on a machine that has the actual SIMD instructions as we can talk for a future CPU. Using intrinsics for let's say SSE2 will run for SSE2 CPUs, but a Mono.Simd can (at least theoretically) run on AVX2 with no work on your side (this is only for Mono, not for Java)
                      One of my friends was working on an OpenGL 3 based, multithreaded graphics engine a few years ago. Someday he decided to test Mono, because he was kinda tired of running into memory management issues in C++. So he wrote multiple versions of a program to load a PNG image, perform a Gaussian Blur effect and write it back to disk in C++ and C#. His observation was that C# version was slower than C++, and surprisingly Mono.Simd version being about 2 times slower than the non-SIMD version. Reason for SIMD version being slower was because C#/Mono totally failed to 16byte align data correctly in memory and generate efficient code in action.


                      And no, you can not expect same code to magically run on both SSE and AVX enabled hardware. This requires very careful manual management of memory and data layouts, and writing different versions of code.
                      SSE operations work on 4 single precious floating point or 2 double precious floating point data packed in a XMM (128bit) register, while AVX operations can operate on double amount of data previous generation could operate on, using their new YMM (256bit) registers.

                      Comment


                      • #26
                        Originally posted by ciplogic View Post
                        Mono.Simd can run faster on Mono even your code was not compiled on a machine that has the actual SIMD instructions as we can talk for a future CPU. Using intrinsics for let's say SSE2 will run for SSE2 CPUs, but a Mono.Simd can (at least theoretically) run on AVX2 with no work on your side (this is only for Mono, not for Java)
                        You can also compile C/C++ to LLVM and it will optimise for your CPU on runtime.

                        Main problem of VM's is that they allocate enormous amounts of memory.

                        Comment


                        • #27
                          Originally posted by LightBit View Post
                          You can also compile C/C++ to LLVM and it will optimise for your CPU on runtime.
                          Unfortunately this will also fail, unless you write multiple versions of SIMD code using intrinsics.

                          Comment


                          • #28
                            Originally posted by Pajn View Post
                            I really like C# as a language. But the way Microsoft treat is I'm never gonna use it when I have the choice.
                            Microsoft need to create a full standard and make an open implemention the reference.

                            Also with Java 8 i feel less urge to use C#
                            With Java 9 you should feel even less. In the mean time I enjoy using async/await.

                            Comment


                            • #29
                              Originally posted by LightBit View Post
                              Main problem of VM's is that they allocate enormous amounts of memory.
                              This is a Javaism. Hotspot allocates enormous amounts of memory.

                              Mono isn't particularly RAM-heavy.

                              Comment


                              • #30
                                Originally posted by Detructor View Post
                                the problem is, aside from C#/.NET there is no real(=professional) cross-platform language available. Aside from the slow-ugly-memory hogging piece of shit that is called Java. And luckily that has been left to die when it was given to Oracle. OpenJDK is just the last struggle before the inevitable death of that language.
                                Is that your professional analysis? You realize Java/JVM beats C#/.NET in most microbenchmark comaprisons. Mono is even slower than the Microsoft runtime.

                                C# isn't a remotely competitive language, even within the Microsoft ecosystem. F# is Microsoft's more serious competitive language.

                                On the JVM side, people love the Java platform, but the Java language is largely legacy. Scala is probably the most popular favorite (it's my favorite). It's a far better language than C# or Java.

                                Comment

                                Working...
                                X