Page 3 of 7 FirstFirst 12345 ... LastLast
Results 21 to 30 of 62

Thread: Mono Developers Renew Their Love For Microsoft

  1. #21

    Default

    Quote 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.

  2. #22
    Join Date
    Nov 2009
    Location
    Madrid, Spain
    Posts
    398

    Default

    Quote 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.

  3. #23
    Join Date
    Nov 2009
    Location
    Madrid, Spain
    Posts
    398

    Default

    Quote 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%.

  4. #24
    Join Date
    Sep 2012
    Posts
    276

    Default

    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#

  5. #25
    Join Date
    Oct 2013
    Posts
    195

    Default

    Quote 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.

  6. #26
    Join Date
    Mar 2010
    Location
    Slovenia
    Posts
    389

    Default

    Quote 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.

  7. #27
    Join Date
    Oct 2013
    Posts
    195

    Default

    Quote 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.

  8. #28
    Join Date
    Nov 2009
    Location
    Madrid, Spain
    Posts
    398

    Default

    Quote 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.

  9. #29
    Join Date
    May 2012
    Posts
    347

    Default

    Quote 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.

  10. #30
    Join Date
    Feb 2013
    Posts
    233

    Default

    Quote 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.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •