Slashdot Mirror


Miguel de Icaza Explains How To "Get" Mono

LeninZhiv writes "It's perhaps the most controversial project in the open source world, but this mostly stems from misunderstanding: Mono, the open source development platform based upon Microsoft's .NET framework. Immediate reactions from many dubious Linux developers have ranged from confusion over its connection with .NET to wondering what the benefits of developing under it are. Throughout the course of its four years of intense development, sponsored by Novell, Mono founder Miguel de Icaza has had to frequently clarify the .NET issue and sell the community on it. In this new interview, Howard Wen asks Miguel to explain himself one more time."

559 comments

  1. Anyone Have Actual Experience With Mono? by the_mad_poster · · Score: 5, Insightful

    Rather than continuing to de Icaza drone on and on trying to vindicate his project again, is there anyone here who has actually USED Mono and has something to say about it one way or another? Particularly interesting issues:

    - Mono Vs C++
    - Mono Vs .NET C#
    - Mono compatibility claims

    Insight from some USERS would probably be more beneficial now than more bickering over what Mono is or whether it should even be.

    --
    Alito: A vote for Alito is a punch in the eye to put that bitch back in her place!
    1. Re:Anyone Have Actual Experience With Mono? by arthurs_sidekick · · Score: 2, Insightful

      Only the latter two are apples to apples, really. If you mean C# vs. C++, well, considering strictly the language, C# *overall* seems like it is more productive than C++, which shouldn't be too surprising. That's not, of course, to say that you should use C# instead of C++ everywhere. On the other two issues, I can't really comment.

      --
      "Oh, I hope he doesn't give us halyatchkies," said Heinrich.
    2. Re:Anyone Have Actual Experience With Mono? by kc8kgu · · Score: 4, Informative

      About a year ago, I wrote a C# webserver that did basic authentication, cgi, and directory browsing. It had a GUI but I partitioned it so that the webserver wasn't depenent on the GUI interface. I downloaded mono, created a console front end, compiled and ran it. Flawless. I didn't have to change one single line of code in the webserver class. Thats all I need to know. (BTW, this was on a windows box.)

    3. Re:Anyone Have Actual Experience With Mono? by xtracto · · Score: 1

      Well, they are certainly some projects made with MONO (as TFA states) but IIRC these are from the same developers of MONO. It would be interesting to see if someone outside the project has done anything useful. And of course, if someone, ANYONE has used it for an enterprise app.

      --
      Ubuntu is an African word meaning 'I can't configure Debian'
    4. Re:Anyone Have Actual Experience With Mono? by Quixote · · Score: 2, Informative
      I was wondering the same, too. But in TFA, the first figure is captioned:
      Here we see F-Spot, a photo management application for the GNOME desktop that was developed under Mono.

      Here's the homepage for F-Spot, FWIW.

    5. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 1, Insightful

      I've used MS C# (nice, no real difference from anything else) and I'd like to try Mono, but I want somebody else to tell me which ide to use. I mean, is vim still the answer or is there something comparable to Studio?

    6. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 0

      BTW, this was on a windows box.

      ah-HA!

    7. Re:Anyone Have Actual Experience With Mono? by jone1941 · · Score: 5, Informative

      I'm sure I know less than most, but here are my general experiences with it.

      Mono Vs C++ - this is not a normal comparison due to one being a byte-code language and the other being compiled. That being said, I'm continuously impressed with mono's speed (especially compared to Java). It's current downside is an increase in memory utilization (compared to c, c++).

      Mono Vs. .Net C# - The only major difference is mono's lack of complete support for windows.forms. This is windows primary API for building C# gui apps under windows. Mono is working on an implementation of windows.forms, but I personally prefer gtk# which is portable (at least to windows afaik). Also, they have and ASP.net implementation which is suppose to have great compatability but I can not speak from experience here

      Mono compatability claims - here's the shocker, it really is very compatable with microsoft's C# .net platform. We're talking about ECMA specifications here, so they really can strive for compatability, it's less of (though not completely) a moving target than the WINE people have to deal with. They use to have a page listing package status, I can't seem to find the link anymore.

      Disclaimer: I've been working on various small personal projects using mono for the last 6 months and have been using various apps centerend around mono for about the same.

      --
      Fear trumps hope and ignorance trumps both
    8. Re:Anyone Have Actual Experience With Mono? by hey! · · Score: 2, Interesting

      Well, interesting. This tells us the CLR is pretty good. But what about the libraries? Did you use Microsoft's Windows.Forms or Monos?

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    9. Re:Anyone Have Actual Experience With Mono? by kc8kgu · · Score: 4, Informative

      No forms at all, gtk or windows. As I said I whipped up a console (cmd line) front end just for the mono test. I should also mention that this webserver was heavily multithreaded - which is another important yardstick for the maturity and stability of their code.

    10. Re:Anyone Have Actual Experience With Mono? by cardpuncher · · Score: 2, Interesting

      Good question. Every time I look at the site to see how it's doing, what's implemented and what's not I go cross-eyed. And elsewhere.

      Which is a shame, because the .NET environment is fundamentally very well designed and, despite its origins in the evil empire, actually has a lot going for it. And Mono should give the FOSS movement a chance to play their own game of "Embrace and Extend".

    11. Re:Anyone Have Actual Experience With Mono? by Danuvius · · Score: 1

      How about Mono vs DotGNU?

      Seems like that would be a pertinent comparison:
      http://www.dotgnu.org/

      --
      Akarsz Magyar Gentoo fórumot? Akkor
    12. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 0
      Mono Vs C++ - this is not a normal comparison due to one being a byte-code language and the other being compiled

      This is not a normal comparison because C++ is a programming language and Mono is a .NET framework implementation. C++ could perfectly compile into CLR.
    13. Re:Anyone Have Actual Experience With Mono? by hey! · · Score: 1

      Thanks. The impression I got from playing around with it is that the CLR is in very good shape. If there's going to be an issue, it will be in the quality of the libraries. I've messed a bit with Windows.Forms, and it does seem to work, but the look is a bit clunky.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    14. Re:Anyone Have Actual Experience With Mono? by jone1941 · · Score: 1

      Very true, I wasn't thinking about it that way. As an asside there is actually another programming language being worked on which compiles for the CLR. Nemerle - I haven't taken the time to evaluate it yet, but this is another interesting project resulting from the creation of mono. The other thing worth mentioning is that C++ vs C# both running in the managed runtime where C# is compiled for the CLR should have extremely similar performance numbers.

      --
      Fear trumps hope and ignorance trumps both
    15. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 0

      Correct me if I'm wrong but doesn't Mono only support C#? So, if you're ASP.NET application is written in VB.NET, you're sort of out of luck.

      Sort of defeats half the point of .NET, but I'm sure it will be fixed someday.

    16. Re:Anyone Have Actual Experience With Mono? by jusdisgi · · Score: 0, Offtopic

      Offtopic? Come now guys, this is the pun we've all been waiting for.

      --
      Given a choice between free speech and free beer, most people will take the beer.
    17. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 1, Insightful

      Sweet!
      Kinda like java's functionality 8 or 9 years ago.

    18. Re:Anyone Have Actual Experience With Mono? by chiph · · Score: 2, Interesting

      I've been a C# developer for a couple of years now, and have been keeping an eye on Mono. Now that I have a Mac mini, the idea of using a language I know vs. having to learn Objective C, combined with the Cocoa# GUI framework, is very attractive.

      I'll be doing some serious downloading this weekend!

      Chip H.

    19. Re:Anyone Have Actual Experience With Mono? by darekana · · Score: 2, Interesting

      It was easier for me to setup XSP and Mono than Tomcat and Struts/Java etc. It might be because XSP/Mono is still relatively immature compared to the bevy o' java frameworks we have to choose from. But sometimes having too many choices wastes lots of time for us newbies. Makes it hard to choose the best solution and causes confusion etc.
      Here is the Ajax style Japanese/English dictionary site I'm building with it.

      On the other hand, Eclipse is way beyond Visual Studio right now and it makes devel with Java almost fun.

      Best Regards,

    20. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 5, Interesting

      This is a bit long-winded, bare with me, I'm practically a ./ virgin ;)

      Some time ago, getting spontaneously fed up with C++ with managing memory, obscure STL bugs and so forth, I decided to check out if Mono 1.1.4 (C#) would cut if for my application performance-wise.

      Now, this application is a quite performance hungry scientific comptation app wich makes heavy use of vector and matrix operations so the first thing I did was port a sub-set of my home-grown library for this to C#.

      The classes use operator overloading to facilitate greater readability in the main code. I then proceeded to implement a fairly simple set of algorithms to test the performance of C#/Mono vs C++. Although I did expect some sort of overhead and slowdown in C#, I was quite surprised and discouraged to find that overall, compiled C++ was faster than Mono's JIT by several orders of magnitude (i.e. 0.018s vs. 1.2s). As is well-known, in theory a good JIT should be able to handle some things better than a static compiler can - and I expected this to be the case with Mono's JIT as well, so to at least lessen the performance impact somewhat.

      Now, I have seen what Sun has been able to do with their JIT compiler the last couple of years. I many cases Java code executing under their JIT will have a acceptable (small) overhead compared to native C++ code - and the productivity increase of dealing with managed code will more than make up for this. Unfortunately, the powers-that-be in the Java language community decided to ban operator overloading, apparently because it can be mis-used. As if one cannot create functions that don't do what you would think they do as well :P Be that as it may, enough flames have been traded on this subject in the past; for me, operator overloading is a major point when doing scientific algorithms, so java is not an option.

      I started to dig a little to find out why Mono's JIT fared so poorly in my case (which admittedly probably is a fairly untypical use). The reason seems to be that pracically none of the operator overloaded operations were getting inlined. And the objects returned from e.g. a vector addition operation were actually being created instead of being temp-used by the caller (I forget the term for this type of optimization). Also, it seemed that only extremely basic loops/brances would be optimized.

      A bit of googling shows that this is a known problem in Microsofts JIT as well. The reason is supposedly the need for a balancing of application-startup and JIT time. Reports pertaining to the new JIT shipping with the newest .Net framework beta indicates that this will still be present in the next version of the MS .Net JIT.

      Now, I appreciate that my kind of app is probably on the fringes of what could be considered "a typical" .Net app, but I'm still dissapointed with the performance compared to other JITed languages like, say, Java.

      I also tried the Mono AHT compiler with various settings with no significant performance gain for my examples (and quite a bit of slowdown in some cases).

      So, end of story; I'm back with C++, with it's irritating - but familiar - quirks and methodolgy. As for now, there still are no other (OO) languages that meets my needs for high performance and language convenience (operator overloading) - and yes, I've looked at Python+Pyrex/Psyco as well.

      Hopefully this issue will be address in a future Mono JIT, but I have a feeling it may not be high on the priority list as most "ordinary" apps will not suffer from this kind of problem.

      YMM, of course :)

    21. Re:Anyone Have Actual Experience With Mono? by IAmTheDave · · Score: 2, Informative

      I recently had to write a C# interface to OpenLDAP. The easiest way I could find was to use Novell's LDAP library for C#. But it is built on Mono, and I didn't have time to crunch through the thousands of lines of code and rebuild the binary for Microsoft's .NET framework. Interestingly enough, the only thing I needed was the Mono.Security.dll file, which is referenced from the Novell LDAP binary. So even though the Novell binary and Mono.Security.dll were written and compiled against Mono, having just that one dll in my referenced path allowed me to write my entire app in Microsoft .NET - zero recompiling, zero fuss. Point is, interoperability worked really nicely for me.

      --
      Excuse my speling.
      Making The Bar Project
    22. Re:Anyone Have Actual Experience With Mono? by XMyth · · Score: 1

      Theoretically you could use VS.Net and just run the compiled apps on Mono. Only problem is libraries, but I believe Windows Forms support is mostly working on Mono.

    23. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 0

      Oh, I forgot - there were no "box/unbox" operations involved and I tried both static (class) and non-static operator methods.

      And I would like to add that this isn't meant as a "whining" feedback. Kudos to the Mono developers for their fantastic work - I just wanted to point out that Mono (or indeed MS .Net) might not yet be suitable/mature enough for all kinds of applications.

    24. Re:Anyone Have Actual Experience With Mono? by omicronish · · Score: 4, Interesting

      Yeah, I was coding an IRC bot in C# using .NET 2.0 beta on Windows with Visual Studio 2005 Beta 1, and thought it'd be interesting to see if Mono can handle it. I'm a Windows user, but have Gentoo installed to play around with. My experience:

      • Took a while to discover how to setup a beta release of Mono on Gentoo, since it's masked. But after I figured it out installation was a breeze.
      • After getting the code on my Gentoo machine I had to figure out a way to compile it, since an MSBuild-equivalent isn't available yet for Mono, and so I couldn't use the solution file provided by VS. MSBuild is basically the next generation of the build process for Visual Studio, and is quite powerful (not limited to Visual Studio, not limited to programming projects, etc.). In the end I simply constructed a command that used csc (or I think the Mono C# compiler that supports generics).
      • Most of the compile errors were due to missing System.Collections.Generic.Dictionary. It was a stub last I checked, so I wrote my own Dictionary that used System.Colletions.Hashtable. IDictionary was also missing some members, so I had to write my own IDictionary interface. Note that generics are part of .NET 2.0, which is still in beta, so I didn't expect any of this to work completely anyway.
      • After fixing compile errors there was a weird bug that might've been part of the JITer or the way Mono executed the code. I can't remember what it is now, but I worked around it.
      • And... it worked!! Code written using a beta IDE on a beta framework works with Mono with only minor problems. I was pleasantly surprised.

      I have yet to test Mono with .NET 1.1 code, mainly because I don't have anything interesting since moving to 2.0 beta. But given what I've seen with its implementation of a beta framework, I have a feeling 1.1 is well-implemented. Maybe other areas such as Winforms are poorly implemented at the moment--I don't know--but they've made excellent progress already.

      As for Mono versus C++, this is basically a .NET versus C++ question, which has led to large flame wars everywhere I've seen it asked. My personal opinion? Well, C++ was the first language I learned, and I had been using it for 6-7 years before I gave C# a try. I've been using C# ever since, around 2-3 years. Maybe if you're doing something that requires crazy amounts of performance C++ would be a better fit, but I don't do that, and the simplicity gained through C# and the .NET libraries far exceeds any performance penalties I experience (which aren't even large in the first place for the work I do).

      Mono versus .NET C#: Of course Mono is behind since Microsoft is driving the development of C# 2.0. But from what I see, it seems Mono is mainly behind in the implementation of the .NET libraries. All of the C# 2.0 language features I used worked fine.

      C# 2.0, .NET 2.0, and Visual Studio 2005 will likely be released later this year. Mono has reached impressive levels of compatibility already with C# 2.0, and compatibility with .NET 2.0 classes seems to be coming along fine. I'll definitely be keeping my eyes peeled for future releases.

    25. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 0

      Touché mr spoon, touché

    26. Re:Anyone Have Actual Experience With Mono? by man_of_mr_e · · Score: 1

      Yes and no. There is no VB.NET compiler for Mono, but you can compile on Windows and run a VB.NET app on Mono (with some limitations... VB.NET apps have a minor library dependancy issue which I'm not sure is ported under Mono yet).

      I've heard there is a VB.NET compiler in development, but I don't know its status.

    27. Re:Anyone Have Actual Experience With Mono? by 0xABADC0DA · · Score: 3, Insightful

      Except that Java sans GUI did work flawlessly 9 years ago, and today Java is at least twice as fast as mono and it always will be faster since CLR "assemblies" prevent the most effective dynamic optimizations.

    28. Re:Anyone Have Actual Experience With Mono? by TheBracket · · Score: 3, Informative
      My object-relational mapping library (Persist, shameless plug!) runs smoothly on both Mono and Windows, with the exception of ODBC databases - Mono's ODBC stack doesn't support certain data types yet. It is actually faster under Mono than under Windows in some circumstances, and about the same speed normally. I've also created the middleware of a 3-tier mental healthcare billing system on Mono, and it handles remoting (with Windows-based clients, as well as cross-platform GTK# clients) pretty much perfectly. Implementing encrypting remoting sinks under Mono was a real pain, but is getting easier as the remoting code improves. Other than that, the only hassles have been to ensure that I ask the OS for paths, directory separator characters, and am careful about case sensitivity in filenames.

      Mono really is a godsend in this respect. I have a lot of C# experience, as do the programmers with whom I work - it is a very productive language for medium to large middleware projects. Some of our larger projects require that we lease both the hardware and software stack to our clients, most of whom are non-profits who don't have huge amounts of cash on hand. Windows licensing for a small server could seriously eat into any profit margin when dealing with 50 remote offices (with about 20 users each), without a dedicated net connection (so a web-based app won't help). Mono lets us install a small Debian-based server at each small location, reducing licensing costs to zero - but not requiring that we abandon our existing codebase/installed base by switching to Java. All told, savings can easily run into the tens-of-thousands per larger client, per year.

      --
      Lead developer, http://wisptools.net
    29. Re:Anyone Have Actual Experience With Mono? by shaunbaker · · Score: 1

      How is this insightful, mono is not a language, mono is an environment. You must first understand what .net actually is. The idea is that the langauage you write a program in is largely irrelevant since all languages that operate on the .net platform are compatible with each other at the "compiled" level without such interop go betweens such as COM (i know compiled is slightly a misnomer, but it works conceptually). So you write a class in VB.Net, I write one in C# and chuck down the hall writes another class in J#, but magically when you hit compile it all just works. This is due to an intermediate representation that all the higher languages get compiled into. Mono is nothing more than the environment (which is a standard) in the Linux world. They also have implemented most of the standard libraries. I have used it, frequently and it works, one executable written in different languages working on multiple platforms without a VM overheard like java.

    30. Re:Anyone Have Actual Experience With Mono? by Darren+Winsper · · Score: 1

      Care to back up those statements with some evidence?

    31. Re:Anyone Have Actual Experience With Mono? by kc8kgu · · Score: 5, Insightful

      I don't normally feed the trolls, but I'll make an exception in your case. I'm tired of hearing how great Java is especially compared to C#. I honestly don't know which is faster - I haven't tested them myself. But, I would guess that java, being much older then C#, has had time to do a good bit of optimization and may very well be as much as 20% to 30% faster.

      But who cares?

      If you need balls to the wall performance, you use C, C++ or assembly - plain and simple. It's not about performance. If it were, no one would have ever heard of Perl, Python, PHP, or Ruby. You don't need blistering speed for 99% of the apps you use in a day. And computer time is a thousand times cheaper then developer time. So unless you're writing an OS or crunching numbers speed is usually a secondary concern.

      IMHO Java's only useful feature is that it has the best platform portability in computing history (although it isn't perfect). Java apps run about as well on OS X as on Linux as on Windows as on Solaris on their various hardware. That is a wonderful thing. However, Java GUIs pretty much suck on every platform.

      As for C#, Ballmer had it right when he said Developers! Developers! Developers!. C# has a completely awesome IDE and a consistent and elegant language that hasn't been patched and tinkered with haphazardly a dozen times. And although I think C# is syntactically and semantically more elegant and consistent and well though out, those facts are irrelevant as well. VB didn't take the lion's share of professional software development because people loved the ascetics of the language. It was all about more easy it made a programmers job. You could do in a day in VB what would take you a week with C and the Win32 API and have fewer bugs to boot. How awesome is that. So now we have the wonderful rapid easy development environment of the VBs of yore mixed with the sugary love of consistent syntax and semantics that is the C# language.

      That's what Java didn't have and doesn't have, and probably never will

      DISCLAMER:
      My experience is mostly based on running things in windows. I have tried Eclipse and NetBeans as recently as a couple months ago. I'm a fan of Linux and open source and tinker with Debian at home. But, I am an independent software contractor and value my time and Visual Studio kicks ass.

      And remember kids, Linux is only free if your time has no value.

      Daniel Carter
      KC8KGU@hot?.com
      ?=mail

    32. Re:Anyone Have Actual Experience With Mono? by aurelien · · Score: 1

      Have you tried Common Lisp, then ?
      It will allow you to forget about C++ annoyances and get top performance out of the compilers.

      --
      aurelien
    33. Re:Anyone Have Actual Experience With Mono? by n0-0p · · Score: 2, Insightful

      Wait a second, one of the big pushes with the .NET CLR was to make assemblies that could be aggressively optimized. For example, the flatenned-tree structure of the CLR is for improved JIT efficiency. I'm no expert and honestly haven't benchmarked the two, but I question what you base your statement on. Please provide some evidence to support your point and clarify the issue.

    34. Re:Anyone Have Actual Experience With Mono? by iBod · · Score: 1

      Ok AC, can you show us some 'flawless' software that you have created?

      There is no such thing as 'flawless' software.

      Software is made by people, and we are all mortal, and we all make mistakes.

      As for the language, well, I think C# and Java actually save you from your mistakes - but clearly you think otherwise.

      To claim Apache is 'flawless' is absurd (I'm sure it's creators would agree).

      Apache is good - very, very good - but 'flawless' it aint!

    35. Re:Anyone Have Actual Experience With Mono? by aichpvee · · Score: 0
      C# has a completely awesome IDE

      Maybe Visual Studio or whatever MSFT packs C# with has an "awesome IDE", but the language certainly doesn't. C# isn't exclusive to VS.net or even MSFT.

      And remember, son, your time obviously has no value if you waste it on Debian.

      --
      The Farewell Tour II
    36. Re:Anyone Have Actual Experience With Mono? by LDoggg_ · · Score: 1

      And remember kids, Linux is only free if your time has no value.

      Man, I was feeling the post up until that jab. Had to do it huh?
      You can spend equally large amounts of time with operating system issues on that other platform as well. Enough to level the playing field in that respect.
      You can't deny the fact that the debian you've been tinker with costs less than a windows XP license from a cost of entry perspective.

      --

      "If they have both, tell them we use Linux. And if they have that, tell them the computers are down." -Dave Chapelle
    37. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 0

      VIM is always the answer. The question is, "have you remapped your escape key?"

    38. Re:Anyone Have Actual Experience With Mono? by Rolan · · Score: 1

      Wow. You must have low expectations. I cannot stand VS.NET. It has none of the refactoring and proper working code completetion tools that Eclipse and Netbeans has. I personally think its a horrid IDE.

      Looked at VS.NET 2005 yet?

      --
      - AMW
    39. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 0
      And I suppose Lisp "solves" his operator overloading requirements by kiboshing operators altogether.

      (let (e (* m c c)))

      (let (p (/ (* n R T) V)))

      Yuck.

    40. Re:Anyone Have Actual Experience With Mono? by Rolan · · Score: 1

      You can spend equally large amounts of time with operating system issues on that other platform as well. Enough to level the playing field in that respect.

      You mean like the week I've spent with Microsoft working out an MDAC issue on Windows 2003 which still isn't resolved?

      --
      - AMW
    41. Re:Anyone Have Actual Experience With Mono? by lupus-slash · · Score: 1

      it always will be faster since CLR "assemblies" prevent the most effective dynamic optimizations.
      You have no idea what you're talking about. It's the other way around: some of the classloader features in java prevent some dynamic optimizations.

    42. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 0

      Lisp has its own set of annoyances. This is especially true if you are writing code that requires high performance. You need to understand what the compiler is doing with your Lisp code and the performance implications of different techniques and idioms. There are also times when you will have to bite the bullet and accept that for some sections of code Lisp just isn't going to cut it, and then you go back and write those sections in C or C++ or something.

    43. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 1, Funny
      Ok AC, can you show us some 'flawless' software that you have created? There is no such thing as 'flawless' software.
      /* true.c: do nothing, successfully. */

      int main (void)
      {
      return 0;
      }
      A thousand dollars to the first person to identify a flaw in the above code.
    44. Re:Anyone Have Actual Experience With Mono? by m50d · · Score: 1

      Yeah, that's why my Java programs start up faster than my Mono programs. Oh, wait.

      --
      I am trolling
    45. Re:Anyone Have Actual Experience With Mono? by Screaming+Lunatic · · Score: 1
      Unfortunately, the powers-that-be in the Java language community decided to ban operator overloading, apparently because it can be mis-used.

      Java also doesn't have value-types, which are a prerequisite for an implementation of operator overloading that would be useful.

      http://mindprod.com/jgloss/valuetype.html

      For example, in Fortran everything is a value type. And that is convenient for optimization because you don't get any pointer aliasing. That is why a lot of math libraries are implemented in Fortran.

      In Java, everything except for primitives are reference types.

      In C/C++, you get to choose if you want pass around value types or reference types. Ditto for C#, which is more explicit in the syntax for this feature.

    46. Re:Anyone Have Actual Experience With Mono? by nightski · · Score: 0, Troll

      That is really pathetic. A whole week to solve one issue? Man, I wouldn't want to hire you! Doesn't matter if it was Windows or Linux!

      --
      "Ideas without action are worthless."
    47. Re:Anyone Have Actual Experience With Mono? by nightski · · Score: 1

      iBod,
      Here is my chunk of flawless software!

      using System;

      public class HelloWorld
      {
      public static void Main()
      {
      Console.WriteLine("Hello World!\n");
      }
      }

      Just kidding though :-)

      --
      "Ideas without action are worthless."
    48. Re:Anyone Have Actual Experience With Mono? by Rolan · · Score: 2, Funny

      That is really pathetic. A whole week to solve one issue? Man, I wouldn't want to hire you! Doesn't matter if it was Windows or Linux!

      That's alright, I don't want to work for anyone who makes decisions and judgements without the relevant information, i.e. you.

      --
      - AMW
    49. Re:Anyone Have Actual Experience With Mono? by nightski · · Score: 1

      Well if I actually was hiring you I probably would ask for more details :-) But honestly, considering my experience with Windows administration that just seems really extreme for any admin problem.

      --
      "Ideas without action are worthless."
    50. Re:Anyone Have Actual Experience With Mono? by Tarwn · · Score: 2, Informative
      Wow. You must have low expectations. I cannot stand VS.NET. It has none of the refactoring and proper working code completetion tools that Eclipse and Netbeans has. I personally think its a horrid IDE.

      Wow. Says it all really. The fact that you cannot stand VS.Net probably in no way hampered your ability to find the options you like.
      I know of at least three refactoring add-ins for C#, one of which (at least) integrates itself directly into the IDE and menus. And thats 30 seconds with Google and not having a clear idea of what refactoring is.
      As far as code completion goes, I'm not sure what you thought was missing. Granted I stopped using IDE's for Java back in 2000, so I'm not sure of Eclipse (et al)'s capabilities. I'm fairly certain that automatically finishing what I am typing, automatically doing braces/etc, etc is probably the case though. Or maybe giving you the option to add event handlers (press tab to generate) or the functions the event handlers point to (press tab to generate) or setting up your namespace and class templates, as well as auto-completion (even in HTML view for ASP.Net)...I digress.

      As for the syntax of C#, when they get proper exception handling and stop allowing VB style code to enter in, I'll be happy.

      Define proper. As far as I can tell the only difference between try/catch/finally in Java and in C# is that classes that throw exceptions must(can? my Java is several versions out of date and rusty) be declared with "throws exception". cascading catches are supported, custom exception objects, no exception object at all for a "catch all", etc. But don't take my word for it, here is google to the rescue again.

      As far as the rest of your ill-formed sentance, I think your implying there is VB-syntax code in (or required by) C#. Please to be showing me an example.

      Disclaimer: My work desk has a windows and a linux box on it, I abhor ASP.Net, and learned/used Java before C# or VB.Net.
      --
      Whee signature.
    51. Re:Anyone Have Actual Experience With Mono? by lupus-slash · · Score: 1

      If the speed difference is so big, please file a bug report at bugzilla.ximian.com with your test case so we can check the generated code.
      You also may want to use the -O=inline option.

    52. Re:Anyone Have Actual Experience With Mono? by Daytona955i · · Score: 5, Insightful

      Normally I don't feed the trolls either but....
      IMHO Java's only useful feature is that it has the best platform portability in computing history (although it isn't perfect). Java apps run about as well on OS X as on Linux as on Windows as on Solaris on their various hardware. That is a wonderful thing. However, Java GUIs pretty much suck on every platform.
      Yes, java apps run the same on all the platforms but to say their GUIs pretty much suck on every platform means that you are really misinformed or are basing your assumptions on things you've seen years ago. Take the bittorrent client Azureus... it looks just like any other windows program. The eclipse IDE, again looks just like a windows program. They are both written in Java. So if you think they look bad then you think that all programs on said windowing systems look bad.

      As for C#, Ballmer had it right when he said Developers! Developers! Developers!. C# has a completely awesome IDE and a consistent and elegant language that hasn't been patched and tinkered with haphazardly a dozen times. And although I think C# is syntactically and semantically more elegant and consistent and well though out, those facts are irrelevant as well. VB didn't take the lion's share of professional software development because people loved the ascetics of the language. It was all about more easy it made a programmers job. You could do in a day in VB what would take you a week with C and the Win32 API and have fewer bugs to boot. How awesome is that. So now we have the wonderful rapid easy development environment of the VBs of yore mixed with the sugary love of consistent syntax and semantics that is the C# language.
      Personally I love the JDeveloper IDE from Oracle. However eclipse is nice once you get it setup. Visual Studio is ok but it still doesn't make up for the fact that you're still having to write in C# or some other windows bastardization of a language.

      That's what Java didn't have and doesn't have, and probably never will
      Have what a dominace? I dunno, I like what google has done with java and most sites that use Oracle are now starting to use java as well because Oracle is starting to get behind it. .NET has what.... Microsoft? Ok so mono ports it to linux but you're still limiting yourself. Java runs on just about anything so if Microsoft and linux both go away tomorrow you don't have to throw away any of your code.

      DISCLAMER:
      My experience is mostly based on running things in windows. I have tried Eclipse and NetBeans as recently as a couple months ago. I'm a fan of Linux and open source and tinker with Debian at home. But, I am an independent software contractor and value my time and Visual Studio kicks ass.

      I value my time as well, that's why I prefer Linux. No more hunting through countless windows to find the right configuration tab... doh, windows moved it again. I can't remember where a config file in Linux is I can search for it. Can you search for a tab in a window? I work for a very small software company and we briefly considered .Net but it was only a brief thought. With Oracle and JDeveloper it took us very little time to get our stuff up and running. I've used Visial Studio and I really don't see what the big deal is. It's just another IDE that I would put on par with eclipse. However, I still prefer JDeveloper although I will eventually look at some of the plugins for eclipse and it may meet our needs as well. (JDeveloper is free and can be used with other DBs as well so it's not really an issue right now)

      Of course as you said, Who cares. I'm not going to convince you to use Java and you're certainly not going to convice me to use .NET so we'll just have to wait and see when Microsoft will decide to stop supporting it and force you to upgrade to .NET2006 and backwards compatibility will kindof work except for any networking features because all the network stuff has been rewritten. (Laugh... that was a joke)

    53. Re:Anyone Have Actual Experience With Mono? by lupus-slash · · Score: 1

      Depends if you really wanted to print an empty line as well. :-)

    54. Re:Anyone Have Actual Experience With Mono? by ztwilight · · Score: 1

      Ok AC, can you show us some 'flawless' software that you have created? There is no such thing as 'flawless' software. /* true.c: do nothing, successfully. */ int main (void) { return 0; } A thousand dollars to the first person to identify a flaw in the above code.

      Ok. Since, you never stated which language to compile your code in, I can find at least a hundred flaws. Your code doesn't compile in Python, Perl, JavaScript, Ruby, Eiffel, AppleScript, etc. etc... That'll be one thousand dollars please.
      --
      Who moved my sig?
    55. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 0

      "[...] considering my experience with Windows administration that just seems really extreme for any admin problem."

      Comment as a disinterested third party to this discussion:

      It's one thing when Windows buffs always seem to reflexively shift blame to hapless Windows users, but this goes much further. Here is a first-hand allegory accusing MS and in effect, the alleged bug victim is being called a liar, for no good reason that I can see. This seems like an extreme mental leap for a fan of any OS, a new level of "rabidness" if you will. If I were a Windows fan I think I would be embarrassed.

      To Mr/Ms nightsky, using rationality as your guidepost, I think some serious self-examination is in order (assuming you are not some kind of paid astroturfer.)

    56. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 0

      I write one in C# and chuck down the hall writes another class in J#, but magically when you hit compile it all just works. ...as long as you are exposing things that are applicable to the LCD aspect of the CLR. There are a few things in C# that won't work in VB.Net or J#, etc.

      Probably the one cool thing with J# is that it should be able to expose to .Net Java 1.14-based classes. At least, that's how NakedObjects works in .Net.

    57. Re:Anyone Have Actual Experience With Mono? by kc8kgu · · Score: 1

      The main function takes an int and char** as parameters, all the way back to K&R c. Many compiliers will barf on what you wrote.

      When can I expect my check.

      Thanks

    58. Re:Anyone Have Actual Experience With Mono? by 0xABADC0DA · · Score: 3, Informative

      The flattened tree is equivalent to the stack-based layout of Java opcodes (since the JVM knows the arity of each method call) so that's just "revisionist naming" practiced in C# and its libraries to not look like a pure rip of Java.

      Assemblies aggressively optimized means they are internally linked ahead of time like a normal DLL, so internal inlining uses static rules. Cross-assembly inlining is also more difficult. Basically .NET is faster loading but slower at runtime. Check the language shootout for instance.

    59. Re:Anyone Have Actual Experience With Mono? by hedge_death_shootout · · Score: 1

      Java [...] always will be faster since CLR "assemblies" prevent the most effective dynamic optimizations.

      If this is true, then why is the CLR's python implementation (in pre-alpha) ALREADY faster than the (mature) JVM implementation?

      Arent you talking rubbish?

      PS: they were both written by the same guy.
      (performance figures: pystone benchmark)

      PPS: the same benchmark has .NET python also faster than the main version of python implemented in C!

      Ho hum, I wonder when the CLR will catch up with that pesky JVM...

    60. Re:Anyone Have Actual Experience With Mono? by aztracker1 · · Score: 1

      As far as a build system, there is always NAnt ... it works pretty well, and ties in with NUnit (for unit testing).

      As far as IDE's go, VS.Net is pretty much there, I'm honestly not fond of its' forms (web and gui) editors.... I've been using #develop almost exclusively for about 6 months now, and it took some getting used to, but at this point, I like in better than VS ... MonoDevelop is based off of sharpdevelop, and the projects are pretty portable between the two. MonoDevelop doesn't have a forms tool, but if you use Glade# you can use the glade editor for that functionality, though I like SWF.

      --
      Michael J. Ryan - tracker1.info
    61. Re:Anyone Have Actual Experience With Mono? by Wdomburg · · Score: 1

      Visual Basic and Java and Python and Oberon and Object Pascal and Boo and Nemerle and Component Pascal and Forth and Lisp and Smalltalk and Logo and Tachy.

      Some of the packages are still in the larval stages, but they're out there, and more are on the horizon.

    62. Re:Anyone Have Actual Experience With Mono? by JohnnyCannuk · · Score: 1

      Gee I'm sorry I'm picking on your favourite tool, but I just don't like it.

      For instance, all of the refactoring is BUILT IN to the base install of Eclipse - no need to Google. Code complete in Eclipse will actually finish off my constructor or method calls properly. For instance, VS.NET will give me this.

      Object obj = new System.Object

      and make me type the final "()" at the end. Minor I know but annoying. Eclipse will write out the contructor call (and automatically add the package to the import list if it isn't there) and add the "()" at the end AND place my cursor between the brackets so I can add parameters, if needed.

      I can't highlight a section of code and right click and select "Surround by try catch block" in VS.NET. I can in Eclipse (and Netbeans).

      If I want to temporarily see only the editor, I double click the tab in Eclipse. Double click again and your back to the regular screen with all of the panes and tabs. This is out of the box functionality in Eclipse. Can I do that with VS.NET? Nope.

      As for exceptions, perhaps its personal taste, but specifically having a method throw a specific exception is just good documentation. It means that in Eclipse, when I generate that try catch block above, the catch blocks can capture all of the declared exceptions for me, automatically. In VS.NET I have to guess or have found in some doc, that my call might throw an exception.

      Sorry. I am much more productive and write much better code with Eclipse or Netbeans than VS.NET. Eclipse has cool plugins you have to Goodgle for as well, but all of the extras for editing code, like those I mentioned, are available out of the box, for free with Eclipse. These are only a few of the biggest annoyances.

      I don't suppose that IDE you stopped using back in 2000 was J++ was it? Have a look at Eclipse and hope they start supporting C#...or just switch back to Java.

      --
      Never by hatred has hatred been appeased, only by kindness - the Buddha
    63. Re:Anyone Have Actual Experience With Mono? by nullgreen · · Score: 1

      If you need balls to the wall performance then you can also use one of the functional languages for which excellent compilers-to-machine-code-not-bytecode exist: OCaml, Haskell and of course Lisp

    64. Re:Anyone Have Actual Experience With Mono? by JohnnyCannuk · · Score: 1

      No, I only have a license for VS.NET 2003. It's a bit expensive to upgrade ya know....

      Maybe 2005 is better. It sure can't be worse.

      oops, I'd better be careful, apparently not liking MS Development tools make you a Troll around here...

      --
      Never by hatred has hatred been appeased, only by kindness - the Buddha
    65. Re:Anyone Have Actual Experience With Mono? by Bill+Dog · · Score: 1

      A nitpicky "flaw": "Magic numbers" are bad -- instead return EXIT_SUCCESS, from stdlib.h.

      --
      Attention zealots and haters: 00100 00100
    66. Re:Anyone Have Actual Experience With Mono? by AstroDrabb · · Score: 1
      considering my experience with Windows administration that just seems really extreme for any admin problem.
      What do you work with tiny little networks? I am a senior programmer for a fortune 500 with 140,000+ employees. I work closely with our admins that try to maintain all of our custom code as well as our purchased software. We have so many unique systems all trying to work together that a week to fix a complex issue is often fast. We recently had an issue that Microsoft's own people came in and it took longer than a week to get fixed. It actually took a custom patch. Maybe the GP's issue wasn't limited to just Ghosting a PC and rebooting?

      What is the point in taking jabs at people when you have no idea what the situation was?

      --
      If Tyranny and Oppression come to this land,
      it will be in the guise of fighting a foreign enemy. -James Madison
    67. Re:Anyone Have Actual Experience With Mono? by Lije+Baley · · Score: 5, Funny

      >>VB didn't take the lion's share of professional software development because people loved the ascetics of the language.

      Yeah, I was once a VB ascetic. I spent a year wandering the desert, contemplating whether to use 1 or 0-based indexing. And when I returned with the Answer, there indeed was no love for me.

      --
      Strange things are afoot at the Circle-K.
    68. Re:Anyone Have Actual Experience With Mono? by Rolan · · Score: 1

      You can get betas of 2005 from MS for free (the basic, starter, whatever they're calling them editions). If you have an MSDN subscription, you can download a Beta of 2005 Pro.

      I ask because a lot of your complaints have been at least partially addressed in the new release.

      --
      - AMW
    69. Re:Anyone Have Actual Experience With Mono? by pyrrho · · Score: 1

      I never understood the VB thing considering you could graphically create applications with C++ using Visual Studio if you want. What was the benefit exactly? Not the ability to draw the dialogs and right click to go to the code... but C++ is scary I guess.

      I can admit C++ is scary but I thought VB was absolutely terrifying!!!

      --

      -pyrrho

    70. Re:Anyone Have Actual Experience With Mono? by AstroDrabb · · Score: 3, Informative
      Ok so mono ports it to Linux but you're still limiting yourself.
      I like and use both Java and C#. However, I have to tell you that your statement is wrong.

      Yes, the C# of the MS world is MS only which sucks. However, Mono has taken C# to Linux, Windows, Mac, Solaris, FreeBSD and more coming in the next version due this year. The architectures are x86, PowerPC, S390 and SPARC-based systems and the next version coming out is going to have more. There are two 64 bits ports: SPARC v9 with Solaris and the AMD64 port. When Mono 1.2 comes out this year, there won't be any reason for me to use Java really. I personally like C# better and the big thing I _hate_ about Java has always been Java exceptions. Exceptions in C# are much nicer and you are not forced to handle them.

      I have also noticed a huge advantage to Mono/.Net when it comes to memory footprint. When I run Java apps the memory usage gets high and the virtual memory usage gets really high. I love the Azureus program, however it always causes my MS Windows box to start hitting the swap file and MS Windows sucks at swap file usage compared to Linux so I am always forced to use Azureus under Linux. When I run C# apps, be it with Mono under Linux or MS .Net under MS Windows, the memory foot print is much smaller and swap is almost never used.

      The last two GUI apps I have written have been in C# and they have at least the same startup time if not faster than a similar Java program and the memory foot print doesn't even come close to being as high as a similar Java program would be.

      I don't want to sound as if I hate Java, because as I have said, I use both Java and C# and like them both. I have used some really nice Java apps that do things to keep the memory foot print down like IntelliJ IDEA. However, even with great programs like IntelliJ IDEA, the virtual memory still gets way up there due to the JVM.

      --
      If Tyranny and Oppression come to this land,
      it will be in the guise of fighting a foreign enemy. -James Madison
    71. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 2, Insightful

      I'm a Java developer but I do agree with many of KC8KGU's opinions about performance. I'd use C/C++ or Assembly for the jobs that require them. I still use C for many things.

      Where .NET (and therefor Mono) fall flat in my opinion is in a long-term investment for a business. We know from Microsoft history that they will someday abandon .NET in favor of "the next big thing" and three years following that .NET will be erased from their product lines. This lesson is fresh on Visual Basic programmer's minds today.

      As far as KC8KGU's opinions about the IDE and C#, those are just opinions. I personally think that compared to the power of a bash shell Visual Studio blows. But if we were both on a development team I'd fight for KC8KGU's ability to use it for himself. Not every developer is best off using the same tools. C# to me doesn't represent an improvement compared to Java.

      Perhaps one root difference between our experiences is VB. To KC8KGU it was "the wonderfully rapid easy development environment." To me it was the "non-programmers made a giant mess that's impossible to work with and they want us to bail them out" environment and the "what do you mean it's downloading the entire table to change one row" environment. Somebody once called it Visual Beginners, which still makes me chuckle.

    72. Re:Anyone Have Actual Experience With Mono? by ClosedSource · · Score: 3, Insightful

      "IMHO Java's only useful feature is that it has the best platform portability in computing history"

      No. That would be C.

    73. Re:Anyone Have Actual Experience With Mono? by mr_tenor · · Score: 1

      Now, this application is a quite performance hungry scientific comptation app wich makes heavy use of vector and matrix operations ... I was quite surprised and discouraged to find that overall, compiled C++ was faster than Mono's JIT by several orders of magnitude (i.e. 0.018s vs. 1.2s)


      The reason seems to be that pracically none of the operator overloaded operations were getting inlined.



      Are you sure of this? My first thought would be that, for execution times of that duration, that the startup of the runtime engine and stuff would be a signifigant chunk of the mono version's process lifetime. You can't infer things from one data point, so have you tried running larger computations and seeing whether this constant startup overhead becomes insignifigant?

    74. Re:Anyone Have Actual Experience With Mono? by Trepalium · · Score: 1
      I wouldn't say that the .NET environment is fundamentally well designed. The CLR is very, very good, and portions of the .NET framework are extremely good as well (once you wrap your head around them). The System.Windows.Forms framework, on the other hand, is too often just a shim over the native Win32 controls, which means you get some odd behaviour when you try to extend them in new ways, and some controls, like the ImageList are completely sealed so you can't extend it at all. This, in particular, really bothers me because it makes it difficult to use either high-color or 16-color icons on toolbars, etc without a lot of code to decide and build the toolbars at runtime, not to mention the fact the ImageList control in design mode is VERY buggy.

      ASP.NET is pretty good, but I can't help but feel that some of the controls need more constructors that fill in the commonly used fields (TableCell in 1.1 not taking any parameters in it's constructor, forcing you to assign it to a variable just to set it's .Text property, for example), although I understand a fair bit of this is being fixed in the 2.0 Framework.

      Now, Mono has already extended the framework with Gtk# (which I haven't had a chance to play with yet), and the entire Novell.* namespace. Except unlike most of Microsoft's 'embrace and extend' tactics, most of these are also usable in Windows with the proper assemblies installed into the GAC.

      --
      I used up all my sick days, so I'm calling in dead.
    75. Re:Anyone Have Actual Experience With Mono? by Flunitrazepam · · Score: 1

      irc bot writers rule all

      --
      1) Your analysis is based on bad assumptions so your result is way off. 2) You're a sick bastard for fucking a horse.
    76. Re:Anyone Have Actual Experience With Mono? by clodney · · Score: 1

      >higlight a section of code and right click and select "Surround by try catch block".

      No, that is not in the editor out of the box, but it sounds like a pretty simple macro.

      Full screen editor is out of the box though - shift alt enter, or view->full screen.

    77. Re:Anyone Have Actual Experience With Mono? by mspohr · · Score: 1

      I normally don't feed the trolls but... "And remember kids, Linux is only free if your time has no value." And remember, Clippy, your cost for Windows only starts with the license. You'll need to spend hours every week patching, updating, and fighting off viruses, etc. Every few months you'll need to reinstall from scratch when the bloat and malware takes over. Also, don't forget to add in the cost of a decent firewall and antivirus software.

      --
      I don't read your sig. Why are you reading mine?
    78. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 0

      >> if Microsoft and linux both go away tomorrow you don't have to throw away any of your code.

      I was so worried they'd both disappear this friday it was keeping me up at night!

    79. Re:Anyone Have Actual Experience With Mono? by aled · · Score: 1

      Actually if you program to the Java platform you get better portability than what C has. Usually you don't even have to recompile, care about basic types being different length, etc. On the other hand C is supported on more platforms, practically all in use today.

      --

      "I think this line is mostly filler"
    80. Re:Anyone Have Actual Experience With Mono? by aled · · Score: 1

      "There are a few points to note about the comparison with Jython's performance. First, IronPython-0.1 is still a rough prototype while Jython-2.1 is a full implementation of the Python platform used in many commercial projects. Recently, correctness and completeness have been the primary drivers of Jython's development."

      --

      "I think this line is mostly filler"
    81. Re:Anyone Have Actual Experience With Mono? by lupus-slash · · Score: 1

      The speed numbers are very similar in version 0.6 which implements basically the full python language semantics.

    82. Re:Anyone Have Actual Experience With Mono? by aled · · Score: 1

      Ironpython site seems unmantained after the autor says he enter Microsoft CLR team. Are there new releases from Microsoft?

      --

      "I think this line is mostly filler"
    83. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 0

      The fact that it's called "true.c" should tell you what language it's meant to be compiled in -- no cigar.

    84. Re:Anyone Have Actual Experience With Mono? by lupus-slash · · Score: 1

      IronPython 0.7 was released yesterday.

    85. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 0
      No. That would be C.

      No. It would not.

      What size is int again?

      And you were modded insightful...sigh.

    86. Re:Anyone Have Actual Experience With Mono? by ClosedSource · · Score: 1

      "What size is int again?"

      Thousands (if not millions) of C programs have been ported to platforms with different sizes of int's without any problem.

      Here's my question to you: What is the size of the tiniest JVM that can run any Java program and how much RAM does it require to run?

      A platform that can't host the JVM can't run any Java programs and thus Java has zero portability on those systems.

      Remember the original claim was the Java is the most portable language in the history of computing, not just the last ten years or so.

    87. Re:Anyone Have Actual Experience With Mono? by k8to · · Score: 1

      I have building an application in mono which shall remain nameless over the last six months.

      I've encountered troubling issues in the following areas:

      • Runtime problems (interprocess communciation done through pipe in homedir, handler daemon confuses startup/shutdown tools in unix, running multiple versions of mono under the same user causes deadlock in all mono processes)
      • architechture problems (x86 has usually worked. x86-64 has had various problems, powerpc has had some problems even with mint)
      • development prioritzation problems (in some situations, mono leaked memory like a seive. this was basically not considered to be severe problem for some time)
      • incompleteness problems (we have encountered a variety of .net framework incompletenesses where code which works on .net does not work on mono. Some of these issues have been known and documented, others clearly not started on yet, some inexplicably not working despite clearly being implemented in the mono framework source)
      • tool support issues (various issues have come up with nant and nunit, standard C# tools, not working well in various mono configurations)

      Most of these issues have been either relatively minor or addresed as they have come up. Some are much more worrying (like the IPC deadlock problem which seem to stil afflict SVN head). The project seems to be generating solid code, but I would not really recomend it for production use unless you can budget 1-5% of your development time addressing mono-specific issues.

      However, I have _much_ more serious criticisms of the C# language and .Net framework bedrock on which Mono is based.

      • C# is a relatively low productivity language like Java or C++. Some may not see this as a serious problem, but if you do not absolutely need the execution speed of this kind of environment, then I would recommend avoiding it and using something like Python or Ruby. The productivity gains really are huge.
      • The documentation is poor. MSDN is large and relatively complete, but the text frequently is worded sufficiently ambiguously that I have to write test code to see what it does, and hope I'm intuiting the corner cases correctly. Additionally, because the datatypes have poor facilities for representing themselves, I end up having to create special datastructure-to-string code for many of these tests. In python the docs are generally concise and unambiguous, and a test takes seconds. In C++ or C, writing tests is slow, but the available documentation is generally good enough that they are not required.
      • The language and framework assume you are using something like VisualStudio. Very often doing simple operations unambiguously will require over 80 characters of text to call a function. Names like System.IO.Path.GetDirectoryName as compared to python's os.path.dirname, and C's dirname.
      • The .Net framework in many places bleeds the Win32 API semantics right on through. When attempting to start another process, you create a process object with a single Filename and a single Arguments string. An execve equivalent to actually specify the arguments without having to wonder how the spaces will be handled is not available. The DirWatcher class defaults to viewing files specified by the expression "*.*" in the specification, but the specification does not specify how to interperet this string. File globbing operates differently on Unix implementaitons get to choose from implementing windows file globbing in a library, using unix globbing but not defaulting to finding all files in the directory (only those which contain a dot), or can refuse to follow the standard and default to "*". All of these choices have problems. There are other examples. .Net is basically win32 in many many ways.
      I could go on. I do not recommend .Net/C# for cross platform development. If you are writing a windows app, it will probably be less painful in .Net with C# than in C++ with raw win32 or with MFC etc. Personally I would try to use python with wxwidgets, but I don't have any experience so that could be bad advice.
      --
      -josh
    88. Re:Anyone Have Actual Experience With Mono? by nightski · · Score: 1

      Good for you :-)

      --
      "Ideas without action are worthless."
    89. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 0

      Even better, for every compiler/compiler version/hardware platform combination, you get a different program. That's tens of thousands of programs from the same source!

      Java just can't compare; it only lets you write one program at a time.

    90. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 0

      I would also like to comment as a disinterested party. Nightski, if you aren't a troll, you're an idiot. There ARE issues that you can encounter with Windows that take many many days to resolve. Not everything works flawlessly. When I was setting up DFS, I found that there was a documented issue that caused a problem where I deleted the DFS root but it didn't replicate out to the other servers. I had to spend quite a bit of time tracking down information and documentation about things like DFSUTIL to try to manually fix up the problems that Microsoft had caused with their bug.

      I'm not complaining about this: it's cool they had a resolution. However, it did take a long while to resolve this issue and I had to really "think outside the box" so to speak. This doesn't make me a bad admin for taking a while to resolve the issue. It makes me a diligent and thorough admin who knows how to resolve complex problems.

  2. It'll never work by geoffspear · · Score: 4, Funny

    Trying to tell people on Slashdot how to get Mono is kind of pointless. First you've got to talk to a girl.

    --
    Don't blame me; I'm never given mod points.
    1. Re:It'll never work by WormholeFiend · · Score: 1

      you can also buy it from giantmicrobes.com

      or from thinkgeek.

    2. Re:It'll never work by kernhe · · Score: 0, Offtopic

      I thought stereo is outdated by sourround... and linux is talking about mono?!?

    3. Re:It'll never work by ArsonSmith · · Score: 1

      Can I use that as president to get out of my DUI charge???

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
    4. Re:It'll never work by ArsonSmith · · Score: 1

      Where do you think they got that story idea from?

      Not really I didn't even know it was in there. I blantly ripped it off from a comedy act I heard on my XM radio comedy channel.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
    5. Re:It'll never work by Anonymous Coward · · Score: 0

      Trying to tell people on Slashdot how to get Mono is kind of pointless. First you've got to talk to a girl.

      Haven't you ever heard the expression, "think outside the box"?

    6. Re:It'll never work by Anonymous Coward · · Score: 0

      You guys are ridiculous. This happens to people who frequent late-night pickup joints all the time. ... "You got that idea from a movie!" "No, I got it from a radio thing!" ...

    7. Re:It'll never work by ArsonSmith · · Score: 1

      Sweet, so if I frequent late night pickup joints I can get a little devil and angel on my shoulders?

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
    8. Re:It'll never work by codefreez · · Score: 1

      This story is so not funny; I actually came down with mono last Thursday and have been home sick since.

      And I have no idea who/where I got it from! :(

    9. Re:It'll never work by Canberra+Bob · · Score: 1

      Depends on what you take

  3. mono sound by Anonymous Coward · · Score: 0, Funny

    you unplug one of the speakers.

  4. Re:Whoops by Anonymous Coward · · Score: 0, Funny

    It's the only "mono" Slashdotters are going to get.

  5. Dubious Developers? by Anonymous Coward · · Score: 5, Insightful

    It seems rather unfair to call those developers who do not support Mono "dubious". Surely it would be better to say they are "sceptical".

    1. Re:Dubious Developers? by mwood · · Score: 1

      Dubious, skeptical: pretty much the same thing. The phrase is about how those developers feel about Mono, not how others feel about them.

      Maybe it would be even better to say, "still trying to figure out how Mono *or* .Net would have any effect, other than increased code size, on the types of projects I tackle." MS keeps telling me that .Net will improve *everything*, but I find that they have a very narrow notion of "everything".

    2. Re:Dubious Developers? by hey! · · Score: 1

      Maybe they're saying that mono makes these developers nauseous.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    3. Re:Dubious Developers? by Anonymous Coward · · Score: 0
      It seems rather unfair to call those developers who do not support Mono "dubious". Surely it would be better to say they are "sceptical".

      That's not fair either, but there is no single word for "aware of the patent situation". Miguel is like the pied piper, leading the future developers out of town and the tradgedy is that he can't even see it.

    4. Re:Dubious Developers? by man_of_mr_e · · Score: 2, Insightful

      dubious ( P ) Pronunciation Key (db-s, dy-)
      adj.
      Fraught with uncertainty or doubt; undecided.
      Arousing doubt; doubtful: a dubious distinction.
      Of questionable character: dubious profits.

      You seem to be implying the third definition, while the author seems to be implying the second.

    5. Re:Dubious Developers? by pavon · · Score: 1

      Well, no, because the deeper problem isn't the precise definition of the word, but that the adjective is being applied to the wrong thing. Saying "the dubious developers" means that there are doubts about the developers, not that the developers have doubts about Mono. If it had been phrased "developers who are dubious of mono", that would have been better, and "skeptical developers" would have been better still.

    6. Re:Dubious Developers? by feloneous+cat · · Score: 1

      It seems rather unfair to call those developers who do not support Mono "dubious". Surely it would be better to say they are "sceptical".

      For me it is indifference.

      I have seen other developers here deal with code for an Enterprise level data management system (1000's of users across a country).

      My analysis of C# was this: I would agree to write the test code in C++ to test their system (via gigabit ethernet on a Linux box). But I refused to join the development team.

      Mono helped in my analysis of the communications method (thanks Microsoft -- next time DOCUMENT THE FRIGGIN' LANGUAGE). The result was that my INITIAL test simulating 50 users killed their app. Last I checked they hadn't got it past 200.

      Sole sourced languages tend to suck - you never know what the owner will decide to do...

      --
      IANAL, but I've seen actors play them on TV
    7. Re:Dubious Developers? by Delphiki · · Score: 1
      Mono helped in my analysis of the communications method (thanks Microsoft -- next time DOCUMENT THE FRIGGIN' LANGUAGE). The result was that my INITIAL test simulating 50 users killed their app. Last I checked they hadn't got it past 200.

      Yes, that obviously is a problem with C# and not their code. Shitty code is shitty code in any language. C# is very well documented, by the way. What, if anything is your "analysis of C#" based on? The fact that it's not popular on slashdot, a community which is amazingly biased against anything Microsoft?

      I've used C# a lot. I would much rather use C# than Java, C++, C or Perl for just about any application.

      --

      Feel free to mod me "-1 - Angry Jerk".

    8. Re:Dubious Developers? by man_of_mr_e · · Score: 1

      No, "the dubious developers" means "the doubtful developers", not that the developers are doubted.

    9. Re:Dubious Developers? by feloneous+cat · · Score: 1

      C# is very well documented, by the way.

      The language is, but intercomputer communication isn't (this is where mono helped me a lot). So, no, it is NOT documented. But thanks for playing!

      What, if anything is your "analysis of C#" based on? The fact that it's not popular on slashdot, a community which is amazingly biased against anything Microsoft?

      Wow, you've opened my eyes! I apparently have been corrupted by the groupthink that is Slashdot that I have managed to ignore the groupthink that is Microsoft...

      Had you even given it the slightest bit of thought that I MAY be thinking for myself?

      --
      IANAL, but I've seen actors play them on TV
    10. Re:Dubious Developers? by hicksw · · Score: 2, Insightful

      Dubious refers to the object (Mono, C#, .NET).

      Sceptical refers to the programmer (Mono non-user).

    11. Re:Dubious Developers? by man_of_mr_e · · Score: 1

      Yes, it does refer to the programmer. They are doubtful, not doubted.

  6. Bullet Points by GodLived · · Score: 5, Funny

    Interesting interview. I often find myself talking in bullet points, but the way Miguel adds boldface and sublevel indents while talking - now that is an achievement.

    1. Re:Bullet Points by kahei · · Score: 1


      He does it by making marks in the air with his fingers. You should see it -- it's baffling at first but oddly beautiful.

      --
      Whence? Hence. Whither? Thither.
    2. Re:Bullet Points by RailGunner · · Score: 0, Offtopic

      And this "laser" will be mounted on the moon, making the moon a sort of "death star". /Dr. Evil

    3. Re:Bullet Points by wild_berry · · Score: 1

      That's actually sign language for the deaf, in a language you can choose from a menu before the interview starts. It's quite a neat feature, put together in a few lines of C# and required no recompiling between magazines or soapboxes.

      (Can I start the campaign for a Surreal moderation point? Whether it's a plus or a minus is a subject for a flamewar...)

    4. Re:Bullet Points by bdeclerc · · Score: 1
      Whether it's a plus or a minus is a subject for a flamewar...

      Make it both, or even beter, make it irrational...
  7. Re:CopyCats... by Anonymous Coward · · Score: 0

    Accually we have... php, perl... list could go on

  8. One wonders by smittyoneeach · · Score: 2, Funny

    Will the register-based VM of Parrot trump the plethora of stack-based environments in circulation, e.g. Mono?
    Or, will MS port its Office suite to C#, relase Linux binaries, and enjoy a jolly chuckle?

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    1. Re:One wonders by aled · · Score: 1

      Will the register-based VM of Parrot trump the plethora of stack-based environments in circulation, e.g. Mono?
      No.

      Or, will MS port its Office suite to C#, relase Linux binaries, and enjoy a jolly chuckle?
      No, no and maybe.

      --

      "I think this line is mostly filler"
    2. Re:One wonders by WorldMaker · · Score: 1

      Pedantic: CIL binary is just as cross-platform as JVM binary, and from what I've heard Mono is pretty spot on with binary compatibility with Windows .NET.

      Therefore, should MS port Office entirely to C#, Linux binaries would not be necessary so long as Office followed good coding standards (Path.Seperator) and mono supported all of the libraries used by Office. In such an eventuality as Microsoft does indeed release Office for C#, Office should run out of the box on Linux!

      Now, for those naysayers who believe that that eventuallity will ever happen: C# Office opens the possibility of one single codebase and a consolidated development group for both Office and Office: Mac (via the good work of, say, Mono and Cocoa#, for instance). This actually makes good business sense, and I will argue that there are at least some brainiacs in Microsoft who know that...

      The immediate stopper on such a thing is how much Microsoft values the existing codebases over smaller development teams and entirely merged codebases. On the other hand, Microsoft has already admitted long term commitments to .NET, and that most new development will be C#, so as more C# gets mixed into the Office codebase the higher the possibility of a "purer" Office.

  9. A shackers guide to Mono by Anonymous Coward · · Score: 5, Funny

    The dreaded "kissing disease" mono is transferred through saliva from one living host to another. Mono may incubate, biding it's time, in the human host for up to a month before it starts exibiting symptoms. Once mono kicks in, expect swelling of the throat and lymphic nodes, headaches, and extreme fatigue.

    Victims of mono can be identified by the paling or discoloration of the skin, and will commonly walk with a shuffle and have half-opened eyes because of fatigue. Because of the swelling of the throat they may have difficulty talking, and will usually only talk in groaning sounding, short sentances. They will hunger, and they will hunger for something that they can manage to swallow, such as soft, succulent human brains. If you see anybody shuffling towards you, looking dead tired, moaning braaiiiiiiiins, it's best to stay away, or you too may be infected. You may become infected through exchanging saliva, or more commonly, having the sick exchange salive with your blood in an attempt for him or her to feed off of your brain-meats. Mono infected people only take half damage against physical attacks, and can only truly be killed by completely desroying the body through total physical damage or by burning. Recommended for parties of 4-5 players, levels 6-8.

    1. Re:A shackers guide to Mono by ArsonSmith · · Score: 3, Funny

      That sounds more like pink eye.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
    2. Re:A shackers guide to Mono by FecesFlingingRhesus · · Score: 0, Offtopic

      No dude that is pink-eye, That causes those symptoms.

    3. Re:A shackers guide to Mono by Anonymous Coward · · Score: 0

      Victims of mono can be identified by the paling or discoloration of the skin, and will commonly walk with a shuffle and have half-opened eyes because of fatigue.

      Sounds like the average Slashdotter before caffiene :)

    4. Re:A shackers guide to Mono by operagost · · Score: 1

      How could people mod this offtopic? That's nearly as hilarious as the parent post.

      --

      Gamingmuseum.com: Give your 3D accelerator a rest.
    5. Re:A shackers guide to Mono by ArsonSmith · · Score: 1

      I know, I've had a few that I thought were funny ones today and they've all been modded offtopic. While sure they are so I'm not really complaining.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
    6. Re:A shackers guide to Mono by FecesFlingingRhesus · · Score: 1

      No doubt, I posted the almost the same exact thing less than a minute after you and you submitted you post while I was composing mine. Obviously those mods have never watched South Park or you post would have been +5 funny as opposed to off topic.

  10. The Secret of .NET by LegendOfLink · · Score: 4, Insightful

    I think Miguel is doing all of this because he feels that .NET will be the future of doing things. I remember a few years back all of those MS people having cosmic orgasms over .NET, even though nobody really knew what the hell is was.

    Maybe Miguel knows something we all don't?

    1. Re:The Secret of .NET by Nasher · · Score: 2, Insightful

      Well I can understand it if that's what he's thinking. I'm a c++er and a look at the job pages quickly has me thinking that .NET is gaining ground all the time. The dilema is that to move into that field moves me away from where I currently am, able to stradle several technologies and not just MS stuff.

    2. Re:The Secret of .NET by LegendOfLink · · Score: 0

      So, I guess the moral here should be that it's easier to join the 800lbs gorilla rather than try and tame the beast?

    3. Re:The Secret of .NET by MikeBabcock · · Score: 1, Insightful

      Considering the amount of actual code Miguel has written in his lifetime, if he thinks the Mono technologies he's working on will make programming easier/better, I'd probably trust him on that.

      --
      - Michael T. Babcock (Yes, I blog)
    4. Re:The Secret of .NET by micromoog · · Score: 4, Informative
      The most important sentence in the interview is near the bottom:

      de Icaza: We are making Linux a fertile ground for third-party developers: we are allowing developers with Windows/.NET expertise to use and distribute software for Linux, easing the adoption of Linux.

    5. Re:The Secret of .NET by danheskett · · Score: 0

      Well, "tried and failed" is a bit of miscarriage of the facts, wouldnt you say?

      He had an offer, and accepted, but later found he couldn't get the proper work permits in time to take the position.

      Not exactly "tried to get a job and failed".

    6. Re:The Secret of .NET by Anonymous Coward · · Score: 0

      Maybe Miguel knows something we all don't?

      Something that isn't much of a secret is that Microsoft is backing the .NET technologies, and hence it is and will continue to be quite heavily used. How good/bad it is compared to another API is irrelevant; it will still get heavily used due to their marketshare and them pushing VS .NET and all accompanying software as a natural step after VS 6.

    7. Re:The Secret of .NET by ultrabot · · Score: 2, Insightful

      Considering the amount of actual code Miguel has written in his lifetime, if he thinks the Mono technologies he's working on will make programming easier/better, I'd probably trust him on that.

      Of course it's going to be easier than C/C++, but that's mostly a strawman argument that everybody agrees on anyway.

      The real issue is whether the improvement is worth the price, and whether equivalent improvements could be achieved through other, less MSFT-dependent means. This needs to be hashed out by lawyers, not coders.

      --
      Save your wrists today - switch to Dvorak
    8. Re:The Secret of .NET by Tape_Werm · · Score: 0

      It's not troll tuesday [tt], can you please roll the date back on your post.

      Thanks,
      The mgmt
      --
      Linux sucks. And you're fat. Take a shower hippy.
    9. Re:The Secret of .NET by DrXym · · Score: 3, Informative
      Sadly that isn't as true as it might appear. While it's great that pure C# apps using common functionality will port, a hell of lot of real world apps won't.

      Real world .NET applications are peppered with PInvokes, COM interop, MSSQL / IIS extensions and various other crap which makes the run badly or not at all on Mono. Even the best will in the world won't change this.

      WINE might help a bit, but its too bad if you're on a non-x86 platform.

      Even Microsoft don't give a damn about portable .NET. Witness their new Enterprise Library which they're pushing on developers. It contains several dozen Win32 calls right there in this common library. Any enterprise app that relies on it will be infected as a result.

    10. Re:The Secret of .NET by Anonymous Coward · · Score: 0

      And then, considering the actual code he has written (i.e. GNOME), that trust instantly vanishes.

    11. Re:The Secret of .NET by Knuckles · · Score: 1
      I think you misread Icaza here. He does not say that the applications can be ported, but the developers, so to speak:

      We are making Linux a fertile ground for third-party developers: we are allowing developers with Windows/.NET expertise to use and distribute software for Linux, easing the adoption of Linux
      --
      "When I first heard Daydream Nation it quite frankly scared the living shit out of me." -- Matthew Stearns
    12. Re:The Secret of .NET by Anonymous Coward · · Score: 0

      I'm not trusting anyone who expects me to trust them. If he wants to try to make a convincing case for Mono, then fine. Otherwise, I can find plenty of people who have written a hell of a lot more code than he has who will disagree with him. Of course, I wouldn't trust them either.

    13. Re:The Secret of .NET by The+Slashdolt · · Score: 4, Informative

      You're absolutely correct. In the end, .NET apps written on windows will not work on Linux. But .NET apps written on Linux will surely work on windows. How this gives people incentive to move towards linux(as opposed to away from it) I will never understand. I want to see MS write MS Office in .NET so that it runs on linux. You think they'll do that? Yeah Right!

      --
      mp3's are only for those with bad memories
    14. Re:The Secret of .NET by Screaming+Lunatic · · Score: 3, Informative
      I'm a c++er and a look at the job pages quickly has me thinking that .NET is gaining ground all the time. The dilema is that to move into that field moves me away from where I currently am, able to stradle several technologies and not just MS stuff.

      C++ is an ISO standard. And you do realize that C#, CLI, and C++/CLI are ECMA standards. And soon to be ISO standards.

      EDG is in the process of writing a front end for C++/CLI. The EDG parser is used by Intel, Borland, Comeau, and others. Although C#, CLI, C++/CLI were primarily created by MS, calling them MS technologies is inaccurate.

      (Note: .NET/CLR is MS's implementation of CLI. Mono is another implementation of the CLI. Think of it as analagous to JRE in the Java world. Which by the way is not standardized.)

    15. Re:The Secret of .NET by Screaming+Lunatic · · Score: 1
      Of course it's going to be easier than C/C++, but that's mostly a strawman argument that everybody agrees on anyway.

      Petitio principii. Have you ever written modern C++? Have you ever used Boost?

      The real issue is whether the improvement is worth the price, and whether equivalent improvements could be achieved through other, less MSFT-dependent means. This needs to be hashed out by lawyers, not coders.

      FUD and inaccurate. C#, CLI, and C++/CLI are ECMA standards. Soon to be ISO standards. It's already been hashed out by the lawyers. If you are talking patents, then all languages are patent encumbered. And your argument still doesn't hold.

      To the best of my knowledge, MS has never sued anyone over patent claims to a language. Whereas, Sun has sued over Java. So by your line of reasoning, I'd be opening myself up to more legal ramifications if I used Java.

    16. Re:The Secret of .NET by ultrabot · · Score: 1

      Have you ever written modern C++?

      Yes (if you meant using STL and stuff). I also write not-so-modern C++ 8 hours a day, so I'm not totally in the dark about how much the language reeks. I guess Python spoiled other languages for me permanently.

      --
      Save your wrists today - switch to Dvorak
    17. Re:The Secret of .NET by beanlover · · Score: 1

      I want to see MS write MS Office in .NET so that it runs on linux. You think they'll do that? Yeah Right!

      If MS thinks they can make a buck or two from doing that then you had better believe they will.

      I think .NET is MS hedging it's bets against eventually losing (as they define losing) in the OS arena. Eventually the OS will become irrelevant and the "frameworks" (currently Java (technically not a framework), Mono and .NET) will be the next wave to ride.

      Does anyone actually believe that MS has not thought this far ahead?

  11. Re:CopyCats... by harlows_monkeys · · Score: 2, Informative
    This is what opensource is good at doing. Copycats! How about developing a new virtual machine architecture, a new visual interface from scratch?

    You mean like this?

  12. Another VM? by one_i_blind · · Score: 1

    Does anyone really need this? I think it's safe to say there are enough virtual machines available for PC users. I mean the C# in linux is pretty useful as C++ is getting a little dated for large applications (I'm going to regret saying that). But the rest of the project seems a little unneccesary, but then again Novell has always been about unneccesary.

    1. Re:Another VM? by danheskett · · Score: 4, Insightful

      It's not just "another VM".

      It's the VM that right now thousands of software vendors are writing against.

      Virtually of MS's ISVs are writing against .NET now. That's a lot of applications, and especially, vertical market applications.

      As these next batch of applications gets out to the market and Mono continues to mature, you will see that a Linux desktop can be an excellent companion to a corporate or small business setting.

      My wife works in the medical field. The software vendor they support are porting their Windows app to .NET with a commitment to maintain only "100% managed code". What does this mean?

      It means that when released it will, very likely, run without any modification on Mono, and therefore Linux, and probably someday Mac OSX.

      That's huge.

    2. Re:Another VM? by man_of_mr_e · · Score: 1

      Indeed. One area that Linux has woefully inadequate support for is contact management. The most recent version of Act! was completely rewritten in .NET. Though I doubt it runs right now (a very heavy dependance upon SQL Server and Windows forms) I'm sure the day will come when it will run unchanged.

      There are a lot of people that would like Act on Linux.

    3. Re:Another VM? by danheskett · · Score: 1

      The Mono people are working on Windows forms right now.. a good number of classes are implemented in native .NET code. This means that any platform that can run mono and has an appropriate wrapper will be able to run WinForms apps.

      As for the SQL server bit, even as a client for a Windows server, Act would be nice on Linux.

      Finally, as long as these apps that depend on MSSQL use the ADO.NET library hope springs eternal that someone will write a connector to hitch ADO.NET calls to SQLClient to a MySQL backend. Really, when "SQL Server" is required, it is really only looking for the appropriate client. As long as they didnt go with some really obscure ODBC connection a generic translation driver for ADO.NET is a real possibility.

  13. I don't see the point in using Mono by mwvdlee · · Score: 2, Insightful

    Just like I don't see the point in using .NET, why would I be using Mono instead?

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    1. Re:I don't see the point in using Mono by shutdown+-p+now · · Score: 1

      Instead of what?

  14. Why the need to copy? by stuffisgood · · Score: 2, Insightful

    It's called portability... The .NET framework is, in my mind, an excellent idea, so why not copy the best bits while leaving out the bad. C# for example... C# is a much faster implementation of (basically) Java, removing the loadtime of the JVM which everyone on /. seems to hate so much! Couple this with the ability to use the right language for the job in all circumstances (for example "C# is overkill for this, lets use Perl instead) and I think that Mono a step in the right direction when it comes to ease of coding and portability.

    1. Re:Why the need to copy? by ahmetaa · · Score: 1

      You have no idea about the things you say right? C# is a language. a language cannot be faster then another. The performance is measured with the compiled code. For that, Java virtual machines are doing a good job by givin equivalent performance to native C++ compiled applications. Java VM gives similar or better performance with .Net CLR. mono JIT is tha far worst in terms of performance. icaza ate his words some time ago by replacing "mono is faster then java" sentences from their web site. mono has ZERO advantages over Java in even their home platform, Gnome, let alone other platforms.

    2. Re:Why the need to copy? by Lysol · · Score: 1

      Well, ya know, a smiliar Java app on Solaris will probably match or best a C# app on equivalent Windows machine. Why? Cuz the devloper of the OS can be free to tie in all their optimizations into their VM. Mono is slower, besides being a clean room impl, because it's fricking hard to port VMs to other architectures and they haven't tied all their calls to the low level OS like M$ has!
      Sun has done an admirable job porting their VM across so many archs, but only from a server perspective.

      Which is not how most people think of when they think of .NET/Mono vs. Java, but I do.

      I made the jump years ago and think mostly in terms of the server and Weblications - a completely different ball game and, in my view, where things are going and finally back on track. .NET/Mono are no where near Java in terms of scalability and performance. I worked on a project - and this was even four years ago - where 75 Java app servers ran across 150 cpus. This company has made billions in transactions across those systems. And that was four years ago!
      Java's way ahead of .NET/Mono on the server and this is where Sun got it right. If you've ever used Sun hardware, with all their little management niceties and gizmos, you would know they've got their shit together on this. Their experience with building, albiet sometimes complicated or academic, scalable apps is what they're all about and this has all filtered into Java.

      Sure, for some desktop app or photo sharing web site, Java's not the way to go. But for medium to big web projects where stuff just has to work, then there's no other game in town. They'll own this space for some time to come. Windows is all about the PC and local client apps. But that door's starting to close and it makes sense for more and more non-Office style programs to be run over the net.

    3. Re:Why the need to copy? by Anonymous Coward · · Score: 0

      it makes sense for more and more non-Office style programs to be run over the net.

      Yeah... they've been saying that for years now... near a decade... and it hasn't happened yet. Sure, there are plenty web apps, but the ones people use most still haven't been replaced by 'net apps... where is my 'net word processor that was promised 8+ years ago? where is my 'net tax preparation? etc. Also, while there are a few 'net games, they can't touch something as complex and resource intensive as Doom3, FarCry, Half-Life2, etc.

      As far as Java, I've written it before. What a massive headache it was getting all the components to work together correctly. As far as scalability over a lot of machines, a lot of that depends on the programmer. If you don't know how to write scalable code, well... you aren't going to get a scalable application.

      Contrary to your boxing Java into the 'big web projects' category (and basically saying that it isn't suitable for anything else, .NET covers the 'big web projects' *and* the desktop app (web based or not).

      Also, consider that C# is actually derived from Java, with a few changes that are considered to fix broken things in Java and that .NET (C#) is developing and incorporating new developer requested features faster than Java (templates anyone)? AND C# as well as the CLR are open standards (while Java is not). Well... I predict that Java will stay around because of religious views (being from somewhere other than Microsoft and all) but Java will probably be left in the dust before long as far as features and compatibility.

      There are people already having great success cross developing .NET applications for Windows and Linux. I've rarely seen a large Java application that ran on anything other than one platform (typically a Sun) for various reasons.

      And yes, I've worked at large Sun houses (we had several 10Ks, loads of the smaller 450s and other rack servers, and probably a couple thousand workstations). I like Suns a lot, personally, but while they are stable and can bear a load, I wouldn't own one.

  15. Useful? by DreadSpoon · · Score: 5, Insightful

    How would a new VM architecture be useful? What do you imagine it would be capable of that .NET is not? How much use would such an architecture get when it has no compatibility with anything else in the world? Why does Microsoft get slammed for creating a new proprietary technology and calling it 'innovating' while Open Source projects that reuse existing systems are slammed for not 'innovating'? How quickly do you think a VM as complete, efficient, and powerful as Mono's could have be written if they didn't have the Microsoft CLR to target during development (it was a year or two before Mono was self-hosting, yet during those initial years it was still developed at breakneck speeds) ?

  16. You want to speed mono acceptance? by Trigun · · Score: 3, Interesting

    First, release a C# compiler for linux. If you can get developers to user C# that compiles to native code so that it's not dependant on the CLR, then you can introduce the cross-platform aspects of it.

    1. Re:You want to speed mono acceptance? by man_of_mr_e · · Score: 1

      While you could certainly do that, you wouldn't have any of the support libraries, and you wouldn't gain the features of a virtual machine (Such as garbage collection, which is very difficult to do without a background VM controlling things).

      You can already compile .NET code to native code using MS's ngen tool, but that won't reduce the dependancy on the CLR or the framework since those libraries have to be there to make the language useful.

    2. Re:You want to speed mono acceptance? by Anonymous Coward · · Score: 0

      Mono already supports ahead-of-time compilation.

      A simple Google query provides much more information. Have you heard of Google? It's a great search engine located at http://www.google.com/

  17. Benefits of mono, and it's relationship to .net by Anonymous Coward · · Score: 2, Funny

    Mono is an Open Sores implementation of the .net Framework, that means that unlike the Closed Sores Implementation that microsoft has, you can spread Mono to anyone you kiss. The microsoft version, requires that you get it from a Microsoft authorised vendor, and well, who wants to kiss that guy eww!
    Now about the benefits, Since the open sores implementation is so infectious, you can get out of up to a month of social activities such as 'school' or 'work' to better work on your video game skills in your isolated room in your parents house.

    1. Re:Benefits of mono, and it's relationship to .net by Anonymous Coward · · Score: 0

      So is it released under the GPL (General pubic lesions)?

  18. Hmm... by jav1231 · · Score: 2, Interesting

    I get the impression that while RMS would tell us to beware the Microsoft Whore, Miguel would ask us to suckle at her teats. The rest of us are somewhere in the middle.
    OT, I know.

    1. Re:Hmm... by Anonymous Coward · · Score: 0

      I get the impression that while RMS would tell us to beware the Microsoft Whore...

      Wrong. Mono was endorsed by Stallman at first. After some ideological differences (think "GNU/Mono") the FSF started the DotGNU project, another free .Net implementation:

      http://dotgnu.org

  19. Difference between Mono and SWT for Rich Clients? by Anonymous Coward · · Score: 0

    Just a question. What is the main difference between using C#/Mono to develop a client-side application vs. using SWT. Is it correct to assume that it will use the native Windowing GUI toolkit in both cases? If so, how is it different to the SWT approach of developing a GUI? As soon as your GUI starts taking advantage of a specific platform it's no longer platform independent, and it continues to become less platform independent the more it uses a specific platform's features. This makes SWT less platform independent. Sure, it may make an application more portable for the pieces that don't leverage a specific platform, but that's a very different thing from Java and Swing in particular. If there is a way to use GTK# on every platform, then it starts to run into the problem of not looking like a native app, which is what people always use to complain about Swing. It could be that they're only complaining because the Swing default (metal or ocean) is still ugly, even though it definitely screams at this point. I can't help but think that a GTK application on each platform will look kind of stupid.

  20. Re:CopyCats... by hey! · · Score: 5, Insightful
    Yep. And slashcode is just copying because it uses TCP/IP. It should have its own transmission protocol, called SCP, based on its own internetworking program, called SIP.


    The whole point of implementing a standard is to copy.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  21. Mono is a good thing by CaymanIslandCarpedie · · Score: 4, Insightful

    I know that .NET has never been horribly well understood (even by .NET developers) because of the marketing mess MS came up with, but Mono is a VERY good thing.

    This is especially GREAT for those Linux lovers out there. Linux has MANY advantages over Windows, but for the most part this doesn't matter (sorry talking about desktops here not servers). Yes, lots of techies have jumped on board but that is pretty much a spec on the radar. For Linux (or any OS) to make real gains (especially in desktop) there needs to be HUGE 3-rd party software market for the OS. We need video editing, tax, accounting, etc, etc, etc. And this means broad developer support.

    This is where MS has always had a huge advantage. For good or bad, it has always been VERY easy to develop applications for Windows. In my opinion the .NET framework (a great technology) was perhaps one of the most dangerous weapons against Linux. Very powerful, and makes things VERY easy. So developers of Windows applications will move to .NET framework (where before .NET framework more and more Windows developers were looking at Java, etc) and BAM these developers (and their software) are again locked into Windows. So Windows will remain domainant since its so easy to get applications for.

    Enter MONO. Yes, it a copy of a MS technology and we all hate MS so we think its bad. ITS NOT!!!!! This is great! Those millions of Windows developers who move to .NET (wait for it) have also just learned what they need to develop for MONO (Linux). The millions of software titles which will be developed in .NET (wait for it), can now be fairly easily ported to Linux. So most of those products won't be F/OSS, big deal if it makes software companies jobs of porting their propietary software to Linux easier thats all we need! Once such software exists on Linux, may be I can suggest Linux to non-tech family and friends. Until then I know Windows is better for them as they cannot tell a line of code from a line of anceint san-script. They just want a huge variety of software to choose from.

    OK I've go on too long, but MONO is GREAT!!! It can only help the Linux (F/OSS) community even if it is a port of evil (MS) technology.

    This is where Mono comes in.

    --
    "reality has a well-known liberal bias" - Steven Colbert
    1. Re:Mono is a good thing by cdcarter · · Score: 2, Interesting

      Why not combine GNUstep and MONO. Allow for full compatibility in both MacOS X and Windows on their native copys?

      --
      "Love is like a trampoline, first it's like "SWEET!!" then it's like *BLAMM!*"
    2. Re:Mono is a good thing by argent · · Score: 2, Funny

      Why not combine GNUstep and MONO.

      It'd be even more fun than a Klingon-Esperanto dialect.

      I guess you haven't looked at GNUstep and .NET, how each is built, how they work, the languages and APIs they're built around.

    3. Re:Mono is a good thing by CaymanIslandCarpedie · · Score: 2, Insightful

      Completely agree, historically it was so easy because it let you to BAD and STUPID stuff. I never liked for those reasons (and others).

      However, the .NET framework really is pretty slick stuff (mostly ideas copied from JAVA). It isn't that bad anymore. Yes, there are still issues (but what doesn't have issues), but for the most part the changes they've made here really do fix a lot of their stupid past mistakes.

      If you want to attract good programmers who are used to coding to the API instead of having it propped up accomodate their bugs, upgrade GNUstep and track Cocoa and Mac OS X...

      Yes, having those would be great too! Problem is we always yell "come to us, our stuff is better, please come to us". We want to take over for Windows (or at least eat into its monopoly) and the BEST way to do that is take their developers (even if they are bad and stupid). Right now we have a great base! We just need TONS of more applications to make the platform more appealing to Joe Six-Pack. Guess who made a vast majority of the applications we want for Linux? Windows developers!!!!

      I'm not saying their as smart as you or code as well as you. Just saying winning them over would be a great step. You can never use MONO. Remain with C++, your applications will faster and thinner (better), but to build an audiance for your application we need more people using Linux in the first place. MONO could well, help for the above stated reasons.

      Give MONO a chance people!!!! Even if you never use it, please don't bad-mouth it!!! I could be one of the biggest weapons Linux has to grow its user base!!!!

      --
      "reality has a well-known liberal bias" - Steven Colbert
    4. Re:Mono is a good thing by time64_t · · Score: 0
      > they cannot tell a line of code from a line of anceint san-script

      not sure wheter you are ignorant or being ironic, nor do i want to appear a spelling nazi, but this should read "ancient sanskrit."

    5. Re:Mono is a good thing by Anonymous Coward · · Score: 0

      "We want to take over for Windows (or at least eat into its monopoly) and the BEST way to do that is take their developers (even if they are bad and stupid)."

      Your stupidity is sickening.

      Every time I think Linux has a chance to really change the world, I see some fucking retard like you running your mouth off.

    6. Re:Mono is a good thing by Anonymous Coward · · Score: 0

      > Why not combine GNUstep and MONO.

      Because there isn't an objective C bridge from the CLR. Mind you this would be a bang-up good idea, but it doesn't yet exist.

    7. Re:Mono is a good thing by Anonymous Coward · · Score: 0

      The millions of developers who move to .NET are welcome to use mono on a unix clone, that doesn't mean the rest of us are stupid enough to buy into Microsofts patent trap.

      You hysterical fanboys need to calm down, I've got by fine for years without ever installing Java and I remember when that was the next "big thing".

    8. Re:Mono is a good thing by argent · · Score: 1

      However, the .NET framework really is pretty slick stuff (mostly ideas copied from JAVA). It isn't that bad anymore.

      1. It's still Microsoft, they still have a policy of effectively encouraging bad developers by accomodating bad habits. Their only mechanism for fighting this seems to be to come up with a "new broom" API to try and sweep away the old mess every few years, and then fall back in the same old bad habits until they need another new API to keep the buzz going. DotNET appears to be another one of these, a bit more aggressively pushed than most.

      2. They have for many years had this fascination with client-based security and the use of signed certificates instead of a healthy paranoia about code imported from untrusted sources. This has produced a recurring series of dramatic security failures that have turned Windows into a kind of toxic ecosystem for malware incubation DotNET carries this security model with it, somewhat cleaned up but still depending too much on the kindness of strangers.

      3. The best way to eat into the Windows monopoly is by being better than Windows. Firefox didn't start taking down Internet Explorer by emulating it, warts and all (and don't for one moment believe that compatibility with .NET won't need that), but by doing a better job and avoiding the security nightmare mentioned in point 2 up there.

      4. The white kool-aid is taking bites out of Microsoft, and they're already open-source friendly. If you need to copy something to fight Microsoft, copy something that's already fighting Microsoft.

    9. Re:Mono is a good thing by Anonymous Coward · · Score: 0

      San-Script was trademarked to Smith Micro in the late nineties (joke) but has reverted to public domain. Meanwhile Sanscrit has always been public domain and free for use-- but not open source.

      And yes, I *am* a Microsoft developer, thanks.

    10. Re:Mono is a good thing by argent · · Score: 2, Insightful

      5. Microsoft controls .NET. If they see Mono actually cutting into their pie, they'll change .NET faster than Mono can keep up. This has been their policy for over 20 years now, it's not going to change.

    11. Re:Mono is a good thing by Anonymous Coward · · Score: 0

      C# and the CLR, unlike Java, are official standards.

    12. Re:Mono is a good thing by Anonymous Coward · · Score: 0

      Having been programming on Un*x type systems since 1986 and Windows since 1993 (and currently have been working specifially on Linux for the last 2 years), it is my opinion that C# and the .NET architecture are superior to Java (they were derived from Java more or less and are improvements on Java). C# is pretty much my only language now on the odd times I do something on Windows where on Linux, we are still using C, Perl, C++, and the like. I can't even begin to tell you how much easier writing code in C# is than C (and even C++). Plus, having worked with Java before (and going through the nightmare of picking and choosing among frameworks and all that - much less getting them to actually run), C# and its runtime is superior in my opinion.

      I've been watching Mono for quite some time now and I think it may finally be time for me to get going on it on Linux.

    13. Re:Mono is a good thing by monkeyGrease · · Score: 1

      OK I've go on too long, but MONO is GREAT!!!

      Say MS via some clever legal or technical tweaking puts linux/Mono on uncertain ground, at least from your PHB's point of view. Say you are also tasked with some short deadline project, for which your now current skillset would make .NET by far the quickest platform to develop on.

      Who won then, windows or linux?

    14. Re:Mono is a good thing by Tape_Werm · · Score: 0

      I agree, Mono would be a great boost for Linux. One of the main reasons I won't bother with linux is the lack of decent programming tools. As an example, I ported a C++ library I had written from MSVC to GCC. It was the most horrid experience I've ever had when programming. And that was just trying to make the thing compile from 'make' (no, I'm not experienced with make, nor do I ever care to be, it's old and outdated and needs to be put to sleep). I tried some IDEs, and well, they proved to be quite lack-luster. Face it linux zealots, there are times when Microsoft gets it right and you don't, live with it.

      The thing that bugs me: All the responses of the close minded "it's Microsoft, so it's evil." idiots out there. If people like that had the any amount of control we'd probably still be entering shit on punch cards. Face it, Microsoft or not, .NET/Mono is a great step in the right direction. Some people need to rise above their blind and infantile zealotry and realize how this can help the very cause they CLAIM to be fighting for.
      --
      Linux sucks. And you're fat. Take a shower hippy.
    15. Re:Mono is a good thing by learn+fast · · Score: 1

      Also this will let us run ASP.NET with Linux and Apache. I hate MS as much as anyone but ASP.NET absolutely kicks ass. Now all that needs to happen is for someone to define a PHP syntax for .NET and then I will know that I have died and gone to heaven :)

    16. Re:Mono is a good thing by The+Slashdolt · · Score: 2, Insightful

      MS would NEVER let this happen. Have you ever heard of J++? Once .NET grabs hold MS would extend it in such a way as to make apps written in C# incompatible with their non-ms bretheren. Exactly what they did with J++. The difference here is that Sun owned Java and sued MS for extending Java without their permission. In this case will Mono sue MS for extending C#? MS owns it! In your theory MS's killer application MS Office will be rewritten in .NET and run on Linux. Do you honestly think MS would allow this?

      Additionally, you make it sound like it would bring more developers to linux. The opposite would actually be true. If all apps run on windows and linux, what is the incentive to switch to linux for the average user? Linux needs a killer application that can't run on windows in order to give people the incentive to switch.

      --
      mp3's are only for those with bad memories
    17. Re:Mono is a good thing by lupus-slash · · Score: 1

      You must be a windows .net programmer if you're worried about that.
      We build mono as a development platform for use on free software systems: compatibility with the MS runtime is only a nice side effect of implementing a standard.
      Mono is not in the same position, say, of wine or samba which become pretty much useless unless MS and windows continue to exist.
      If we'll not be allowed to be compatible with whatever means, we'll just continue developing mono: the only people that are going to be hurt by that are MS and windows programmers.

    18. Re:Mono is a good thing by Anonymous Coward · · Score: 0

      Microsoft controls .NET. If they see Mono actually cutting into their pie, they'll change .NET faster than Mono can keep up. This has been their policy for over 20 years now, it's not going to change.

      Which is why you can't run Windows 2000 applications in Windows XP, right?

      Oh, wait.

      Microsoft only ever followed the "break everything as fast as possible" route in the consumer application arena, and they gave that up about 8 years ago (all versions of Office since Office 97 have used essentially the same file format, for example). In the developer arena, Microsoft have bent over backwards to maintain compatibility. Example: if they introduced a minor bug in an early version of an API, and people wrote code that depended on that bug to work, they documented the bug instead of fixing it. Example: every version of DirectX has had dozens of new features, and in some cases a completely new API, but in every case the old APIs have been maintained exactly as they were, to prevent existing code breaking.

      There is no way Microsoft can change .NET, such that it will be impossible for Mono to run .NET applications, that will not also make it impossible for .NET to run existing .NET applications. Microsoft have never broken compatibility in such a way, and to do so would be disastrous for them.

      Sorry, but the "problem" you identify does not exist. It is brought up, and thoroughly debunked, in every single Mono discussion on Slashdot. Kindly refrain from bringing it up again unless you have a compelling argument to support it: FUD of the sort you are spreading is neither interesting nor insightful.

    19. Re:Mono is a good thing by Hard_Code · · Score: 1

      I agree. It's clear to me that C/C++ are simply dead ends for productive general application development. They simply make entirely wrong tradeoffs. Maintainability, accessibility, application development time, interoperability, are much much more important than whether your loop runs twice as fast. Mono will ONLY get faster, if only through sheer hardware improvements. On the other hand, C and C++ will NEVER get easier to write, maintain, debug, or avoid bugs with. I do various Java middleware and occasionally end-user application development in my day job, and I am very enthusiastic about Mono. I like Linux and open source (and participate in various projects, yadda yadda) but from my point of view, day to day application development on Linux is just a fucking mess I don't even want to get involved in. Mono has the promise of making this MUCH easier.

      --

      It's 10 PM. Do you know if you're un-American?
    20. Re:Mono is a good thing by Rolan · · Score: 2, Interesting

      MS would NEVER let this happen. Have you ever heard of J++? Once .NET grabs hold MS would extend it in such a way as to make apps written in C# incompatible with their non-ms bretheren. Exactly what they did with J++. The difference here is that Sun owned Java and sued MS for extending Java without their permission. In this case will Mono sue MS for extending C#? MS owns it!

      FUD. MS owns an implementation of the C# standard. They do not own C#.

      --
      - AMW
    21. Re:Mono is a good thing by Rolan · · Score: 1

      I wish the parent wasn't posted AC. It's got the argument down. C#/.NET/etc are standards. Standards don't change fast, and while MS could make things break by either not following the standard, or some other method, chances are they won't. If they break Mono, they break everyone else using their older products. They've learned not to do that on the development side (with a few rare exceptions).

      --
      - AMW
    22. Re:Mono is a good thing by beanlover · · Score: 1

      Your stupidity is sickening.

      Every time I think Linux has a chance to really change the world, I see some fucking retard like you running your mouth off.


      Your "holier than thou" elitist attitude is laughable at best. Everytime someone points out that Linux won't change the world the way you want it to (hello? reality calling...) someone like you, not having the courage to post under your actual UID, has to pop-off their upside down view of reality.

      /. users are a very small minority of PC owners/users. Get over the fact that you want it your way when Joe Sixpack doesn't give flip-one about the stuff you seem to hold most dear. HE JUST WANTS IT TO WORK! To him...Windows just works.

      I've yet to use Mono but I think its a big step towards making it easier and more acceptable to spend dollars developing an app that runs on both Mono and .NET. Again, Joe Sixpack isn't going to search sourcforge.net looking for an app that is close to what he wants to be able to do on his PC. He wants to pick up the Best Buy ad from the Sunday paper and pick from there. So unless he owns a Mac or an x86 Windows box he ain't gonna be able to do that.

      This is reality.

    23. Re:Mono is a good thing by argent · · Score: 1

      You must be a windows .net programmer if you're worried about that.

      Them's fighting words.

      We build mono as a development platform for use on free software systems: compatibility with the MS runtime is only a nice side effect of implementing a standard.

      There are quite a lot of very nice development platforms on free software systems, from integrated environments like Squeak to libraries that can be linked with many languages, like Tk. They each have many things to recommend them. So far as I can tell the advantages to C# are that it's C-like, arguably better than other C-like languages, potentially faster than the typical Java implementation at some cost in security since it's not as well adapted to sandboxing, and compatible with something Microsoft is doing.

      Other than that last point, there are so many excellent alternatives already in use that I can't see any anything but Microsoft compatibility as being the "killer app" for Mono.

    24. Re:Mono is a good thing by woah · · Score: 0
      Lack of decent programming tools? Don't make me laugh. Tell this to millions of developers who prefer command line tools to fancy GUIs, myself included.

      I can't believe any worthy programmer isn't able to master make - it's just another scripting language and a powerfull one at that. Programmers are supposed to love this sort of stuff (and they do). Compare the hundreds of gcc command line options to the 3 you get with your Visual Studio or some other IDE. (In fact, .NET comes with a command line toolkit, which includes nmake)

      Linux (and Unix) has always been a top notch development platform. It's an OS written by programmers, for programmers. Or as the saying goes, "Use Mac for Productivity, Unix for Development, and Windows for Solitaire".

      On a different note, I think mono is definitely a good thing. What people have a problem with is the propriatry nature of the .NET standards, which means the developers have little control over the direction the framework is heading. But the advantages that a working .NET implementation brings to OSS definitely outweigh any disadvantages.

    25. Re:Mono is a good thing by CaymanIslandCarpedie · · Score: 1

      Point #2 would be true of the ActiveX era, but again MS addressed this quite well in .NET (not sure about MONO's implementation of this). The client certificates go away (actually can still be used as additional security), and you specific exactly what types of access each type of application gets, and the best part is you don't need to be a sysadmin guru to use it. MS provides a .NET Framework Security wizard which allows you to specifically set how to treat applications that originate locally, intranet, trusted internet, and untrusted internet. Plenty of settings within each of those as well.

      Now there are TONS of other security settings a developer/sysadmin can choose from, but to make it SOOOO easy for Joe Six-Pack to secure his own machine really is pretty impressive.

      --
      "reality has a well-known liberal bias" - Steven Colbert
    26. Re:Mono is a good thing by ClosedSource · · Score: 1

      "Those millions of Windows developers who move to .NET (wait for it) have also just learned what they need to develop for MONO (Linux)."

      This is strategy Sun failed to consider with respect to Java and MS. Had they not sued MS, a lot more Windows developers would have learned and used Java. Sure, they may have used non-pure extensions in their programs, but 90% of what they learned would apply to pure Java as well and those skills could have been applied to other platforms.

    27. Re:Mono is a good thing by argent · · Score: 1

      you specific exactly what types of access each type of application gets, and the best part is you don't need to be a sysadmin guru to use it.

      What, no "security zones"?

      how to treat applications that originate locally, intranet, trusted internet, and untrusted internet.

      Oh. Well, I hate to tell you, but this doesn't help.

      The "security zone" model is inherently broken, can't be fixed, and we will see cross-zone exploits hitting DotNET.

    28. Re:Mono is a good thing by argent · · Score: 1

      Which is why you can't run Windows 2000 applications in Windows XP, right?

      Your logic is backwards. It would make more sense if you'd said "Which is why you can't run Windows XP applications in Windows 2000, right?". Of course, if Microsoft didn't ship updates for Windows 2000 that get packaged with the applications (and occasionally cause DLL Hell as apps install patches that break older apps), you wouldn't be able to do that.

      There is no way Microsoft can change .NET, such that it will be impossible for Mono to run .NET applications, that will not also make it impossible for .NET to run existing .NET applications.

      Good thing I didn't suggest that. What I'm talking about is Microsoft introducing new APIs such that new applications which use them will not run on older unpatched versions of .NET (now at 25M and growing), and of course their new updated libraries won't work on Mono.

      And if they include DRM components in the libraries it may actually be illegal (or legally unpleasant and expensive) to reverse-engineer them to keep Mono in sync.

      This is and has been a standard tactic that Microsoft has used for twenty years now. The opposite tactic would of course not work, but that's not what I'm talking about and I can't imagine what you're bringing it up for.

    29. Re:Mono is a good thing by lupus-slash · · Score: 1

      There are quite a lot of very nice development platforms on free software systems, from integrated environments like Squeak to libraries that can be linked with many languages, like Tk.
      Tk was nice 8 years ago. Besides you can reuse Tk either by embedding the tcl interpreter or by changing the Tk code and plug a different language. Not exactly a good example of nice sw reuse.

      at some cost in security since it's not as well adapted to sandboxing
      Mono is currently implementing the security sandboxing: if you ask security experts they'll tell you the security features in the CLI are well thought out.

      Other than that last point, there are so many excellent alternatives already in use that I can't see any anything but Microsoft compatibility as being the "killer app" for Mono.
      Wait and see until the new apps based on C# and mono become mainstream in linux distributions: beagle, f-spot, muine, monodevelop.

    30. Re:Mono is a good thing by argent · · Score: 1

      Tk was nice 8 years ago.

      UNIX was nice 30 years ago. It's still nice.

      Tk's API is one of the better attempts at the same simplification to GUI APIs that the UNIX shell and pipe/filter model was for CLI APIs. It's not nearly as successful, but it sure seems like a better approach than just about anything else I've used.

      Wait and see until the new apps based on C# and mono become mainstream in linux distributions

      There's other languages that have a couple of apps based on them without ever becoming anything more than "yet another bloody dependency".

      And Mono looks to become the next great evil dependency salad. I can't wait.

    31. Re:Mono is a good thing by lupus-slash · · Score: 1

      UNIX was nice 30 years ago. It's still nice.
      Agreed. Many of the unix concepts are perfectly fine today. This doesn't mean that Tk is still nice.

      Tk's API is one of the better attempts at the same simplification to GUI APIs that the UNIX shell and pipe/filter model was for CLI APIs. It's not nearly as successful, but it sure seems like a better approach than just about anything else I've used.
      Tk was good for small apps, but the design it was built upon made it irrelevant, since it is so tied to Tcl and Tcl is unusable in many settings. Having to maintain forks for perl etc just show how much its design was wrong.
      After so many years that tk has been deployed, there isn't a single Tk app I'd want to use.
      Less than a year after mono 1.0 was released, beagle, muine, monodevelop, ikvm and other mono apps are in the top of the list of apps people want (see gnomefiles). As mono matures the number of apps will accelerate.

      And Mono looks to become the next great evil dependency salad. I can't wait.
      Your drivel is showing.
      Please reply if you have technical issues to bring up, your uninformed rants are useless.

    32. Re:Mono is a good thing by argent · · Score: 1

      Tk [...] is so tied to Tcl

      The fact that Tk was built on top of and for Tcl and yet could be modified to support multiple different scripting languages, however clumsily, shows the design was fundamentally good. The implementation was less language independant than it could have been, but still good enough to let it work.

      The fact that there has not been a single other GUI toolkit that has even tried to address the same problems, perhaps it's time to reconsider Tk.

      Less than a year after mono 1.0 was released, beagle, muine, monodevelop, ikvm and other mono apps are in the top of the list of apps people want (see gnomefiles).

      Given that I can't think of a single Gnome application I want to use, that's hardly a resounding compliment.

  22. I have tried Gtk# by r6144 · · Score: 5, Informative
    I ported a Doom map viewer I wrote in C/GTK/Glade to Mono/Gtk#. It was about 20k bytes of C code. Converting it to C# took little effort, though being almost my first C# program I had some difficulty deciding between structs and classes for data structures (C# classes have significant overhead when there is only a few members, and C# structs doesn't seem to be as flexible as C structs). The resulting C# code was a little less verbose (about 20% fewer bytes) than glib-style C code, since I no longer need to call g_free()'s, and callbacks are more concise in C#. It worked perfectly under Mono.

    My only gripe was the lack of a decent debugger (monodbg hardly worked then), but it was quite a while ago, and I hope someone would post their experience with a newer version of the debugger.

    1. Re:I have tried Gtk# by tidewaterblues · · Score: 3, Interesting

      IMHO the true benefit of Mono is not in its intrinsic value as a langauge (althought I think that, in general, C# was very well thought out--the Framework was less well thought out, but still pretty good), but in its value (eventually) as a tool for cross platform development.

      You can write an application using GTK# and have it run on Windows, OS X, Linux, Solaris, etc. Its the Java promise all over again, but reworked to run better. For this reason alone I am considering doing a non-trivial desktop database application for a publisher in Mono, since they have many platforms, and I think the overall effort of using this system will be easier that trying to pull a Mozilla on my budget.

      --


      ...En að Besta Sem Guð Hefur Skapað Er Nýr Dagur
    2. Re:I have tried Gtk# by Anonymous Coward · · Score: 0

      FWIW, there was no usable debugger with the 1.1.4 release either - so its back to the old print-to-console-debugging days for now :)

    3. Re:I have tried Gtk# by Dr.+Sp0ng · · Score: 2, Insightful

      C# classes have significant overhead when there is only a few members, and C# structs doesn't seem to be as flexible as C structs

      Eh? Where are you getting this?

      The major difference between the two is that classes are reference objects while structs are value objects. Other than that there are limitations in terms of inheritance with structs and things of that nature, but your statement that C# classes with few members have a lot of overhead is simply false.

    4. Re:I have tried Gtk# by Anonymous Coward · · Score: 1, Informative

      They aren't interchangable without performance hits; if you use structs as classes they'll have to be marshaled from the stack to the heap which is expensive (and the same the other way around). See "Design with ValueTypes" here http://msdn.microsoft.com/library/default.asp?url= /library/en-us/dndotnet/html/dotnetperftips.asp

    5. Re:I have tried Gtk# by Anonymous Coward · · Score: 0

      You can write an application using GTK# and have it run on Windows, OS X, Linux, Solaris, etc.

      That's excellent news! Would you be so kind as to provide a link to the native OS X implementation of GTK+2 that this magic presumably relies on? I wasted three hours yesterday looking for one that ran in Aqua rather than X, with no luck at all.

    6. Re:I have tried Gtk# by Anonymous Coward · · Score: 1, Insightful

      Maybe you should check your ass.

      I made a clever.

    7. Re:I have tried Gtk# by JudasBlue · · Score: 1

      So it does the same thing that Python and WxWidgets have done for years? Oh, except you can't run it on OS X...

      --

      7. What we cannot speak about we must pass over in silence.

  23. why? by mattyrobinson69 · · Score: 3, Interesting

    As mono is only a reimplementation of .NET and the actual implementation can differ, why not compile the source into native executables rather than bytecode? Surely it would be faster that way.

    1. Re:why? by Anonymous Coward · · Score: 0

      How convenient for him to explain one more time...
      Insiders are actully claiming Microsoft is actually thinking of dumping .NET QUIETLY because it has not penetrated the market as expected for the amount of cash pumped into it..

    2. Re:why? by mwood · · Score: 2, Funny

      They won't "dump" it. MS hardly ever throws anything away. They'll just smear on another layer of frosting.

      Inside every DVD-ROM of bloatware there is an 11kB program screaming to get out.

    3. Re:why? by 0xDAVE · · Score: 1

      RTFA .NET is a collection of things. .NET framework is a virtual machine. It runs compiled byte codes. C# is a language which is part of .NET

    4. Re:why? by Jugalator · · Score: 1

      Insiders are actully claiming Microsoft is actually thinking of dumping .NET QUIETLY because it has not penetrated the market as expected for the amount of cash pumped into it..

      LOL, I'd like to know which those insiders are. Windows Longhorn itself will even be built in large parts on .NET code.

      --
      Beware: In C++, your friends can see your privates!
    5. Re:why? by man_of_mr_e · · Score: 4, Informative

      Lol. I love these kinds of conspiracy theories. They completely ignore the facts.

      Microsoft is now wedded to .NET, whether it wants to or not. Longhorn's userland is now largely .NET based (WinFX) making .NET apps first class citizens of the OS. Core Longhorn technlogies such as Avalon and Indigo are written in .NET.

      MS isn't dumping .NET anytime soon.

    6. Re:why? by Anonymous Coward · · Score: 0

      Read monodoc. It is possible to produce native code by passing the --aot option to mono. This will ahead of time compile your assembly and produce a .so file that will be loaded by the runtime.

    7. Re:why? by caseih · · Score: 4, Insightful

      Hmm, you mean like how gcj produces native java executables that are faster than running bytecode in the JVM? Oh wait. No it's slower. One of the main facets of .NET and Mono, though, is the ability to precompile the binaries to speed up loading (but not running). The thing about running code in the JVM and the CLR is that programs slowly get faster and faster as the jitter tweaks the optimizations and caches them.

      Therefore I don't see any real point to producing native executables. Heck you don't even see to many people clamoring for a perl native compiler or a python native compiler. Although they exist most people simply don't need them. The future is in languages like Python, Perl, C#, Java. Bytecode compiled or even straight interpreted languages are really coming of age. The bare underlying hardware is becoming less and less relevant.

    8. Re:why? by Anonymous Coward · · Score: 0

      Thanks for the information. Slightly anal how you had to make the point that you know more on the subject than i do by saying stuff like "Hmm, you mean like how gcj produces native java executables that are faster than running bytecode in the JVM? Oh wait. No it's slower".

      Ah well.

    9. Re:why? by Anonymous Coward · · Score: 0

      Microsoft is now wedded to .NET, whether it wants to or not. Longhorn's userland is now largely .NET based (WinFX) making .NET apps first class citizens of the OS. Core Longhorn technlogies such as Avalon and Indigo are written in .NET.

      MS isn't dumping .NET anytime soon.


      True, but MS can and will arbitrarily change what .NET is, and if mono really takes off, MS will just ship a version that's incompatible with it. Unless there are a critical mass of mono installations at that time, the MS version will win out.

    10. Re:why? by master_p · · Score: 1

      Theoritically, what you say is true. In reality, it is not. The JVM run-time optimizations depend on the amount of information on the original source code stored along with byte codes. With Java byte code, it is minimal.

      On the other hand, native executables can be much faster, simply because programs can be optimized better.

      Let me give you an example: in C++, the compiler will inline member functions that:

      a) are short in code size
      b) are not short in code size but only used once or twice in the program

      The above is not possible with run-time optimization, because the VM can not have a graph of the whole program.

      Microsoft has developed a whole-optimization technique which takes C++ optimization even further.

      Another good optimization in C++ is that dynamic casts are converted in static casts if the compiler can assert that the underlying object is always of a certain class. This can not be done with bytecode languages, because the environment is much more dynamic. Thus Java programs are slower, due to heavy run-time casting.

      The most important aspect of bytecode is that you write it once, then you run it everywhere, without needing access to a compiler.

    11. Re:why? by The+Slashdolt · · Score: 1

      Wow, MS is so kind. In no time they'll be rewriting MS Office in .NET and we'll be able to use Office on Linux! Don't hold your breath...

      --
      mp3's are only for those with bad memories
    12. Re:why? by fitten · · Score: 1

      I don't get these "MS will change .NET to make it incompatible" conspiracy theories. Why go through the trouble of getting the stuff down as an ECMA standard (open for anyone to use), throw tons of money at it to get practically your whole developer base on it, just to throw it away. They would strand their own developer base which pretty much goes against everything that they've done in the past years. I'm sure you've seen the Balmer video of "Developers! Developers! Developers!". If they throw away their developers, who is writing anything on their platform (which is what keeps the platform going).

      It just doesn't add up.

    13. Re:why? by sjasja · · Score: 2, Informative
      in C++, the compiler will inline member functions [...] The above is not possible with run-time optimization, because the VM can not have a graph of the whole program.

      and

      the compiler can assert that the underlying object is always of a certain class. This can not be done with bytecode languages

      In fact, you have this exactly backwards.

      These types of optimizations are exactly the ones that can be done, and are done, in Java.

      The Hotspot Java compiler does not "assert that the underlying object is of a certain class". It can actually notice that, hey, this object seems to be of class X at least so far. So maybe it is always of that class. So Hotspot compiles a method that makes that assumption.

      Here is the neat trick: if Hotspot's assumption turns out to be wrong, it discards the earlier compilation and recompiles with a looser assumption.

      This is done today. It is called dynamic deoptimization. It means that "virtual" function calls can be compiled as direct jumps, and even inlined. If it turns out later that the call really needs to be virtual -> automatic recompilation on the fly and you are good to go again.

    14. Re:why? by Anonymous Coward · · Score: 0

      Why go through the trouble of getting the stuff down as an ECMA standard (open for anyone to use), throw tons of money at it to get practically your whole developer base on it, just to throw it away.

      HTML, C++, SQL, Java... Name a standard, then point to the Microsoft product that correctly implements it. None do. MSFT has always been anti-standards, they give lip service to standards to gain developers, but have no intention of following through.

    15. Re:why? by man_of_mr_e · · Score: 1

      Conversely, name a product that's NOT Microsoft's that correctly implements them. Chances are, if there is one, it's not commonly used or more than an educational exercise.

      MS's current C++ compiler is more standard compliant than GCC is, from my experience. Neither implement esoteric features like "export". Java isn't a standard, by the way.

    16. Re:why? by man_of_mr_e · · Score: 1

      While the core part of Office isn't likely to change anytime soon (too much legacy), Most new bits are being written in .NET. Check out the .NET Tools for Office, you can do some amazing shit with them.

    17. Re:why? by Anonymous Coward · · Score: 0

      Conversely, name a product that's NOT Microsoft's that correctly implements them.

      Point taken, but I still highly doubt MSFT's commitment to the .NET standard would stand up to any serious competition. Do you think they would sit idly by and let the same applications run on Linux as on Windows? That would erode their monopoly.

      They WILL do something if compatibility starts to disadvantage them, and they WON'T worry about violating the standard to do it.

    18. Re:why? by man_of_mr_e · · Score: 1

      Microsoft would be laughing all the way to the bank?

      Why should MS support a Mac and Windows version of Office with double the staff? Why not have one product for both? How do you think MS plans to make products for 64 bit versions of Windows? They're already using .NET heavily with SQL Server 2005 64 bit.

      Microsoft can't just go changing the standard without breaking lots of client apps, and that's something MS won't tolerate (other than ones that compete with their own ;)

    19. Re:why? by master_p · · Score: 2, Informative

      You're right. But there is a trick that the Hotspot optimizer can't do, and that is to recognize the locality of an object, even if it has virtual methods. What the Hotspot actually does is to look up the inheritance tree of a newly loaded class; if the new class overrides methods of another class, and then super class' inline methods are de-inlined and the call becomes virtual. But the Hotspot VM can't tell whether an object is actually virtual or not, because it does not look at the program's graph, but at the class inheritance graph! the whole-optimization technique is able to do that, because it can actually understand that a class is never used in some places, and therefore it can inline some virtual calls. The whole-optimization technique can even inline whole algorithms, even when composed of multiple virtual function calls: it has been shown that it can improve the performance of an app by even a 70%.

      Furthermore, the Hotspot optimizer imposes a performance hit. All this monitoring that takes place takes computing cycles off the application. On the other hand, a C++ program is perfectly optimized by the compiler, and it runs without any VM overhead.

      I am not saying that bytecode sucks...on the contrary, it's very useful, since the same binary runs on any architecture. It's really important in a business application enviroment. But the argument that Hotspot optimization produces equal or faster code than pre-compiled code is false.

      Considering all, Java is slower than C++ for the following reasons:

      1) Java does not have stack-based objects. That imposes a performance hit, because the program's heap is literred with many small objects, that will be disposed of at the next collection of generation 0, but will not let those memory pages be swapped out to disk. A C++ program that uses many stack objects is way faster than the comparable Java program, because it makes much better resource management.

      2) The nature of the Java language, with everything being derived from class Object, makes every cast dynamic. The Hotspot compiler pauses the program and replaces the dynamic cast with a check if the class is the correct one and no dynamic cast. But the dynamic cast replacement with static cast is done by the C++ compiler during the compilation phase, and the executable runs without any Hotspot overhead. In reality, there are very few points in a Java program where the dynamic cast can be resolved and remain static. Take collections, for example: they can be used in thousands of places in a program. For every collection, there are thousands of places in code that the same casts are de-optimized again and again, in order to fulfill the assumption that the cast may be static. On the other hand, C++ generates different code for each template function, and is able to optimize the code better since primitives can be used in collections. A real example of this is the map class: in C++, key searches in maps (which is an operation that happens at every insertion, removal and search) with integers are hardware-based, with the integer kept in a register, whereas in Java it is an object, which is cast to 'Integer', then the value is obtained by a a virtual call (which may be inlined), then used as an integer value. And the map search loop can be easily be unrolled by the C++ compiler.

      Again, I am not saying that Java is useless. Personally, I don't mind my application to be a little slower, while I get a huge increase in productivity. But at the same time, we can not let false conclusions circulating around. Hotspot is nice, but all the pioneering work for compilers is done on the C++ front, and C++ is the leader in performance. It's obvious even to the most naive user that Java apps are slower. It is no accident that no major performance-intensive business application like a Word Processor is written in Java (actually Sun tried it, but it was very slow and unusable).

    20. Re:why? by sjasja · · Score: 1
      1) Java does not have stack-based objects.

      There is at least one Java JIT compiler today that does have stack-based objects. There is also work being done on the Sun JDK in that regard - watch out for JDK 6.0.

      2) The nature of the Java language, with everything being derived from class Object, makes every cast dynamic.

      Only casts that need to be dynamic need to be dynamic (duh). Runtime statistics collection, combined with dynamic decompilation, move cast checks up the call graph (and thus loop graph). All this is done today.

      There is no "pausing a program" to do a cast. A checked cast is a "cmp" instruction, followed by a (usually non-taken) branch. No "pausing" is involved (what the heck is "pausing" anyway?). And even that "cmp" can often be moved up the call graph, moved outside loops, or eliminated.

      Of course, proper OO programming style results in few checked casts. I write less than one cast per 10,000 lines of production Java code myself. And even a lowly PC can do tens of millions of dynamic casts per second. So ...is there a real, measurable problem (in contrast to an imaginary FUD one)???

    21. Re:why? by master_p · · Score: 1

      There is at least one Java JIT compiler today that does have stack-based objects. There is also work being done on the Sun JDK in that regard - watch out for JDK 6.0.

      Well, when and if Java gets stack objects, then will re-discuss this. Until then, C/C++ is #1 in performance.

      Runtime statistics collection, combined with dynamic decompilation, move cast checks up the call graph (and thus loop graph). All this is done today.

      In C++, you don't need to collect statistics in run-time...for performance critical applications, it makes a great difference.

      Furthermore, you seem to not have understood the concept of whole-optimization. Let me repeat it: a virtual call may be virtual in one part of the code and non-virtual in another, simply because the compiler uses the program graph to understand how objects are used. It's not simply 'moving cast checks up the call graph'. Locality of usage matters too much.

      There is no "pausing a program" to do a cast. A checked cast is a "cmp" instruction, followed by a (usually non-taken) branch. No "pausing" is involved (what the heck is "pausing" anyway?).

      It is 'pausing'. At least Sun calls it that. The VM stops the execution of the thread to do the de-optimization.

      And even that "cmp" can often be moved up the call graph, moved outside loops, or eliminated.

      Of course, proper OO programming style results in few checked casts. I write less than one cast per 10,000 lines of production Java code myself.

      How is it possible to write one cast in 10,000 lines of Java code? don't tell me you don't use collections? and if you don't, I am sure the library you use certainly does. And using a Java collection class means that you always get a variable of type Object, that you have to cast to your own type. Since no application can be written that does not use any form of collection, you are either lying, or using a magical API which can do collection stuff, without using Java collections.

      And even a lowly PC can do tens of millions of dynamic casts per second. So ...is there a real, measurable problem (in contrast to an imaginary FUD one)???

      A cast in Java is not a simple compare instruction.A cast has to do the following operations:

      1. load the address of the pointer from the reference into a register
      2. check the value of the address not to be 'null'.
      3. load the address of the object from the pointer into a register
      4. load the address of the class struct into a register
      5. load the address of the casted class struct into another register
      6. compare the two registers
      7. if equal, jump to the normal flow
      8. if not equal, then:
        1. move the cast up the inheritance tree or
        2. throw a class cast exception

      As you can see, it is barely a simple 'cmp' instruction. All this casting takes time, since the CPU has to load the address of an object into a register, then take the address of class struct stored into the object and compare it with the address of the class struct of the cast class, then do a jump (which may flush the CPU pipes, if you're not lucky). This can be translated up to 8 instructions on RISC and up to 4 instructions on CISC (80x86).

      On the contrary, the relevant code in C++ does not have to do any of the above, simply because the compiler knows at compile time the type of the item stored in the collection.

      Furthermore, when one is using map collections with keys as primitives, there is collosal difference between Java and C++. In Java:

      • a new Integer object must be allocated.
      • the value of the Integer object must be set.
      • the map function insert, or find or remove may be called. The algorithm will:
        1. call the Comparator class of the map with arguments the two key objects to be compared (most propably through a virtual call).
        2. The Compara
    22. Re:why? by fitten · · Score: 1

      It works both ways though... If you implement something on Linux with it, the app will probably run on Windows too. Both sides will benefit. Who will benefit more though? I'd probably think Linux would benefit more but that's my first reaction. I'd need to think about it more... (for example, many research projects are Linux native and Windows as an afterthought... if any good research projects started with Mono instead, Microsoft would get benefit from any "breakthroughs" that would normally hit Linux first).

  24. Re:good morning, astroturfers by argent · · Score: 1

    I've met more actual people who have tried and loved GNUstep in real life than Mono.

    That's because GNUstep is based on something that doesn't suck.

    (sugar-free white kool-aid)

  25. Compact Framework by starmang · · Score: 1

    Will the introduction of Windows.Forms mean we can GUI write applications for our Linux PDA's? IIRC you can compile and deploy non-UI .Net CF libraries on Mono without much trouble. But for the UI applications, that's a different story.

    --
    Never touch an Irish man's Guinness!@#
  26. I don't "get" Mono either. by Markus+Registrada · · Score: 3, Insightful

    C#, like Java, was designed to solve problems we don't have in the Free Software world. The compromises that are designed into the language make it, like Java, inherently less useful for Free Software than languages designed purely for performance and expressiveness. The haste with which it, like Java, was cobbled up make it poorly suited to describing what we want done with our machines. We don't need to "write once, run hardly anywhere"; we already build and run wherever we like.

    I don't have a Java VM on my hosts, and I don't see any reason to saddle them with a Mono VM, or VMs, either. The only Java program I have found a need or desire to run (pdftk, a PDF toolkit) runs (as well as any Java program can) as a native binary compiled with Gcj. A C# front-end to Gcc might have some value for compiling programs so unwisely written in that language, but a bytecode interpreter seems just silly.

    We already have a powerful, mature, and efficient language, proven effective for myriad successful Free Software projects. It's called C++. It integrates so well with Free Software systems that nobody even needs to know that they are running a C++ program. Murray Cummings has stepped up and produced well-packaged C++ library bindings for all of GTK and Gnome components, so it is easy to use for writing Gnome applications.

    Miguel's unhappy experience with Microsoft's buggy pre-standard compiler (mislabeled "C++") has unfortunately led him astray. We need not be similarly misled.

    1. Re:I don't "get" Mono either. by tc · · Score: 4, Informative

      Programmer productivity is higher in garbage-collected (MS calles them "managed") environments such as Java and .Net/C#.

      In addition, it's much harder to make programming blunders such as overstepping the bounds of an array or string, which can in turn lead to security vulnerabilities.

      Those two reasons alone are enough to favour a Java/C#-type approach in situations where absolutely bleeding-edge performance isn't a requirement (i.e. almost all of them).

    2. Re:I don't "get" Mono either. by brpr · · Score: 3, Insightful

      C#, like Java, was designed to solve problems we don't have in the Free Software world. The compromises that are designed into the language make it, like Java, inherently less useful for Free Software than languages designed purely for performance and expressiveness.

      Even by the standards of the times C was just a straightforward block-structured procedural language. Compared to predecessors such as Lisp or even Algol it's not especially expressive. (I'm not bashing C here, I quite like it. But I wouldn't say it was particularly expressive, and it wasn't obviously designed to be so.)

      We already have a powerful, mature, and efficient language, proven effective for myriad successful Free Software projects. It's called C++.

      OK, efficient is reasonable, powerful is debatable, but mature?? It's only very recently that gcc has come close to supporting the C++ standard properly (and the same goes for the MS compiler, of course). C++ compilers in general have a history of being buggy and incomplete, going right back to the pre-standard cfront from AT&T.

      Miguel's unhappy experience with Microsoft's buggy pre-standard compiler (mislabeled "C++") has unfortunately led him astray. We need not be similarly misled.

      Two years ago, was g++ in a much better situation? You'll note that virtually no current compiler supports the extern keyword for templates, so C++ programmars still have to use a crippled language to get cross-compiler compatibility (if you're using a lot of templates, you pretty much lose the ability to compile modules separately).

      --
      Freedom is not increased by mere diminuation of government. Anarchy is freedom for the strong and slavery for the weak.
    3. Re:I don't "get" Mono either. by LDoggg_ · · Score: 2, Informative

      Fine we'll all switch completely to C++.
      Just add a garbage collector, remove multiple inheritence, and eliminate the need for header files.

      Oh wait, now you have java and C#

      Don't just assume that because you like C++ for everything, that everyone else does.
      Some things are just easier to do in java or C#.
      There are plenty of cases when the bottleneck in your application is something like I/O or bandwith or SQL running time. In cases like these, often the benefit of a super fast GUI doesn't outweigh the rapid development of using something slightly higher level.

      C and C++ definetly have their place, but so do java and maybe even C#
      Just pick the right tool for the job.

      --

      "If they have both, tell them we use Linux. And if they have that, tell them the computers are down." -Dave Chapelle
    4. Re:I don't "get" Mono either. by Anonymous Coward · · Score: 0

      Dump your car, and stick with the horse buggy. Old geezer assembly programmers would be saying the same about you and your C++.

    5. Re:I don't "get" Mono either. by cheesybagel · · Score: 1
      The problem is compiling apps can take an awful long amount of time. Just try compiling Mozilla.

      So you distribute binaries. But then you find out they are not portable across Linux distributions in the same architecture, because of different glibc API versions or something like that, let alone across different architectures.

      This is definitively a problem. Although more acute for a closed source app, open source apps are not immune to it. Not until we start stardardizing and fixing ABI and API formats at least.

    6. Re:I don't "get" Mono either. by Jugalator · · Score: 2, Insightful

      I don't "get" Mono either

      It's all about offering an API to develop for Linux while only requiring basic Windows development skills using .NET.

      C++ + GTK + other Linux specific libraries can often turn out to be scary for a Windows developer, making him/her stick with Windows and thinking "others" can "later" do the porting job if necessary. With Mono, a developer can go -- "hmm, I wonder if this will work on Linux now, being developed in .NET?" and maybe suddenly it will, or with only minor modifications. The result can actually be an application being released for both Windows and Linux, instead of just for Windows and a Linux port delayed indefinitely.

      Yes, we have Java for this too, but Java isn't all that hot for a major part of Windows developers. A large part enough to warrant Mono, I think. Java isn't a hugely successful language for many Windows developers; but I can sure say Visual Studio and its accompanying software is. We'll probably have more developers moving, or already having moved, from Visual Studio 6 to Visual Studio .NET than Windows developers programming in Java.

      --
      Beware: In C++, your friends can see your privates!
    7. Re:I don't "get" Mono either. by lmsig · · Score: 1

      Besides with Java you have the JNI interface which lets you access "native" code (such as those written in C). So you can do the bulk of your software in Java but still have the one little tiny piece that needs to be mega optimized done in C.

      --
      .plan!! what plan?
    8. Re:I don't "get" Mono either. by Jugalator · · Score: 1

      garbage-collected (MS calles them "managed") environments

      Just a nitpick, but MS calling code "managed" hasn't just to do with garbage collection.

      Managed code = code running "inside a sanbox", making no calls outside the .NET Framework. Benefits of managed code can be:

      - Automatic memory management
      - Automatic lifetime control of objects and versioning to avoid "DLL Hell"
      - Runtime checks by the .NET runtime
      - Cross-language integration
      - Platform-neutrality
      - Security

      --
      Beware: In C++, your friends can see your privates!
    9. Re:I don't "get" Mono either. by elmartinos · · Score: 1, Insightful

      We already have a powerful, mature, and efficient language, proven effective for myriad successful Free Software projects. It's called C++

      Are you joking? With the same thinking, we all would still code Assembler. There are plenty of other mature, powerful, efficent, proven languages available that are often a much better choice than C++. For example Ruby, Python, Perl, Java, Ocaml Tcl, C, to name only a few of them. The right tool for the right job.

    10. Re: I don't "get" Mono either. by Markus+Registrada · · Score: 0, Flamebait

      Garbage collection is one of the main reasons Java and C# are so slow. (Benchmarks claim only 3x. Experience shows 30x is more common, due largely to GC's effect on cache performance.) Multiple inheritance costs nothing; why bring it up? Consider carefully why only promoters of dull tools endlessly intone "the right tool for the job"? A sharp tool works well everywhere. Java and C# are "higher level" only under a facetious definition of the term; are blunt kiddie scissors "higher-level" than my Fiskers? Programs written as if performance doesn't matter interfere with operation of other programs where it does.

    11. Re:I don't "get" Mono either. by karnowski · · Score: 1

      Open-source development is still only a small fraction of all development. Most development occurs inside corporations for internal use. Very few of these internally developed new projects are being done with C++ anymore. For any new project of any complexity a good majority (probably >90%) are being done in either Java or C# (the rest are being done with one of the scripting languages).

      Now why is Mono a good idea?
      1) One of the biggest road-blocks for a corporation to move desktops from Windows to Linux is those internally developed applications which were developed using Microsoft technologies. With all new internally apps being developed in either Java or C# moving to Linux is now easier.

      2) In terms of developer-productivity and safety Java & C# are much better languages to develop in over C/C++. That's why very few new projects in the corporate world are developed in C/C++ outside of a few niche areas (low level kernel/OS stuff, areas where you need a small foot-print and high-speed, and graphic intensive apps). For example, how many C++ projects do you see on the Apache website, especially those that have begun only in the past few years? Why do you think that is?

    12. Re: I don't "get" Mono either. by Markus+Registrada · · Score: 1

      Nobody ever said C was expressive. If you don't think C++ is as expressive and powerful as, say, ML, you know very little about it. (See http://boost.org/ for an eye-opening experience.) Expressiveness isn't an abstract virtue: it means you can write libraries that are very powerful, yet easy to use.

      C++ the language is mature. G++ is mostly there. Even "two years ago" it was in good enough shape that hundreds of the programs that come with your favorite distro are written in it -- many times more than all those in Perl, Python, Java, and C# combined. That you haven't noticed is because they work with no fuss. (Do you run *any* Java program that is not obviously a Java program?)

      Support for "export" (not "extern") turns out not to be very important for portability, as very few other compilers support it either. Most people who think they want it are mainly concerned with not exposing their source code; which is not of much interest in the Free Software world.

    13. Re:I don't "get" Mono either. by Markus+Registrada · · Score: 1

      There is no such language as "C/C++". C is a language. C++ is a different language. Good C code is bad C++. Good C++ code is not C at all.

    14. Re:I don't "get" Mono either. by man_of_mr_e · · Score: 3, Informative

      A C# front-end to Gcc might have some value for compiling programs so unwisely written in that language, but a bytecode interpreter seems just silly.

      You seem to have a fundamental misunderstanding of .NET and Mono. While it's true that the first version of mono was interpreted, no version of MS's .NET ever has been and the most recent version of Mono does not interpret either. It uses JIT compilers to compile code at runtime as it's accessed.

      This is actually a nice situation in some ways, since the JIT compiler knows more about the machine's runtime situation than a static compiler can.

      For example, it can compile to 64 bit on 64 bit machines with zero changes in the source bytecode. It can also adapt to runtime situations (such as low memory conditions) more easily.

      Of course this has the penalty of a slightly less responsive application the first time the code executes, but that's a small price to pay.

    15. Re: I don't "get" Mono either. by LDoggg_ · · Score: 1

      Garbage collection is one of the main reasons Java and C# are so slow.

      No argument there.

      (Benchmarks claim only 3x. Experience shows 30x is more common, due largely to GC's effect on cache performance.)

      And my experience shows that "30x" is an exaggeration by someone trying to prove a point.

      Multiple inheritance costs nothing; why bring it up?

      Because it leads to diamond shaped inheritance which is a maintenance nightmare. I despise that part of c++.
      I'm no glutton for punishment, but I do like to contribute to open source where I can. As such, I find myself less willing to read over code where this has been needlessly used. I feel the same about excessive operator overloading.

      Programs written as if performance doesn't matter interfere with operation of other programs where it does.

      Performance is always an issue. Coding sloppily in any language is unacceptable.
      That said, many of us do have bills to pay and families to feed, and acheiving the desired functionality of application's spec is almost always more important than couple of percentage points worth of application perfomance. Increase productivity and you have a better chance of reaching your goal.
      Thread the applcation correctly so that the parts of the application that are out of the developer's control don't affect the user's experience.

      --

      "If they have both, tell them we use Linux. And if they have that, tell them the computers are down." -Dave Chapelle
    16. Re:I don't "get" Mono either. by omicronish · · Score: 1

      So you can do the bulk of your software in Java but still have the one little tiny piece that needs to be mega optimized done in C.

      In case people aren't aware, you can also do the same with .NET through either P/Invoke (the equivalent of JNI, I think?) or managed C++ (C++/CLI in .NET 2.0). With the latter you basically use .NET with a C++ syntax, and can opt to compile C++ as unmanaged code if you want. .NET with a C++ syntax is incredibly powerful for porting or interfacing existing C++ code with .NET.

    17. Re: I don't "get" Mono either. by brpr · · Score: 1

      Nobody ever said C was expressive. If you don't think C++ is as expressive and powerful as, say, ML, you know very little about it.

      I'm perfectly aware of Boost. ML I find generally more expressive because it has type inference, a more compact syntax, garbage collection and a built-in list type. Most importantly, it has proper higher order functions and closures, which are a pain to simulate in C++, even with the boost lambda library.

      I do agree that with boost, C++ is bearable as a modern programming language, and is at least somewhat comparable to ML.

      C++ the language is mature. G++ is mostly there. Even "two years ago" it was in good enough shape that hundreds of the programs that come with your favorite distro are written in it -- many times more than all those in Perl, Python, Java, and C# combined. That you haven't noticed is because they work with no fuss. (Do you run *any* Java program that is not obviously a Java program?)

      Sure, C++ is good enough. Your original argument seemed to be that C++ was so good that Mono wouldn't be an improvement. This seems wrong to me, for the reasons I've already given. There are plenty of flaws in C++ which Mono (perhaps) doesn't suffer from. You point out that C++ programs tend to run more transparently than Java/C# programs. To the extent that this is true, it's an advantage for C++, but it surely has many other disadvantages compared to these newer languages.

      Support for "export" (not "extern") turns out not to be very important for portability, as very few other compilers support it either. Most people who think they want it are mainly concerned with not exposing their source code; which is not of much interest in the Free Software world.

      Read what I wrote more carefully. I noted that C++ code can be made portable by not using extern. The problem I pointed to was that separate compilation breaks down if you can't use extern.

      I should point out that I'm no big fan of C# or Java, being more of a functional programming groupie. But although they don't have such sophisticated type systems as C++, Java and C# are far more productive for most programming tasks, and are certainly worth having as alternatives to C++.

      --
      Freedom is not increased by mere diminuation of government. Anarchy is freedom for the strong and slavery for the weak.
    18. Re: I don't "get" Mono either. by brpr · · Score: 1

      Sorry, I've repeated my mistake of using "extern" instead of "export".

      --
      Freedom is not increased by mere diminuation of government. Anarchy is freedom for the strong and slavery for the weak.
    19. Re:I don't "get" Mono either. by Mant · · Score: 1

      In a way you are right, Free Software doesn't have the same problems that things like Java and .Net are designed to tackle.

      In the Free Software world you can take as long as you like to complete something, there isn't the same pressure to get either get stuff out to sell to the customer, or complete internal projects by a deadline.

      Java and .Net are really geared at productivity, hence their large libraries and IDEs. They let good developers produce good code very quickly, rather than the best code but taking longer.

      In fact the bytecode vs compiled is almost irrelevant in a lot of cases. If the bytecode runs fast enough, and it will for the vast majority of things, the user doesn't need know they are running something in bytecode anymore than they would know they were running something in C++.

      Of course, you don't really build and run where you like, it isn't like you can just compile any C++ program on Windows and *nix and expect it to work. You can write cross platform code, but with an overhead, and many toolkits don't look native. Java often doesn't look native either, I don't know how well Mono Window Forms stuff looks.

      Really nobody can run anywhere yet if you want to have a GUI and not a lot of extra development work.

      C++ has a large base of programmers, and a lot of people have a weird snobbery about the languages they know, and types of languages (compiled vs interpreted, IDE vs vi, oo or not). Ultimately they are just tools though, and more tool equal more options.

      If .Net on Linux lets people write code as easily as it does Windows it can pretty much only be a good thing. Nobody forces you to install the CLR and run them, but again it provides more choice.

    20. Re: I don't "get" Mono either. by Mant · · Score: 1

      Consider carefully why only promoters of dull tools endlessly intone "the right tool for the job"? A sharp tool works well everywhere.

      You can't be serious. You would use C++ for everything? There is a reason C++ CGI largely died out and was replaced by a bunch of other things, they were better for web apps than C++ is. Use it for small batch jobs instead of perl or shell scripts?

      You know some people saying "best tool for the job" also use C++ and recognise sometimes it is still the best.

      Programs written as if performance doesn't matter interfere with operation of other programs where it does. Sometimes the performance isn't about the language but the algorithm or SQL query.

      There is a huge difference between "performance doesn't matter" and "performance is king". Programs have to perform well enough to be usable, and after that you need to prioritise how you spend development time.

      Honestly you are coming across as one of those weirdo language bigots who have waaay to much invested in their own choices to consider anything else.

    21. Re:I don't "get" Mono either. by The+Bungi · · Score: 2, Insightful
      Ah, elitist hubris.

      problems we don't have in the Free Software world

      That's why you have 1% of the market and 1 million developers, instead of 90% of the market and 10 million developers.

      If someone in your "world" would have bothered to code a Visual Basic clone, a good enough IDE/glue language for OO.org that actually worked and a RDBMS with basic features like triggers, relational integrity and stored procedures back in 2000 the world would be very different today. But alas, you don't have these "problems".

      BTW, you're also insulting a few hundred thousand Python, Perl and Ruby developers. Way to go.

    22. Re:I don't "get" Mono either. by karnowski · · Score: 1

      I was referring to them as separate languages. i.e. When I say C/C++ is not used for new projects I mean that both C & C++ are not used for new projects. Your point is irrelevant to the argument I was making.

    23. Re:I don't "get" Mono either. by rca66 · · Score: 1
      C#, like Java, was designed to solve problems we don't have in the Free Software world.

      I don't get the point. It has nothing to do with "open" or "close". There are a lot of features in Java you don't have at your hand in C++. Plugging together applications for instance is much easier in Java than in C/C++.

      I don't have a Java VM on my hosts, and I don't see any reason to saddle them with a Mono VM, or VMs, either.

      Which means, Perl 6 and its Parrot will not be for you. Fine. But Perl is still deep in the Open Source world, and will stay there. If virtual machines only solve problems people in the Closed Source world have, then, why did these guys decide to use a VM for the newest Perl? It might be, that a VM solves problems, which are also there in the Free Software world.

      We already have a powerful, mature, and efficient language, proven effective for myriad successful Free Software projects. It's called C++.

      One language for all problems? Sorry, but I don't think, that it is right, and I strongly doubt that too many programmars in the Free Software world would sign such a statement.

      Have a look at Sourceforge: There are about 15000 projects in C as well as C++ - and as well in Java. Java has been widely accepted by the Open Source community for a long time. Look at Apache/Jakarta, look at Eclipse - some of the most impressive and popular projects in the Open Source world have been written in Java.

    24. Re: I don't "get" Mono either. by halosfan · · Score: 1

      I noted that C++ code can be made portable by not using extern. The problem I pointed to was that separate compilation breaks down if you can't use extern.

      The separate compilation often breaks even if you can use export. See section 14.6.2 of the standard or a detailed treatment by Herb Sutter for the reason why.

      --
      My only problem with Microsoft is the severity of bugs in their software.
    25. Re:I don't "get" Mono either. by Anonymous Coward · · Score: 0

      There are plenty of cases when the bottleneck in your application is something like I/O or bandwith or SQL running time. In cases like these, often the benefit of a super fast GUI doesn't outweigh the rapid development of using something slightly higher level.

      It seems that the assumption made by everyone here is that all applications are GUI applications, and it seems that all the vendor and 'analyst' flurry is focused on aiding developer productivity in the user-interface end of it. For server applications (for example), why is this being made the top priority??????

      Just pick the right tool for the job
      Jesus, Christ, if only that was EVER done!!! Over the years, I continue to be struck at how there is so much unnecessary and unwanted bleed from (someone come up with a better description) a client-side mentality to a server side one. Massive amounts of work, money, and hype were thrown at the 'JVM', so we could run a user interface that morons thought they wanted, in direct opposition to the clean original design of the web. Then from that we get 'java servlets'. WTF!? Why is that necessary?

      Again and again over the years (and it continues to get worse), I guess because of economic, safety-in-numbers reasons (there are 10/100/1000s more clients than servers), client-side technology ends up driving the server-side. The end-result is the micro$oft-strangled, utter mess we are in now.

    26. Re:I don't "get" Mono either. by halosfan · · Score: 3, Insightful

      Programmer productivity is higher in garbage-collected (MS calles them "managed") environments such as Java and .Net/C#.

      Nothing prevents C++ from being used with a garbage collector as well as with any of a number of other memory-management models. (Really, between STL and shared_ptr, memory management is a non-issue in the vast majority of properly written programs, without the overhead and non-deterministic destruction of a garbage collector.)

      And, by any chance, have you heard of products that detect memory leaks in Java programs?

      Another thing you may want to consider is this: memory is not the only resource your program needs to properly dispose of. There are things like file descriptors, database connections, network connections, threads, mutexes and so on. With C++ deterministic destruction, these can be handled correctly and automatically. Try this with Java, in the presense of exceptions, and see where you are more productive.

      --
      My only problem with Microsoft is the severity of bugs in their software.
    27. Re:I don't "get" Mono either. by tc · · Score: 1

      Except that if your third party library doesn't work with your garbage collected extension to C++ then you're hosed. .Net and Java have complete environments, including fully featured library sets which are designed to work this way.

      More modern languages like Java and C# also tend to be just a little bit easier to work with, with handy constructs like foreach, properties, delegates and events. Sure, it's ultimately just syntactic sugar, but then aren't all languages just syntactic sugar?

      Yes, it's true that there are other resources to worry about besides memory. C# has the IDisposable pattern and the 'using' keyword to help here (I'm not sure what the Java equivalent is, but I assume there is one). These environments are not a silver bullet, but they're not any worse than C/C++.

      Your point about deterministically called destructors is valid, but I think you're looking at things from a C++-centric viewpoint. In C++ that's the canoncial way to manage resource lifetime, so you try to use the same mechanism in C# and discover that it's not the right thing to do because the behaviour is different. That doesn't mean that C# is broken, just that you might need to use a different approach.

    28. Re: I don't "get" Mono either. by Markus+Registrada · · Score: 1

      No, I don't use C++ for everything. I use bash for scripting, and have written Python programs recently. (That's not to mention C, Pascal, BASIC, Fortran, assembly, Scheme, Prolog, and what-have-you from the old days.) Lots of people use Matlab for prototyping real programs.

      Rather, I meant to suggest that there's no job for which C# or Java is the right tool, unless it's padding one's corporate IT department budget with a staff of interchangeable monkeys. (That is an important criterion for some, but, again, not in the Free Software world.)

      I don't see how there needs to be a tradeoff between performance and quick development. Wny not have both? Similarly, why trade off performance against safety? Why not have both?

      C++ is *far* from the best possible language for those things it's best at. It's only the best so far.

    29. Re:I don't "get" Mono either. by Anonymous Coward · · Score: 0

      Ah, elitist hubris.

      Ah, ad-hominem cop-out.

    30. Re:I don't "get" Mono either. by m50d · · Score: 1

      Someone always says this, but if it looks like a duck and walks like a duck and quacks like a duck it's a duck. The fact is these "JIT compilers" don't behave in any way that's noticeably different than an interpreter. So what's wrong with calling them interpreters?

      --
      I am trolling
    31. Re:I don't "get" Mono either. by Anonymous Coward · · Score: 0

      The fact is these "JIT compilers" don't behave in any way that's noticeably different than an interpreter. So what's wrong with calling them interpreters?

      Interpreters have the additional job of having to parse textual code (and other related tasks). JIT compilers are taking bytecode and converting that to machine code. With JIT, part of the compilation process is already done.

    32. Re:I don't "get" Mono either. by halosfan · · Score: 1

      Your point about deterministically called destructors is valid, but I think you're looking at things from a C++-centric viewpoint. In C++ that's the canoncial way to manage resource lifetime, so you try to use the same mechanism in C# and discover that it's not the right thing to do because the behaviour is different. That doesn't mean that C# is broken, just that you might need to use a different approach.

      I'm not saying C# (or Java) is broken. I'm arguing with the statement that programmers in general are more productive developing in Java or C# than they are developing in C++. And while I know Java, I don't know much C#, so feel free to help me look at the issue of deterministic destruction from the C# perspective. I'm thinking about something like this:

      void f()
      {
      MyResource resource;
      doSomethingThatThrows("whatever", resource);
      doSomethingElseThatThrows(resource, 10);
      andSoOn(resource);
      }
      In Java, that becomes:
      public void f() throws ResourceException
      {
      MyResource resource = ResourceFactory.getResource();
      try {

      doSomethingThatThrows("whatever", resource);
      doSomethingElseThatThrows(resource, 10);
      andSoOn(resource);

      } catch (Exception e) {

      freeResource(resource);
      throw e;

      }
      }

      To me, the C++ version is a lot more maintainable and more likely to be correct, especially once you get into nested statements and multiple resources allocated all over the function/method. As I said though, I am not claiming to understand the C# perspective, so feel free to enlighten me.

      --
      My only problem with Microsoft is the severity of bugs in their software.
    33. Re:I don't "get" Mono either. by Rick+and+Roll · · Score: 1
      That functionality really is neat. A week ago I didn't know about it, and may have been more toward Java, but a couple days ago I started reading some interviews with Bjarne Sroustrup on Artima Developer, and I found out about File_handle and auto_ptr.

      After seeing this, it is no wonder for me that most of the great applications are written in C++.

      Of course I don't expect to write good C++ code just because I heard about this. In fact after searching I realized there are a couple of gotcha's with the auto_ptr (such as copying), but they are much easier to avoid than forgetting to type something in the Java example.

      I do, however, know of the perfect place to learn most all of those tips to making good C++, which is Bjarne's "The C++ Programming Language". I was already considering buying it, but now have ordered it and am looking forward to it. I like his writing style (I looked in a sample chapter). He focuses on the right way to do things, but still shows counterexamples (unlinke Wall's Programming Perl, which seems to have more counterexamples than examples). If comments about the book are any indication, he is also quite thorough. Though it is 50 pages shorter than "Programming Perl", I expect to learn about 10 times as much from it.

    34. Re:I don't "get" Mono either. by halosfan · · Score: 1

      In fact after searching I realized there are a couple of gotcha's with the auto_ptr (such as copying), but they are much easier to avoid than forgetting to type something in the Java example.

      auto_ptr may occasionally be useful, however, in most situations shared_ptr works better. Unfortunately, shared_ptr is not in the Standard, however, it is being standardized, and it has been offered for a while by many compiler vendors. Even if your compiler/standard library doesn't have it, there is always the Boost version, which also offers other smart pointers.

      --
      My only problem with Microsoft is the severity of bugs in their software.
    35. Re:I don't "get" Mono either. by man_of_mr_e · · Score: 1

      An interpreter interprets code *EVERY* time it executes. A JIT compiles it once and executes compiled code that's no different than any other compiled code every time it executes.

      Interpretation also occurs command by command. This creates an interpreter latency between each instruction, limiting the speed at which interpreted code can execute.

      If you want to see a good example of interpreted vs JIT compiled, check out PearPC. PearPC offers two modes, one is straight emulation (or interpreting each instruction as it encounters them) and the other is a compiled cache. The first runs about 300x slower than a real computer, the second runs about 15x slower.

    36. Re:I don't "get" Mono either. by aztracker1 · · Score: 1

      Not to mention that P/Invoke is *MUCH*MUCH*MUCH* easier with C#/.Net than it ever was with JNI (ugly bastardized beast that it is).

      --
      Michael J. Ryan - tracker1.info
    37. Re:I don't "get" Mono either. by tc · · Score: 1
      With C#, you can use this using keyword and the IDisposable pattern:
      public void f()
      {
      using ( MyResource resource = new MyResource() )
      {
      resource.SomethingThatMightThrow();
      resource.SomethingElseThatMightThrow();
      }
      }
      So long as MyResource supports the IDisposable interface, then the using block calls Dispose on the object and the end of the block, including if an exception is thrown.
    38. Re:I don't "get" Mono either. by Anonymous Coward · · Score: 0

      it's even higher in dynamic languages. no half measures, use python/perl/ruby instead if you're so hot on productivity.

  27. I want fewer dependancies by gr8_phk · · Score: 2, Insightful
    I just want my linux system to have fewer libraries, languages, and other dependancies. These would best be written in C or C++ for speed (common libraries, not necessarily apps). We don't need no stinkin' new languages - especially interpreted - to add to the bloat. Languages are like assholes - everybodys got one and thinks it's *the shit*. Now why should anyone jump on yet another bandwagon? Add to that even the most remote possibility that MS will try to stir the pot as a result and ask again. Why couldn't we just build nice libraries for C,C++,Python,(Java?) that are already popular instead of cloning MS and asking everyone to switch? We just saw a lot of ranting about how slow and bloated gnome is getting, so why is it imperative that everyone jump into a new language? I know why HE likes it, it's his job. But please stop bothering me about it.

    No, I'm not flaming - even Paul Grapham doesn't push Lisp as much as this mono geek. Get over it man, we don't all HAVE to use mono.

    1. Re:I want fewer dependancies by man_of_mr_e · · Score: 1

      Mono isn't interpreted in the 1.1 release. Sure, they still include the mint interpreter for backwards compatibility but the default is to use the JIT compiler.

    2. Re:I want fewer dependancies by Lysol · · Score: 4, Interesting

      Serious!

      I make my filthy living doing enterprise Java apps. I love my Linux servers and my Powerbook. But I don't go around preaching the gospel of Java to the unconverted. And that's exactly the point: Linux already has two useful and proven languages for desktop apps - C/C++. Make those better!

      I almost feel like Miguel has been living in the corporate world a little too long, thus, like you said, his preaching of something else - a typical thing in the real world is not to fix it, but to re-do it in some other language. I see this stuff all the time and just roll my eyes. Then I spend ridiculous hours helping various teams meet their goal.

      This is actually classic if you think about it. At first, KDE, namely Qt, was not open source. So instead of trying to fix it they made an entirely new desktop system. Of course, Qt later dropped those restrictions and now Gnome is the fat dog that can't get off the porch. So the mantra is if it doesn't go our way, we'll re-do it, but make it worse! Deja vu anyone?

      Linux does not need sloppy developers porting all their crap from Windows. I mean, I think of all the junk out there on download.com.com.com.com and try to visualize that on my Mac (fortunately that's not possible) and a chill runs up my spine.
      If you want to program a Linux app, learn C - it's not that hard and it can actually be, dare I say, fun! If you find something you don't like or you see is broken, submit the changes/fixes back to the community. Yay, you're an open source developer now!
      C aside, sure, people will use Python, Perl, Ruby, nothing wrong with that. But these are languages with a Unix history, not a VB one. So I think the whole premise of wooing developers from a flawed platform design - ergo flawed programming logic - over to something that has much more academic exposure and a very rich history (I'm talking Unix here), is a disaster waiting to happen.

      When I first started being interested in programming desktop Linux I didn't go look for Java bindings (altho, I did look for a JDK for server stuff), I used what was out there; in other words, I didn't try to re-invent the wheel! That said, yeah, sure, the C/C++ libs aren't perfect nor are they the holy grail of software development. I dunno, it just strikes me as odd, like some alien invader trying to convince me feverishly to get on board his space ship but won't tell me why(if you can imagine that), that there is so much push for Mono. Does make sense, I suppose from a corporate control point of view. Mono's roots are in the devil and that's enough for me. Yeah, sure, Sun owns Java, but Sun's also a Unix (yes, somehow that DOES make it milimeter better, esp compared to M$!) company and I have a little more faith in their corporate sesspool than Microsoft's. Altho, Schwartz is kinda dorky.

      Anyway, the last line of the above post says it all; anyone invoking the name of Mr. Graham in a way that's pure and simple has the last word in my book.

    3. Re:I want fewer dependancies by ultrabot · · Score: 3, Insightful

      Linux already has two useful and proven languages for desktop apps - C/C++. Make those better!

      I'm afraid that is not feasible, because C++ and (especially) C are not optimal for application development by design. Application code does not need to be implemented at the low level of C++ (on PCs at least), so the low level features are just a burden.

      If you want to program a Linux app, learn C - it's not that hard and it can actually be, dare I say, fun!

      Believe me, spending 4 hours on a task you could accomplish w/ 5 minutes of Python coding gets old real fast.

      Mono's roots are in the devil and that's enough for me.

      But as they say, devil's always had the best tunes ;-).

      BTW, it's funny to note that I've only seen Mono promoted by Miguel&gang, and Eugenia of OSNews. Surely the technology should have more friends if it's so groktastic...

      --
      Save your wrists today - switch to Dvorak
    4. Re:I want fewer dependancies by mattgreen · · Score: 1

      Amusing that you argue the inherent superiority of low-level languages while ignoring the fact that many UNIX utilities that are written in C started when C was considered a high-level language.

      It's all relative. Let people use what they want. I don't understand the pissing match people get into with languages. C isn't fun, its inexpressive. Sure, you can boil everything down to structs and function pointers, but that doesn't mean you should. I prefer a nicely decomposed system that uses several paradigms (including procedural, OOP and hints of functional) in a language like C++. I don't have to feel quite as hamstrung by the language, and can often achieve better performance than the equivalent C version through tricks like static polymorphism. Of course, anytime I mention a performance boost over C, everyone starts crying about how complicated it is.

      Then again, this is Slashdot, and I've seen morons write web services in C and brag about it.

    5. Re:I want fewer dependancies by i_finally_got_an_acc · · Score: 1
      How is this not flamebait?

      He's saying "Don't ever make a new language, we already have C." Then he says, python totally rules (I AGREE).

      As if having C# in your toolbox is going to hurt anything. AS IF.

      --
      "I'm not religious, but at the same time I don't get why science always has to have something to prove."
    6. Re:I want fewer dependancies by chadruva · · Score: 1

      C# is some sort of a nice language, but i prefer C++ mind you.

      One thing nobody has ever got right is the development tools, MS development tools are the best out there for graphical applications.

      You can preach all you want that we have Gtk, Qt, Mono, etc. But of all those only Qt has a sort of IDE that integrates GUI creation with code in a point and click fashion.

      Many will flame that if we are able to do apps ala point and click we'll get many sucky apps like windows ones, yeah sure, but is really a life saver when you don't have the time to hard code all GUI or use Glade to load a pregenerated GUI and then tweak it at your needs.

      We need a damm IDE that can compete with MS Visual Studio, don't talk about monodevelop it dosen't get near to even SharpDevelop, Eclipse is not quite there, Anjuta 2 with Glade 3 might be a good candidate but is still on alpha stages.

      All we need is better GUI tools, not new languages!

      --
      C-x C-c
  28. Re:quote by rpozz · · Score: 1

    He's actually right there. Before fully adopting Mono, it would be rather nice to know if it infringes any patents, and what will be done about it. Having Mono heavily integrated into Gnome could be just asking for trouble.

    However, don't forget that, as the article says, it's not the only thing that's threatened. They could take away our porn.

  29. Too dependent on gnome by SCHecklerX · · Score: 1, Interesting

    That's my primary problem with it. You shouldn't need gnome libraries running just to run an application. Unfortunately almost every GTK app compiled today depends on having gnome daemons running too.

    1. Re:Too dependent on gnome by Anonymous Coward · · Score: 1, Informative

      Unfortunately almost every GTK app compiled today depends on having gnome daemons running too.

      You are talking about gnome apps. True GTK apps like gaim or gimp don't need any gnome daemon running at all. Actually, they even have windows versions.

    2. Re:Too dependent on gnome by Dr.Dubious+DDQ · · Score: 1

      This is true - it's easy to conflate "Gnome" applications and libraries with "GTK" applications and libraries. Unfortunately, the Gnome/GTK developers often don't make clear or care whether this happens.

      The Gstreamer libraries and plugins, for example, can supposedly be compiled without Gnome, yet I've never been able to get it to stop complaining about a pile of missing Gnome libraries, and so far I've not been able to Google up an explanation of how to get it to work.

      I'm not certain, but I think there may also be a certain amount of "feature creep" in some projects that, if not carefully managed, tends to result in Gnome dependencies (a developer notices a nice feature in one of the Gnome-specific libraries and decides to add that capability to the program. Another developer sees the new capability and decides to add another feature that uses it. Repeat as necessary. If the project is not explicitly paying attention to being able to be independent of Gnome, suddenly it has become dependent on the tangled mass of Gnome library dependencies rather than being able to run purely from Glib/GTK any more...), which only adds to the perception that GTK+ applications are "for Gnome only" even though there ARE so many good Gnome-independent projects (Gimp and GAIM, as you've mentioned.).

  30. CLR performance and Java by Corpus_Callosum · · Score: 1

    It would be interesting to see how java would perform if a bytcode compiler could be written for it that targeted the Mono CLR.

    --
    The reason that it can be true that 1+1 > 2 is that very peculiar nonzero value of the + operator
    1. Re:CLR performance and Java by Anonymous Coward · · Score: 1, Informative

      > It would be interesting to see how java would perform if a bytcode compiler could be written for it that targeted the Mono CLR.

      Like this? Doesn't run AWT or Swing, but oddly it does run Eclipse (or did). Can't say what the speed's like though. Most CLR 1.x bytecode's pretty easy to translate to Java (albeit things like delegates are rough), but the 2.x CLR (Whidbey) is quite a bit different -- generics at the bytecode level, for one.

    2. Re:CLR performance and Java by Anonymous Coward · · Score: 0


      it is quite fast!

      well, at least fatser than JRE 1.4.2 when i tested it a while ago

    3. Re:CLR performance and Java by Mr2001 · · Score: 1

      There already is one, and you can try it yourself. Visual Studio .NET 2003 and above comes with a compiler for the "J#" language, which is basically Java. You can also download Visual J# Express for free from MS's web site.

      --
      Visual IRC: Fast. Powerful. Free.
  31. Regardless of Religion by PepeGSay · · Score: 5, Insightful

    C# and the .NET Framework *are* powerful and *do* provide things nothing else does in quite the same way. This guy shouldn't be trying to explain it to us so we can "get" the Mono project. He should be asking "How come you guys are so hung up on your religion that you question this so much?"

    1. Re:Regardless of Religion by LarsWestergren · · Score: 1

      He should be asking "How come you guys are so hung up on your religion that you question this so much?"

      Haha. Yeah, because the best way to get someone to come over to your side is to start by implaying that they are dogmatic, irrational and "too sceptical".

      *smack* Idiot! ;-)

      Seriously though, I am finally beginning to see why some people are interested in Mono. Pretty cool that it can run Java for instance (mainly thanks to the work done by the people at GCJ and Classpath I believe). But for me Mono looks like it continues to primarily be a .Net platform and therefore it is of no interest to me.

      --

      Being bitter is drinking poison and hoping someone else will die

    2. Re:Regardless of Religion by starseeker · · Score: 1

      Because Law Is Everything. That, in a nutshell, is why there is so much fuss. Features mean absolutely nothing if you are sued, your work becomes illegal, it gets taken away from you, etc.

      The Law has the power to enforce stuff in a way no other institution does. It is essentially the entire collective national community saying "you can't do this." That has enough power to stop anything people aren't willing to go to jail for. See Napster.

      This is why there is always talk about licenses on open source projects - people want to be clear what they can and can't do so the lawyers simply CANNOT poke their noses in and be jerks at some point in the future. The right license is a guarantee of living beyond individual developers, projects, even companies if need be. That's IMPORTANT, just as important as the code itself, so that's why we react the way we do. It MATTERS. And when Microsoft (opensource enemy #1) is involved we get extremely wary. We haven't seen anything like their full legal firepower yet, and we don't want to give them a chance to use it.

      --
      "I object to doing things that computers can do." -- Olin Shivers, lispers.org
    3. Re:Regardless of Religion by Anonymous Coward · · Score: 0

      He should be asking "How come you guys are so hung up on your religion that you question this so much?"

      Yea, why are people so hung up on religious issues like patent infringement and getting shut down by Microsoft?

    4. Re:Regardless of Religion by msuzio · · Score: 1

      What does it do that is so unique? I guess I just don't see the niche it fills that is so wonderful. Java isn't the most awesome language in the world, but it seems to do pretty well in terms of being the cross-platform (even cross-language) VM. C/C++ are the "powerhouse" languages.

      And Lisp, of course, is the language everyone else borrows from poorly.

    5. Re:Regardless of Religion by Rick+and+Roll · · Score: 1
      If you think C# is something that has to just be ignored, you are missing a lot. I had the same opinion until I read some interviews with the creator of C# (who also worked on Borland C++ and Delphi) at Artima Developer. There are some huge and highly enlightening differences between it and Java.

      The people who are hung up the law about it are the ones that not only choose not to use it, but choose to ignore it. So at least read about it. If nothing else, you'll understand virtual/final methods better.

    6. Re:Regardless of Religion by Rolan · · Score: 1

      Because Law Is Everything. That, in a nutshell, is why there is so much fuss. Features mean absolutely nothing if you are sued, your work becomes illegal, it gets taken away from you, etc.

      So, what you're saying, is that Microsoft is going to sue people for implementing an ECMA/ISO standard? I suppose they could, but if you read Slashdot you know there's already legal precedent set that says they lose.

      C#/.NET/CLI/etc are ECMA/ISO standards. Suing people for implmenenting standards isn't going to get you anywhere.

      --
      - AMW
    7. Re:Regardless of Religion by aztracker1 · · Score: 1

      Then why don't people attack Samba with the same viggor that they attack mono with? Why don't distros *NOT* include any support for Samba, or Wine, like they do with mono?

      --
      Michael J. Ryan - tracker1.info
    8. Re:Regardless of Religion by aled · · Score: 1

      Reliogious fanaticals don't question their belief. Questioning shows intelectual independency.

      --

      "I think this line is mostly filler"
  32. aha! LISP! by SparafucileMan · · Score: 2, Insightful

    So if I understand tfa, the main benefit of using .Net is because it has automatic memory management? Because it cuts down on developer time, bugs, etc?

    I mean, big fucking deal. I'd rather not use another development platform that's just a wanna-be LISP dialect with a bunch of new libraries to learn.

    For god's sakes, can everyone just please get over their small-dick big-dick contest and use a LISP dialect? It's only been around for 50 years... with automatic memory management, the whole deal. You'll write code 10x faster than if you used C++....

    1. Re:aha! LISP! by snorklewacker · · Score: 1

      > For god's sakes, can everyone just please get over their small-dick big-dick contest and use a LISP dialect?

      I agree. mzScheme runs on every major platform, too.

      How's that 64 bit port of CMUCL going, eh? I guess it's not all that portable and flexible under the hood now, is it?

      --
      I am no longer wasting my time with slashdot
    2. Re:aha! LISP! by advocate_one · · Score: 1

      isn't EMACS written in LISP???

      --
      Donald 'Duck' Dunn: We had a band powerful enough to turn goat piss into gasoline.
    3. Re:aha! LISP! by DoctorPepper · · Score: 0, Troll

      Perhaps, but Java/C# don't require all of those unwieldily parenthesis all over the place!

      Come on Lisp, you've been around for 50 years, can't you fix that problem with parenthesis?

      --

      No matter where you go... there you are.
    4. Re:aha! LISP! by Anonymous Coward · · Score: 0

      If all it takes for you to consider a language to be a poor clone of LISP is whether or not it uses garbage collection, then by all means stick your fingers in your ears and start chanting "I'm not listening! I'm not listening!" every time the subject of a new programming language comes up. It will save you a lot of time.

      Me, I just consider everything to be a poor clone of machine code. After all, who cares about syntax? It's all the same underneath, right? These newbies just haven't experienced the wonders of bare metal programming yet, they only like newer languages because they are ignorant.

    5. Re:aha! LISP! by Anonymous Coward · · Score: 0

      Yeah, I'm sure that LISP is going to be taking the world be storm any day now. LOL. Even the name makes it sound like something only Linux fags would use.

    6. Re:aha! LISP! by man_of_mr_e · · Score: 1

      If LISP were going to succeed, it would have done so by now. LISP is a fairly arcane language that has a very steep learning curve, especially compared to BASIC and C++. It's true that C++ can also get quite arcane in the more advanced features (Templates, STL, etc..) but basic useage is pretty easy to "get".

      C# (and Java) have a huge advantage in that C++ programmers can pick it up relatively easily, and there are orders of magnitude more C++ programmers than LISP programmers.

    7. Re:aha! LISP! by Mant · · Score: 1

      If you want LISP I'm sure there is a LISP implementation for .Net. One of the points of .Net is to get away from being language specific.

    8. Re:aha! LISP! by brpr · · Score: 1

      Someone already has, it's called Dylan. And it's not a problem anyway :P

      --
      Freedom is not increased by mere diminuation of government. Anarchy is freedom for the strong and slavery for the weak.
    9. Re:aha! LISP! by SparafucileMan · · Score: 1

      All the new languages are getting closer and closer to LISP. Java, C++, Python, Smalltalk... The things that LISP has always had right are slowly and surely making their way into all the major languages. Those things (garbage collection, abstract functions, lazy eval, proper recursion, etc.) are what make LISP great, not the syntax. Screw the syntax. I mean besides, anyone can write an interpreter in LISP in a week for any language they want, and then just code in that.

    10. Re:aha! LISP! by SparafucileMan · · Score: 1

      haha yeah. hopefully Arc won't turn into a mirror of HURD... i'm salivating here just thinking about how much easier my life would be with Arc...

    11. Re:aha! LISP! by Anonymous Coward · · Score: 0

      I love the lisp sytax. It's very nice for manipulating the language for to instance create macros or new sublanguages or write programs to manipulate other programs. Try the same thing with C++ and you'll get stuck writing a C++ parser.

      Michael

    12. Re:aha! LISP! by man_of_mr_e · · Score: 1

      And of course, how many average programmers out there would actually do that? Not many.

  33. Mono takes away resources from delopment by acomj · · Score: 4, Insightful

    I have to say, while C# is an ok language I just don't see the point of having mono without .net. Its going to drive developers to window (where the best tools /standard implimentation is).

    The Open Source Community has no lack of projects for developers (gcc/vi/emacs/apache foundation).

    Linux clearly needs better developemnt tools and more developers working on these unglamorous development tools. Projects like eclipse give me hope the first class development tools are comming to opensource. I fear C# even with Novell's $, is never going to be up to snuff with the ms version, always chasing, not living up to the write once run anywhere hope.

    And with so many projects in need of help (gjc/ parrot(perl6)/gnustep) do we need more?

    This reminds me of the disaster that is the dual GTK/KDE (QT) desktop libraries thats really put linux destop development in a crappy place. People really do want to cut and paste across applications, and not worry about 2 or more sets of windowing libraries. I know you can run a GTK app on KDE, but it doesn't seem to make for an easy end user experience. Its not bad to have multiple items, but at some point a winner should be clear, and everyone should move on (not linger like the dvd+/dvd- standard where the solution is to have dual format drives.)

    Having seen some of the new Apple API's development stuff, I was blown away but what a company with a vision can do to leverage open source for development.

    1. Re:Mono takes away resources from delopment by argent · · Score: 1

      Having seen some of the new Apple API's development stuff, I was blown away but what a company with a vision can do to leverage open source for development.

      And there's already a working open-source project that's got an awful lot of source-code compatibility with them. :)

    2. Re:Mono takes away resources from delopment by Gruneun · · Score: 2, Insightful

      I just don't see the point of having mono without .net. Its going to drive developers to window

      Let's assume that 10% of Windows/.NET developers decide to switch to Linux/Mono and 10% of Linux/Mono developers switch to Windows/.NET. Who do you think comes out ahead?

      In the end, if means that developers will be able to port their Windows apps to Linux easier, it can only be a good thing.

    3. Re:Mono takes away resources from delopment by ultrabot · · Score: 1

      People really do want to cut and paste across applications, and not worry about 2 or more sets of windowing libraries.

      That's something for freedesktop.org.

      I know you can run a GTK app on KDE, but it doesn't seem to make for an easy end user experience.

      Install gtk-qt to get the kde look in gtk apps.

      Its not bad to have multiple items, but at some point a winner should be clear, and everyone should move on

      It will be a while - Qt is still technically more advanced, but it has an undesirable license (GPL, due to Trolltech business model). Gtk is getting there, but once it's there, Qt has moved on again. I guess the best thing we can hope for now is getting the apps to have the same look and feel as the rest of the DE (Gnome, KDE).

      --
      Save your wrists today - switch to Dvorak
    4. Re:Mono takes away resources from delopment by lupus-slash · · Score: 1

      And with so many projects in need of help (gjc/ parrot(perl6)/gnustep) do we need more?
      Considering that mono is pretty much in a more advanced state than any of those projects you should ask yourself why...
      The reality is that free software developers work on what the enjoy best: if you want some project to succeed, work on it, don't demand other people to do it.

    5. Re:Mono takes away resources from delopment by thelexx · · Score: 1

      You are assuming an even migration percentage. Realistically I'd suspect it's going to be more like 20% (or more) of Linux mono-dedicated devs ultimately ending up developing on Windows (for use of Visual Studio alone, if for no other reason (another big reason being 'assemblies' that don't exist under Linux)) and 1% of Windows .net devs moving to Linux. And half to two-thirds of that 1% moving back when they find can't use their favorite special 'assemblies' and have no equivalent to Visual Studio. Net loser: Linux. No pun intended.

      --
      "Gold still represents the ultimate form of payment in the world." - Alan Greenspan, 1999
    6. Re:Mono takes away resources from delopment by PetoskeyGuy · · Score: 1

      Linux clearly needs better developemnt tools and more developers working on these unglamorous development tools. Projects like eclipse give me hope the first class development tools are comming to opensource. I fear C# even with Novell's $, is never going to be up to snuff with the ms version, always chasing, not living up to the write once run anywhere hope.

      Possibly, but that will be a good thing too. They can only run for so long. In the long run it will keep MS from letting .NET stagnate like IE.

  34. "Compiler" -vs- Libraries by mosel-saar-ruwer · · Score: 4, Insightful

    First, release a C# compiler for linux. If you can get developers to user C# that compiles to native code so that it's not dependant on the CLR, then you can introduce the cross-platform aspects of it.

    While I agree that it would be nice to do away with the overhead consumed by the virtual machine, I was always under the impression that [with maybe a few exceptions*] the creation of a compiler for a language is relatively trivial.

    The thing that makes these virtual machine languages so powerful [and the thing that makes them so appealing to the marketplace] is not that nonsense about "compile once, run anywhere" [which, as I understand it, has largely proved to be a fraud], but rather the feature-richness of their libraries: So much stuff has been written into the libraries that the application programmer's job devolves into not much more than providing a little glue to hold together the specific library calls that his project needs [i.e. it's foolish to reinvent the kitchen sink if it's already been invented for you].

    *One instance where I've heard that the compiler end of the thing is rather impressive is javac's handling of multithreading logic.

    1. Re:"Compiler" -vs- Libraries by Trigun · · Score: 1

      But doesn't the CLR merely turn the byte-code into machine code? Maybe I'm oversimplifying things here, but I would assume that those could be compiled as well, the same way any #INCLUDE statement would do it. The benefit to this would be able to compile the same source using a mono compiler, and get the benefits of Mono, but where it isn't needed, just compile it to native lang.

      As long as things don't fork (big if here), we should be fine.

    2. Re:"Compiler" -vs- Libraries by mosel-saar-ruwer · · Score: 2, Insightful

      But doesn't the CLR merely turn the byte-code into machine code? Maybe I'm oversimplifying things here, but I would assume that those could be compiled as well, the same way any #INCLUDE statement would do it. The benefit to this would be able to compile the same source using a mono compiler, and get the benefits of Mono, but where it isn't needed, just compile it to native lang. As long as things don't fork (big if here), we should be fine.

      I think you're talking about doing away with the virtual machines, and having syntactically similar languages that "compile" straight to machine language executables rather than to "byte code" virtual machine classes. There are several companies that offer commercial products that do something like that for Java, although I don't know whether anyone has done it yet for C#.

      My point, though, was that while it's relatively trivial to create the compiler to do this, the compiler, in and of itself, doesn't get you much: It's the feature-rich library [not the "compile once, run anywhere" nonsense] that gives the virtual machine paradigm its power in the marketplace. Without the feature-rich libraries, you get maybe the ability to write simple command line "Hello World!" kinds of programs, but not much more.

      So it seems to me that you'd need to go to Sun and ask, "Hey, will you port all your feature-rich Java libraries to my Java-esque language that compiles to machine language executables?" Or to Microsoft, and ask "Hey, will you port all your feature-rich .NET libraries to my C#-esque language that compiles to machine language executables?"

      To which I imagine they'd respond: "Go fly a kite."

    3. Re:"Compiler" -vs- Libraries by Mr.+Slippery · · Score: 2, Informative
      So it seems to me that you'd need to go to Sun and ask, "Hey, will you port all your feature-rich Java libraries to my Java-esque language that compiles to machine language executables?"

      Don't ask them. Ask the GCC team.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    4. Re:"Compiler" -vs- Libraries by williamhb · · Score: 2, Insightful

      Write-once-run-anywhere is actually rather attractive even with it being not quite true across GUIs and operating systems:

      If you distribute bytecode specialised to the OS / desktop environment, you have around 2 to 5 different versions to distribute (there are 2 to 5 operating systems most user applications would particularly want to support)

      If you distribute native binaries, then you have 2-5 OS / environments times 3 or more processors (possibly plus optional extensions.)

      If you distribute sourcecode, you're back at one version per OS, but users really don't like the idea of the thing needing to be compiled (which can be lengthy - eg OpenOffice.org)

      Distributing bytecode suddenly looks attractive. And you can theoretically get the gentoo-like advantages of it being optimised for your system.

      Brave prediction: Within 5 years, users will generally expect the VM to be "always available" in the OS, rather than needing to specially start up for an application - ie, bytecode will be a "native" (natural) langauge for the OS.

      Brave prediction 2: there's going to be a battle between Java and Mono for which one is going to be natural for Linux. (Mono looks like winning, but when it starts to get very popular, watch Sun change its tune and suddenly want to push a GPL'ed Java VM into Linux)

    5. Re:"Compiler" -vs- Libraries by Anonymous Coward · · Score: 0

      sO IT IS THE FEATURE-RICHNESS OF THE LIBRARIES, that is causing 'modern' developers to foist all these gigantic slow shitty applications on us?

      I'm sure the feature-richness is great for the developer, but it's not so good for the end-user who just wants to do something simple - their systems have to wear the bloat.

      While I'm on this, why aren't the libraries available to compiled programs.

  35. .Not/Mono tools of Evil Empire M$ by Anonymous Coward · · Score: 0

    M$ wants you to be hooked on .Not by Mono.

  36. Getting Mono is easy! by UnixRevolution · · Score: 0, Offtopic

    ....Just don't wipe off the glass before drinking after someone else.

    --
    You like your new Mac more than you like me, don't you, Dave? Dave? I asked...She said Yes.
    1. Re:Getting Mono is easy! by yogikoudou · · Score: 0, Informative
      Getting Mono is easy :
      wget http://www.go-mono.com/archive/1.0.6/mono-1.0.6.ta r.gz
  37. C# vs Python by Sark666 · · Score: 1

    I want to start programming, and considering of of these. One thing I didn't like about mono is the programs I have tried seem to take a fair amount of memory. I realize as one runs more apps concurrently the hit is not as bad but the first one launched can take around 50 megs of ram. Python doesn't seem to suffer from this and also is available on many platforms.

    So why would one take one over the other? I mainly want to develop gtk apps.

    1. Re:C# vs Python by ultrabot · · Score: 2, Insightful

      So why would one take one over the other?

      One reason to pick C# might be a desire to integrate the code in some .NET windows apps later on.

      If that is not a concern, just pick Python and go. It's going to be easier, and also the more "mainstream" alternative in the near future. You can learn C# later if you feel like it, but you will still be thankful that you learned Python. Unlike C#, it's good at scripting as well.

      --
      Save your wrists today - switch to Dvorak
    2. Re:C# vs Python by Anonymous Coward · · Score: 0

      Go with python, you'll never look back. Really. Even of you want to target the .Net CLR at some point, there is IronPython http://ironpython.com/ - it's author was recently hired by MS to create Python for the .Net CLR.

  38. A Wakeup Call To The OpenSource World by Anonymous Coward · · Score: 0

    To have a Microsoft employee walk right into the open source community and sabotage Linux application development with Trojan Horse projects like Mono should scare the hell out of us. Do you think any of us could walk right into MS's headquarters, get a job, and start releasing MS source under the GPL? Of course not.

    It's time for us all to do something about Miguel and Mono.

    1. Re:A Wakeup Call To The OpenSource World by Tape_Werm · · Score: 1, Informative

      It's time for us all to do something about Miguel and Mono.

      You sound like a fucking psycho. Really, seek help. You'd swear Microsoft had some secret agenda to wipe you all out in a covert operation.
      --
      Linux sucks. And you're fat. Take a shower hippy.
    2. Re:A Wakeup Call To The OpenSource World by sgauss · · Score: 1

      Now there's the tinfoil-hat nuttiness that needs to accompany every article about Mono and de Icaza on /.!

    3. Re:A Wakeup Call To The OpenSource World by Anonymous Coward · · Score: 0

      It's time for us all to do something about Miguel and Mono.

      I think we should all do something about madmen like you in the first place.

      You talk as if Miguel was Lennon and Mono was Yoko Onno. :/

    4. Re:A Wakeup Call To The OpenSource World by Tuross · · Score: 1

      You'd swear Microsoft had some secret agenda to wipe you all out in a covert operation.

      Only the agenda isn't secret (Halloween docs, et al) and the operations aren't covert (supporting DRM, software patents, abusing their illegal monopoly position to squash competitors, funding SCO and other anti-Linux legal battles, funding FUDpapers, funding whole governments, ...)

      --
      Matt
      1. Read Slashdot
      2. ???
      3. Profit
  39. Mono and GCC/gcj by norwoodites · · Score: 3, Interesting

    Well here is the problem of Mono from a GCC prospective:
    Why another back-end, yes GCC does not support JIT but you could have used LLVM for that.
    Another thing is Mono developers don't seem to listen to some of the GCC developers when it comes to algorithms, one example is their PRE implementation is based on much slower and not as good algorithm as the one which GCC uses GVN/PRE.

    From gcj prospective:
    (again) Why another back-end?
    Why another ABI, instead of hooking gcj and Mono together, there is another static ABI?

    1. Re:Mono and GCC/gcj by Jon+Pryor · · Score: 2, Informative
      Why another back-end, yes GCC does not support JIT but you could have used LLVM for that.

      The JIT isn't the issue. The intermediate language is, or rather was, the issue. When Mono was started, GCC used a register-based intermediate language. It is difficult to translate a register-based intermediate language to a stack-based intermediate language.

      Look at the GCC/Java backend, which skips the entire register-based intermediate layer; the GCC/Java project basically re-wrote the GCC back-end to avoid the register layer. Because of this, you couldn't compile any GCC-supported language to Java bytecode, such as C, C++, FORTRAN, Ada, because they all targeted the register IL instead of Java's stack-based IL.

      See also: Mono's Technical FAQ.

      Things are somewhat different as of GCC 4, due to the GIMPLE architecture which should support stack-based architectures such as Java bytecode and CIL. However, GCC 4 didn't exist when Mono was started (it doesn't exist now, except in beta form), so it obviously couldn't be used as part of Mono.

      Another thing is Mono developers don't seem to listen to some of the GCC developers when it comes to algorithms, one example is their PRE implementation is based on much slower and not as good algorithm as the one which GCC uses GVN/PRE.

      I can't speak to the truth of this, but I can say that I haven't seen any comments from GCC developers on the mono mailing lists regarding the SSAPRE algorithms. I can't think of any messages from a GCC developer on the mono lists, actually...

      From gcj prospective: (again) Why another back-end? Why another ABI, instead of hooking gcj and Mono together, there is another static ABI?

      Another backend was necessary because CIL and Java bytecode are different. Differences are outside the scope of this, but one difference is whether or not types are part of the opcodes -- compare Java's iadd, ladd, fadd, dadd to CIL's add opcode. Generics add a further difference -- compare Java's type erasure to the "baked-in" generics support of CIL.

      To support CIL at all, you need to support another backend, just to support the differences between Java bytecode and CIL. Alternatively, you can argue that CIL shouldn't be supported, which would tie .NET developers to Windows without any chance of migrating to another platform.

    2. Re:Mono and GCC/gcj by lupus-slash · · Score: 1

      When we started mono llvm was very immature and it still wouldn't be able to be used as a jit for the CLR since it misses many features. The mono jit has also been ported to more architectures than llvm.
      We're looking at adding more optimizations to the jit, but keep in mind that a jit has different contraints than gcc when compiling code.
      As an example, compiling from C# code to native code the base library of mono (mscorlib.dll) takes 20 seconds. Compiling the equivalent library with gcc (libc) which has roughtly the same size takes tens of minutes on the same box.

    3. Re:Mono and GCC/gcj by norwoodites · · Score: 1

      But you are comparing apples and oranges. since glibc is much bigger than mscorlib.dll really. Also you have the overhead of make involved and assembling and linking. Yes GCC can be made faster but you are still comparing apples to oranges in terms of size. glibc is huge. Oh by the way glibc is not part of GCC at all.

    4. Re:Mono and GCC/gcj by lupus-slash · · Score: 1

      But you are comparing apples and oranges. since glibc is much bigger than mscorlib.dll really.
      libc + libm is about 1780 KB of native code.
      mscorlib.dll is 600KB of IL code and compiles to about 1300 kb of native code. Even if corlib was twice as big, the jit is (and neeeds to be) a few orders of magnitude faster. And of course the jit needs to assemble and link the code or it wouldn't work.
      Oh by the way glibc is not part of GCC at all.
      I never said that anywhere: why do you bring up irrelevant issues?

    5. Re:Mono and GCC/gcj by Anonymous Coward · · Score: 0

      Then lets get into the missing feature like say a better PRE algrothm :).

  40. Re:quote by Richard_at_work · · Score: 2, Interesting
    Why not read what Miguel has to say on the matter?

    Microsoft has granted RAND+Royalty Free licenses to any patents they might own that are required to implement the ECMA 334/335 standards. So at least our core VM, classes and compilers are safe from any litigation from *Microsoft*.
  41. The Thing Is... by The+Brain+Murderer · · Score: 1

    ... I don't use Microsoft stuff because I am unhappy with both it and with the company behind it. Why should I now start using their technology again after all these years? I don't care how cool it is or how talented the mono developers are, I have issues with the company behind it and will not be suprised if they turn around at some point and make poor Miguel look like a complete sucker.

    1. Re:The Thing Is... by Anonymous Coward · · Score: 0
      ...will not be suprised if they turn around at some point and make poor Miguel look like a complete sucker.

      Miguel doesn't seem to be in need of any assistance there.

    2. Re:The Thing Is... by Anonymous Coward · · Score: 0

      I have issues with the company behind it and will not be suprised if they turn around at some point and make poor Miguel look like a complete sucker.

      Making a deal with microsoft is like making a deal with the Nazis, it just means you're next.

    3. Re:The Thing Is... by Anonymous Coward · · Score: 0

      i don't like the model t ford, i'm unhappy with it and the ford motor company. why should i start using a car after all these years when clyde my trusty, though weary horse, can get me from a to b.

      get with the times and let clyde go out to pasture

  42. I know how to get mono by stratjakt · · Score: 3, Interesting

    JUST TELL ME HOW I GET DOCUMENTATION FOR GTK# AND ALL THE OTHER BINDINGS!!!!!

    I'm serious, you have to wade through old C based documentation, then guess what the .NET wrapper "should" look like.. Bah.

    Oh, and monodevelop is still useless. Kudos for the effort, but I pretty much have to develop with #Develop under windows, then copy my exe to linux for testing.

    And whats with the libicu version it requires? An emerge -u world pretty much broke everything mono related on my gentoo box.

    --
    I don't need no instructions to know how to rock!!!!
    1. Re:I know how to get mono by miguel · · Score: 3, Informative

      Have you tried using Monodoc? We have documented most of the Gtk namespace, and most of the underlying libraries (Gdk, GObject).

      There are a couple of missing pieces like the Accessibility Toolkit (Atk) or Pango, but we are working towards finishing it.

      Miguel.

    2. Re:I know how to get mono by stratjakt · · Score: 1

      Yeah, the key word is "most" of the Gtk namespace. I was trying to get funky with Gdk pixbufs and got lost. Then I was trying to mess around with fonts, and got lost in the pango stuff.

      I was trying to get worker threads updating the GUI, and basically had to stumble across GlibIdleHandler all by my lonesome.

      I can deal with figuring it out myself, since that's been the "linux way" for so long. My coworkers, however, are used to being spoonfed working code through MSDN, so my fancy new Glade/Gtk interfaces will be stonewalled until that happens. I'm sure there are plenty of other dev houses in the same situation.

      This is my first foray into gtk, so I suppose its more the lack of good examples in the docs. If I was an oldschool Gnome hacker, it probably wouldn't be much of a worry.

      I havent palyed with it in a month under linux, since I got sidetracked trying to get Sybase to do something other than segfault (you need nptl to get that sucker to run under gentoo, in case anyone cares).

      Fix monodevelop first! Once I hit about 10,000 lines of code it became so slow it was unusable (taking 5-10 secs to register each keystroke, even with auto-completion turned off).

      --
      I don't need no instructions to know how to rock!!!!
    3. Re:I know how to get mono by VP · · Score: 1

      Once I hit about 10,000 lines of code it became so slow it was unusable

      Please tell us you don't mean you had 10,000 lines of code in a single file...

    4. Re:I know how to get mono by stratjakt · · Score: 1

      No, it was a few dozen files, and a few dozen classes. It seemed to be rebuilding the class browser tree that was bringing everything to a halt, actually.

      That said, there's no reason I shouldn't be able to put 10,000 lines of code in a single file, if I wanted to. I've seen tools like ANTLR build bigger code files than that.

      --
      I don't need no instructions to know how to rock!!!!
  43. Wow great tool! by Anonymous Coward · · Score: 0, Flamebait

    The effeciency and blazing speed of Java, a developer base that will someday be as large as, say, COBOL (which was also a non-programmer's programming langauge).

    LEARN C!!!! QBASIC IS NOT A LANGUAGE, LOGO IS NOT A LANGUAGE, JAVA AND C# ARE ONLY HALF LANGUAGES!!! LEARN C! Hell, learn some assembly too - not because you are likely to ever use it, but because it will help you understand what you are doing and how things work.

    Any language that involves a virtual machine should be immediately ruled out of consideration.

    Sure, there is a place for scripting languages - but that place is NOT as the primary tool for the development of large and complex projects!!! The same goes for VM languages which are really not much better. Want portibility? It's called POSIX and C.

    If you are a programmer and can't deal with simple crap like avoiding buffer overflows and memory leaks, either get your $#!+ together and learn your job or go find another line of work... one you are actually qualified for. If you are an employer and have programmers who are only capable of poducing reliable code with Java or C# holding their hands all the way and telling them every time they do something stupid, FIRE THEM! Hire someone who knows what the hell they are doing!

  44. What about DotGNU ? by Danuvius · · Score: 1, Offtopic
    --
    Akarsz Magyar Gentoo fórumot? Akkor
  45. Nonsense by Anonymous Coward · · Score: 0

    There is little to "explain". Until I see a piece of paper signed by a Microsoft big boss stating "we won't do anything to you", I won't touch Mono, it doesn't matter how "good" or "great" it is. We all know you, Microsoft.

  46. Re:quote by rpozz · · Score: 1
    Interesting, thanks for the link - but there is the following piece of text:


    The fact that Microsoft has given access to any patents they might hold
    on .NET does not mean that a third party that has a patent that is
    required to implement ECMA (or Java) will grant that license.


    However the fact that MS have openend all the patents for the standards is a good start.
  47. Asked Microsoft about this yet? by puppetluva · · Score: 3, Insightful

    Someone wake me up when:

    • Microsoft gives us permission to use the copywritten/trademarked parts of .Net not covered by the ECMA specs.
    • Microsoft gives us permission to use the copywritten/trademarked parts of .Net that are covered by the ECMA specs.
    • Microsoft assures us that they will not deviate from the ECMA specification for the platform like they did with ECMAscript (Javascript)
    • .Net offers anywhere near the same enterprise library support as Java and has the backing of a number of companies that aren't Microsoft
    I'm sorry to be a party-pooper, but these are still real issues. Ignoring them doesn't make them go away. You are talking about a technology that is legally locked up by a company that HATES the open-source community and phenomenon. Living under the thumb of someone that hates you is not something I would relish.
    1. Re:Asked Microsoft about this yet? by BillsPetMonkey · · Score: 1

      Sorry to say it, but Java turned into a bloated web-applications language that quickly started copying C#'s ideas like enums and foreach statements with 1.5.

      C# is not locked up anywhere. Whereas peversely, Sun Microsystem's Java Language is - remember Sun is a company and yes, Java is not released under the EMCA.

      --
      "It's not your information. It's information about you" - John Ford, Vice President, Equifax
    2. Re:Asked Microsoft about this yet? by Anonymous Coward · · Score: 0

      Mod this parent up.

      An early post was waxing lyrical about what Mono could do with porting windows apps to Linux, but do you really think Microsoft wants this?

      Sad to say Mono lives under the shadow of an axe.

    3. Re:Asked Microsoft about this yet? by The+Slashdolt · · Score: 1

      If Java was a standard what would stop MS from extending it into J++ again? If C# gets a user base thats exactly what they will do with C# as well.

      --
      mp3's are only for those with bad memories
    4. Re:Asked Microsoft about this yet? by Valar · · Score: 1

      Well, since Mono and the mono libraries are written from scratch, copyright of the code is not an issue. Since Mono is simply competition for MS's .Net package and not pretending to be .NET, they wouldn't have any trademark problems. Maybe you mean patents? The patents are required, because of their agreement with ECMA, to be availible for license in a no cost, reasonable (ECMA has a long technical definition of "reasonable") manner. Basically, MS can't do about Mono. That's the price they pay for having the industry accept their standard.

  48. It makes easier to migrate to Linux by vadim_t · · Score: 2, Interesting

    Or, at least that's what I intend to do it.

    Here I maintain some old apps written in VB6. Mainly interfaces to a SQL Server database and such. Microsoft is dropping support, so it seems logical to start thinking of something else to write stuff in, and .NET seems a fairly good choice.

    We have a very MS-centric environment here, but it doesn't seem that anybody particularly cares if it's Windows or not. Simply, stuff works with MS at the moment, and of course nobody is going to let me rewrite it all on Linux on company time without some very good reason.

    So, I'm thinking .NET looks like a good choice for future programs. The language looks pretty good, and if I properly separate UI and logic, it should be a lot easier to migrate stuff to Linux. Besides, by the time Microsoft drops support there will be mature and well tested alternative implementations out there.

    I'm not going to start making a switch to Linux right now, but my idea is that eventually somebody is going to ask me what to do when our VB6 stuff won't run on the newest Windows version, and I'll be able to answer "We can switch to Linux, and it will work without having to rewrite it".

    1. Re:It makes easier to migrate to Linux by si618 · · Score: 1

      And hopefully your dimitted ass will next time understand that he said "We can" rather than "We will" or "We have to"

      I wish the parent poster good luck, I work in the health sector in government in Oz and I hate our my (our) tax dollars going to M$ (convicted monopolist and pirate) when they could be better used elsewhere.

      With quality cross-platform technologies (Mono,OpenOffice,Firefox,Thunderbird) there is a real chance now that we can break the M$ stranglehold, it will take another 10 years, but 5 years ago I could never have seen it happen...at least now there is hope.

      --
      Sometimes I doubt your commitment to Sparkle Motion
  49. Re:Not really, no... by XMyth · · Score: 1

    I find you dubious, Mr. Anonymous Coward.

  50. Re:CopyCats... by todorb · · Score: 0

    it's pity for slashdot, but SIP is already taken:)

  51. Re:quote by Anonymous Coward · · Score: 0
    There are *many* lawyers from many companies that have looked at the claim that Microsoft has "opened" its patents, and that C# licences (paid) are not required. In *every* case that I know of, the end result has been a directive from the legal department of those companies to not allow any component of Mono onto their premises.

    Read into that what you will. Miguel is not a lawyer, he is being suckered by Microsoft. Professionals in the field are not so gullible.

    Use Mono at your own risk, and don't come crying back here when you get the lawsuit from Microsoft land in your lap. You will get zero sympathy.

  52. All this is irrelevant without the toolkits by IGnatius+T+Foobar · · Score: 4, Insightful

    I'm hearing all sorts of things here about how great Mono is, and how it's going to let all those new Windows apps run unmodified on Linux, as if it's the new WINE. Great, but how many Windows ISV's care about Linux? The ones I've met do not. And that means they're going to make use of every Windows-only API (sorry ... "assembly") that Microsoft throws at them.

    Welcome back to the moving target that's plagued WINE for more than a decade. Once they get Windows.Forms up and running, Microsoft will come up with some "must have" new API that the ISV's will start using. Maybe it'll be Avalon, who knows.

    Mono makes it possible to write cross-platform apps that don't need to be recompiled (linking to Qt# or GTK# for example) but don't count on Mono being the magic bullet that suddenly makes an entire generation of Windows software run on Linux. Microsoft isn't that stupid.

    --
    Tired of FB/Google censorship? Visit UNCENSORED!
    1. Re:All this is irrelevant without the toolkits by justins · · Score: 1
      Welcome back to the moving target that's plagued WINE for more than a decade.

      Horseshit. They've had a decade to make something that's at least compatible with Windows 95. That's not a moving target. They just haven't done it yet.
      --
      Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
    2. Re:All this is irrelevant without the toolkits by learn+fast · · Score: 1

      Hey, what's the worst that's going to happen? We'll only get some new apps, but not enough to destroy Microsoft and/or please you?

      There is no net negative here. This can only be a good thing, and if you don't think it's good "enough" then I am interested in your definition of "enough."

    3. Re:All this is irrelevant without the toolkits by Gr8Apes · · Score: 1

      Look at what happened to OS/2. They finally got win32 to run just about everything MS had at the time, and MS found a loophole with the maximum memory request at 2GB barrier. OS/2's VM only had a 512MB max. Hence, no Office 95 app would run under OS/2's win32 module. I can't imagine the same thing wouldn't happen if Mono or WINE succeeds....

      --
      The cesspool just got a check and balance.
    4. Re:All this is irrelevant without the toolkits by runderwo · · Score: 1

      Um, OS/2 never had Win32 support. You're probably thinking about Win32S, which is not Win32.

  53. Re:quote by rpozz · · Score: 1

    Could you post a link? I'm not questioning you, I'm genuinely interested.

  54. Correction, you are wrong. :) by n0-0p · · Score: 1

    If you compile for the CLR you should be able to run the produced assembly on Mono. Also, the Mono guys have been working on a VB.NET compiler for a while, though I have no idea what the status is.

    1. Re:Correction, you are wrong. :) by Anonymous Coward · · Score: 0

      I read a bit about it, their VB.NET compiler is pre-beta. They expect to include a working beta in the next release of Mono (v. 1.2). This is pretty respectable.

  55. Re:quote by Richard_at_work · · Score: 1

    As it also says on that page, you cant write 1000 lines of code today without falling foul of SOMEONES patents, so that statement is more of a warning rather than anything else.

    More info On the patent issue.

  56. We are better than CopyCats by B0mbtruck · · Score: 2, Insightful

    ... because we make the "copy" better, more secure and add more features all while adhereing to open, published standards.

    Take http://www.spreadfirefox.com/, which is the Firefox webbrowser, for example. This piece of software is hardly new in the sense of being first of its kind, and yes it "copies" the same basic functionality that IE does (and IE copies from Mosaic - check out help->About Internet Explorer, it says clearly "Based on NCSA Mosaic."), but just because someone else invented the wheel doesn't mean we can't use it or make our own, or a better one.

    And don't get me started on innovation. As a matter of fact FOSS has already beaten the mighty M$ to a better desktop search (Beagel http://www.gnome.org/projects/beagle/ vs. WinFS - though I will admit I can't quite predict what WinFS will be like IF it ever gets released or if the 2 are even comparable).

    Oh, and we are creating new virtual machine architectures[VMA] (XEN http://www.xensource.com/ for example? Again, not sure if that is what you meant with VMA) and new visual interfaces (check out http://cairographics.org/introduction/ for Cairo, which may beat M$ again to the finish-line).

    And while M$ buys 90% of the time the technology or licenses it, FOSS actually does develop their stuf from scratch.

    Rehashing what's been done before and then claim we do not have freedom to do what we want to do. Interesting. I am not quite sure where these 2 opinions intersect to make sense. Please explain yourself further ...

    All in all I think you are way of mark, Microsoft-Fanboy!

    1. Re:We are better than CopyCats by danielk1982 · · Score: 1


      And while M$ buys 90% of the time the technology or licenses it, FOSS actually does develop their stuf from scratch.


      What do you call a project fork then? Starting from scratch?

    2. Re:We are better than CopyCats by Anonymous Coward · · Score: 0

      >>And while M$ buys 90% of the time the technology or licenses it, FOSS actually does develop their stuf from scratch.

      Uh! You sad sack of (stupid) shit!

      Are you so deluded that you actually think that statement is remotely true?

      "M$ buys 90%"

      Oh yeah! 90%? Did you just pull that %age out of your stinky little poop-ass or what?

      Shut up pal. You're moron of the first order.

  57. Doesn't instill a lot of patent confidence by jbwiv · · Score: 3, Insightful

    After reading the article, I was disappointed in how Miguel danced around the whole patent issue. This is one of the biggest issues surrounding using Mono for actual commercial development, but he really doesn't ease concerns by saying "no problems...yet".

    The Mono Project could convert a lot of folks by directly dealing with the patent issue and the fear that Microsoft will eventually lay the smack down. Tell me *why* my company can feel comfortable using Mono for commercial development...or I'll go elsewhere.

    1. Re:Doesn't instill a lot of patent confidence by Benjim · · Score: 1

      I think this is the most important topic, and I was completely unimpressed that it had been missed out of this "interview". What happens if people *do* switch to Mono, then implement a bunch of tools for the Linux desktop? I have never heard anybody talking about what Microsoft could do then. Do they have a door into Linux, do they "own" the platform in terms of copyright?

      Surely, Miguel should be talking about how Microsoft could or couldn't have an effect in this way.

      I do like C#, but I'm **very** wary of Microsoft!

    2. Re:Doesn't instill a lot of patent confidence by Valar · · Score: 1

      Novell.

      That's right, because a real company with a real legal department full of dozens of real lawyers looked at this and then gave it the OK. More than OK, they are making it a major part of their business.

  58. I, for one, must be missing the point ! by OneSmartFellow · · Score: 1

    Let's see MONO handle this:

    [DllImport("user32", SetLastError=true, EntryPoint="SendMessage")] public static extern int SendMessage(int hWnd, uint Msg, int wParam, int lParam);
    [DllImport("avicap32.dll", EntryPoint="capCreateCaptureWindowA")] public static extern int capCreateCaptureWindowA(string lpszWindowName, int dwStyle, int X, int Y, int nWidth, int nHeight, int hwndParent, int nID);
    [DllImport("avicap32.dll", SetLastError=true, EntryPoint="capSetCallbackOnFrame")] public static extern bool capSetCallbackOnFrame( int hwnd, Delegate fpProc );
    [DllImport("avicap32.dll", SetLastError=true)] public static extern int capSetVideoFormat(IntPtr hWnd, ref BITMAPINFO psVideoFormat, int wSize );
    [DllImport("user32", EntryPoint="OpenClipboard")] public static extern int OpenClipboard(int hWnd);
    [DllImport("user32", EntryPoint="EmptyClipboard")] public static extern int EmptyClipboard();

    Face it, Microsoft NEVER intended to make C# a real language !

    1. Re:I, for one, must be missing the point ! by Anonymous Coward · · Score: 1, Insightful

      Except that C# programmers never (rarely) make those calls directly. They are buried under class libraries that abstract them out. Most of Windows.Forms is fairly abstracted out and developers don't have to ever touch a message loop. There is no GetMessage and WM_CLICK, just a Click event. It's trivial to expose the same functionality under Mono.

      You might as well say that Java is a fake language because of JNI, or because the JRE maps down to non-Java calls (and they all do.) You might as well say that c is a fake language because of stdcall support between Pascal and FORTRAN languages, or because c still compiles down to native bytecode. Pick a language; it's based on another language, built on another language and typically (if it is worth anything), interoperates with other languages.

      Way to FUD, though, assmonkey.

    2. Re:I, for one, must be missing the point ! by OneSmartFellow · · Score: 1

      Except that C# programmers never (rarely) make those calls directly
      Dude, I am a C# programmer, although I did spend many many years writing C then C++, and I make those calls all the time!.

      Pick a language; it's based on another language, built on another language and typically (if it is worth anything), interoperates with other languages
      No shit, but that doesn't mean that the syntax for declaring system level APIs should be so convoluted.

      I tip my asshat to you, bum coveter !

    3. Re:I, for one, must be missing the point ! by miguel · · Score: 3, Informative

      Seems fairly simple to intercept those calls and map them to managed code.

      We might evaluate interception on a case-by-case basis.

      Miguel.

    4. Re:I, for one, must be missing the point ! by Anonymous Coward · · Score: 0

      Dude, I am a C# programmer, although I did spend many many years writing C then C++, and I make those calls all the time!.

      I think the key here is to be a *good* C# programmer.

    5. Re:I, for one, must be missing the point ! by M$+Mole · · Score: 1
      [DllImport("user32", EntryPoint="EmptyClipboard")] public static extern int EmptyClipboard();

      Face it, Microsoft NEVER intended to make C# a real language !


      I've had to write this stuff too...but that's a
      shortcoming of the .NET framework, not the C# language. The difference is subtle, but it's there.

      What this really demonstrates is how poorly MS implemented their System.Windows library...they left a lot out, either by design or because they rushed stuff out of the door to get it out.
      --
      Karma: Non-existant. Due mostly to the fact that you smell funny and nobody likes you.
  59. mono may be a turd in the F/OSS world but... by Anonymous Coward · · Score: 0

    One word: Bullshit!

    You can compile any well written GTK app without gnome support.

  60. People here STILL don't get it by zoomba · · Score: 4, Insightful

    I see all sorts of comments about "Why do I need that if I'm running Linux? I'll just write my code in C/C++ and compile natively!" Basically most of the people here lack the ability to step back and see this from a much wider perspective. Mono isn't so much here to help the existing Linux developers develop under Linux better, but to allow Windows developers and Windows software companies to (more) easily make the transition to Linux.

    Sure, you still have to rework parts of your .NET code when moving between platforms, but compared to the rewrites that are often necessary with other languages, the time investment is minimal. With Mono you can pretty quickly move your app from Windows, to Linux, to MacOS.

    Mono (to me) is more of an outreach project, a bridge like WINE or Cedega to the Windows world. It's a note saying "Hey guys, I know we haven't been on the best terms in the past, but we want to make it as easy as possible for you to come over and pay us a visit on the other side of the OS world. Bring your code with you too if you'd like, we're working on making that work too!"

    1. Re:People here STILL don't get it by Anonymous Coward · · Score: 0

      If they want to use .NET then why not stick to using it on windows?

    2. Re:People here STILL don't get it by zoomba · · Score: 1

      You want Linux market share to grow, right? Well you need to entice people over somehow. Coders you get with making it easy to make the initial transition. Users you get if they can run their old familiar apps on your OS. Develop in .NET and you can release to the three major platforms (Win, Mac, Linux).

    3. Re:People here STILL don't get it by spitzak · · Score: 1

      I can write code right now in C++ that compiles natively on both Windows and Linux. Microsoft and GNU both provide C++ compilers that match each other to an amazing degree. It is true that it is easy to write a C++ program that is Windows only (or to write a Linux-only one) as well.

      The problem is I see *no* promise that C#/.net/mono is going to be better. I very, very, much doubt that a windows-only program is going to compile for Linux any easier than a Windows-only C++ program. Everytime they say "well use #gtk" I just don't see any possible advantage over C++. In C++ you can use fltk, gtk+, or Qt, or WxWindows, or lots of others. That does not help the program written using an obfuscated Microsoft-designed api (or an equally-obfuscated xlib). And I just cannot imagine how Mono will be any better, if it was there would not be any of this "use #gtk" statements.

      Using a portable toolkit the GUI is differences are actually minor. I have FAR more difficulty with backslashes in pasted file names and with drive letters, with cut&paste to programs that barf if given filenames with forward slashes in them, with case-independent filenames making directory searches a nightmare and unportable, with local-time timestamps, and with CR+LF, and all the other ancient crap that still lives in Microsoft's crap operating system. Do you really thing those problems are going to go away, or is that horror just going to start invading Linux? Do you have any idea why there was such intense desire to get away from Microsoft? It has nothing to do with GUI, the real reasons are still there and just as blatent as ever.

    4. Re:People here STILL don't get it by man_of_mr_e · · Score: 1

      Yes, if you write code from scratch expecting it to be portable between Windows and Linux or other platforms, you can make it so.

      What if you wrote code but didn't expect that? What if, later on, you decided you wanted to port to Linux, but you have 10 million lines of code targeted towards Windows?

      If that code is written in .NET, you can use Mono to (one day) convert it without problem. Even today, you could convert it with only about 10-20% code modification.

      Why is it that people like you always forget about legacy code? Now, granted, Most of a companies legacy code TODAY isn't going to be .NET based, but in a few years it might be.

    5. Re:People here STILL don't get it by spitzak · · Score: 1

      I am talking about legacy code. A huge Windows program in C++ can be converted to Linux as well, and I would bet the changes would be to the same 10-20% you mention. I fail to see how .net is going to improve this any.

      Every time this is brought up people say "use #gtk" but I fail to see any difference between that and somebody saing "use gtk++" when writing a C++ program.

    6. Re:People here STILL don't get it by man_of_mr_e · · Score: 1

      You mean other than the 10x longer it would take to develop the C++ program? Statistics show that developers are 3-10x as productive with garbage collected languages such as Java and C# as they are with C++.

      Further, as I said, one day it will require ZERO work to convert from legacy to Mono, as opposed to that 10-20% you will NEVER get rid of.

    7. Re:People here STILL don't get it by kwoff · · Score: 1

      I don't care if Windows developers use Linux.

  61. Try it first by shutdown+-p+now · · Score: 1

    For those of you who "can't understand the need of it", I suggest you try to write (or port) a simple program in Mono/C#/Gtk#, and see how more concise it is compared to something similar in C.

    1. Re:Try it first by argent · · Score: 1

      I suggest you try to write (or port) a simple program in Mono/C#/Gtk#, and see how more concise it is compared to something similar in C.

      I suggest you try to port a simple program from C/C++/Java/C# to Lisp, Scheme, Tcl. Python, or Perl, and see how much more concise it is compared to something in a C-like language.

    2. Re:Try it first by deicide · · Score: 1

      ...Perl...more concise

      You, sir, are funny!

      But otherwise (Python, for example) you have a point.

    3. Re:Try it first by shutdown+-p+now · · Score: 1

      I would agree with you on Lisp, Schepe on Tcl. However, given that most OSS developers still use C/C++, I'd say a move to C# is still a positive thing. Me, I hope to live to the day when everyone writes code in Scheme or CL =)

    4. Re:Try it first by argent · · Score: 1

      I personally detest Perl, but you can sure write concise Perl code. It may be unreadable and cryptic, but it's $ure $_{as->hell}%concise.

    5. Re:Try it first by argent · · Score: 1

      given that most OSS developers still use C/C++, I'd say a move to C# is still a positive thing.

      That's like going out in the rain so you can replace your dandruff problem with a cold.

      Once you're done, you've got dandruff *and* a cold. Once you're done, you've got Mono *and* C++.

  62. Shove it Miguel... by Anonymous Coward · · Score: 0

    Garbage! There is no need for it. Another still-born language. Why would you follow Microsoft anyway? Eeek - it's C-flat.

  63. A simple solution by Qwavel · · Score: 4, Interesting


    There is a very simple solution to all this.

    Rather than Miguel having to repeat himself over and over in defense of Mono, why doesn't Novell just release the legal opinions they have on the important issues related to Mono?

    Instead of telling us not to worry, just give us the facts.

    I realize that this is a lot to ask of a company, but the FLOSS community is hard to satisfy. It wants to get the real info, not just the marketing.

    Novell doesn't need to release their whole Mono legal opinion. Just enough to answer the questions that concern OSS developers. For example, could the EMCA parts of Mono ever require a license other than the GPL? What is likely to happen with the Mono implementation of ASP.NET?

    1. Re:A simple solution by lupus-slash · · Score: 1

      Instead of telling us not to worry, just give us the facts.
      The facts are explained in the FAQ:
      if a patent issue is brought to our attention we'll seek prior art to make the patent invalid. If that fails we'll implement the feature in a non-infringing way. If that's not possible we'll drop the feature.

      You'll note that the above has no mention of mono or .net: indeed the same concerns are valid for any piece of software currently written in the free software and proprietary software worlds.

    2. Re:A simple solution by Qwavel · · Score: 1


      Thanks for the response.

      One of the differences between this and other GPL software is that, in this case, these issues will come up. When MS created dotNet, they must have had a plan about how all this would play out. When Novell bought into Mono, they too must have had a plan and a legal opinion. That plan/opinion probably did not look anything like your FAQ. For example, we know that MS WILL enforce it's patents, and that Novell, RH, etc. will then have the option of licensing the tech on reasonable terms as per the EMCA. Unfortunately, this means that non-licensed distro's will be excluded, and MS is under no obligation to license WinForms/ASP.NET to anyone it doesn't like.

      But I shouldn't be saying this. IANAL. There are other people who have looked at this question and are lawyers. They work for Novell, RH, IBM, MS, etc. And I'd be curious to know what they have to say.

    3. Re:A simple solution by aztracker1 · · Score: 1

      What about all the people using Samba... may just be guessing, but guessing that Samba is probably more widely used than either GTK/Gnome, or KDE/QT (not together, but separately)... But Novell, RH etc still distribute them, and Samba isn't even an ECMA or ISO standard.

      --
      Michael J. Ryan - tracker1.info
    4. Re:A simple solution by Qwavel · · Score: 1

      Yes, SAMBA is an important question too.

      The important differences are:
      (1) that we don't have much choice with SAMBA. It was created specifically to access an MS tech. You can't access MS SMB without SAMBA or something like it. With Mono, we are considering using it instead of Python/Java/C++, etc. We have to choose the best option.

      (2) MS created SMB a long time ago when they only had 1/10th the # of lawyers they do now. When MS created dotNET, they had already identified FLOSS as their #1 threat, so they probably prepared a strategy for handling it.

    5. Re:A simple solution by Anonymous Coward · · Score: 0

      Wrong. Samba was written to access DEC technology. NT is based on DEC technology.

    6. Re:A simple solution by lupus-slash · · Score: 1

      One of the differences between this and other GPL software is that, in this case, these issues will come up.
      I'm sure glad you can see the future, but frankly your divinations don't have much weight.
      Any piece of free software is under the threat of patents until the patent process is reworked to favour innovation instead of favouring monopolistic and patent-portfolio companies that don't do any innovation.
      The only difference between an open source project that will be sued and one that won't is that the projects that are irrelevant won't get sued.
      So it's very easy to avoid the patents issues: write software that few people will use and that doesn't generate sufficient economic changes.
      BTW: this works also for proprietary sw: the difference there is that the amount of revenue involved before a suit is much less, since in the case of free sw the negative publicity of suing a project is very big: see why the linux kernel was involved by the SCO idiots only so late and how they paid with self-destruction what they did.

  64. Yeah. Is mono even legal? by r00t · · Score: 2, Interesting
    I sure have doubts over the patent issue. No, I take that back. I'm confident that mono has patent problems. There is nothing to doubt.

    Now, why would I want to rely on software that will get stopped in court? Why would I want to buy from a Linux vendor that might get shut down (bankrupted, etc.) via court action?

    1. Re:Yeah. Is mono even legal? by dash2 · · Score: 2, Insightful

      But as Miguel points out, pretty much all software, written in any language, has patent problems. That's just the kray-zee world we live in. If anything, GPLed projects may be safer, because IBM and Novell have threatened to use their patent arsenals in retalation against anyone trying to sue open source projects for patent infringement.

    2. Re:Yeah. Is mono even legal? by Anonymous Coward · · Score: 0

      I'm confident that mono has patent problems. There is nothing to doubt.

      There is something to doubt: I doubt that you have any basis for your confidence. The only possible case in which there would be nothing to doubt would be if somebody had positively identified Microsoft patents which Mono was in danger of infringing. Have you identified such patents? Put up or shut up, "r00t".

    3. Re:Yeah. Is mono even legal? by aztracker1 · · Score: 1

      Safer than what? mono *IS* GPL'd as far as the compilers... as for other libraries, most are standards, which were submitted by MS, if those infringe on patents, MS would bear the blunt of that blow....

      With Microsoft's release of Rotor for "open study" that kinda equates to MS saying okay, use this... for future antitrust/monopoly suits, it leaves MS open to say, hey we *do have competition* which is probably more valueable to them anyhow.

      Beyond this, the GPL says you aren't supposed to use things that may violate patents anyhow, but how many people are using Wine, or Samba? IMHO these are *MUCH* more likely to infringe than mono does... it's kind of a duplicity in things, how many distros do *not* have Samba support? How many *do* have mono support... IMHO mono has a *VERY* important role in commercial software development for linux...

      --
      Michael J. Ryan - tracker1.info
    4. Re:Yeah. Is mono even legal? by a_karbon_devel_005 · · Score: 1

      I sure have doubts over the patent issue. No, I take that back. I'm confident that mono has patent problems. There is nothing to doubt.

      Now, why would I want to rely on software that will get stopped in court? Why would I want to buy from a Linux vendor that might get shut down (bankrupted, etc.) via court action?

      Well, then, Mr. Lawyer, don't use it if you're confident (sans proof/research of course) that it has patent issues, don't use it!

      But tell me, what did you REALLY add to the conversation?

  65. Re:Difference between Mono and SWT for Rich Client by man_of_mr_e · · Score: 1

    I think GTK# will end up being more useful because it's just a binding to GTK, and GTK is most likely getting a *LOT* more eyes on it than SWT because it's used in a lot more applications.

  66. Mod Up Parent please! by ansak · · Score: 1

    This is the core of my concerns about using Mono. The tiger is inviting us all into the cage, waiting for the gate to slam shut: signal for the beginning of the feast.

    Additionally, if "Anonymous Coward" could provide some names, then this wouldn't be just score:0 but 5:Informative.

    cheers...ank

    --
    Still hoping for Gentle Treatment...
  67. Is it a good thing for thedailywtf.com? by gcauthon · · Score: 0

    Millions of windows/.net programmers now have a new toy with linux/mono. Looks like thedailywtf.com should think about upgrading their servers to handle the increased traffic.

  68. Having written Java for the last two months... by defile · · Score: 0, Troll

    I'm confident that even Microsoft could have done a better job than Sun. THAT's what Mono has to offer.

    Once I learned that Java didn't have unsigned data types, it was all downhill from there.

  69. A good thing but... by sted · · Score: 1

    I think than Mono is a good thing, but if I should start a server-side multi-platform project today, I would choose Java.

  70. Don't forget about VM by shutdown+-p+now · · Score: 1

    Mono is not just C# (which, while better than Java, is still a rather crappy mainstream language). It is also an implementation of CLR, which is a very good VM, definitely much better than Java. It can be targeted by compilers for languages such as Haskell or Nemerle, taking advantage of VM sandboxing and memory management capabilities, as well as optimisations such as JIT and AOT.

    1. Re:Don't forget about VM by JohnnyCannuk · · Score: 1

      Well too each their own I guess. I'm doing C# ASP.NET development right now and I hate it.

      I'm itching to get back to Java (which I'll be able to do in a few days).

      I'm sorry but C# takes all the good stuff of Java, adds some of the bad stuff of C++ and tries to let you do the syntax of VB all in one place.

      Not my cup of tea. I think Java is a far superior language and runtime.

      --
      Never by hatred has hatred been appeased, only by kindness - the Buddha
    2. Re:Don't forget about VM by shutdown+-p+now · · Score: 1
      C# 1.0 is definitely better than Java 1.4, which didn't even have enums. It is, however, worse than than Java 1.5.

      However, if we take C# 2.0, then we have real generics (and not the crap Sun put into 1.5), closures, partial classes, and lots of other things Java is still missing. Closures are especially important, since, combined with tail-call optimization present in VM, they let you write code functional-style easily. Also since generics are full-featured, I'd expect some form of STL to appear soon - something which is not and will not be available for Java (not with decent perfomance, at least).

    3. Re:Don't forget about VM by JohnnyCannuk · · Score: 1

      Gee, why don't I just use C++. All of those "features" you have listed are in ANSI C++.

      Although I miss generics a bit (but not a whole lot), I have never actually missed using any of those ofther "features" in Java, which I have been doing for over 7 years.

      BTW, I write in Java so I don't have to code "functional style"...if I want or need to do that I'll use C or C++.

      Sorry, I see no use for closures, partial classes or a version of the STL.

      I also don't think C# 1.0 is better than Java 1.4, but that's just my personal opinion.

      --
      Never by hatred has hatred been appeased, only by kindness - the Buddha
  71. the name itself even hints of patent problems by r00t · · Score: 1

    You'd better C-sharp or you'll B-flat.

  72. Nothing is Free by N8F8 · · Score: 1

    Nothing is free and in the case of Mono the true cost has yet to be determined. Adopting Mono exposes your development IP issues you don't have to deal with by using alternatives. MS is evil. This is fact. They will crush any competitor using any possible tactic. They have in the past and they will in the future.

    --
    "God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
    1. Re:Nothing is Free by man_of_mr_e · · Score: 1

      Then don't use the Mono libraries that are copies of non-ISO standard MS libraries. Use GTK# instead of Windows forms, etc.

      Mono is still a great environment even if you avoid the MS centric stuff. Remember, it's an ISO standard, and that requires reasonable and non-discriminatory licensing (RAND).

    2. Re:Nothing is Free by maxwell+demon · · Score: 1
      Remember, it's an ISO standard

      I thought it was an ECMA standard?
      --
      The Tao of math: The numbers you can count are not the real numbers.
    3. Re:Nothing is Free by Anonymous Coward · · Score: 1, Insightful

      MS is evil. This is fact. They will crush any competitor using any possible tactic.

      Setting fire to kittens: evil.
      Gassing 6 million Jews: evil.
      Raping little girls: evil.
      Flying airliners into office buildings: evil.
      Employing standard competetive business practices: not evil.

      Please get a sense of proportion. When you say "MS is evil", I think "immature fanboy". Shut up until you have some evidence to support your wild claims.

    4. Re:Nothing is Free by man_of_mr_e · · Score: 1

      It is, it's also an ISO standard.

  73. Is #Develop have GTK# support by Anonymous Coward · · Score: 0

    #Develop have a GTK# form designer?

  74. try std::string, dumbass by Anonymous Coward · · Score: 0

    This just in: C is not C++.

    1. Re:try std::string, dumbass by tc · · Score: 1

      And then I want to pass my std::string to some legacy library, so I get a char* from it. And some other piece of code uses that pointer to start doing 'interesting' stuff.

      Or I forget what the semantics are for iterator invalidation when traversing a STL container, and start using an invalid iterator somewhere in my code. (Quick: without looking it up, which containers invalidate iterators on deletion and which don't?)

      What happens? Maybe an exception gets thrown? Maybe you get unlucky and start stomping on something else's memory? Maybe you'll notice the bug right away, or maybe it won't surface for weeks? Who knows?

      As an experienced C++ programmer (I've been writing C++ code since the Zortech compilers in the early nineties), who's done a fair amount of STL programming, I can absolutely tell you that it's quite possible to write buggy memory-stomping code in C++, STL or no. With C# or Java, that's simply not the case (or, at least it's orders of magnitude harder).

    2. Re:try std::string, dumbass by Anonymous Coward · · Score: 0

      Same in Perl. But in Perl you don't need allocation calls. Perl is getting a big balls-to-walls preformance update in the form of Parrot, and can be written in all styles of programming. Also, perl is portable to systems that most people never hear off.
      And perl will never break. In fact, perl 4 is still active unofficaly. So now you told us to use perl, not Mono.

    3. Re:try std::string, dumbass by tc · · Score: 1

      Sure, I thought about mentioning Perl as another productive language which isn't C++, but I just wanted to focus on refuting the notion that STL somehow makes C/C++ a safe language.

      Of course, Perl has other drawbacks. The syntax and built-in stuff has evolved over time to provide quick ways of solving particular problems, but it's not really that intuitive. It's possible to write readable code in Perl, but there's something about the language which appears to discourage it.

      I think Perl is great when you stick to its strengths. As a shell-scripting language on steroids, with awesome text-munging capabilities, it's hard to beat. For building large component-based systems, I would say it's a little unwieldy.

      Overall, I think that C# is probably a better thought-out general purpose language. But Perl definitely has its uses in some cases.

      Either case is, as you note, going to be safer than C/C++.

  75. What about Windows.Forms? by Anonymous Coward · · Score: 0
    Every time someone brings up Mono someone brings up "Does it implement all of System.Windows.Forms?", meaning "Does it run all my C# programs I wrote in Visual Studio just by recompiling.

    Every time that comes up someone says "no, it doesn't support {any, some of, a little bit of} System.Windows.Forms". I've got no complaint about that, since Forms is probably a huge undertaking to re-implement, especially on a system that isn't tied to the Win32 API.

    So my question is, what DO you do to get graphic window elements with Mono? If I wanted to write console programs I'd do that in Perl. Does mono have a "Mono Forms" kit that lets me do everything that System.Windows.Forms would do, just in it's own way?

    1. Re:What about Windows.Forms? by lupus-slash · · Score: 1

      Does mono have a "Mono Forms" kit that lets me do everything that System.Windows.Forms would do, just in it's own way?
      We use Gtk# for GUI apps (though there are people working on the mono Windows.Forms implementation, too: it should be beta-ready in the next few months).

    2. Re:What about Windows.Forms? by PsychicX · · Score: 1

      Mono is closely bound to Gtk via a layer called Gtk#. It's the recommended way to get a GUI under Linux and a cross-platform GUI in general for Mono/C#.

  76. politicians versus corporation by Speare · · Score: 1
    And that's the difference between a politician and a corporation.

    When George Bush wants to get a war, a drilling plan, or a social security plan, he simply fights all differences of opinions, evidence to the negative effects, and beats his head against the wall against public opinion until it happens. It's success by fiat.

    When Microsoft wants to push WebTV or Palladium or .NET, they push it, they implement it, they sell it... but if there's still resistance after a couple of years, they let it die. They go on to something more productive. They recycle parts of their ideas and refine the rest. They don't keep beating their heads against the wall of negative market.

    --
    [ .sig file not found ]
    1. Re:politicians versus corporation by Anonymous Coward · · Score: 0

      other than to get your required daily bush bash, what was your point?

      like a junky needing to get a fix.

    2. Re:politicians versus corporation by TummyX · · Score: 1

      Especially silly since the grandparent is wrong about MS dropping .NET.

  77. Two months?! by Lysol · · Score: 1

    Funny, that reminds me of a company I went to where they gave their Perl programmers a 3 month Java class and I ended up later debugging and re-writing their 2k line JSPs. Unfortunately for me.

    The latest .NET release is about as solid as Java was back in, what, '99?!

    1. Re:Two months?! by defile · · Score: 1

      A 3 month long Java class?

      I think I'd shoot myself.

  78. No ASP.Net Support by dcuny · · Score: 1
    Once, there was a project known as Gnome Basic, which was intended to work as a replacement for VB. Then the project was suddenly abandoned, because the authors decided that VB.Net was the way to go.

    Unfortunately, the Mono Basic has thus far failed to materialize. I keep reading about how it's slowly creeping, but all the real focus is on C#. If it's gotten past the "Hello, World" state where it was a couple years ago, I haven't heard about it.

    Each time I read how Mono is advancing, and how complete Mono web development is, I have another look at the status of MonoBasic. That means I go to the whopping one (count 'em!) page devoted to Mono Basic. It says (just as it did a year ago):

    • The above features are fully implemented and are being checked for conformance to MS's implementation.

    So what's the status? Is it 10% done? 90% done? Is there a timetable attached to the project? Will the Mono IDE support it?

    I can't tell. It's pretty much the way it's always been.

    The Visual Basic runtime has been ported over, allowing applications compiled on ASP.NET to run, but that's not the same thing, at all. Note that it was donated by Mainsoft, not developed by the Mono folk themselves.

    It's too bad, because we're an ASP.Net shop, and we're not about to jump over to C#. Don't bother with the lecture about how the only difference between the two languages is just syntactic sugar, either.

    1. Re:No ASP.Net Support by aztracker1 · · Score: 1

      AFAIK the best way to find out where it is, is to *TRY IT* ... setup a mod_mono/xsp box even under windows, and see if/how well it/your software runs, use the latest 1.1.* branch, and see for yourself...

      I mean, even *IF* you wanted to port the app, and "knew" how far it was, you'd have to do this anyhow, just do it... same goes for any porting, or cross-platform project.

      That aside, iirc the MonoBasic is feature complete at this point, but not thoroughly tested, as not as many people are using it as C#. If you test it and find bugs, get involved in the mailing lists, they are usually pretty responsive, and can go a long way into resolving any issues you may have.

      --
      Michael J. Ryan - tracker1.info
  79. Mono? by faraway · · Score: 1

    I tried Mono for a month but wasn't really pleased with the results. Needless to say, I really dislike herpes virii now. :-/

    Marius

    1. Re:Mono? by sexylicious · · Score: 1

      I tried Mono for a month but wasn't really pleased with the results. Needless to say, I really dislike herpes virii now. :-/

      As opposed to really liking them before?

  80. 'Intellectual property' strikes again by Homburg · · Score: 1

    There's no problem with infringing on Microsoft copyrights, as Mono is written from scratch, using no MS code. I don't think there's likely to be a problem with trademarks either (unless 'Windows' in 'Windows.Forms' can be trademarked - and that wouldn't apply to the ECMA stuff anyway).

    What there might be a problem with is patents - MS apparently has patents on various things necessary to implement the ECMA spec. Now, if memory serves, Ximian say they have some kind of letter from MS promising reasonable, no-cost licensing of these patents (and possibly their ECMA membership might require it?). But how much this actually protects Mono, I'm not sure.

  81. There's not much confidence to be had... by MenTaLguY · · Score: 2, Interesting

    Wake up.

    I hate to say it, but given the current software patent regime, that is the strongest guarantee ANY software project can give (Free or otherwise).

    Let's say you're writing a piece of software. Can you guarantee that you aren't violating any patents?

    Probably not -- you're almost assured that there are already patents in place, even for relatively trivial things; your safety from those depends wholly on either the patent-holder's ignorance or good graces.

    Oh, and by the way, don't go looking for yourself to make sure there aren't any patents covering what you want to do. Once you've read a patent you're liable for triple damages if a court later determines that you violated it. That you think you're safe (per your interpretation of the patent) doesn't matter; before the law only patent lawyers are deemed legally competent to make those evaluations.

    Yes, Virginia, things really are that bad.

    In Mono's case at least Novell had patent lawyers look at the situation before proceding.

    --

    DNA just wants to be free...
    1. Re:There's not much confidence to be had... by Anonymous Coward · · Score: 0

      - This has already happened to Java.
      Kodak vs. Sun.
      And Sun took care of it.

      - If Microsoft goes after Linux, will IBM/Novell write the check?

    2. Re:There's not much confidence to be had... by aztracker1 · · Score: 1

      Considering this is what Novell is betting the company on (so to speak), for internal development, and new tools.. I would say "yes".

      --
      Michael J. Ryan - tracker1.info
  82. Why not stick with Objective-C? by bonch · · Score: 4, Interesting

    Believe it or not, Objective-C and Cocoa still have advantages that C# has yet to catch up to.

    I still shake my head when I use the Visual Studio beta and create a form, and look at the code to see it instancing classes in an InitializeComponent() function. Anyone whose used Visual Studio before knows things can go haywire if you dare touch any of that code. You have to leave it alone or the editor gets pissy.

    In Cocoa, the .nib files are actual serialized object graphs, so there is no code-generation. At run-time, the objects are just loaded into memory automatically as though they were created in code. Which keeps my project clean and seperated from the GUI (that whole model-view-controller thing) and really makes prototyping a GUI easy. I just hit Cmd-R to test the GUI in Interface Builder.

    I also like the way method parameters are self-documenting in Objective-C. It's easier to understand a "[something doThis:parameter1 usingThis:parameter2 forThis:parameter3]" then it is a "something.doThis(parameter1, parameter2, parameter3)".

    Just my opinion, and I'm sure there are those who have valid reasons to use C#/.NET instead. But I used to be a C# guy too until I learned Cocoa. The flexible messaging system alone keeps me using it.

    1. Re:Why not stick with Objective-C? by chiph · · Score: 1

      Part of my reasoning to use Cocoa# with C# is that I'm new to the Mac world, and I need something familiar to hold onto. Just learning Cocoa is likely to be drinking from a firehose. ;-)

      Thanks for the reply.

      Chip H.

    2. Re:Why not stick with Objective-C? by roard · · Score: 1
      What you don't realize is that "learning Objective-C" is frankly not difficult or long. The longest thing is NOT to learn a language, particularly one as simple as Objective-C, but to learn the frameworks.. Learning Cocoa isn't immediate, but at least there's a nice payoff at the end -- Cocoa is easily one of the best GUI toolkit, very well designed (even if..) and powerful, and InterfaceBuilder in itself is worth it.

      So, frankly, you won't save time by learning Cocoa#, to the contrary. Plus, Objective-C is a very cool object-oriented language (object-oriented in the sense of Smalltalk, not in the sense of C++ !), just the minimum additions to enable OOP on top of C. Neat.

      By the way, don't forget the GNUstep project, a free software implementation of the OpenStep API, with Gorm, an equivalent to IB ! and all that runs on *nix, linux, mac and windows..

    3. Re:Why not stick with Objective-C? by malfunct · · Score: 1

      In .NET 2.0 partial classes will help some with separating generated code from your hand written code through the use of partial classes. Hopefully it is implemented in a way that lets it be fully flexible but still allow the editor and you to be happy together.

      --

      "You can now flame me, I am full of love,"

    4. Re:Why not stick with Objective-C? by Anonymous Coward · · Score: 0

      The whole message-sending format is taken straight from Smalltalk which was created over 20 years ago. Smalltalk is pretty cool in my opinion, but I know nothing about Objective-C.

  83. No by bonch · · Score: 1

    This is more like making our own equivalent teats to suckle from.

    I never thought I'd use a sentence like that. Thanks.

    1. Re:No by jav1231 · · Score: 1

      Yeah, we'd NEVER get anything done.

  84. s core: -1, redundant by Anonymous Coward · · Score: 0

    Because no poster on /. would've gotten it from a girl!

  85. linux developers are dubious? by milesegan · · Score: 1

    Hopefully the linux developers are skeptical, and not dubious.

  86. Bottom Line! by Anonymous Coward · · Score: 0

    Like it or not, the bottom line is that Microsoft is trying to create a bridge to Linux, and eventually get Linux users on their side of the bridge, and possibly burn the bridge!

    Just wait and you'll see!

  87. Just some questions by Rac3r5 · · Score: 1
    Hi,

    I was just wondering about the license requirements?

    1. Say if I program something in .NET / C# do I have to somehow license the software with MS, even if its just for fun/learning?

    2.Suppose I'd like to take the program I wrote in .NET and sell it commercially, do I have to pay any royalty fee?

    3. What if the above 2 questions are applied to Java?

    Just wondering :) B4 someone tells me to RTFM, please understand that I am a new grad and most software written while in school was for academic purposes.

    1. Re:Just some questions by aztracker1 · · Score: 1

      1. No, even the microsoft Runtime is free/redistributable.. and you probably won't even have to mention it in a few years... MS is pushing the runtime out heavily, as are other application vendors, you can easily refer them to install it via windows update, or the download page from MS. As an additional notation, MS's .Net SDK is also freely available, and can be downloaded by anyone, and you can use the SharpDevelop IDE for your windows development, and it's pretty much portable to mono.. if you avoid windows specific p/invoke statements, your app developed against the System.Windows.Forms interface will be portable to any mono platform (before the 1.2 timeline), and should run under Portable.Net as well.

      --
      Michael J. Ryan - tracker1.info
  88. Congrats... by Anonymous Coward · · Score: 0

    "And the open source world just sits there and does nothing."

    Well, isn't that it's role in things?

    Finally, someone who understands FOSS!

  89. Thats not adequate at all by Ars-Fartsica · · Score: 1

    There has been plenty of hand-waving regarding this issue and I think the parent poster has a good point. We are basically talking about a face-value "promise" from a pretty much the last company we would accept that from. Yes there are always issues to contend with, but GPL-conceived community specificied tools (python, perl etc) seem to be far more resistant to these issues.

  90. Not just C# by shutdown+-p+now · · Score: 1
    Check out Nemerle. It's a beautiful thing, really: a (largely) functional language, semantically somewhat close to O'Caml, yet syntactically very similar to C# (to ease learning for ye who haven't seen the light before), and designed from grounds up to integrate with the rest of CLR (unlike, say, F#) and CLS class libraries. What more, MonoDevelop has decent support for it, as well - you won't get code completion, but syntax highlighting and project management work.

    If you have been thinking the language to pick for your next Gtk project, I highly recommend to take a look.

  91. What mono needs by HogynCymraeg · · Score: 1

    What it needs is an IDE like netbeans. Netbeans for Mono would make it *the* development platform on linux.

  92. Mono on Windows? by tim256 · · Score: 1

    Why would anyone use Mono on Windows?

    1. Re:Mono on Windows? by jellomizer · · Score: 2, Informative

      Compatibilty checking.

      Develop Mono on windows there is a better change of having simular compatibility running on Linux vs. .NET on windows and seeing if it will run in Linux.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  93. Insightful - Your having a laugh aren't you?????? by youngerpants · · Score: 1

    I cant see the point in java/ python/ vb/ html/ c/ sql/ food/ water/ oxygen/ etc/ etc/ etc

    I can see a point, easy porting of apps between platforms.

    Perhaps not so much insightful, more flaimbait

  94. I tried to get Mono, I really did by melted · · Score: 2, Informative

    However, my policy is, if it won't install clear out of yum repository on Fedora Core 3 it's not ready for my use. I'm sorry, I work on my computer. I have better things to do than chasing down dependencies and installing RPMs from untrusted sources. In year 2005 I simply refuse to spend my time on this kind of shit.

    So, Miguel, how about putting together a god damn yum repository that contains all required dependencies so that the users of one of the most popular distros would be able to at least try your software, if not "get" it? I remember back in Ximian days the only thing you needed to install Gnome was ssh connection.

    1. Re:I tried to get Mono, I really did by aztracker1 · · Score: 1

      AFAIK there is already a YUM repository for it, and it doesn't require anything that doesn't already come with FC3.. IIRC, I last installed on FC3 via the FC2 repository though.. IIRC they have an operational FC3 repositiory now as well..

      Of course next thing you know, you'll want an FC4 repository in a few weeks.

      --
      Michael J. Ryan - tracker1.info
  95. Nope. by Anonymous Coward · · Score: 0

    The reason MS people were having orgasms over .net was because the only things they had before were VB and C++. If they had been smart enough to use other languages besides the ones MS backs, they would have found there is nothing special about .net at all.

  96. C# vs C by Anonymous Coward · · Score: 0

    Garbage! There is no need for it. Another still-born language. Why would you follow Microsoft anyway? Eeek - it's C-flat.

    My point exactly. C# is the Callista Flockhart of programming languages. C is where it's at; it's the strapon-dildo extensive orgasm chamber. Why pass around a flat-chested toy when you can jump on teh pooty hooters of the likes of C's extensibility? And to begin with, feed some code to C# and it doesn't change a bit -- still lethargic, bolemic, wannabe poontang that can be blown out the window 'cause its dying the death.

    For a considerate thought, C# is really built C underneath the covers; but avarice disposed of the sought love handles it let go. Oh Pamela, we be at your fartbox chambers knocking on your prison door; open up and let us in teh smoke the camel 'little more.

  97. That's because you're an idiot. by Anonymous Coward · · Score: 0

    C++ is a terrible language. If you need a fast executing low level language for device drivers or OS development, use C. If you need a high level object oriented language, C++ fails miserably. I just wish people took D more seriously, its the language C++ should be replaced with.

  98. mono on OpenBSD by Anonymous Coward · · Score: 0

    Anyone know if it can run on OpenBSD and how to get it installed?

    I'm at a windows box as I write but I don't see it in ports. http://www.openbsd.org/cgi-bin/cvsweb/ports/

    Any hope for a package?

  99. It's like .net by slapout · · Score: 1

    Ok, so Mono is like .Net. Now can you explain to me how to "get" .Net? :-)

    --
    Coder's Stone: The programming language quick ref for iPad
  100. i guess it's just another product now by fred+fleenblat · · Score: 1

    They might as well be marketing a new kind of shampoo. The ingredients that do the cleaning are the same as before, it's just a different color and smells like lilacs. Whoop dee frackin doo.

  101. Ob. Simpsons by bobobobo · · Score: 1
    True or False?

    You can get mono from the monorail.

  102. Not too smart by Julian+Morrison · · Score: 2, Insightful

    I assume that by "problem we don't have" you mean the idea of a single binary that runs everywhere, and your ideal solution is to build CPU-specific binaries from (open|free) source.

    Obviously you haven't given it enough thought.

    First off, there is no such thing as one source that compiles for every CPU. What you get is meta-source that preprocesses into various different programs, for each architecture and OS. All the different outputs need to be tested seperately. But it gets worse, since the assumptions underlying each OS are dissimilar enough that "cross platform" is really hard. Big, impressive projects like apache and postgresql have wrestled with cross platform - and won, but at no small cost in time and effort. It is not merely a matter of "configure; make all". Most CPU-compiled programs don't even make the effort, they are doomed to running only under posix (or windows, or mac, or whatever).

    Second, you lose the ability to migrate your programs unchanged with full functionality across eg: the upcoming 32bit => 64bit i386 CPU changeover. Or across totally different CPUs. This could well be very important if business depends on the predictable running of those programs. It's also pertinent from an open hardware perspective. Compiled binaries are vendor lock-in on the CPU. Even if you're willing to suck it up and assume a CPU, time is against you - CPU architectures predictably change. Likewise OSes.

    Third, you lose the ability to have code that actually exchanges runnables across platforms or with strangers on unknown machines. "Applets" could not have been done with compiled code.

    And of course fourth, you waste disk space, time and intellectual effort grubbing around compiling source code when all you likely want is binaries that work.

  103. Also (about C#) by Rick+and+Roll · · Score: 1
    Also, I would like to add that after reading some Artima Developer interviews with the creator of C#, C# gets more good features of C++ than Java. In fact, virtual methods (originally from Simula) are taken to another level in C# (as compared to C++). Besides having a virtual keyword (so every class need not be inherited from), there is an override keyword, that states explicitly when a class is overriding a virtual method.

    This gives it not only C++'s advantage over Java, that methods that weren't properly planned (preconditions/postconditions understood by subclassers) won't be inherited from, but another advantage as well. This is that when a method is added to a base class in a new version of a library after a user has written a subclass of one of the library class, that added a method of the same name, calls in the original library won't go to it unless that was what both the creator and user of the library intended. This probably isn't clear. Read the interviews.

    Also, I wouldn't be surprised if C#'s exception system is about as good as C++'s. I already know it's better than Java's (due to the lack of unchecked [or is it checked?] exception silliness).

  104. Novels corporate backing is what does it by acomj · · Score: 1

    Novel is paying developer to work on it. Have you seen Exclipse? IBM backing. Mozilla AOL backing.

    Very few start out as "foundations" like eclipse and Mozilla ended up as. (Apache afaik is a foundation).

    Coding Tools are low glamour not much praise projects, so it really helps to have some corporate backing.

  105. Mono v 2.0 by Anonymous Coward · · Score: 0

    will be called Herpes.

    3.0 is going to be called AIDS.

    They dont' need a version after that.

  106. How to get Mono explained by Anonymous Coward · · Score: 0

    Hook up with a dirty girl. Oh wait geeks don't hook up.

  107. classic by pyrrho · · Score: 1

    >I ask because a lot of your complaints have been at least partially addressed in the new release.

    nothing personal, but that response is classice.

    As is the "but hey, the first hit is free! you have no excuse to not try heroin!".

    but whatever floats your boat...

    --

    -pyrrho

  108. hey, I know what that is!!! by pyrrho · · Score: 1

    >What is the point in taking jabs at people when you have no idea what the situation was?

    it's a rhetorical question.

    --

    -pyrrho

  109. Actually, NO, their repository doesn't work by melted · · Score: 1

    That's exactly why I'm complaining.

    It requires some obscure *.so file which isn't even available in Fedora distribution. The only way to install mono on FC3 system is to get this library (libraries, actually) from an untrusted source (rpmfind).

    Just google for mono fedora core 3.

  110. I wonder by pyrrho · · Score: 1

    I'm not interested in flame wars on the subject... but I wonder where the future lies.

    Let's say everything was in a byte interpreted language. If C++ is still faster, then we eventually get to an optimization step where we don't want a heavy runtime, or we can use the last 20% (or whatever, I'm tempted to use a higher percentage but... it's not a real number anyway) of performance increase.

    sometimes it's as if some software engineers hate real machines and are sure they could do much better than hardware engineers so they build virtual machines. We are told they will be better than real machines some time soon.

    We of course look forward to the day we can throw out the real machine entirely and just use the virtual machine.

    --

    -pyrrho

    1. Re:I wonder by Serapth · · Score: 1

      The future here should be fairly obvious.

      The arguments we are hearing today, are basically identical to five or six years ago, about assembly language vs C or C++. Yes, you could squeeze between 5 and 200% more performance out of tightly written assembly, but in the long run, productivity gains from a higher level language won out.

      We are going to see the same thing here again. People will continue to use C and C++, especially API and framework providers. However, more and more people are going to do the majority of their development in a higher level language ( aka, Java or C# ).

      One of the big selling points of C or C++ was the ability to inline assembly. You are going to see much the same migration with new languages. pInvoke for C# allows you to still make use of lower level languages, where speed is critical. Ditto for JNI(? not a java developer... hope im right here) in the java world. Speed isnt much of an argument, although C zealots like to make it one. My understanding is, JNI used to be slow, and perhaps still is, but I know first hand pInvoke is not slow, and now that double thunking has been removed, its almost a non factor.

      So naturally as machines get faster and faster, the languages will move higher and higher in abstraction. The only real hits against Java or C# these days, ignoring speed which as mentioned above can be fixed, is the runtime. Having to host a VM has a memory hit no doubt. Also, having to ship 20 megs of files to support your 1 meg application seems like massive overkill, but in a few years, I believe this too will be a non issue.

      Actually, this is an area im suprised I havent seen explored yet, outside of mobile devices. Why isnt Microsoft or Sun, pushing to get a VM embeded at the bios level? If you could have a low level implementation of the VM, so many of todays problems go away.

    2. Re:I wonder by pyrrho · · Score: 1

      I won't argue with your point over all, because it's obviously true. Things like VB serve a role and deserve life.

      I'm saying a few things.

      (1) C++ gives higher abstraction than C, but it shares a philosophy from the portable assembler idea, while C tranlsates into assembly very directly, C++ translates into C fairly directly. By no means are these languages the end all be all, but they are in the image of the machine. VM based machines impose a translation from a virtual machine to a real machine. That translation must be awkward, because if it were not, you would not even need the VM and would use the machine's paradigm directly.

      (2) I'm saying I anticipate an optimization stage when suddenly we really do want that 20% (or whatever it is), and we will rewrite in a compiled language. Does that argument extend to assembly... will some day everything be written in assembly. No. Why? C already is so like the machine that the compiler writes the assembly, the advantage is not of the same scale. However, it does imply some stuff will be done in structured C style rather that using other C++ paradigms... note that C-style is one of the supported paradigms of C++.

      (3) embedded VMs have not worked because the VM is not a hardware design. If you build it in hardware, it doesn't see as much improvement as people thing. Things don't run fast in hardware because they are hardware, they run fast because they resolve to circuit flow... electricity running around. The limits of circuit design are why these machines didn't already have the characteristics desired in VMs. However, I do think this is the net effect when we add together VM progress, it will influence hardware design, and we will see machines built with some of the benefits VMs can demonstrate.

      and this is all speculation... who knows what the future will bring.

      --

      -pyrrho

  111. just learn C++ and shut the fuck up by pyrrho · · Score: 1

    ok... got that out of my system.

    what I really mean is, "do whatever you like... it's all good!"

    --

    -pyrrho

  112. Don't forget to take a look at Ruby by 5n3ak3rp1mp · · Score: 1

    Since you have the luxury of not having locked yourself into a language, you have the ability to survey all the offerings out there, whether minority and up-and-coming, or well-known and entrenched.

    After considering various languages to switch to for my scripting needs (ironically, it was prompted by the fact that PHP won't handle unsigned integers), I took a look at Python and Ruby and thus I would suggest taking a look at Ruby. I was one of those people turned off by Python's "significant indenting", and some other quirks. Ruby has a heck of a lot of niftiness beneath the surface.

    Here is a ruby-gtk+ faq. I am currently studying Ruby on Rails myself, and lovin' it!

  113. Are you thinking of MFC? by ClosedSource · · Score: 1

    Visual Studio didn't provide any automatic linkage between resources such as dialog boxes and C++ code except when you used MFC.

    Or did I missunderstand what you were implying?

    1. Re:Are you thinking of MFC? by pyrrho · · Score: 1

      well, yeah, it would use MFC, and this was one reason I rarely used it, because we didn't want MFC in our application (I mean back when I was doing Windows software)... but as bad as it was from a hardcore C++ perspective, it works, and it gives the hooks for the IDE to generate code, etc, and in the end it's still better than Visual Basic... people act like it didn't exist.

      --

      -pyrrho

    2. Re:Are you thinking of MFC? by ClosedSource · · Score: 1

      I liked the idea of getting rid of the "switch statement from hell" you need when using the raw Windows API, but MFC didn't seem to be a good choice in the general case. Great if you want to recreate yet another MDI editor though. I never had a reason to create one, however.

  114. Ah, paraphrasing.. by StikyPad · · Score: 1

    I love clicking on an article and reading the exact same words I just saw in the /. summary. When will these article writers learn to stop plagiarizing the Slashdot submitters? Can't they just write an article without stealing their material word for word from the Slashdot summary?

    For the love..

  115. Take your mainstream mindset elsewhere! by Anonymous Coward · · Score: 0

    Please take your un-nerdly contributions elsewhere. This isn't "News for I.T. productivity." It's news for Nerds. ie, people who hack, tweak, and generally live on the ragged, bleeding edge

  116. dot-net/C# is just a Java rip-off by Ray+Alloc · · Score: 0

    M$ created the buzz around their tasteless copy of Java in order to keep their stronghold in the IT world. The remaining is pure marketing.

    1. Re:dot-net/C# is just a Java rip-off by Anonymous Coward · · Score: 0

      java is just a rip-off of smalltalk, pascal p-code, etc...

    2. Re:dot-net/C# is just a Java rip-off by Anonymous Coward · · Score: 0

      Nah, C# is what Java should have been, but Sun stubbornly refused to finish the job.

      I will wait until .net is more established before learning it tho.

  117. Dot who cares by Anonymous Coward · · Score: 0

    I don't care about Dot blah blah blah.

    rhys doesn't even work on peanut anymore. The project will end up like the HURD

  118. MFC by pyrrho · · Score: 1

    I didn't MFC... but when comparing to VB... why not?

    in general it got in the way of what we wanted to do.

    what I especially didn't like about it was the fact that using one class meant you pulled in just about everything.

    I think we're getting to why it doesn't satisfy the people that wanted VB... people that like C++ don't like MFC... leaving people that don't like C++... why would they use it.

    I guess.

    --

    -pyrrho

  119. This is FUD! by Anonymous Coward · · Score: 0

    C# is not locked up anywhere. Whereas peversely [sic], Sun Microsystem's Java Language is - remember Sun is a company and yes, Java is not released under the EMCA. .NET is patented by Microsoft (and Microsoft is also a company.
    Registering C# with the ECMA is a useless publicity stunt - it means nothing if you patent virtually everything in .NET.

    Besides Java is faster
    http://www.shudo.net/jit/perf/

    Java is a lot more open. You can even submit your own bug fixes:
    https://mustang.dev.java.net/collaborate.h tml

  120. Re:Insightful - Your having a laugh aren't you???? by mwvdlee · · Score: 1

    Java is a better platform independant language since it's actually quite platform independant (in contrast to .NET).

    As for the other stuff you mention; they all serve a relatively unique purpose, .NET on the other hand does not.

    Tell me what .NET can do that similar VM'ed languages can't, then see what those languages can do that .NET can't.

    I may be wrong ofcourse, but I just don't see why I would ever want to use .NET

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  121. Re:Insightful - Your having a laugh aren't you???? by lupus-slash · · Score: 1

    Java is a better platform independant language since it's actually quite platform independant (in contrast to .NET).
    Mono runs on x86, ppc, amd64, sparc, s390 on Linux, Solaris, Windows, OSX. That pretty much covers 98% of the market for servers and personal computers. We're porting to more architectures, too. Java has been ported to more archs because it has been around for so much more time, but in practice Mono is just as platforms independent (even much more so since Sun, for example, will actually support fewer archs than Mono).
    Tell me what .NET can do that similar VM'ed languages can't, then see what those languages can do that .NET can't.
    I may be wrong ofcourse, but I just don't see why I would ever want to use .NET

    You're certainly wrong, mostly because you are uninformed. I suggest you study the specs (grep for delegates, tail calls, value types, interop with shared libraries, interop between different languages etc).

  122. Re:Insightful - Your having a laugh aren't you???? by mwvdlee · · Score: 1
    grep for delegates, tail calls, value types, interop with shared libraries, interop between different languages etc


    Most languages can do delegates.

    Tail calls are optimizer tricks, not language specs.

    Value types Java doesn't have and it is a nice feature if you're not using objects to keep data.

    Interop with shared libraries sound like platform dependance, or is it more like the way Java can load it's classes dynamically?

    Interop with different languages is a VM feature, you're surely well aware that the Java VM has a wealth of other languages available too?

    I'm not saying somebody should be using .NET, I'm just saying that I don't see any significant benefit in switching from C/C++ or Java to .NET. Perhaps I'm once again misinformed but to the best of my knowledge, .NET has no platform independant GUI system yet nor does it perform better than other VM-based languages. Correct me if I'm wrong (and please; no "go look for yourself").
    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  123. I can't believe nobody said this... by dacaldar · · Score: 1

    The easiest way to help /.ers get "mono" would be to start by helping us get "girlfriends".

  124. Re:Insightful - Your having a laugh aren't you???? by lupus-slash · · Score: 1

    Most languages can do delegates.
    Sure, but your question was: "Tell me what .NET can do that similar VM'ed languages can't."
    Now the VM that comes closer to mono is the JVM.
    Java and JVM don't have delegates. There aren't other virtual machines currently that have comparable features.

    Tail calls are optimizer tricks, not language specs.
    First, we were talking about VMs, but anyway this shows you don't have a good idea of the implications of tail calls. Sure JVM jits can perform the optimization, but they may not. Languages like scheme and lisp requires tail calls to be present and working or they blow up the stack. Mono implements the ECMA specified tail call instruction, so those languages can be implemented efficiently on top of the VM.

    Value types Java doesn't have and it is a nice feature if you're not using objects to keep data.
    Value types also allow a more efficient implementation of many data structures and algorithms.

    Interop with shared libraries sound like platform dependance, or is it more like the way Java can load it's classes dynamically?
    It's the feature called P/Invoke: seamlessly calling functions in external shared libraries implemented in C for example. Java has JNI, but the features are not directly comparable, P/Invoke is much easier to use.

    Interop with different languages is a VM feature, you're surely well aware that the Java VM has a wealth of other languages available too?
    Sure, but there is no standard way for interoperation. And, anyway, it's hard to interoperate from languages like java that don't have unisgned integers, for example. .NET has no platform independant GUI system yet.
    Gtk# works on Linux, windows, OSX. We're working on System.Windows.Forms, too, so that's going to be another option (we plan to have support for SWF in mono 1.2, some apps work already).

    nor does it perform better than other VM-based languages.
    First thing: speed is not everything: mono gives you many more benefits, like arch-indep programs, integration between several languages, GC etc.
    That said, while we're obviously looking at improving mono's speed, we already do well enough for many tasks. If you look at the language shootout you'll see that mono is faster than the JVM in a few benchmarks (note also that they use the 1.0.5 version of mono which is very old and slower than the current release). We run some of the python benchmarks faster than CPython itself.
    So, we already perform better in some cases than a runtime that has been tuned and developed for 10 years and we're rapidly improving. We won't beat the JVM at every ebnchmark any time soon, but that is not an expectation that any reasonable person has. The expectation is to be fast enough for the job that needs to be done and mono fullfills that for many cases. In the other cases we'll improve, just file bugs reports for them:-)

  125. Question to all who worked with GTK# by fishermonger · · Score: 1

    How do the GTK controls and form look on windows and Macs?

    --
    "...normal evolution would have gone Word to Frame to troff, but instead, the computer industry has gone the other way!"
  126. No, they don't exist by JudasBlue · · Score: 1

    At least in the case of Python, there is no "python native compiler". What you do have are simple systems (py2exe, mcmillian installer) that will bundle a python interpreter with your code in an easily distributable, single install package.

    The only package I know for perl does the same thing. But there might be a native compiler there, and I just don't know it. Not as familiar with perl tools.

    However, these packages do have "people clamoring" for them and are used fairly frequently. It is very important for a lot of us to be able to run our code A) on a known version of the interpreter and B) in places where the intrepter might not be without making our users install more than they need to.

    But I definitely agree with you that dynamic languages are coming into their own and systems languages are being relegated to only those places where you really need their strengths.

    --

    7. What we cannot speak about we must pass over in silence.

  127. Iron Python by JudasBlue · · Score: 1

    While I see what you are saying, actually might as well work with Python anyway. Iron Python is a python implementation for .NET. Right now it is at a fairly early stage, but work on it is moving forward.

    --

    7. What we cannot speak about we must pass over in silence.

  128. Well I think it's great by Anonymous Coward · · Score: 0

    You can all say what you like about mono and there are indeed many issues regarding what MS will do to destroy it in the future but as far as I'm concerned it's excellent.

    Having started off as a COBOL/Assembly programmer on mainframes I've been programming in VB 6, and latterly VB.Net, for the past few years. As the VB.Net and C# syntax are so similar the introduction of Mono has now allowed me to program some simple little apps for myself under Linux. Nothing fancy mind just some simple batch file renaming stuff and other assorted crap which helps me organise photos etc.

    This was the turning point which enabled me to be confident enough to use Linux as my day to day O/S. I bet there are many more like me too.

    Yes I know I should learn some shell scripting and C, C++, Perl whatever but I'm too old and lazy. I never needed C in my job so I never learned it. Mono allows me to use my existing knowledge to get some simple stuff done so all I can say is well done to the whole mono team.

    You have converted at least one home Windows user to Linux.