Slashdot Mirror


Mono Project Releases Beta 1

AArnott writes "Ximian has just released beta 1 of its open-source implementation of Microsoft .NET platform. Mono allows .NET applications to run on Linux, Mac OS X, Unix, Windows. Mono 1.0 is slated for release on June 30, 2004." sjanes71 adds "The first 'beta' always gets heaps of attention, and this is the first of three planned for the Mono project. Some of the new features touted for this release that updates Mono v0.31 include a faster interpreter, a global assembly cache, support for the StrongARM and HPPA platforms, generics support in the VM and C# compiler and an early alpha of System.Windows.Forms. C# and .NET is Microsoft's answer to Sun Microsystem's Java platform and Project Mono aims to create the Open Source, cross-platform version of Microsoft's new development environment."

32 of 414 comments (clear)

  1. First of three Betas? by ObviousGuy · · Score: 4, Funny

    So you are talking about a big E-level release? That's a Sigma, friends. Not a Beta. (damn /. doesn't allow Greek chars)

    --
    I have been pwned because my /. password was too easy to guess.
    1. Re:First of three Betas? by kahei · · Score: 4, Funny


      I'm assuming that for those with a knowledge of physics or electronics or car racing or something, that is totally hilarious... so I'd better laugh so as to fit in...

      ROFL! Nice one!

      --
      Whence? Hence. Whither? Thither.
  2. Well done guys! by supersnail · · Score: 5, Insightful


    We need interoprability with everything else to keep LINUX viable.

    --
    Old COBOL programmers never die. They just code in C.
    1. Re:Well done guys! by TeJo · · Score: 5, Insightful

      Mono attempts to provide a viable alternative to Microsofts .NET stack. IIRC this is the first time opensource project has attempted to compete with Microsoft before the technology gets mainstream. .NET is will not be mainstream until longhorn comes out. It gives the Mono developers the time to get the stack that is not only complete but may be tested as well.

      Mono and dotGNU guys are trying to take the wind out of Microsoft's sails for what could become a ubiquitous platform for developement (at least on windows).

      Had opensource developers done this for Java we wouldn't need Sun's stewardship (being a coporation they did a fine job in that role, so no complains from me!).

    2. Re:Well done guys! by dasmegabyte · · Score: 4, Insightful

      I disagree with the parent's tone. Mr. Tejo seems to be acting like Mono is a competetive product that Microsoft is frightened of. I'd like to remind him that Microsoft created an industry standard for the core technologies used in the .NET platform. What the Mono project is doing is exactly what Microsoft wanted somebody to do.

      Why? Well, I dunno. Maybe to appease the Monopoly watchdogs. Maybe to bury Sun (I picked C# over Java and haven't been let down yet). And maybe -- just maybe -- to make it easy to use Microsoft products on alternative hardware and alternative Operating Systems without Microsoft having to worry about supporting all the obscure Linux builds of the world.

      Incidentally...I too like Sun's stewardship, but it existed despite a big clean room open source intiative to reproduce Java. I remember playing around with it in college to compile somebody else's object code into native code for faster execution (our mainframe was slowwwww and at the time, running Java was like a snail on a turtle's back).

      --
      Hey freaks: now you're ju
    3. Re:Well done guys! by MenTaLguY · · Score: 4, Interesting

      While Mono is doing an implementation of Microsoft's extensions to the ECMA spec, they're also doing their own set in parallel.

      If all they did was cloning, of course the best they could ever hope for was barely keeping up.

      This means that if Microsoft torpedoes the .NET clone stuff, Mono still has a viable system built on top of the ECMA standard (Gtk#, etc...) that they've been encouraging people to target all along.

      Note whose APIs Ximian is writing their apps to... they aren't Microsoft's...

      I used to think Miguel was naive. Now I think he's a really shrewd bastard... They got Microsoft's support and then pulled an "embrace and extend" on MICROSOFT.

      --

      DNA just wants to be free...
  3. Good news by Nplugd · · Score: 5, Interesting

    I didn't have the occasion to use Mono yet, but I'm very interested in this project.
    To me, to .NET framework offers most of the power of the J2EE platform, but is also way easier to use. To me at least, I'm not trying to lauch a flamewar. Being able to use the framework without having to buy vs.net or use iis would be neat. I know, arguably one can already do that under windows, but it ain't half as productive.

    --
    Je n'ai pas d'avenir Je n'ai qu'un destin Celui de n'être qu'un souvenir C'est pour demain
    1. Re:Good news by Tim+C · · Score: 4, Informative

      If it's just the IDE you're missing (and I wasn't aware that the Mono people were writing one), then you might want to take a look at icsharpcode.net. One of the projects (#Develop) is a free-as-in-both IDE for .NET.

      In addition to that, Borland have a personal edition of C# Builder available, which is free as in beer, but not licensed for commercial use.

    2. Re:Good news by Senjutsu · · Score: 4, Informative

      'm sorry, but WHAT THE HELL ARE YOU TALKING ABOUT? If you do .Net development in Windows, you use VS. You have no alternative. It's not "not a lot of fun", it's impossible.

      Wrong:

      The Microsoft® .NET Framework Software Development Kit (SDK) version 1.1 includes everything developers need to write, build, test, and deploy .NET Framework applications--documentation, samples, and command-line tools and compilers.

  4. Yay! by Athas · · Score: 5, Funny

    Now GNU/Linux users can enjoy .DLL's as well!

  5. This is exciting, at least for me. by JanusFury · · Score: 5, Interesting

    I really look forward to seeing a day when you can take almost any modern application and run it on pretty much any machine. Now that Microsoft is moving over to a platform-independent, bytecode-based system for most of their applications (well, at least Longhorn) and are encouraging their developers to do so, that day seems to be getting closer.

    It's also slightly encouraging to see Microsoft adopting the use of technology like XML and moving a bit closer to standards with their software... their new vector language is very similar to SVG, and their new forms design language is XML-based. Both seem to be pretty clean and generally simple, which means that at least theoretically it would be possible to convert these formats to truly open formats, and to open them easily in open-source software. It would be really cool to be able to just convert a Windows-oriented XAML file to a Linux-friendly format and then run the associated .NET code with no changes on Fedora or SuSE.

    The fact that Mono even runs on mobile platforms is nice, because in my opinion J2ME is one of the most horrible APIs I have ever had the misfortune of using - some solid competition for J2ME is definitely needed in the mobile sector, and I think a solid platform based on Linux and Mono might be able to deliver. There are already plenty of .NET developers out there, and being able to share a codebase between Linux, Windows, and PDAs would probably be a pretty convincing benefit. Sure, there's the .NET Compact Framework, but that basically only works on the most recent versions of WinCE.

    --
    using namespace slashdot;
    troll::post();
    1. Re:This is exciting, at least for me. by moxruby · · Score: 5, Informative

      Microsoft open? Hah!
      Where is .NET for mac or linux? (I mean the ms created version and not mono)

      Their XML is a joke, swaths of proprietry code and an arsenal of patents to defend it.

      Microsoft pays lipservice to "open standards" to keep the DOJ at bay, but after that it's business as usual.

      Great work on Mono guys, we can only hope that microsoft won't dare use their patents against the project.

    2. Re:This is exciting, at least for me. by moxruby · · Score: 5, Informative

      Haha, far from it.
      Choice quotes from the MS website:

      It will be of interest to academics and researchers wishing to teach and explore modern programming language concepts, and to .NET developers interested in how the technology works.

      Notice that nowhere in the list of intended uses is "Development", that's because it lacks all the libraries needed to make it useful.
      This software was last updated 18 months ago - it's not undergoing development.

      Simply another ploy to gull people into thinking .NET is something more than a new API for windows...

  6. The Novell Connection by Anonymous Coward · · Score: 5, Interesting
    From www.go-mono.com:

    The Mono project is an open source effort sponsored by Novell to create a free implementation of the .NET Development Framework.

    Does anyone else find this interesting? We have Microsoft "creating" MS-DOS, Digital Research creating DR-DOS, Novell creating Novell Netware, Novell buying Digital Research, Microsoft creating Windows 95 and NT and killing DR-DOS and Novell Netware, Microsoft creating .NET and basing their new Longhorn OS on it, and Novell creating a free version of .NET specifically to run .NET apps on non-Microsoft platforms.

    Can anyone guess what happens next? Anyone?

    Novell, you had a good run. We shall miss you.

    1. Re:The Novell Connection by squiggleslash · · Score: 4, Informative
      No, DR-DOS dates to the mid-eighties, I believe its immediate predecessor was "DOS Plus", a version of CP/M 86 that had some degree of DOS compatability and one or two nice extras of itself (it had a kind of pre-emptive multitasking feature, but required specially written tasks for that, and they couldn't be interactive.)

      I'm guessing that DOS Plus imported a bunch of features from the Atari ST version of CP/M 68, which also looked just like MSDOS to end users (and was renamed TOS and had GEM as the UI.)

      QDOS was a semi-clone of CP/M, built to deal with the fact that DR took their time to port CP/M to the 808[68] architecture. The original author denies it was a straight clone pointing out it had some nice features and architectural differences that weren't present in DR's OS, but there's no denying the API was intended to make porting CP/M programs easier.

      CP/M itself dates back to the mid-seventies, with Dr Gary Kildall writing a crude filesystem and CLI for early Intel 8008 evaluation systems. CP/M 1.3 was practically unusable. CP/M 2.x became an industry standard, but was very tied to the architecture of those original Intel evaluation systems (CP/M required OEMs develop a BIOS that was practically identical to the firmware in those systems.)

      So what you essentially have is:

      (Mid seventies) CP/M for the 8080

      1980/81: QDOS developed independently by Seattle Computer Associates, with many ideas taken from CP/M and with compatability in mind.

      1981: Microsoft buys QDOS, releases it as MSDOS 1.0. IBM bundles it with PCs.

      1981: DR releases CP/M 86 as a seperate product, this is essentially CP/M ported warts and all to the 8086. Nobody buys it.

      1982: Microsoft makes dramatic updates to QDOS, releasing MSDOS 2, which has a proper file system, I/O redirection, all the things, essentially, we consider part of DOS today

      1984: DR releases CP/M 68 for Atari. This includes an MSDOS compatable file system and many MSDOS APIs

      1984: DR releases CP/M 3 (CP/M Plus) for 8080 based machines. Amstrad in the UK is only major buyer. This is still straightforward CP/M, antiquated file system and all, but with support for paged memory and with a lot more userland tools.

      1985: DR releases DOS Plus. Amstrad, in the UK, is virtually the only major buyer. DOS Plus is mostly, but not entirely, compatable with MSDOS. Most people avoid it because of this.

      1986 (I think): DR releases DRDOS. DRDOS is now almost completely compatable with MSDOS and begins to take off.

      --
      You are not alone. This is not normal. None of this is normal.
  7. Mono is a step in some direction.... by kbsingh · · Score: 5, Insightful

    At the moment, MS is in the top position with the tech and the money and the market share to dictate terms to almost everyout out there in the business community / Enterprise sector.

    Mono is a step in the right direction ( various Querries about the legal viability of mono still being an issue ). A good c# platform on Linux will encourage a lot more of the enterprise sector adapters to think about Linux in a positive frame of mind - and might even encourage cross platform development. ( apart from QT there isnt really any alternative at this time ).

    However for the Open Source community to really achieve something great and be able to lead 'from the front' - we need to innovate, create better and more adaptable technologies not just play 'follow the leader'. Some people might say that we need to catch up first before we can lead, well - Mono should help in the catchup situation - but then what ?

    Are there enough people thinking, developing and colaborating about where to go from there ?

  8. .NET is Microsoft's answer to Java? by Phidoux · · Score: 5, Interesting

    Actually I think that .NET has a very long way to go before it comes close to being an alternative to Java.

    The biggest problem I've had with C# development is that many standard classes are declared final, which means they can't be sub-classed. I assume what has happened is that MS has taken short-cuts and has simply written .NET wrappers for old COM stuff.

    1. Re:.NET is Microsoft's answer to Java? by Phidoux · · Score: 4, Informative

      The sub-classing of standard classes has been managed successfully in Java for many years. I've never had the problem where a new version of a class has produced a method with a name the same as one I might have written in a sub-class. Anyway, even if it did happen, the likelihood of it causing a problem is very remote. Java very easily distinguishes between (For example) Method(String string) and Method(boolean flag).

      Another thing I've found extremely prohibitive with the standard .NET libraries is that they aren't very extensive (Well, at least not when compared to the Java standard libraries). Of course to work around the limitations of the standard libraries we look for 3rd party libraries. In the case of Java, 3rd party libraries are mostly GPLed and free, where 3rd party .NET libraries are almost always commercial products with fees attached to their licensing.

  9. Intellectual Property Issues by amitofu · · Score: 5, Insightful

    At the rate that Microsoft is applying for patents, I can imagine Microsoft being in a position like SCO--except with evidence on Microsoft's side.

    It seems like a lose/lose situation for GNU/Linux. If Mono doesn't catch on then it will be tough for the free desktop to compete with Longhorn. If, however, Mono does catch on and becomes a major development backbone for GNU/Linux, then we risk having Microsoft Intellectual Property embedded deep within a lot of free software projects.
  10. I have said it once by Anonymous Coward · · Score: 5, Insightful

    and I will say it 1000 more times if necessary. Mono should not in any way associate itself with the term ".NET". I think it is a worthy project and a great effort, but it is incredibly irresponsible and stupid to use the ".NET" moniker.

    Simply put, .NET is a marketing term. If Mono wants to say that it is an open source implementation of the CLR/C#, FINE! That's what it is. However, what Mono is doing would be as if Wine called itself an "Open Source implementation of Windows".

    It is even worse, because it gives the impression that .NET is cross platform, but I would argue it's just as cross-platform as if people were like "there's wine, see, Windows is cross platform!" That is my gripe, and I will continue until Miguel et all STOP CALLING MONO AN OPEN SOURCE IMPLEMENTATION OF .NET!!!!!!!!!!!

    1. Re:I have said it once by Anonymous Coward · · Score: 5, Interesting

      It is even worse, because it gives the impression that .NET is cross platform, but I would argue it's just as cross-platform as if people were like "there's wine, see, Windows is cross platform!"

      But that's totally different!

      A Win32 app running on Windows is talking directly to the OS; a Win32 app running on Linux is going through Wine as an extra layer. That's why Wine doesn't make Win32 apps cross-platform.

      But Mono is a native implementation of the CLR. A .NET app running on Windows is going through Microsoft's runtime to the OS; a .NET app running on Linux is going through Mono to the OS. There is no extra layer in this case. Therefore, .NET apps are cross-platform.

    2. Re:I have said it once by AArnott · · Score: 5, Informative

      Chill. If Mono only implemented the CLI and a C# compiler, it WOULD be "just an open source implementation of the CLR/C#". But Mono implements nearly all of the MS.NET base class libraries as well. Those libraries are not part of the CLI. Therefore, the only accurate way to describe Mono is to say it implements .NET in Linux. Shut up.

  11. MonoDevelop by PhrostyMcByte · · Score: 5, Informative

    You might also want to check out MonoDevelop v0.3 which was released to take advantage of new features in Mono Beta1.
    While it's not quite up to the task of stable work yet, it will become a great IDE for .NET development in Linux and rival VS.NET in Windows.

  12. Re:Compatible... how long? by clintp · · Score: 4, Informative
    The answer to this (and others) is in the FAQ.

    For this it states:

    The core of the .NET Framework, and what has been patented by Microsoft falls under the ECMA/ISO submission. Jim Miller at Microsoft has made a statement on the patents covering ISO/ECMA, (he is one of the inventors listed in the patent): here [the link is incorrect -- clintp].

    Basically a grant is given to anyone who want to implement those components for free and for any purpose.

    --
    Get off my lawn.
  13. Optimizing for processor, etc by Omega1045 · · Score: 4, Interesting

    One of the things that MS promised with .NET was that it would do first-runtime compiling to native machine code optimized to each individual machine. No need to set flags for processors, etc. However, I am not sure much of this has actually been implimented on the Windows side of things.

    It would be nice if the open source community could take Mono and optimize for various chips and cards. As you may or may not know, .NET exe and dll files are called "assemblies" and are basically java style byte-code. The first time one is used, it is compiled by the framework, and the machine code is cached for all future uses. The DLL remains intact with the byte code (or IL), and the next time it is changed a recompile occurs. The cached machine code can be, at compile time on each individual machine, optimized for the config and hardware of that machine.

    It would be great if I could write a .NET app (with C# in my case) and build it on my Windows machine, then take those exe and dll files and copy them to Linux, AIX, Mac, etc, etc. I know the Java crowd is going to say they are already cross-platform. But an OPEN SOURCE platform like Mono could really turn .NET into a very cool, cross platform tool where the code could be optimized for each config. There is a lot of potential here.

    I could see Novell optimizing for one particular distro ;-)

    --

    Great ideas often receive violent opposition from mediocre minds. - Albert Einstein

  14. Re:Um, why?? by benjiboo · · Score: 4, Insightful
    Why would I want to run an M$ .net or any other M$ app on my Linux box??

    Name me ONE good reason why I would need to do that...

    I'll name you a few.

    Money has already been spent designing the application for windows.

    Money has already been spent training users of the application.

    There is a huge base of trained developers, administrators, documentation and off the shelf software available that could be leveraged on a cheaper Linux desktop.

    More web applications are likely to incorporate web controls designed for .NET (cf XAML).

    The MS alternatives to corresponding Linux apps are better/faster/more mature/more stable. (Either generally, or in a specific instance.)

    That'll do for now.

    --
    Vacancy for signature. Apply within.
  15. Re:Sure, it's here now... by Anonymous Coward · · Score: 4, Informative

    These are my 0.02 US$...

    ...and that's about all they're worth.

    According to your predictions for Mono, Microsoft should have litigated Samba into the ground years ago. Remind me, how many lawsuits has MS filed against Samba? Oh, that's right, ZERO . Not a single fucking case. Man, that bodes ill for Mono, doesn't it!

    Of course the Samba team didn't get any support from Microsoft. But Samba still exists, and it still works.

    Likewise, Microsoft can't break .NET compatibility. Microsoft have always gone out of their way to make sure their new versions of Windows run software written for previous versions: do you know why? Because big business won't let them break things. Why should that be any different today than it has been for the last fifteen years?

    And even in the case that MS do break compatibility... why should we care? Will that mean that Gnome apps using Mono and GTK# will suddenly stop running on Linux? Of course not. We'll still have something cool of our own.

  16. Much better option by Anonymous Coward · · Score: 5, Interesting

    A much better option for Linux development than Mono is SWT, from IBM. It leverages all the power of Java, but replaces Swing with a new GUI library that is both great from a performance standpoint, and 100% free as in speech and beer. Not only that, it allows access to all sorts of native stuff if you want it in a way that is much better than .NET even. Eclipse is an unbelievable IDE that blows VS.NET out of the water, and is on its way to surpassing Emacs in the hearts of developers.

    Let's put it this way, you can write 100% free applications with GCJ, and there is even a way to compile Java applications for Windows that don't need a JVM installed to run!!!

    http://thisiscool.com/gcc_mingw.htm

  17. Re:Sure, it's here now... by rabtech · · Score: 4, Insightful

    C# and the CLR/CLS are documented open standards, certified by ECMA. In fact, for v2.0 Microsoft had to submit their planned changes to C# to be approved by ECMA.

    Secondly, there is no such thing as a "compatibility" issue with the CLR. Old versions of classes/assemblies/interfaces continue to run side-by-side with the newer versions. If Microsoft makes a breaking change, it won't hurt existing implementations and applications.

    Besides - everyone always overlooks that the CLR + Base Class Libraries (WinFX) are THE supported API for Longhorn. This means if Microsoft fiddles with anything, it hurts their own apps AND their 3rd party developers.

    This isn't like the CIFS where only Microsoft deals with it; this is the API which everyone has to use. They are two totally different beasts. Microsoft never said CIFS was an open protocol and never promised it would stay stable. But they have delivered on the CLR+C# being a documented system and they do promise it will be stable.

    There is absolutely positively no way to "harm" mono unless Microsoft shoots themselves and all their 3rd party developers in the foot (and those developers writing hordes of applications is what gives Windows its staying power - not something lightly abandoned).

    As for the patent issue, we discussed this already. It is what is called a "defensive" patent portfolio. We've already seen Microsoft get submarined by little companies coming along and claiming patents on things like browser plugins. You think that won't bring Mozilla down too? Think again.

    Microsoft is patenting anything/everything so no one can come along and try to shoot them down with insane obvious patents later. This is a result of a broken patent system and we all know that.

    --
    Natural != (nontoxic || beneficial)
  18. Which standard will they follow?` by matsh · · Score: 4, Interesting

    The ECMA spec or Microsofts implementation? No, they are not the same. Microsoft have addd functions to some classes.

  19. Microsoft's new propaganda line for Mono by Anonymous Coward · · Score: 5, Insightful

    It appears that Microsoft's new line of propaganda, when it comes to Mono, is to emphasize "compatibility with .Net."

    That way, it puts the focus back on Microsoft, and it makes Mono seem like a runner up. It also acts as a set up for future propaganda, when full compatibility is not achieved, and when Microsoft changes the compatibility rules in .Net version 2.

    You can see the propaganda reflected in timothy's lead for the story. That's not to say that timothy is part of it -- after all, he may simply have been affected by the propaganda himself.

    But Mono developers have always stated that compatibility with Microsoft's .Net is a secondary goal, and one that is unlikely to be fully achieved. They know that Microsoft will lie, change the rules, keep some things secret, and so on. Also, the Mono developers refuse to tie Mono to Microsoft's Internet services. That, if nothing else, is an obvious difference from Microsoft's own .Net, which "strongly encourages" the use of those services, especially Microsoft's authentication services.

    On the contrary, Mono has always stated that their purpose is to provide a C# development environment for Linux (an enhanced environment, in fact, considering its support for Java and other languages). This has two benefits:

    1. C# is a good programming environment, providing a good object model, multi-language support, and so on. For some types of development, it provides solutions that were previously lacking on Linux.

    2. Even if it's not fully compatible, Mono provides an alternative to Microsoft's .Net that will allow Windows developers to switch to Linux. Think of the relationship of Mono to .Net, as being similar to the relationship of GCC to Visual C.

    As to the patents concern, Mono developers have stated from the beginning that they are avoiding anything that smacks of being patented/patentable, and are sticking to the open and documented C# Standard. Microsoft went through the standards process for C# in order to give the illusion that they intended C# to be cross platform. Microsoft never intended anyone to call their bluff, and actually create an alternative C# platform, but Mono did. Of course, Microsoft kept the network services and authentication parts of .Net secret and patented, but Mono doesn't use those parts.

    As to the fact that C# appears to be a good design, that shouldn't surprise us. According to the rumor, the original concepts for .Net were developed in Borland, and Microsoft gained those concepts when they hired away large numbers of Borland personnel, including the original creator of Delphi. This is similar to the way that Microsoft hired a VMS development team in order to create Windows NT. Thus, while Microsoft itself may be too centrally controlled (by Gates et al) to allow much creativity, they have always been able to copy or buy good ideas from elsewhere.

    Anyway, that's enough rambling. Congratulations to the Mono development team.

  20. Both by DreadSpoon · · Score: 5, Informative

    They are shipping both CLS and Microsoft compatible implementations. The basic idea is that new applications for Linux can use CLS plus the Mono stack (i.e., UNIX/Linux intended assemblies, like gtk-sharp, various DB libraries, POSIX wrappers, etc) and legacy or cross-platform apps can use the Microsoft stack (Windows.*, ASP.NET, ADO.NET, etc).

    For example, a GNOME app written in C# for Mono would not use the Microsoft stack at all. So even if Microsoft broke/changed/patented the Microsoft (non-ECMA) stack, that would have zero effect on the tons of Open Source/Free Software apps developed using the ECMA and Mono assemblies. Thus, Mono provides both a great set of languages (C# and anything else that can run on the CLR), a good solid runtime (Mono+CLR stacks), an efficient and cross platform interpreter and JIT/AOT compilers, and so on.

    The only thing Microsoft can kill is Microsoft compatibility. Which really isn't all that interesting to most FOSS developers. ;-)