Announcement

Collapse
No announcement yet.

Why Mono Is Desirable For Linux

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

  • Originally posted by n3wu53r View Post
    Looks interesting. Doesn't seem to be a stable release yet but I'll check that out.
    Does it matter if no distro has it packaged? Won't apps produced using this only have dependencies on Mono and Qt?
    Generally speaking, your app would also have dependencies on the Qt binding assemblies, that would have to be provided somehow (e.g. bundled with your app or in the distro)

    I'm not talking about bugs. Just that runtimes in general add a nice big overhead. Maybe I'm just nitpicking. I also find high level languages are much more tolerant when it comes to sloppy programming.
    Some worse than others. Mono's pretty decent on this score compared to, say, Python. If developers are going to use high-level languages, Mono's one of the best on the CPU and RAM front.

    You sure? Java-gnome has 3.x support. http://java-gnome.sourceforge.net/
    I would like a link to this bug.

    Comment


    • Originally posted by hoohoo View Post
      Comme ci, comme ca.

      It's layers on top of layers, with some features added at each layer.

      When I say .NET is a wrapper, I mean MS has not re-written Windows or it's major apps AFAICT to replace the COM/DCOM/ActiveX heritage - mostly MS has obscured that heritage with .NET.

      I did not mean to imply that .NET is a species of ActiveX.

      If you write a native C+ app on Windows all that COM/DCOM/ActiveX stuff is still there to be used.
      Of course .NET is a wrapper. So is Java and Qt. What is your point?

      What do the rest of that sentence have to do with anything? The Windows and the .NET ecosystem is a complete different thing, even if they have bindings so that code written for Windows can coexist with code written for .NET. Why would Microsoft have re-write its Windows applications to be .NET applications? How would they make money out of that. Microsoft are rewriting parts of their applications and replacing COM/DCOM/ActiveX. It is called phasing it out. They have no reason to rush things faster than that.

      No not really. On Winodws RT there are no COM/DCOM/ActiveX - only.NET assemblies even for native applications. Yes the old Win32/64 compatibility layer supports those and will be around for a while. However this shows that Microsoft are phasing Win32/64 out and .NET in.

      Comment


      • Originally posted by hoohoo View Post
        I see you are writing in a dialect of English that features the STRAWMAN construct!
        Exactly how do this dialect of English work in order to squeeze a strawman construct into that?

        Comment


        • Originally posted by jrch2k8 View Post
          no way in hell stop bullshitting.

          the only way this is even remotely possible is to take the most barbaric form of crappy code a human being can code in C++ running on a pentium3 vs the most optimized java code ever seen running on a 10 cores Xeons <-- the same applies to mono/.NET and let skip memory consumption <-- mono/.NET fail miserably here too

          i can believe mono[due to llvm] can be faster than crappy java code but thats is as far as im willing to believe without actual code to prove it
          Google is your friend. Java is WAY faster than mono, there are plenty of tests proving that if you bother to Google. There are also plenty of tests proving Java is as fast as or faster than C++-

          LLVM is also WAY slower than HotSpot, which in turn are WAY slower than Azul Zing.

          Can you please explain your wild claims on how Java, .NET or mono "fail miserably" in memory consumption?

          Comment


          • Originally posted by jrch2k8 View Post
            yes write wine in C# so linux user will need 64 CPU and 4 gpu to open office on it and ofc finally break the barriers and set the 16 GB minimal memory requirements but ofc running C/C++ code as bytecode will improve it <-- WTF
            Yeah right. You really know what you are talking about right?

            Yeah running C/C++ as bytecode will improve it as shown by FreeBSD which have switched to Clang and LLVM.
            Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite


            Pulling ridiculousness numbers like that out of your ass just makes you look like a fool. Java do not consume more CPU than C++ and at most a few megabytes extra ram. So that is only a problem for small programs where a few megabytes is a lot of extra weight.

            Comment


            • Originally posted by jrch2k8 View Post
              this exactly prove my point, that is a horribly written C++ code running on VC that by default have many optimizations turned off like SIMD <--- aka that code is using x87 LOL

              take that code unroll it, add SSE/AVX, check the types, properly use templates and atomics[c++11], optimize the memory handling and use ICC or GCC with at least -O2 -march=native and -msse2 and compare it to java again
              Do you have any evidence that HotSpot is not as good as VC or GCC on using SIMD? How exactly would Templates make any difference? And Java have atomics so that should not make any difference.

              Comment


              • Originally posted by mateli View Post
                Of course .NET is a wrapper. So is Java and Qt. What is your point?

                What do the rest of that sentence have to do with anything? The Windows and the .NET ecosystem is a complete different thing, even if they have bindings so that code written for Windows can coexist with code written for .NET. Why would Microsoft have re-write its Windows applications to be .NET applications? How would they make money out of that. Microsoft are rewriting parts of their applications and replacing COM/DCOM/ActiveX. It is called phasing it out. They have no reason to rush things faster than that.

                No not really. On Winodws RT there are no COM/DCOM/ActiveX - only.NET assemblies even for native applications. Yes the old Win32/64 compatibility layer supports those and will be around for a while. However this shows that Microsoft are phasing Win32/64 out and .NET in.
                WinRT is built on Win32/Win64 and .NET too.

                Comment


                • Originally posted by frantaylor View Post
                  JIT will NOT help you write fast loops.
                  No compiler will help you write fast loops. That's entirely up to the developer. However JIT can optimize loops better than static compilation.

                  Originally posted by frantaylor View Post
                  The JIT runtime will not fit in the processor's cache, your program will score many cache misses and the loops will slow down.
                  Of course not. Neither will your C++ runtimes. No your programs will not score more cache misses because of JIT and loops will not slow down. I have seen this false claim more times than I can your remember, but never seen any evidence of it.

                  Originally posted by frantaylor View Post
                  Your processor is running at many GHz, but main RAM is terribly slow, you don't want your loops to be fetching from RAM on every instruction."
                  No I don't. And your point is? You are probably trying to imply that Java does this, but where are your evidence? The old Java Interpreter used to do that, but that is ancient history. Both HotSpot and JRocket have been around for quite some time.

                  Originally posted by frantaylor View Post
                  If you carefully hand-code your loops you can fit the whole thing in the fast cache and the loop will scream."
                  No, you will get the opposite. On a processor with less cache your data will not fit into the cache. On a processor with more cache you will underutilized your cache, which in a multi-threaded application may be even slower. When you try to do the compilers job you often make things worse.

                  Originally posted by frantaylor View Post
                  As was otherwise pointed out, JIT will mitigate bad code, but if the code is solid in the first place, it's not going to help.
                  There are no such thing as solid code. All code have bugs. Also the JIT have many features that are useful no matter how good your code are.

                  Originally posted by frantaylor View Post
                  Use the right tool for the job! JIT gives you a VM, memory safety, and nice debugging features. It won't magically fix your bad algorithm or improve performance of an otherwise optimal program. JIT also means big runtime baggage and potential compatibility issues if the customer has a different version.
                  No language will fix your bad algorithm. JIT will improve performance on an optimized program, usually with the requirement that you know what you are doing. But in that last thing Java is no different from other languages. JIT in itself do not mean big runtime baggage, and it means far less compatibility issues than other execution environments. Java currently have a few megabytes off baggage which for a large application like an application server is irrelevent. But if you have a small program with a few kb of bytecode a few megabytes are a lot of baggage.

                  Comment


                  • Originally posted by n3wu53r View Post
                    Ooh interesting.
                    Still doesn't make me like Mono (or most high-level languages for that matter). :P
                    Perhaps I would be more interested if there was a GTK3 or Qt binding.
                    Perhaps you should Google.
                    There are Qt bindings for both Java and .NET...

                    Comment


                    • I'm following Phoronix for a year now for news about Ubuntu and games on Linux, just signed-up today because of most of the comments here are non-nonsense and/or about skepticism about the development tool. Sorry for my bad english, it is not my native language.

                      I am developer for more than 6 years, using C/C++, C#(.NET/Mono), Java, and PHP. But I embraced C# because it solves these challenges:
                      - Cross-platform(same with C/C++, Java, and PHP)
                      - Write once, run anywhere(same with Java[not on iOS] and PHP[not on most mobile devices])
                      - Very light for games/game development(Java usually fails here, C/C++ is a bit faster)
                      - Faster development and easier to maintain
                      - Great for middle-ware development(Java failed me on one of my projects here)

                      Using C#/Mono saves me lot of development time because of its feature is complete(since the implementation of .NET 2.0, .NET 1.1 is totally a crap re-invention of JVM) and run on most of known platforms(developed and deployed already on Windows, Ubuntu/Debian, Android, iOS, MacOS X, and Xbox360). New features of .NET3.0 and up aren't great, they are nice to have but not really required.

                      C/C++ is faster than .NET/Mono applications but maintenance of code for every platform will take too much time and resources. On Java, it have too many frameworks needed to learn, also its performance is really poor GUI and Web(I need to add more RAM on my test server(Debian) to make my J2EE app catch-up on my ASP.NET and PHP apps). But still using Java for scripting in PostgreSQL because Mono is not yet supported.

                      I doubt that M$ will sue the Mono-team because they are already providing lots of support on this project. This will ensure that their products or products produced by their products will reach the end-users who are on the other platforms. It is more of a marketing strategy than a trap as most of FOSS/Linux zealots believe.

                      I am happy developing on my Ubuntu machine using Monodevelop with PostgreSQL. My M$ Windows machine is used only for gaming and testing.

                      Comment

                      Working...
                      X