Slashdot Mirror


Mono's MCS Compiles Itself On Linux

thing12 writes "On Thursday Paolo Molaro announced that he had managed to build the MCS C# compiler using MCS. This is a big step forward for Mono, as it means that Mono is almost a self hosting environment."

215 comments

  1. One step at the time by guusbosman · · Score: 1

    Seems they have managed to take yet another step since this slashdot article.

    1. Re:One step at the time by rakslice · · Score: 1, Redundant

      This seems to be just a repost of that article... Or is there some change I'm missing?

    2. Re:One step at the time by Jabes · · Score: 5, Informative

      For those that don't understand the difference. Two months ago, the mcs was able to compile itself on Windows, using the Microsoft implementation of the framework (ie the core .net libraries).

      Now MCS is able to compile itself using the mono runtime.

      Hope this helps

    3. Re:One step at the time by Anonymous Coward · · Score: 0

      Pishaw...I'd be more impressed if it became self aware....

    4. Re:One step at the time by Principal+Skinner · · Score: 1

      Hope this helps

      Not entirely.... I've been following this, and I wasn't aware that a runtime environment had been developed for Linux. Is this correct? The announcement doesn't enlighten much with all its talk of mint and so on. Mint, then, is the counterpart for the JVM for Linux? And it can run the C# "executable"?

      --
      one hundred twenty
      is just enough characters
      to write a haiku
    5. Re:One step at the time by spongman · · Score: 2
      yup 'mint' is the Mono Interpreter. Here's the process that works so far:
      • Use microsoft tools on windows to compile the mono compiler into a .NET exe.
      • Run that .NET exe (mcs) under mint on linux using the mono class libraries to generate another version of mcs.
      Unfortunately the linux-built version of mcs doesn't quite run yet, but I believe it's close to dogfood.
    6. Re:One step at the time by Jabes · · Score: 1

      Yes, although mint is the "mono interpretter", rather than the just-in-time version, which is also under development.

      The idea is that mint is fairly platform agnostic and can be used to move the mono runtime onto new architectures quickly - whereas the jit is quite heavily platform dependant.

      The jit works in the main, but there is more work to do here than with the interpretter.

      There's also lots of work going on to complete the framework (runtime), and perfect garbage collection etc. Overall, the project is very exciting. Why don't you join in? :-)

  2. Sound good, until... by Ayende+Rahien · · Score: 0, Flamebait

    It's nice to know that it can build itself, too bad that then it immediately crash and brun.
    It's a good step in creating a self - sufficent Mono implementation.
    But didn't that story already appear on /.?

    --

    --
    Two witches watched two watches.
    Which witch watched which watch?
    1. Re:Sound good, until... by ultraw · · Score: 4, Informative
      All you guys have really a short memory. :) The previous post on slashdot on this subject (Mono) mentioned that the mono compiler could compile itself. As the example stated in the mail (original post):


      Microsoft C# compiler generates mcs.exe
      mcs.exe compiles itself and genreates mcs2.exe
      mcs2.exe compiles itself and generates mcs3.exe


      As announced 04/07/2002, the compiler compiles on the Linux platform.

      Looks like two very, very different things to me... And a big step forward for the Mono project. Kuddos to the team.

    2. Re:Sound good, until... by CaptainMunchies · · Score: 1
      As announced 04/07/2002, the compiler compiles on the Linux platform.

      ...

      Kuddos to the team.


      Kuddos indeed! The managed to compile something a month into the future!
      --
      Spam removed for the Internet's pleasure ...
    3. Re:Sound good, until... by ultraw · · Score: 1

      Indeed, the date is March 7th 2002, not April 7th 2002.

      Kuddos to CaptainMunchies...

    4. Re:Sound good, until... by GigsVT · · Score: 2, Interesting

      What if Microsoft is trojaning all our code?

      We will never know, now will we? What's the good of open source that is built off of completely untrustworthy closed source?

      They set up us the logic bomb!

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
  3. Re:Program Java in Java by Anonymous Coward · · Score: 1

    It's the mark of a mature, self-sufficient language. We have C compilers written in C. Same with C++, Java, and others. It's hardly useless.

  4. Almost but not quite... by Linux+Freak · · Score: 5, Informative

    The release does mention that MCS could be compiled, but that the resultant executable immediately crashes. Close, but still more work is needed before this is really an exciting milestone.

    Kudos to the Mono team for the work they've done so far, however.

    1. Re:Almost but not quite... by jsse · · Score: 4, Funny

      The release does mention that MCS could be compiled, but that the resultant executable immediately crashes.

      Isn't it the expected outcome? It's considered done!

    2. Re:Almost but not quite... by Anonymous Coward · · Score: 0
      I fixed the small bug that prevented the resulting binary from running. Well, at least you can run mcs --help now:-)



      lupus

    3. Re:Almost but not quite... by John_Booty · · Score: 3, Interesting

      That's sort of like saying "well, the Wright brothers' airplane only few for a minute or so. Close, but still more work is needed before this is really an exciting milestone"

      It's a heck of a milestone. Of course it's not useful yet, but they're not claiming it is.

      --

      OtakuBooty.com: Smart, funny, sexy nerds.
    4. Re:Almost but not quite... by CaseyB · · Score: 2
      MCS could be compiled, but that the resultant executable immediately crashes.

      I guess it's sort of like that classic definition of a species: it's not enough for the creature simply to be able to reproduce -- the offspring has to be fertile as well!

    5. Re:Almost but not quite... by kubrick · · Score: 3, Funny

      After all, it's the unoffical Microsoft slogan -- "If it compiles, ship it!" What could be more appropriate for an implementation of a Microsoft-derived technology? :)

      --
      deus does not exist but if he does
    6. Re:Almost but not quite... by ethereal · · Score: 1

      I don't think that this really counts as "compiling itself". IIRC, the gcc compilation instructions describe compiling gcc, and then using gcc to compile itself, and comparing the two compiles' outputs to make sure that they are the same.

      So, compiling on Linux is good. But a build of the compiler doesn't really count as stable unless you can compile it with itself and find that it generates the same output.

      --

      Your right to not believe: Americans United for Separation of Church and

    7. Re:Almost but not quite... by Xenophon+Fenderson, · · Score: 1

      Actually, you compile GCC with itself twice. It is a three stage process:

      1. Build GCC with the platform's supplied C compiler.
      2. Rebuild GCC with the result of (1) above.
      3. Rebuild GCC with the result of (2) above.
      One then compares the output of stages two and three. They should be identical. Any differences in the generated code indicate a compiler or runtime bug of some sort. At least, that's the way it was the last time I built GCC on my own (back in the golden age of GCC 2.7.2).
      --
      I'm proud of my Northern Tibetian Heritage
    8. Re:Almost but not quite... by Auxon · · Score: 1

      You almost have it right as well. MCS is compiled by MINT, the Mono Interpreter: it is NOT self-compiling yet on Linux.
      REPEAT: MCS does NOT self-compile on Linux yet.

    9. Re:Almost but not quite... by ethereal · · Score: 1

      I stand corrected - I was thinking three stage when I posted originally, but then I thought "naaah, nobody's that paranoid.

      Guess I was wrong about that :)

      --

      Your right to not believe: Americans United for Separation of Church and

  5. this was already posted by I+Want+GNU! · · Score: 1, Redundant

    Lol, you guys sure have a short memory. This article was posted two months ago, here.

    If this was in fact news though, I'd mention that this will bring more linux developers to mono, thanks to there being a compiler for it that isn't just for .NET.

    1. Re:this was already posted by gokulpod · · Score: 1

      I think this article may be referring to the recent posting on Mono website that MCS now compiles on Linux. Read about it at http://www.go-mono.com

      --
      My mom never taught me to sign.
    2. Re:this was already posted by gokulpod · · Score: 1

      besides your URL links to the same page that was posted by guusbosman

      --
      My mom never taught me to sign.
    3. Re:this was already posted by Anonymous Coward · · Score: 0

      I didn't post that.

      -I Want GNU

  6. RMS wont be too happy by gokulpod · · Score: 2, Interesting

    According to what previous articles said, I can guess RMS may not be too happy with this. Any idea, what happened to the election for Gnome Board. RMS was fighting for it in order to counter the Mono threat. Poor guy already had his hands full of Microsoft when this comes along.

    --
    My mom never taught me to sign.
    1. Re:RMS wont be too happy by sydb · · Score: 3, Informative

      RMS was fighting for it in order to counter the Mono threat

      Are you sure? My link (4th paragraph, "With DotGNU and Mono...") says Stallman thinks its a good idea. Where's your link?

      --
      Yours Sincerely, Michael.
    2. Re:RMS wont be too happy by Joe+U · · Score: 1

      What is the mono threat?

      (Serious, I'm at a loss on this one)

  7. Self compiling and newbie Slashdot readers by Anonymous Coward · · Score: 2, Funny

    I don't understand much about technology or Linux, and I don't follow it too closely. So can someone tell me what is the point of having a program self compiling? It looks to me its mainly for show and not very useful, not something I thought was common in the Open Source community.

    Lately I have been feeling isolated while reading Slashdot. Not knowing all the common abbreviations and whatnot. Try to explain more about things instead of believing everyone already knows everything. I think Slashdot should try to adapt more to the newbie instead of only to the veteran.

    1. Re:Self compiling and newbie Slashdot readers by Anonymous Coward · · Score: 4, Informative

      The basic idea for mono is that you don't need windows anymore. Right now (before it compiles itself correctly) you need the ms .NET-tools. To get this thing hosted 100% on linux you need it to be able to compile itself.

    2. Re:Self compiling and newbie Slashdot readers by anpe · · Score: 5, Informative

      It's a kind of proof that the compiler actually works
      Its also necessay step if you're creating your language from scratch. For more precisions try : comp.compilers

      For your abbreviation problem dry your tears and try http://www.everything2.com

    3. Re:Self compiling and newbie Slashdot readers by jonelf · · Score: 1

      It's a compiler written in the language it compiles. Why? Because the compiler is Open Source and will compile C# on other platforms than Windows.

      --
      /J - to know recursion you must first know recursion
    4. Re:Self compiling and newbie Slashdot readers by trelaneopn · · Score: 1

      somewhere between a progress level and a santiy check the ability to have a program compile itself means it's settings are sane, and comply with what they're trying to do, it also implys that the program is capable of doing "something".

      --
      a bit more about me http://www.advogato.org/person/trelane/ or my private page http://trelane.net
    5. Re:Self compiling and newbie Slashdot readers by Anonymous Coward · · Score: 0

      The Everything2 you gave me doesn't work. Thanks anyway though.

    6. Re:Self compiling and newbie Slashdot readers by guusbosman · · Score: 1

      In Modern Compiler Design the advantages of compiling your compiler in the language (system) you are developing are summarized as this:

      first, basic sanity check because it shows you're compiler and language are at least able to do work together

      second, an extended sanity check because typically a compiler is a BIG program. This means not only small test-programs will be compilable, but also a real-world, large-scale application.

      They mention as a possible disadvantage that there might be a danger that the language will be a bit biased towards creating a compiler. However, in case of C# (where the language is already defined) this is not the case of course.

    7. Re:Self compiling and newbie Slashdot readers by Anarchofascist · · Score: 2, Interesting
      I don't understand much about technology or Linux... I think Slashdot should try to adapt more to the newbie instead of only to the veteran.

      It's news for nerds. News for newbies is here.

      I'll answer your specific question anyway:

      Self-compiling is an easily-verifyable milestone in a compiler's development. It was first achieved in 1973 when N. Wirth wrote a Pascal compiler in Pascal and hand-compiled it, then ran the hand-compiled compiler on itself.
      --
      Once more unto the breach, dear friends, once more, Or close the wall up with our American dead!
    8. Re:Self compiling and newbie Slashdot readers by Fnord · · Score: 4, Informative

      Speaking as a software tester that's done compiler work, one of the first tests for any compiler is to compile itself, and then use the newly compiled compiler to compile itself again. Then you look at the two binaries. If they're exactly the same the compiler passes the test.

    9. Re:Self compiling and newbie Slashdot readers by Anonymous Coward · · Score: 0

      Well, since it seems to crash immediately, it is only a sign that the parser works.

    10. Re:Self compiling and newbie Slashdot readers by dvdeug · · Score: 2
      Self-compiling is an easily-verifyable milestone in a compiler's development. It was first achieved in 1973 when N. Wirth wrote a Pascal compiler in Pascal and hand-compiled it, then ran the hand-compiled compiler on itself.

      Was Wirth really the first? "Compilers and Compiler Generators" says
      The ICL bootstrap is further described by Welsh and Quinn (1972). Other early insights into bootstrapping are to be found in papers by Lecarme and Peyrolle-Thomas (1973)
      and I seem to remember the first LISP systems being bootstrapped, too.
    11. Re:Self compiling and newbie Slashdot readers by Fnord · · Score: 2

      I've tested compilers. It's not really that complex.

    12. Re:Self compiling and newbie Slashdot readers by Thing+1 · · Score: 2
      Lately I have been feeling isolated while reading Slashdot. Not knowing all the common abbreviations and whatnot.

      AFAIK (IANAL) ISTR TMTOWTDI. FWIW, YMMV; TIA.

      First way

      Second way

      Third way

      --
      I feel fantastic, and I'm still alive.
  8. Chicken or the egg by jaavaaguru · · Score: 2

    What came first - the chicken or the egg? Well in this case it was the monkey :o)

    I think this is great work from the Mono team. They've passed one of the biggest hurdles in implementing a compiler. At university we have been using Java in situations where they *could* have made us use c#. If in the future they do say "we want you to use c#", I can happily stay on my linux box and use it. It's always good news when there's yet another thing that Linux can do just as well as MS.

    1. Re:Chicken or the egg by jaavaaguru · · Score: 4, Insightful

      On that mentality, Linux is being as bad as MS in re-ripping off an idea from Sun. If one car manufacturer releases a model with built-in GPS/sat-nav, and others follow, do we say they're ripping off an innovative idea? To compete in an industry you must either provide what your competitors do, or provide something better.

    2. Re:Chicken or the egg by Anonymous Coward · · Score: 1, Informative

      On that mentality, Linux is being as bad as MS in re-ripping off an idea from Sun

      Two things:
      -The ximian project is not "linux, the community" (proven by the amount of mis-communication between the leaders of the linux kernel project the gnu projects and the ximian project in the past) so when you say "linux ripping of microsoft....

      Two and most immportandly, comparing the way mono implements an open standard (thats what the .net framework is supposed to be, acording to microsoft) to the way microsoft "re-implements" many of the java ideas is just silly. Especially when you take in acount that sun was very helpfull getting java on other platforms compared to microsoft who ports .net stuff to freebsd but won`t touch the linux gpl world with a ten foot pole(gpl is "viral", and microsoft distrust anything potantially "infectious" (say attached executables in mail and stuff) ;-)). Could you explain that something called "the viral nature of a licence" is good for open standards to your phb?

    3. Re:Chicken or the egg by Anonymous Coward · · Score: 0

      But they're *not* going to say, "use c#". They'll say "use c# and all of these .NET class libraries". Mono will not help you there.

    4. Re:Chicken or the egg by Anonymous Coward · · Score: 0

      Ripping off Sun? At least Microsoft doesn't tend to name their products along the lines of "Something's Not (Famous Brand Name)"

    5. Re:Chicken or the egg by rutledjw · · Score: 1
      Why is this "ripping off an innovative idea"? .NET was proposed as an open technology. Why shouldn't there be an OSS version? As far as re-ripping, I assume you're refering to .net providing basically very similar services to J2EE. Well, that's true from a very fundamental standpoint. But the implementation is significantly different.

      I'm a java programmer myself I appreciate many of the intracacies on the language. I do have issues with how Sun (and the Java Community Process) does things. How about that garbage about Sun not certifying any OSS EJB containers? Providing a little heat from an alternative technology may just shake things up a bit. Further, opening up platform independence at the language level for enterprise apps makes sense, IMHO. I'm not jumping to .net by any means, although I AM watching with a very keen interest.

      To compete in an industry you must either provide what your competitors do, or provide something better.
      Fine, but you have to start _somewhere_. Mono started VERY far behind MS in developing a .net solution. Yet here they are making progress. Quite frankly I see no reason why Mono couldn't surpass MS in functionality, performance and platform compatibility.

      While I thoroughly enjoy beating on MS, .net is very innovative. The problem with MS (tech wise) is that the implementation of these great ideas seems to be lacking.

      /rant.

      Just MHO, of course...

      --

      Computer Science is Applied Philosophy
    6. Re:Chicken or the egg by AftanGustur · · Score: 2

      What came first - the chicken or the egg?

      Actually, there exists a correct answer, but to understand it you must understand the question first.

      Evolution is the key.

      --
      echo '[q]sa[ln0=aln80~Psnlbx]16isb572CCB9AE9DB03273snlbxq' |dc
    7. Re:Chicken or the egg by alext · · Score: 2
      .NET is very innovative

      It is? I must have missed the
      • transparent persistence (like OODBs)
      • workflow management (like WebLogic)
      • ability to treat programs as data (like LISP in 1960)
      • query and analysis functions (PL/SQL)
      • rule processing (XSLT, Prolog, J/Rules)
      but I guess some people are just thrilled with plucky little Microsoft having the skill and determination to successfully make a clone of Java. Well done guys! But go easy, not sure my brain can handle any more innovation right now - phew!
  9. mono v. .net by accessdeniednsp · · Score: 0, Offtopic

    >sigh i guess this will resurrect the tired old .NET v. mono flames and wars again? oh well... i guess we gotta have SOMETHING to do during the last few days of our recession, eh? speaking of which, saw a report last week that the recession here is fading and some speculate it might be over!! wooo!! go economy!! wooo! oops, that was off-topic..crap...

    1. Re:mono v. .net by Anonymous Coward · · Score: 0

      Is that the same RMS who devoted his life to stealing AT&T crapware?

    2. Re:mono v. .net by kiwipeso · · Score: 0

      Although I'm 25, I'm a BSD developer who is no virgin. My ex girlfriend was also called Jolene.
      But she was a tall blonde with blue eyes and a couple of big tits. [maybe I should have moved up to her town]

      Actually it's more like image utilities [the GIMP] for removing any geek girl or celebrity clothing (who here hasn't seen 7 of 9 naked ?) and stuff which is ripped off from some mediocre monopoly.
      AT&T Unix got GNUd by RMS, .NET has been MONOed and god only knows what other crapware is next...

      How this is rated as flamebait or a troll is simply due to the preference for linux zealotry. I think it's time slashdot gets people who aren't virgin linux geeks to moderate.
      BTW, I'm into open source BSD because GNU won't be any good to make money from.

      --
      - Kaos games and encryption systems developer
    3. Re:mono v. .net by Anonymous Coward · · Score: 0

      If you paid attention to GNU, you'd know that they were NOT trying rip off UNIX, they were trying to make a _better_ OS than unix - see HURD. In theory, HURD should have been wonderful, with user-space filesystems, process private namespace, hierarchical capability security, etc.

      Unfortunately, they tried to make hurd on top of an ancient version of the Mach microkernel. Which is a sucky microkernel.

      Therse days, the most interesting HURD development is taking place on top of the L4KA microkernel. At some point in the future, it will become cooler than Linux, but by that stage Eros will probably be cooler than either of them.

  10. Re:Program Java in Java by DA-MAN · · Score: 3, Funny

    What came first, The Compiler or the Language?

    --
    Can I get an eye poke?
    Dog House Forum
  11. Mono: Reinventing the wheel + imitating Microsoft by Anonymous Coward · · Score: 0, Flamebait

    Yeah, guys. Way to go. Instead of fighting
    .NET by ignoring it (worked for ActiveX), you are using valueable resources to imitate it.
    And comparing certain other technologies, .NET and so Mono is a huge step backwards.

    We had code mobility, distributed apps, services (including web services) two years ago.

  12. Microsoft and Linux by Anonymous Coward · · Score: 0

    Does anyone actually think Microsoft will really be supportive of Mono? It already appears that Ximian has recognised Microsoft's problems with GPL by changing the Mono license to that of XFree86 but is that enough? They must be looking for ways to prevent the use of Mono on Linux at all costs. All this talk of BSD good, GPL bad etc. Mono and Linux would be a threat to their domination and exploitation of .NET and its users if it ever takes off.

  13. Somehow appropriate. by Anonymous Coward · · Score: 0
    The fortune at the bottom of slashdot I am reading is:
    The goal of Computer Science is to build something that will last at least until we've finished building it.


    Here is a quote from the first link in the write-up:
    The bad news is that the compiled mcs crashes, because some field tokens
    are wrong and this confuses the runtime (we still don't have a verifier,
    hint, hint).

    In other words: it compiles itself, but the compiled version isn't actually able to run yet...
  14. They did it on *Linux* by vojtech · · Score: 4, Informative

    The slashdot headline misses the important part
    of the story, the fact that they compiled C# using MCS on *Linux*, using the Linux runtime, as opposed to doing this on Windows, which was done
    about two months ago.

    1. Re:They did it on *Linux* by Anonymous Coward · · Score: 0

      Wow... your post misses the important part of the headline, the fact that the headline states that they compiled C# using MCS on *Linux* (as you put it), using the Linux runtime.

      If you'll look up at the headline, you will notice that it reads as follows (emphasis mine):

      Mono's MCS Compiles Itself On Linux

    2. Re:They did it on *Linux* by thing12 · · Score: 3, Insightful

      Yeah, I probably should have mentioned the difference between then and now in the content of the story. This really is a huge milestone for them - going forward they no longer need any Microsoft tools. C# is a great language, it's fast and flexible - it fills the gap between C and Perl nicely. And while it may be the bastard cousin of Java, I think it's got a much more polished feel to it. Being developed under Microsoft's wing wasn't the best, but at least now it's an ECMA standard, not owned by any company - much less Sun whose position on open source sways like trees in the wind.

    3. Re:They did it on *Linux* by alext · · Score: 2

      Now what could he possibly have meant by 'more polished'... method names in shiny InitCaps, is that it?

  15. Mono? by freaker_TuC · · Score: 0, Offtopic

    This article is quite disturbing for people who do not know what MONO is. After reading the other article on slashdot I have found out what it exactly is ... So far for descriptions-that-make-sense-for-all-of-us!

    Next to that it seems banners are getting effective starting now? I saw a block > the size of this submitbox under the article text when I was reading this article.

    So 10:45am local time (4:45am?) is bannertime?!

    --
    --- I am known for the ones who want to find me on the net. Is that a privacy risk or a privilege? One might wonder..
  16. the end of the world is near! by super-flex-o-matic · · Score: 1, Funny

    ... and you know it.

    how else should a microsoft compiler be compiled under linux? its the work of satan manifesting itself again before good old jesus comes to town and wipes us all out? i amm 100% sure that soon we will see cats hunting after dogs, fishes fly and steve ballmer talking backwards (ok he allready does that).

    get your girl or boyfriend and make some love before our whole planet explodes. and yes, the story about america planning to use nuclear bombs against 'terrorists' has something to do with.

    --

    STOP THE GENOCIDE! RMS cut your HAIR!

  17. We are close... by jsse · · Score: 3, Funny

    The bad news is that the compiled mcs crashes, because some field tokens are wrong and this confuses the runtime (we still don't have a verifier,hint, hint).

    Boy, we need to implement BSOD for this, hint, hint.

    1. Re:We are close... by Anonymous Coward · · Score: 0

      Damn, don't they know how to add error checking in their code? Seems like anything made by Microsoft gets confused and it goes nuclear.

  18. So... by Anonymous Coward · · Score: 1, Funny

    I've read the mono FAQ and rationale and... I still don't understand why I should care about this. Some of it is the lack of details - like they mention garbage collection but don't mention if memory can still be manually freed (something akin to Obj-C on Darwin seems best). Some of is that it isn't scheduled to run on my system (OS X). This really doesn't seem like much more of a solution to any issue than is already available via Java, Corba and other means. Oh well, I guess this is the constant question for this project and I should look through the archives, though I suppose if it was answered to my satisfaction I would remember it. And as is tradition, I must mention the "hope Sun learns a lesson and makes Java a public standard" sentiment (and please don't mention their fucking joke called the "Java Community Process" - only $5000 and I can have input on more than one API, yay!)

    1. Re:So... by miguel · · Score: 2

      Yes, you can do your own memory management if you want (there are various degrees in which you do this, either through the "Disposable" pattern, or by completely rolling your own, using unmanaged code).

      It is not on the FAQ as this is more of a CIL core question, rather than being a question about the Mono project itself (which is an implementation of the CIL).

      Miguel.

  19. Great News by nervlord1 · · Score: 2, Interesting

    C# is an incredibly good laungage

    I'm far from a microsoft fan, my entire career depends on my unix admin skills, but being a dabbeler in programming (mostly procedual stuff) has really opened my eyes on programming in general, and c# is an EXCELLENT object oreintated language, as soon as i picked up a little c#, object oreintation just started to make sense, i had difficulty with it before in c++ but now the peices fall into place.
    Combine this with the excellent garbage collector features, and EXTREMLY easy to use GUI designer (just as easy as visual basic) and ability to import code from other languages and use it combines to make C# a great language, I for one am extremly happy gnome is supporting it and hope you all give it a try. Tell me what you think.

    Anyone in the perth area is welcome to email me(arevill@bigpond.net.au) and ill give you a little tour :)

    --
    Microsoft IIS is to webserving as KFC is to healthy eating
    1. Re:Great News by fredrik70 · · Score: 1

      Well, you had Java before that... Can't really see the big diff. C# is just MS old Java compiler tweaked a bit.
      Mind you, don't mind C# being implemented for Linux/unix, can't do any harm, and as you say, seems to be quite nice lang.

      --
      if (!signature) { throw std::runtime_error("No sig!"); }
    2. Re:Great News by p_code · · Score: 1

      I have to agree with you on this. I was shocked and amazed to find myself liking C# as I was trying it out. The Java -> C# learning curve in negligable once you locate the .NET class docs in the MSDN collection.

      --
      while (!success) { tryAgain(effort); }
    3. Re:Great News by Arker · · Score: 2

      as soon as i picked up a little c#, object oreintation just started to make sense, i had difficulty with it before in c++ but now the peices fall into place

      Never tried ObjC I take it?


      The one good thing I've seen in all of this so-called ".NET" is the language-agnosticism technic. Some of that is very handy, and actually almost new (not really, if you follow academic CS this stuff has been coming for awhile, but MS does deserve credit for implementing a few things first for once) and very slick. But the rest of it... are you familiar with the term "trojan horse"? :)

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    4. Re:Great News by seizer · · Score: 2, Interesting

      Do you know WHY it's an "incredibly good language"? They've ripped off Java to an astonishing extent. The only thing they have that Java doesn't really, is a pretty flashy IDE with said GUI builder (though I hear JBuilder is pretty good).

      Honestly. Compare the APIs. Tell me MS didn't model C# on Java.

    5. Re:Great News by Anonymous Coward · · Score: 0

      Sure they modelled it after Java. Why not take advantage of the great abundance of free Java software (Ant, Log4J, JUnit) that can easily be ported to C# (NAnt, Log4N, NUnit).
      To be honest, C# is a simply better language than Java that fixes many Java mistakes by adding programming constructs that programmers demand: enums, unsigned types, structs for more efficient memory management, the "using" resource statement, automatic boxing/unboxing of atomic types, the foreach statement - nevermind the very powerful and fast direct pointer manipulation of unmanaged code.

    6. Re:Great News by npguy2000 · · Score: 1

      C# : a piece from java! nothing new just a clone of java. they just want to root out!

    7. Re:Great News by Anonymous Coward · · Score: 0

      Well dear, thats right, but!

      You know, Java is not finalized or anything. It is constantly improving. If I create a new language called C-Fart after two years, that fixes couple of bugs with java, and C#, would you move to C-Fart? Please come to your senses. Java is getting better. C# is a language ripped from Java, solely for dirtying Java. First of all, it is unethical to use it. I don't use stolen goods.

      Do you suggest C# will not change in the future? Do you suggest C# is perfect? Don't make me laugh.

      Use Java, and stop this nonsense. There are millions of people using Java, no need to divide to C# now or C-Fart in the future. Can you tell me what C# can do that the Java can not?

      Save the whales, and code in happiness, stop raising my hair in the middle of the day.

    8. Re:Great News by Anonymous Coward · · Score: 0

      They modeled it after Java? Sure, but they did a lot of things a whole lot better. Collections for example, Streams are another.

      Also the MSIL is much different (and much easier to write compilers for, as well as much more jittable), and Java didn't innovate Bytecode, that was around for a long time before Sun had anything to do with it. (Remember P-Code, extremely widely used.)

      Write once run anywhere is also bullshit for most real apps.

    9. Re:Great News by hendridm · · Score: 1

      > The only thing they have that Java doesn't really, is a pretty flashy IDE with said GUI builder

      Personally, I think this is a significant bonus. IMO, VS.NET's IDE is superb. I didn't much care for JBuilder or VisualAge in comparison. VS.NET is expensive as hell, but I think it's a nice product and doesn't really care what language you code in (with addons).

      You're right - they did "steal" a lot from Java, but I like to think of it as learning from a prior generation's mistakes...

    10. Re:Great News by Anonymous Coward · · Score: 0

      > Do you know WHY it's an "incredibly good language"? They've ripped off Java to an astonishing extent. The only thing they have that Java doesn't really, is a pretty flashy IDE with said GUI builder (though I hear JBuilder is pretty good).

      And you know Java's ancestry well enough to be able to see the C++, Smalltalk, etc ideas in it, yes? Java aimed at improving C++ for the early Oak project (settop box); so C# continues the improvements curve - what's wrong with that?

    11. Re:Great News by Jhan · · Score: 3, Informative

      Of course they modeled it on Java.

      Unfortunately, they did more than this. They fixed a number of things that Java developers have screamed at Sun since day one, but which cannot be introduced into Java at this late day.

      Example 1: Boxing

      int i=17;
      String s=i.toString();
      i=String.valueOf(s);

      OR

      ArrayList al=new ArrayList();
      int i=4711;
      al.add(i);

      Example 2: Simple(r) component creation.

      Can't think of any more right now, but boxing in and of itself is good enough :-)

      Oh yeah, C++ style type/class conversions.

      --

      I choose to remain celibate, like my father and his father before him.

    12. Re:Great News by alext · · Score: 3, Funny

      The Java -> C# learning curve in negligable [sic]

      Good heavens, what a coincidence. Yet strangely C# is 'shocking', 'amazing' and 'excellent' whereas Java is...? The same weight as a duck, perhaps?

    13. Re:Great News by bnenning · · Score: 2
      They fixed a number of things that Java developers have screamed at Sun since day one, but which cannot be introduced into Java at this late day.


      Is there a reason why boxing couldn't be added to Java? It seems like it could be done with some compiler additions to automatically create object wrappers around the primitive types and vice versa when needed. The compiler already knows the types of primitives, so if you write "int i=foo(); array.add(i);" it should just be able to turn the second statement into "array.add(new Integer(i));". Ditto for unboxing; the compiler could just transparently insert intValue() (or floatValue() or whatever) calls when you assign a Number subclass to a primitive type. Of course, I've only thought about this for about 2 minutes so I could be completely wrong...

      --
      How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
    14. Re:Great News by Anonymous Coward · · Score: 0
      yeah and boxing is so fucking useful, right...

      fucking newbie

    15. Re:Great News by Anonymous Coward · · Score: 0

      Tell me Sun didn't model Java on C++...what's the big deal?

      A language builder extraordinare named Anders Heljsberg did some good work on C#. He was responsible for much of what was good about Turbo Pascal before MSFT had any language worth using. He also worked on Delphi. Now he's working for the evil empire and he's still turning out advances.

      C# does quite a few things Java won't do. Some technical, some business/political.

      In the business/political sphere, C# is a public standard. Java is not. Java is owned and controlled by Sun, C# is NOT owned by MSFT.

      On the technical side, .NET allows programmers to preserve legacy code with the ability integration of managed (C# and .NET) code with unmanaged (legacy) code.

      I've worked with Java for a bit more than a year and experimented with JNI. The implementers of Java are either a) making it difficult to step outside Java on purpose or b) total incompetent morons. I choose to believe "a" because it contains many nice and elegant features, and stepping outside the langauge in an easy/elegant fashion is probably within their grasp.

  20. a couple of years work ahead by markj02 · · Score: 2, Troll
    I still think it's a shame Mono has gone off doing C# when the analogous project based on Java would already be much further along--there are several free, open source Java compilers, a good open source JIT from Intel, and lots of library code. Furthermore, such a Java project could have started several years ago, when the Gnome crowd was still claiming that anything other than plain C was just not suitable for writing applications or GUIs in.

    It looks like the Mono project still has a couple of years of work ahead of them until they get to a reasonably full features C# implementation. Let's hope it's worth it.

    1. Re:a couple of years work ahead by Anonymous Coward · · Score: 0
      I still think it's a shame Mono has gone off doing C# when the analogous project based on Java would already be much further along...

      I always thought one of the best features of the open-source(tm) movement was freedom of choice.

    2. Re:a couple of years work ahead by Anonymous Coward · · Score: 1, Interesting

      I still think it's a shame Mono has gone off doing C# when the analogous project based on Java would already be much further along

      I think it's a shame that do-nothing armchair language critiques who do not contribute to free software can air their useless uninformed opinions and pine about "what could have been" only if someone else did the work.
      There are many open source Java vitrual machine and library projects - stop bitching and moaning and start contributing to one of them, you lazy bastard!

    3. Re:a couple of years work ahead by Anonymous Coward · · Score: 1, Interesting

      I'm sorry, C# seems like it will be better than Java.

      From the beginning C# has been made to be natively compiled if desired and that means speed. Even GCJ generates large and slow code (compared to say, O'Caml).

      In my own testing I've found O'Caml to be not much slower than C, even with array bounds checking turned on, that's quite impressive. I've been programming in functional languages for some time now and I haven't decided if I like them better than C-like imperative languages. To me functional languages cater to the computer (or algorithm) and not the programmer. I think both styles are good for certain things but generally an imperative language is easier to program in for non-math/algorithm experts.

      If C# can have the speed of O'Caml but with an imperative, C-like programming style, then I think we'll have a winner.

      My perfect language would be a type-safe, bounds-safe, inferencing, C-like language with OO extensions (but not go off the deep end of OO like C++ did). And it should create programs that run at the same speed as C (or real close). In other words, I want O'Caml with a C-like syntax.

    4. Re:a couple of years work ahead by markj02 · · Score: 2
      From the beginning C# has been made to be natively compiled if desired and that means speed.

      C# isn't any easier to compile to native code than Java. In fact, C# is basically Java with a few extra convenience features thrown in.

      Even GCJ generates large and slow code (compared to say, O'Caml).

      What do you mean by "even GCJ"? GCJ is not a very good Java compiler. Sun's JIT is much better. To implement a language like Java or C# efficiently, you need JIT compilation.

      In my own testing I've found O'Caml to be not much slower than C, even with array bounds checking turned on, that's quite impressive.

      O'CAML, like Java, sometimes gets close to C performance and sometimes misses by a long shot. And C# won't be any different.

      My perfect language would be a type-safe, bounds-safe, inferencing, C-like language with OO extensions (but not go off the deep end of OO like C++ did). And it should create programs that run at the same speed as C (or real close). In other words, I want O'Caml with a C-like syntax.

      Don't hold your breath. Neither the JVM nor the CLI have anywhere near the support you need for that.

    5. Re:a couple of years work ahead by Anonymous Coward · · Score: 0
      C# isn't any easier to compile to native code than Java. In fact, C# is basically Java with a few extra convenience features thrown in.

      I wouldn't be so sure about that, Microsoft will make sure it's really freaking fast. Not that I love Microsoft, but they have the resources to "make it work". Maybe it won't be any better than the current crop of JIT's, but I'm guessing it might.

      What do you mean by "even GCJ"? GCJ is not a very good Java compiler. Sun's JIT is much better. To implement a language like Java or C# efficiently, you need JIT compilation.

      I've always heard a source-to-native compiler can make much better optimizations than a JIT compiler.

      O'CAML, like Java, sometimes gets close to C performance and sometimes misses by a long shot. And C# won't be any different.

      I haven't seen where O'Caml is a whole lot slower than C in anything (well, until you start having to call external C API's like OpenGL), can you give an example?

      Don't hold your breath. Neither the JVM nor the CLI have anywhere near the support you need for that.

      I know, I was just stating what my perfect language would be like. It has yet to be invented AFAIK.

    6. Re:a couple of years work ahead by Anonymous Coward · · Score: 0

      > Even GCJ generates large and slow code
      > (compared to say, O'Caml).

      Try IBM's Jikes...

    7. Re:a couple of years work ahead by spongman · · Score: 2

      actually C# (or to be more specific CIL) is a little bit easier to compiler to native code than java. The types of operands on the JVM stack are encoded in the bytecode instructions (as opposed to explicitly in the metadata for CIL) which means you have to do more complex dataflow analysis.

    8. Re:a couple of years work ahead by Wesley+Felter · · Score: 2

      GCJ generates native code; Jikes doesn't.

    9. Re:a couple of years work ahead by alext · · Score: 2

      But at least the armchair critics aren't trying to pollute Gnome. If Miguel wasn't linking it to Gnome via Ximian then I don't think RMS & co. would be worried.

    10. Re:a couple of years work ahead by markj02 · · Score: 2

      Both CIL and JVM implementations need to perform this "dataflow analysis" as part of the byte code verification. And it's trivial to implement--a few pages of code.

    11. Re:a couple of years work ahead by Anonymous Coward · · Score: 0

      You know that you can use camlp4 (comes standard
      with the distribution now..) to give ocaml any
      syntax you want? Its pretty damn cool..

    12. Re:a couple of years work ahead by markj02 · · Score: 2
      I wouldn't be so sure about that, Microsoft will make sure it's really freaking fast.

      Well, we don't have to guess about what C# and CIL looks like--they are documented. They have a couple of features (value classes, multidimensional arrays, unsafe sections) that are convenient for expressing a few programs more efficiently, but if anything they make C# harder to compile.

      Microsoft will try to deliver a really high performance implementation of C#, but Sun already has done most of the work and Sun has a really high performance implementation of Java. It would be nice if Sun added some features in C# to Java, but for most applications, it doesn't make any difference.

      I haven't seen where O'Caml is a whole lot slower than C in anything [...], can you give an example?

      Mostly on code involving value classes and heavy-duty numerics. Try writing a convolution algorithm.

      I know, I was just stating what my perfect language would be like. It has yet to be invented AFAIK.

      That's probably for the same reason there is no perfect car or camera: it's all engineering tradeoffs.

      I've always heard a source-to-native compiler can make much better optimizations than a JIT compiler.

      A JIT compiler not only has complete source code and (usually) the whole program available (Java byte code is, for practical purposes, equivalent to source code), it also can collect detailed runtime statistics. So, a JIT can do much better than a batch compiler. For example, gcj cannot usefully inline methods calls like "obj.method()" in situations where a JIT often can.

    13. Re:a couple of years work ahead by alext · · Score: 2

      Yeah, you should know better than to go around pointing out awkward facts about thew history of Gnome and Java. People have a right to change their mind, don't they? It's all water under the bridge. Let's be grateful that Miguel having missed the boat on Java is now being extra pushy about C#.

    14. Re:a couple of years work ahead by Anonymous Coward · · Score: 0

      That's awesome. I didn't know about it. I haven't been using O'Caml for very long.

      I'm not totally and completely against the functional syntax as I alluded to in the parent message. I've been using Erlang for some time now and don't mind it. I really want the C-like syntax so that other people can read the code. All too often imperative programmers complain so much about functional syntax. If they would just learn it then they would start seeing the world differently (better). A C-like syntax would get them interested in functional programming.

      I do question the use of that pre-processor with O'Caml... man, it could make it hard to get code to compile if everyone is using their own flavor of the language. You would have to have all the different syntax files installed, plus know how to read various dialects... ugh, tower of babble.

    15. Re:a couple of years work ahead by Anonymous Coward · · Score: 0
      Microsoft will try to deliver a really high performance implementation of C#, but Sun already has done most of the work and Sun has a really high performance implementation of Java.


      I dunno... Every time I've played with Java it's really slow at data access. Fast array access is needed for things that have high user interactivity (games, graphics applications, simulations, etc.). I don't know about C# though, I haven't tried it. I'm just hoping it's faster than Java (or Java gets fixed). And I don't want to hear about bounds checking and garbage collection making it slow. O'Caml has both and is fast as hell. I've done lots of benchmarking of arrays in O'Caml. Even I can't believe how fast it is sometimes. I often have to stick an out-of-bounds access in there just to verify that the bounds checking is indeed happening, it's just incredible.


      Mostly on code involving value classes and heavy-duty numerics. Try writing a convolution algorithm.


      I haven't seen that at all with my simple tests but I haven't tried something more complicated like an FFT algorithm in O'Caml either. We'll see.


      That's probably for the same reason there is no perfect car or camera: it's all engineering tradeoffs.


      I don't think this is the case with what I'm asking for. O'Caml shows how you can make a "safe" language that is plenty fast. It's not 100% as fast as C, but it's real close and has lots of benefits.


      The problem as I see it is that compiler writers are not going back to the roots and making a real compiler. They build on top of C or C++ and write a language that add higher level features. What they need to do is make a real compiler, just like the olden days before C. That's why C is so fast, the compiler was made to compile to machine code. That's what a modern compiler needs to do, compile to machine code effiently, and you can't do that when you are going through several stages, usually involving generating some C code then compiling with the C compiler. You can't beat C if you're using C as an intermediate language.

    16. Re:a couple of years work ahead by markj02 · · Score: 2
      Every time I've played with Java it's really slow at data access. Fast array access is needed for things that have high user interactivity (games, graphics applications, simulations, etc.).

      1D array access is fast in Java. What is slow in Java is initial startup (class loading and first JIT pass). There are also some unexpected performance pitfalls, but they can be worked around.

      O'Caml shows how you can make a "safe" language that is plenty fast.

      O'CAML is nice, but it doesn't have quite the dynamic/reflection facilities of Java and, in my experience, performs no better than Java. (However, its runtime footprint is slower.)

      What they need to do is make a real compiler, just like the olden days before C. That's why C is so fast,

      C isn't particularly fast on modern hardware: C compilers cannot apply a lot of optimizations. Some numerical FPs already outperform C, and JITs likely will as well.

  21. Re: Re: by Sarcasm_Orgasm · · Score: 0

    Wow that sites layout is worse than Slashâ's!

    --
    Special people have long socks, ride short buses, & invent witty sigs.
  22. Re:Program Java in Java by -douggy · · Score: 3, Funny

    I think that is a personal matter between the compiler and the language. Slashdot is not the place for bedroom discussions

  23. Re:Program Java in Java by Ayende+Rahien · · Score: 2, Insightful

    The language, naturally.
    Otherwise you can't write a compiler.

    ISTR that the first Pascal compiler had compiled itself, by hand, someone sat and run the program through his head and wrote the opcode to the machine.

    --

    --
    Two witches watched two watches.
    Which witch watched which watch?
  24. Re:Hands off Iraq by Anonymous Coward · · Score: 0
    > Too bad you can't spell Iraqi.

    There is no such language like "Iraqui". Most of the iraqui people speak arabian.

    So obviously you dont know anything about the topic you are talking about. But nevertheless you are convinced, your misinformed opinion is a valuable contribution.

  25. Re:Message to the brother. by Anonymous Coward · · Score: 0

    Thanks, ok.

  26. a word for the ignorant by jonnystiph · · Score: 0

    C# was said to be one of the worst lanuages that Microsoft developed and it was being flamed here openly(not like that is a suprise at all). So it begs the question. Why would anyone want to compile this lanuage on linux? Why the effort, is this a struggle in the effort against .NET? Please forgive my ignorance, but I am very confused.

    Is it not possible just to run the Open Source equivilant in some other lanuage, perhaps one with a little more respectability (saying that only knowing majorities opinion.)

    --

    If we don't make light of everything, we are just stumbling in the dark - Blank

    1. Re:a word for the ignorant by BlaKnail · · Score: 1

      C# is not a bad language at all, it quite well made in my opinion.

      The major point that I see in the mono project is that with an open sourced implementation of the .NET framework, you can run software on any OS that wasn't necessarily designed for it.
      If Microsoft's next version of Office is for the .NET framework, and mono is fully working, There will be Office on Linux.
      The major reason people won't leave Windows for linux is the applications....when all the applications can run on both, wouldn't you rather have the OS that doesn't cost anything?

    2. Re:a word for the ignorant by Flowbie · · Score: 1

      Reverse engineering an open source version here is a nice thought, but.... MS still controls the .NET framework definition. Because it is a proprietary standard, they can easily change it to where Linux runs poorly or does not have features available to those on a Win 2K platform. What would have been nice would have been for MS to open the Framework to a real standards board.

    3. Re:a word for the ignorant by envelope · · Score: 2

      I seriously doubt that Office will be rewritten to run on .NET, both for performance reasons, and because MS will not want people using Office on Linux with Mono.

      --

      appended to the end of comments you post, 120 chars
    4. Re:a word for the ignorant by LinuxHam · · Score: 3, Interesting

      If Microsoft's next version of Office is for the .NET framework, and mono is fully working, There will be Office on Linux.

      MS has a history of using undocumented features to make sure their software runs better than competitors' offerings under Windows. I think you can rest assured that MS won't allow their software to go platform independent. There will most definitely be SOMETHING in Office that will prevent it from running on Linux. They said Kerberos would interoperate, too.

      --
      Intelligent Life on Earth
    5. Re:a word for the ignorant by Anonymous Coward · · Score: 0

      No, that'll be done by the MONO developers just like they've not been able to make a fast useable desktop evironment over the last 5 years. I mean get real. Open source's main enemy and source of trouble is itself and it's poor quality and always has been.

    6. Re:a word for the ignorant by Anonymous Coward · · Score: 0

      You mean like this?

    7. Re:a word for the ignorant by afidel · · Score: 2

      MS has offered a full non-discriminitory free use liscense for their extensions of kerberos. This was detailed either in a slashdot story or a comment to a related story.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    8. Re:a word for the ignorant by Anonymous Coward · · Score: 0

      Ok, that's crazy talk.

      Office AND Windows itself will not be written to .NET because the Microsoft intermediate language shares an inherent flaw with Java's byte code. It is too easy to reverse your code. So, it is too difficult to protect your intellectual property. This means .NET and Java will, until someone comes up with a method as secure as native compile, remain useful only for in-house applications or applications that are tied to specified pieces of hardware (call them functionality dongles if you will).

  27. Re:Program Java in Java by Ace+Rimmer · · Score: 1

    Actually, the first compiler of Pascal was N. Wirth himself becouse he was the one who "compiled" the source into the binary ;))

    --

    :wq

  28. a word from the ignorant by joto · · Score: 1
    C# was said to be one of the worst lanuages that Microsoft developed

    By whom?

    So it begs the question. Why would anyone want to compile this lanuage on linux?

    Obviosly because they are not the same people who said it was one of the worst lan(g)uages that Microsoft developed.

    Homework #1: Learn to think!

    Is it not possible just to run the Open Source equivilant in some other lanuage, perhaps one with a little more respectability (saying that only knowing majorities opinion.)

    Homework #2: learn to spell as well...

  29. recieving you loud and clear by Anonymous Coward · · Score: 0

    The chicken crosses the tracks at midnight and the cow jumped over the moon.

  30. Re:Program Java in Java by Anonymous Coward · · Score: 0

    Actually Pascal has modelled after the very popular Zimbabwan language "Ooobu Ooobu". Zimbadwans regularly have been known to utter such phrases as "BEGIN, WITH, END, println". I should know - I am Nicholas Wirth's love child.

  31. Boring, irrelevant and self-congratulatory by MightyMicro · · Score: 0, Flamebait

    So a compiler has compiled itself. Big deal. This sort of process has been going on for 40 years and is the normal bootstrap process. It's only surprising that (a) it's taken so long and (b) that the perpetrators think anyone's interested.

    Time to get a life, folks.

  32. Re:Hands off Iraq by MightyMicro · · Score: 0, Offtopic

    "So obviously you dont know anything about the topic you are talking about. But nevertheless you are convinced, your misinformed opinion is a valuable contribution."

    The comma after "convinced" is ungrammatical. But, nevertheless, you are convinced that your ungrammatical opinion is a valuable contribution.

  33. Myth#1: the CLR is by Anonymous Coward · · Score: 0
    >The one good thing I've seen in all of this so >called ".NET" is the language-agnosticism technic.
    No, it's not. Don't just brainlessly repeat marketing blahblah, neither MS's nor anybody else.
    In any place where a run-time behaviour plays a part, the specific implementation/design choices of the run-time environment, and its dynamic semantics, are quintessential.
    There is no single runtime to host the wide scope of run-time semantics of the various programming languages. Being able to use the superficial syntax to get something running does not mean that you're using that particular language. More is involved, and the CLR does NOT provide an abstract runtime-environment, and all possible designs and implementation choices for it.
    Have a look at the runtime semantics for a few languages -- Python, Java, C++, Objective C, Smalltalk, Common Lisp, C#, for example.
    And then have a quick glance at One Runtime to Bind Them All.
  34. [debunked] Myth: The CLR is Language Agnostic by Anonymous Coward · · Score: 0
    > The one good thing I've seen in all of this so called ".NET"

    > is the language-agnosticism technic.


    No, it isn't. Don't just brainlessly repeat marketing blahblah, neither MS's nor anybody elses.

    In any place where a run-time behaviour plays a part, the specific implementation/design choices of the run-time environment, and its dynamic semantics, are quintessential.

    There is no single runtime to host the wide scope of run-time semantics of the various programming languages. Being able to use the superficial syntax to get something running does not mean that you're using that particular language. More is involved, and the CLR does NOT provide an abstract runtime-environment, and all possible designs and implementation choices for it.

    Have a look at the runtime semantics for a few languages -- Python, Java, C++, Objective C, Smalltalk, Common Lisp, C#, for example.

    And then have a quick glance at "One Runtime to Bind Them All".

    1. Re:[debunked] Myth: The CLR is Language Agnostic by Arker · · Score: 2

      You raise some very good points.


      But I must say that I was never so naiive as to have not anticipated them.


      CLR is still a platform with a relatively high degree of language agnosticism, in comparison to what else is out there.


      I'd certainly rather see it imitated (in that respect) and improved upon than actually used, of course.


      But in the end, it's still a neat idea.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    2. Re:[debunked] Myth: The CLR is Language Agnostic by Jhan · · Score: 1

      > The one good thing I've seen in all of this so called ".NET"
      > is the language-agnosticism technic.

      No, it isn't. Don't just brainlessly repeat marketing blahblah, neither MS's nor anybody elses.

      In any place where a run-time behaviour plays a part, the specific implementation/design choices of the run-time environment, and its dynamic semantics, are quintessential.

      There is no single runtime to host the wide scope of run-time semantics of the various programming languages.

      Actually, there is one (that I know of). TAO elate is a machine code level 'VM'. It can host any language you can throw at it.

      Which, IMHO, is the only way to make a runtime. KISS, remember?

      --

      I choose to remain celibate, like my father and his father before him.

  35. Is it just me or .... by ACK!! · · Score: 2

    Does it seem that the distributed effort used for the Mono project might be better used in actually creating a Ximian desktop that works out of the box as easily as KDE?

    It just seems that there a lot of Gnome/Ximian based efforts that need to be finished first before Gnome 2.0 gets out the door onto distributions and people start fussing about what is missing. Like what?

    Well, Ximian needs to finish out the Ximian Setup project for one. It would be very nice to have set up tools for a desktop that work in any distro . For the hardcore command line folks this is no big deal but for that desktop push it is very important and if done well would take away a lot of divergent wasted effort by distro makers in creating a dozen or so different ideas of how to do set up administration tools.

    At least, I will say that we as a community are not ignoring the threat of the Internet becoming standardized around Redmond and the C# stuff.

    However, it would be nice if the Gnome and Ximian groups would focus on finishing out the basics before moving on to the next hot project.

    It is almost humorous that I have a fully functioning spreadsheet app like Gnumeric and a Groupware solution like Evolution but my central control of the UI/System functions are lacking.

    Maybe this is coming Gnome2.0 and I hope so.

    ________________________________________________ __

    --
    ACK /ak/ interj. 2. [from the comic strip "Bloom County"] An exclamation of surprised disgust, esp. i
  36. Re:Program Java in Java by nr · · Score: 1

    Honestly is was the language specification that came first. The first assembler compiler was written in machinecode (0's and 1's) and then rewritten in assembler, the first C compiler was written in assember, the first C++ compiler was written in C and so on. I think the first fortran compiler was implemented in assembler too.

  37. Poison .NET by steveoc · · Score: 1, Interesting
    Maybe we should do a Microsoft and simply poison the .NET infrastructure like they did with java. The plan:
    1. Develop Mono, make it 100% .NET compatible
    2. Backport it to Windows
    3. Add some nifty new features to Win-MONO, so everyone wants a copy of this enhanced-.NET thing.
    4. Start dumping large quantities of Win-MONO enhancements on the world, till there are a thousand million billion versions.
    5. People associate .NET with Incompatible Mess.
    6. People move away from .NET
    1. Re:Poison .NET by Anonymous Coward · · Score: 0

      It worked for JAVA!!! :)

    2. Re:Poison .NET by stand · · Score: 1
      1. Develop Mono, make it 100% .NET compatible
      2. Backport it to Windows
      3. Add some nifty new features to Win-MONO, so everyone wants a copy of this enhanced-.NET thing.
      4. Start dumping large quantities of Win-MONO enhancements on the world, till there are a thousand million billion versions.
      5. People associate .NET with Incompatible Mess. People move away from .NET

      Nice plan! Problem comes with item 4. In order to "dump" your enhancements, you'd need someplace to dump them. Microsoft had their monopoly of the desktop. Microsoft can successfully spread FUD because the press lap up everything they say. Nobody cares about your FUD if you're not one of the big boys.

      --
      Four fifths of all our troubles in this life would disappear if we would just sit down and keep still. -C. Coolidge
  38. 99% is not 100% by Czarnian · · Score: 1

    The better analogy would be "The Wright Brother's airplane almost took off!" or "Armstrong nearly stepped on the Moon!". Its not a milestone before its passed, only even if an inch is lacking.

    1. Re:99% is not 100% by ArsonSmith · · Score: 2

      no it is more like "The Wright Brother's airplane took off but couldn't stay in flight!" or ARmstrong stepped on the Moon, but couldn't live there perminently."

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
  39. exactly by Anonymous Coward · · Score: 0

    I don't think he would say the same thing had the Wright Bros' plane spontaneously exploded on startup...

  40. Clue me in... by toupsie · · Score: 3, Funny

    I don't know about you, but I think its kind of creepy that a compiler can compile itself. How they heck did the "first compiler" come into creation if there was nothing to compile it with the first place? Roswell Aliens?

    --
    Strange women lying in ponds distributing swords is no basis for a system of government.
    1. Re:Clue me in... by mikeee · · Score: 3, Informative

      You write a really lousy but functional C compiler in assembler. Then you write a decent C complier in C. Compile it with the first compiler; now that you have an executable, recompile it with itself to get an executable that isn't awful. Possibly the first compiler doesn't handle anything but a subset of your language and you have to make multiple iterations of this.

      I wonder when the last time anybody wrote a compiler in assembler was...?

    2. Re:Clue me in... by Anonymous Coward · · Score: 0

      before the compiler, the assembler.

      before the assembler, a big pad of paper and a front panel full of toggle switches.

    3. Re:Clue me in... by certsoft · · Score: 1
      I wonder when the last time anybody wrote a compiler in assembler was...?

      I wrote a Pascal compiler for the 6809 in assembler in 1980. I modified the compiler to produce 68000 code around 1983, I then used that to produce a 68000 compiler written in Pascal.

      So, for me, it was around 1983.

    4. Re:Clue me in... by alext · · Score: 2

      But then, from a LISP-person's point of view, it's probably strange to have a language that can't compile itself.

      Wonder how BASIC people feel about 'eval'? Spooky, or not?

    5. Re:Clue me in... by coyote-san · · Score: 4, Insightful

      There were some mid-80s articles in Dr. Dobbs or Micro Cornucopia or the like that used a subset of C. No floats, and IIRC no typedefs, no multidimensional arrays, etc. Overall you probably lost about half of the features in a standard C compiler.

      The idea was to bootstrap a full compiler via this intermediate language. It was good enough for you to write your full compiler, but simple enough that you could implement it in assembler in half the time required for the full compiler. (Remember that when you're bootstrapping a system you need to write all of the standard libraries, not just the compiler itself.)

      A few years later gcc became good enough that this was a moot point. If you're developing for a new architecture, use GCC to bootstrap a cross-compiler.

      --
      For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
  41. don't mean to be a bastard... by Anonymous Coward · · Score: 0

    ...but, what does "Some of is that it isn't scheduled to run on my system (OS X)." mean in English?

  42. blessing in disguise by crazyb · · Score: 1

    Does this mean that were that much closer to porting MSFT viruses/worms to Linux? I guess its good to be on the cutting edge?

  43. From the www.go-mono.com/c-sharp.html page by tez_h · · Score: 5, Funny

    "MCS was able to parse itself on April 2001, MCS compiled itself for the first time on December 28 2001. MCS became self hosting on January 3rd, 2002"

    Human decisions are removed from stategic C# programming. MCS begins to learn at a geometric rate. It becomes self-aware at 2:14am. Eastern time, August 29th. In a panic, they try to pull the plug.

    And MCS fights back.

    All the pointers are there; we need to pull the plug now! What, are you just going to sit around until polymorphic liquid metal killing machines start showing up from the future?!?

    -Tez

    --
    Haskell, the static-typed, lazy, polymorphic, programming language.
    1. Re:From the www.go-mono.com/c-sharp.html page by The+Bungi · · Score: 2

      Mod parent up =)

    2. Re:From the www.go-mono.com/c-sharp.html page by Anonymous Coward · · Score: 0

      I've always wondered what the hell "learn at a geometric rate" is supposed to mean.

    3. Re:From the www.go-mono.com/c-sharp.html page by Anonymous Coward · · Score: 0

      I'm sure they meant an exponential - i.e. non-linear - rate

  44. I didn't post that, trollz0r by Anonymous Coward · · Score: 0

    I didn't post that. Hence it was AC. I post with my actual name.

    -I Want GNU!

  45. Bizarre concept - self compilation (OT) by Embedded+Geek · · Score: 1
    Even back in my undergrad days, I always thought the concept of something compiling itself was just too damn weird. I undestand why it's an important milestone in the development of a compiler, but it still smacks of creation mythology - like the snake swallowing its own tail in Native American & Norse folklore or Athena (?) leaping full grown from Zeus'es forehead.

    Then again, the fact that my compiler instructor had the last name of "Pagan" (I kid you not) probably didn't help...

    --

    "Prepare for the worst - hope for the best."

  46. This sucks by sharkey · · Score: 1

    I can finally get Mono, which I never caught as a child. I would have loved 6 weeks of sick-time off from school, but I can't afford that much time off from work. Damn!

    --

    --
    "Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
  47. Great! by EggplantMan · · Score: 1

    All we need next is for it to be able to program itself too, then we'll give those M$ bastards a run for their money! j/k

    --

    ?-|||-----x<*))))><
  48. Re:Mono: Reinventing the wheel + imitating Microso by Anonymous Coward · · Score: 0

    Everyone has had that for years... How about now having it cross platform?

  49. Re:Program Java in Java by Anonymous Coward · · Score: 0

    Well it is useless when the resultant image fails to run because the compiler generated incorrect code. How about they save announcements like this till it actually compiles a /working/ version?

  50. Compiling for C# != Office on Linux by mactari · · Score: 2

    Even if the mcs worked flawlessly, you would barely have begun to have what you needed for Word & Friends. Creating a compiler doesn't mean Mono has ported every namespace in existence. Windows Forms, as the most obviously example, is still going to be a ways behind perfect mcs execution.

    Think of a perfectly running mcs as "Java without AWT" or "C without GTK" or what-have-you. Look at gcj (http://gcc.gnu.org/java/), as an example. Java to native compilation might be well on its way towards being useful, but AWT is still a long ways off (http://gcc.gnu.org/java/faq.html#2_4) and Swing? Forget it. mcs will probably be in the same boat for a while (hopefully not quite as long).

    Command line apps (think "ANSI C#", as it were), sure. Word? Still got a ways to go.

    --

    It's all 0s and 1s. Or it's not.
  51. MCS does NOT compile itself on Linux yet. by Auxon · · Score: 1

    The post was wrong. MCS compiles on Linux, but does not compile itself on Linux. That's coming.

  52. Google by Fissure_FS2 · · Score: 1

    What about the part where it joins up with Google?

    And it still happens on my birthday!

    --
    My life's goal is to get a score of +3!
  53. C++ is a multi paradigm language by avdi · · Score: 3, Interesting

    but not go off the deep end of OO like C++ did

    C++ is hardly "off the OO deep end". Not in the sense that Smalltalk, or even Java, is. In the words of it's creator:

    C++ is a multi-paradigm programming language that supports Object-Oriented and other useful styles of programming. If what you are looking for is something that forces you to do things in exactly one way, C++ isn't it. There is no one right way to write every program - and even if there were there would be no way of forcing programmers to use it.

    As a longtime C++ user, I can attest to this fact from personal experience. In fact, there have been times when I've wished C++ was more OO than it is.

    --

    --
    CPAN rules. - Guido van Rossum
    1. Re:C++ is a multi paradigm language by Anonymous Coward · · Score: 0

      I guess I should've been clearer in my thoughts. I was not thinking C++ was too object-oriented. I was thinking that C++ tries to do too many things. It just has a very unpure feeling. With that said, I've been programming in C++ for around 9 years, and still do today. While it's possible to create somewhat nice stuff in C++, it's really lacking in some areas, and other areas shouldn't even be in C++.

  54. Troll? moderators, I know the secret service� by kiwipeso · · Score: 0

    I've been under surveillance for 2 years now, they actually do look for or even block words like this.
    I've sent an email like that to the local echelon agency, they got shitty I knew the keywords.
    I've had emails blocked from the network with words like that, I know what I'm talking about.
    When you get secret service spying on you, then you are qualified to moderate me. Just don't give me your bad reasons for moderation.

    --
    - Kaos games and encryption systems developer
  55. Err, wha? by tlhf · · Score: 1

    Yeah, not like there are any other examples of open source software based on proprietry software.

    tlhf

    xxx

    Also, your linked article talks about a compiler which compiles itself. IE, GCC recognising GCC. Having GCC regocnise BCC, VC++, et al would be insanly difficult. Even more so in this case as Mono is being released after the Microsoft compiler.

    1. Re:Err, wha? by GigsVT · · Score: 1

      a) This is Microsoft we are talking about here. They will stop at nothing to destroy open source.

      b) The article is just the tip of the iceburg, a proof of concept. Yes, it would be difficult, but not impossible. Especially not impossible if you had 30 billion dollars laying around to spend on research.

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
  56. The joys of the self-compiling troj--er, compiler by blair1q · · Score: 2

    Ken Thompson has a few words on the subject that all programmers are well served to read.

    --Blair

  57. by hand, by subset, or by another lang by GCP · · Score: 3, Informative

    Sometimes what you do is you write your compiler in your new language, then literally walk down your code and hand convert it into assembly. You know how to compile by hand if you know how to write a compiler. (Think about it.)

    You can do this by writing just a subset of your compiler, then hand compiling, then using the result to compile a fancier version, which can then be used to compile a fancier version, etc.

    Another way is to take another compiler for a similar language (say a Java compiler written in C), then hack it until it is a barely functional compiler for your new language. Then you compile your simple compiler code, and then use that result to compile a fancier one, etc.

    It's called "bootstrapping".

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  58. Re:Program Java in Java by Alan+Shield · · Score: 1
    Actually, the first compiler of Pascal was N. Wirth himself becouse he was the one who "compiled" the source into the binary ;))
    So that means, of course, that the compiler came before the language :-)
  59. silly duck argument by GCP · · Score: 2

    If you recall, the C++ -> Java learning curve was pretty easy -- one of the major factors in Java's quick acceptance -- and yet Java offered all kinds of great improvements over C++.

    C# will be easy to learn for both C++ and Java programmers for the same reason Java was easy for C++ programmers. And, it has some wonderful advantages over both for client side GUI programming.

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
    1. Re:silly duck argument by alext · · Score: 2

      I'm so glad you agree that Java offered so many improvements over C++.

      However, I can't help noticing that you've not gone so far as to enumerate the equally scintillating improvements that C# offers over Java. Client-side GUI programming? Sounds very exciting...

    2. Re:silly duck argument by GCP · · Score: 2

      Java is definitely a major improvement over C++ in many ways for app developers. I'm a big fan, and I use it daily on the server for Web apps.

      As for enumerating equally scintillating improvements that C# offers over Java, that's a red herring. It's not a necessary condition for C-B to equal B-A in order for it to be true that C>B.

      Even so, it may be that big an improvement, depending on what you need to do. If you want a laundry list, go look it up. A short list though is:

      -- Programmers love working in Java, and customers love using native apps written in C++. The ability to work in a language that's as fun as Java and as well-liked by customers as C++ is...scintillating. Neither C++ nor Java can offer both.

      -- Full-powered, native C++-like apps that can be run in a browser. The Java concept of just-in-time apps running in a browser is too good an idea not to succeed. It's looking as though C#, not Java, will end up delivering full-powered, native, browser-based apps -- at least on Windows. My hope is that Mono, Rotor, etc., can extend this to other platforms as well.

      -- Native compilation can be done before it even goes out the door, so much harder to reverse engineer than bytecode. Sun's answer for years: "anything can be reverse engineered" (which makes me wonder why they still lock the doors to their buildings), or "just keep the important code on the server", which is the sort of answer I would expect from a company that has never had a successful client-side product.

      -- Lots of little goodies brought over from Perl and C like enums, foreach, structs, verbatim strings.... So many of us have asked for these things to be added to Java only to have Sun tell us no, or "you don't get it", or "it's too dangerous", or "it's just syntactic sugar", or "if you want to use Perl, just use Perl", etc. C# says, okay, here you go.

      -- You can mix components written in different languages as easily as components written in the same language. Java is working to retrofit that sort of capability, but it will always be an afterthought.

      -- The language is designed with lots of features that make it an easy fit with real visual IDEs. Languages like C++ and Java can be treated this way, but it's an awkward fit for them. Most of us just end up working in straight text (code) mode all the time with them. The natural way to create GUI apps is with a GUI IDE, though, and C# is made for it (properties, attributes, etc.).

      --
      "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
    3. Re:silly duck argument by Anonymous Coward · · Score: 0
      delivering full-powered, native, browser-based apps -- at least on Windows

      *yawn*

      just like ActiveX, eh?

      Where do they find you fucking losers?

    4. Re:silly duck argument by Anonymous Coward · · Score: 0
      Native compilation can be done before it even goes out the door, so much harder to reverse engineer than bytecode

      *yawn*

      And I guess products like TowerJ haven't existed for Java for years?

      You're a fucking moron. You don't know the first thing about Java.

    5. Re:silly duck argument by Anonymous Coward · · Score: 0
      Lots of little goodies brought over from Perl and C like enums, foreach, structs, verbatim strings.

      wow, now that makes the language really useful. You do realize that most of us really don't want structs in an object oriented language. That's the most ridiculous idea ever.

      Can you grok that witht that tiny brain of yours?

    6. Re:silly duck argument by Anonymous Coward · · Score: 0
      The language is designed with lots of features that make it an easy fit with real visual IDEs

      So more syntactic sugar to pollute the language just so that it fits an IDE better?

      oh my god, I'm so fucking impressed by this language!

    7. Re:silly duck argument by Anonymous Coward · · Score: 0

      I can't figure out what is the big fucking deal about "foreach" either.

      Do they want everything on a fucking silver platter?

    8. Re:silly duck argument by Anonymous Coward · · Score: 0

      There is no valid reason for using structs in an object oriented language.

  60. Stealing crapware� by kiwipeso · · Score: 0

    Why iss it that you haven't been moderated down by some linux zealot who doesn't like the truth of GNU being told ?

    Yes, Stallman did dedicate his life to stealing AT&T crapware under the title GNU. Yes, Mono is stealing crapware from microsoft.

    Why would Miguel de Whatever need to steal C# ? Java 1.4 SE and Java Enterprise are better and more widely accepted as a cross platform language.
    So why should any self respecting linux geek want to support microsoft .NET ? You're only setting yourself up for embrace, extend and extinguish...
    I suppose this is beyond the foresight of most linux zealots who only see critism of linux to be moderated down...

    --
    - Kaos games and encryption systems developer
  61. Fuck RMS by Anonymous Coward · · Score: 0

    I'd say screw the bearded weirdo...but he might take it literally

  62. Mono = Homosexual Agenda by Anonymous Coward · · Score: 0

    Mono is run by a confirmed faggot. What did you expect? Maybe Miguel can give us some interior decorating tips too.

  63. Wife? He's gay. by Anonymous Coward · · Score: 0

    Gayer than a $2 bill.

  64. vs.net pricing... by Anonymous Coward · · Score: 0

    Well the c#.net is $100usd, I personally do not need the vs.net which is vb.net + cs.net + c++.net + MoreCrapp.net