Announcement

Collapse
No announcement yet.

Why Mono Is Desirable For Linux

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

  • directhex
    replied
    Originally posted by kazetsukai View Post
    You tell me. Did you consider yourself a target of that statement?
    Evasion. How utterly unprecedented.

    To flesh it out: the anti-Mono cult cannot begin to conceive of a world where people might disagree with them unless they're being paid to do so. It's a strange, somewhat egotistical view of the world, but it's very common. Since I'm not anti-Mono, I've often seen vague allegations of payment thrown around. Yet every single time - every single one - that I ask for someone to make a formal black and white "I am accusing you, directhex, of receiving X amount in payment from Microsoft for advocating a reimplementation of their technology on forums and here is my evidence" claim, silence. Almost as if it's just an effort to poison the well, to make others think "oh, I can't trust that guy, Microsoft pay him, it must be true because someone on the Internet said it"

    -You're blaming the community (which is often very vocal) for the lack of adoption of Mono.
    Well, knowing the community culture, its history with Microsoft up to now, you honestly believe that scaremongers in the community are the sole reason for the lack of its adoption?
    Pretty much. When the scaremongers start applying their ire equally to other Microsoft-derived technologies like JavaScript, then there might be something to discuss. Otherwise, it's pure (weird) directed nonsense. I know of at least one project which was written in Python purely to avoid the bullshit politics that would have come with being written in C#, despite the original author's major preference (not least for performance reasons) of using C#.

    -You seem to assert that Linux needs Mono to solve real world problems.
    Developers targeting Linux have decent toolkits to get the job done. They have several high level and low level languages of which development of is directed by the community, not by a few corporate entities. Java, PHP, Python, Perl, Ruby, C/C++. These languages are used successfully for almost everything. Meanwhile, what use case do these languages not fill, that Mono is trying to solve?
    Each of the languages you name has upsides and downsides - typically some massive plusses and massive minuses. For example, Python is easy to write, but hella slow. Java is fast (as long as you don't use the dreadful GUI toolkits), but uses all the RAM ever. Mono is an extremely compelling middle ground - not as fast as Oracle Java, but competitive. Not as memory-light as C++, but competitive. Not as "easy" as Python, but competitive. And so on. It's really a very compelling choice for a "pretty much good enough" high level language with no major downsides.

    Mono is a broken concept in Linux. You don't see a trillion entities trying to sell you a zip archive util or CD burning software under Linux, because free alternatives that are constantly updated exist.
    I... totally don't understand what you're trying to argue here. Mono is broken because there are unzip tools for Linux?
    Last edited by directhex; 22 September 2012, 05:30 PM.

    Leave a comment:


  • kazetsukai
    replied
    Originally posted by directhex View Post
    Is that a formal allegation?
    You tell me. Did you consider yourself a target of that statement?

    -You're blaming the community (which is often very vocal) for the lack of adoption of Mono.
    Well, knowing the community culture, its history with Microsoft up to now, you honestly believe that scaremongers in the community are the sole reason for the lack of its adoption?

    -You seem to assert that Linux needs Mono to solve real world problems.
    Developers targeting Linux have decent toolkits to get the job done. They have several high level and low level languages of which development of is directed by the community, not by a few corporate entities. Java, PHP, Python, Perl, Ruby, C/C++. These languages are used successfully for almost everything. Meanwhile, what use case do these languages not fill, that Mono is trying to solve?

    Mono is a broken concept in Linux. You don't see a trillion entities trying to sell you a zip archive util or CD burning software under Linux, because free alternatives that are constantly updated exist.

    Leave a comment:


  • directhex
    replied
    Originally posted by kazetsukai View Post
    Don't even bother, these people are paid-by-the-hour Microsofties
    Is that a formal allegation?

    Leave a comment:


  • kazetsukai
    replied
    Originally posted by o247492 View Post
    You've made it abundantly clear that you don't know what you're talking about, that post should be the final nail in the coffin of your alleged expertise.
    Don't even bother, these people are paid-by-the-hour Microsofties spreading their Koolaid, even though noone's drinking. Linux developers don't need C# or .NET/Mono, there are clearly better alternatives like Java and Python.

    They refuse to recognize that the apprehension towards Microsoft isn't the only reason Mono isn't taking off. Hell, they don't even recognize that the apprehension towards Microsoft is justified (which is just insane).


    Originally posted by o247492 View Post
    2. C# is intended to coax better code out of unskilled developers(aka: code for dummies)
    They also refuse to recognize this. Like it or not, "automagic" memory management doesn't always produce the best (or even desired) results. It has always been up to the programmer to manager their own memory resource and clean up after themselves. Meanwhile, .NET pumps out "developers" that don't even know what memory allocation is, and we can guess how that will turn out by looking at the aftermath of VB6.

    Originally posted by o247492 View Post
    There is no C# program in existence that couldn't have also been done in C.
    Yeah, they truly believe C# is a magic language that can do things beyond the language that it itself was written in. See, useless.

    Originally posted by o247492 View Post
    C#, however, is more limited than C because some of the low-level access to the CPU and memory is abstracted away.
    They also refuse to acknowledge this- there are times where you want to or have to do your own memory allocation, or optimize special CPU instructions. They consider this an exotic, fringe case.

    Originally posted by o247492 View Post
    It is, beyond the shadow of a doubt, possible to create types and functions in C that can do literally anything that C# and the Mono library functions can do.
    Would the M$ trolls care to try and debunk this? I think not, since its a solid brick wall of logic and reason.

    There is no reason for a C/C++ developer to switch to using Mono/.NET to do development. None.

    Leave a comment:


  • XorEaxEax
    replied
    Originally posted by Dami55an View Post
    I think it is the best for games. Just look at games like World of Goo
    World of Goo was written in C++, they (2d boy) released a trimmed down version of the framework they used for WOG as open source.

    Leave a comment:


  • directhex
    replied
    Originally posted by narciso View Post
    World of Goo Linux doesn't need mono to run.
    Not a real human. The images in their post are supposed to infect Windows PCs with a virus.

    Leave a comment:


  • maxpfc
    replied
    Originally posted by droste View Post
    I think you're wasting your time. You cannot convince someone to use C# with .Net with words, especially not if they don't want to hear arguments. Someone has to _really_ use it to fall in love with it. Everyone I know that used it loved it. It really makes you able to solve the problems on a higher level and makes the code much more readable.

    I don't like Microsoft and can't stand most of the things they do. But .Net is awesome (note: I don't talk about Mono, because I never used it and can't say if it's as good as .Net).
    I agree totally, you have to use it to fall in love with it. I also love C++, but for different reasons. I also don't particularly like Microsoft's licensing strategies or their closed way of doing things, but things are changing. Take their DocX format for word documents, now OO.org can make XML markup word documents when before it was a propriety binary format that had to be reverse engineered. The fact is Mono is just not there yet, the classes might be there being worked on but the drag and drop toolbox leaves something to be desired. People in the Linux community are only going to become excited about .net after seeing what it can do on MS Windows, then bringing Mono up to the same standard. (Drag and drop Membership API, Reporting etc etc) Can't they see that the one thing that could make Linux great is standardization of installation and usage with something like Mono/.net. We thought we had it with Java, but nothing java made is fast enough. It just does not work. .Net is fast, interacts with the native OS unlike Java and to my mind is the solution. That excites me. So lets not bash .net. See it's possibilities, coding used to be about going to new frontiers, I challenge you check out .net (LinQ, Generics, Delegates, assemblies, Asp.net) and explore, then once you have it down pat and love it, I guarantee you will, bring that to the Linux world. You're the guy's used to using device contexts and HWND classes, you can see what a jump this is best. Like the good man above said I cannot convince you, check it out yourself, it's the next big thing whether you like it or not. .net in the form of Mono is soon gonna be the official language of Android and IPhone. It's the way things are going give it a try, and for gods sake if you like it, help get it onto a stable Mono version that is equivalent with .net. peace, never be stuck in a rut explore.....

    Leave a comment:


  • narciso
    replied
    Originally posted by Dami55an View Post
    I think it is the best for games. Just look at games like World of Goo
    World of Goo Linux doesn't need mono to run.

    Leave a comment:


  • droste
    replied
    Originally posted by maxpfc View Post
    Yes you could "do it in C", you know how many times I hear that? But it would not be as 1) concise 2) secure 3) readable 4) scalable I'll leave you with this, a recursive directory search the C# way and the c way.
    I think you're wasting your time. You cannot convince someone to use C# with .Net with words, especially not if they don't want to hear arguments. Someone has to _really_ use it to fall in love with it. Everyone I know that used it loved it. It really makes you able to solve the problems on a higher level and makes the code much more readable.

    I don't like Microsoft and can't stand most of the things they do. But .Net is awesome (note: I don't talk about Mono, because I never used it and can't say if it's as good as .Net).

    Leave a comment:


  • maxpfc
    replied
    I agree, but disagree about .net being for amature coders.

    Originally posted by o247492 View Post
    You've made it abundantly clear that you don't know what you're talking about, that post should be the final nail in the coffin of your alleged expertise.

    1. Compilers: They parse code into binaries containing CPU instructions and data. I could write a compiler for any language in C, then re-write it in C#, and then re-write it again in Python, and it wouldn't have anything to do with the capabilities of the compiler. The only thing that would be affected by the choice of language is ease of writing the compiler, and execution speed when compiling.

    2. C# is intended to coax better code out of unskilled developers(aka: code for dummies), but C# is not capable of anything that C and C++ can do. You could program literally anything in C, there is no C# program in existence that couldn't have also been done in C. C#, however, is more limited than C because some of the low-level access to the CPU and memory is abstracted away. It is, beyond the shadow of a doubt, possible to create types and functions in C that can do literally anything that C# and the Mono library functions can do.
    First off about me: I started off as a C then C++ coder I've got a three year diploma in C++/MFC I know Assembler and was a Linux sysadmin for an ISP for years. It's not about what you can or cannot do. Years ago when Java started out, there was a dream, a write once execute anywhere dream that we hoped Java would fulfill. Then it turned out that java, because of it's insistence to build EVERYTHING from the ground up and not using the native windowing systems etc was just too slow. C# is that language. It's fast, and epitomizes one thing INTELLIGENT DESIGN, to say it's a language for unskilled developers is ridiculous, C is a low level language, C# enables easy use of design patterns and other computer science concepts, We're moving towards things like WCF (windows communication foundation) that replaces COM, Web Services and a host of other clunky intermediate technology. A universal Data Abstraction Layer for all data sources (LinQ) and Generics (so much more than C++ Templates) SOAP and XML are the basis for WCF and the design patterns to learn to create endpoints and service contracts, abstract classes and interfaces to implement SOA architecture are built into C#. C++ has it's place, and that is the same place it's been in since 1985. Creating low level time critical apps where performance out-ways RAD development needs. Thats why C++ is still included in Visual Studio and regular updates are made to the MFC. We need it. But I could argue(and will argue) that doing pointer arithmetic, and dynamic memory management is chips compared to learning a new way of doing things like C#. Watch a video on LinQ, search for "Microsoft LinQ to Sql tutorial" do the same for WCF or Reflection (finding out type information at run time, or creating new Types at run time) It's about working smarter not harder, but it's not easy, I'll wager that learning the new paradigm will be the hardest thing you ever learned. yes it makes it easy for stupid people to get simple things done without having to much starting off, but the more you learn the more you find there is to know. As far as C having all these features that C# does not, please, enlighten me, then I'll give you a few pages of stuff C# can do that C cannot do natively, without building class libraries that would take years. As I said if you want to go Low level with C# you can pointers, direct calls to win32 functions, low level DirectX/GDI+ access, you name it. Access native dll's no problem, access reverse stack parameters from other languages in DLL's no problem. All I'm saying is that you might find that the DESIGN learning curve and usefulness of C# and .net out ways the "Complexity" of c/c++ who anybody who understands win32 and *x6 instruction set can pick up quite easily. C/C++ coders always have such big egos, this is not Visual Basic Boys, Implement a real life factory design pattern using a LinQ data source (dbml) and service objects through a WCF service contract with multiple endpoints and implemented in SOAP and XML. Don't use wizards, do it by hand, then I'll come and do some pointer arithmetic and assembler access to create a small device driver, lets see which is REALLY more complex to learn. As I said this is not Visual Basic. It's an extremely powerful and versatile framework that people in the know use every day and thank god for it's sheer genius. Yes you could "do it in C", you know how many times I hear that? But it would not be as 1) concise 2) secure 3) readable 4) scalable I'll leave you with this, a recursive directory search the C# way and the c way. First the c way:

    Code:
    bool find_file( const path & dir_path,         // in this directory,
                    const std::string & file_name, // search for this name,
                    path & path_found )            // placing path here if found
    {
      if ( !exists( dir_path ) ) return false;
      directory_iterator end_itr; // default construction yields past-the-end
      for ( directory_iterator itr( dir_path );
            itr != end_itr;
            ++itr )
      {
        if ( is_directory(itr->status()) )
        {
          if ( find_file( itr->path(), file_name, path_found ) ) return true;
        }
        else if ( itr->leaf() == file_name ) // see below
        {
          path_found = itr->path();
          return true;
        }
      }
      return false;
    }
    Now the C# way:

    Code:
    void findFile(string filename, string directory)
    {
    	// Get list of files in the specific directory.
    	string[] files = Directory.GetFiles(directory,"*.*",SearchOption.AllDirectories);
    	If(files.Contains(filename))
    	{
    	    Console.WriteLine(files[files.Indexof(filename]);
    	}
    }
    And my mine prints is as well, if I just wanted to know if it was there it would have been a one liner.
    Last edited by maxpfc; 22 September 2012, 01:10 PM.

    Leave a comment:

Working...
X