Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Programming IT Technology

Portable.NET Now 100% Free Software 429

rhysweatherley writes "Finally after months of hard work and bucket loads of caffeine, the DotGNU community has finally got Portable.NET to the point of building our C# libraries on many Free Software platforms with our own C# compiler. This is a big deal! Portable.NET is now 100% pure Free Software, with no dependencies on third party C# tools. The compiler, which is written in C, bootstraps off gcc, so there are no icky 'how to compile the compiler' problems. And it's fast! The DotGNU team consists of lots of contributors, many of whom are coincidentially named 'Rhys Weatherley,' but this wouldn't have been possible without the support of the DotGNU community, especially the Weekend Warriors. .NET is not the only thing we are doing. We're playing around with JVM and Parrot (of perl6 fame) backends to the compiler. And we have a C compiler front-end that generates pure bytecode apps that can run on any decent CIL implementation (Portable.NET, Mono, etc). We are about 95% of the way towards our first milestone of an ECMA-compatible C# implementation. There are lots of things still to be done in the low-level C# libraries, runtime engine, and the compiler. So, if you have some time on your hands, and like messing with languages and stuff, like yours truly ... have look and maybe have some fun!"
This discussion has been archived. No new comments can be posted.

Portable.NET Now 100% Free Software

Comments Filter:
  • by RebelTycoon ( 584591 ) on Saturday November 23, 2002 @06:02PM (#4740243) Homepage
    Time to re-evaluate... It might be good afterall...

    So confused... Is it weekends that we like MS, or just Saturdays, or just 6-7pm EST...

    Damn it...
    • Re:.NET for Linux (Score:3, Insightful)

      by drinkypoo ( 153816 )
      Microsoft has has plenty of good ideas, or at least been the first to implement plenty of good ideas. The one-button way to do everything (the start-button) makes good sense, now everyone is copying this interface. Microsoft even moved still more things into it. Of course the taskbar (who made that up, anyway? arguably you could say it was xsm, assuming xsm predated the first version of CDE (or openview) which featured a toolbar. I can't think of a window manager older than that that does things any way but by pop-up menus. Longhorn will feature a taskbar (as we have seen in recent screenshots) so a lot of the Mac types who don't know any better will think that Windows is copying mac; Let them know better.

      Anyway we don't like MS any time but when your "enemy" (I don't know that too many of us could call M$ our nemesis beyond RMS and other GNU/Zealots) has a good idea, you don't just disregard it. You use it for your own ends. This is what "we" (the free/open software movement members; users are members by extension as well) are working towards by implementing such things as Mono. There's no reason we can't implement heavily cross-platform OO software using C# and .NET on Unix. It doesn't even have to run on Windows!

    • by Otter ( 3800 ) on Saturday November 23, 2002 @09:18PM (#4740962) Journal
      So confused... Is it weekends that we like MS, or just Saturdays, or just 6-7pm EST...

      Rule 1: Everything from Microsoft is bad.
      Rule 2: Unless Miguel says it's good, in which case it's good.
      Rule 3: If you need it to play games, it's a necessary evil. X-Box purchases can be justified by asserting that they cost Microsoft money, and one is therefore attacking "Micro$haft" by buying one.

  • DotGnu and Mono (Score:5, Interesting)

    by fizz-beyond ( 130257 ) on Saturday November 23, 2002 @06:06PM (#4740258) Homepage
    So how do the two projects, DotGnu and Mono compare? I could be way off base here, but it seems to me like yet another of the great OSS wars. You know, vi and emacs, kde and gnome, etc.

    Can someone please tell me I'm wrong and explain why?
    • Re:DotGnu and Mono (Score:5, Informative)

      by manyoso ( 260664 ) on Saturday November 23, 2002 @06:19PM (#4740320) Homepage
      Mono's compiler is written in C#. Mono has a fast JIT. Mono's libraries include preliminary versions of Microsoft.NET libraries (see non-ECMA) like System.Windows.Forms and support for ASP.NET and ADO.NET. Mono is a joint project of Ximian and the larger community. Mono's commercial nature also limits community participation.

      DotGNU is a GNU project and has a CLR/.NET environment sub-project called Portable.NET. Some of the key differences with Portable.NET and Mono are:

      PNet has a C# compiler written in C that is very fast, but not as complete. As a consequence it does not suffer from bootstrapping problems.

      PNet's compiler architecture is meant to provide great support for new CIL language compilers. Currently, cscc (that's the IL compiler suite) supports compiling C and C# to CIL with other languages on the way. It can also compile a subset of C# to the JVM.

      PNet only has an interpreter called ilrun (no JIT) at this time. PNet's libraries are not as far along, but one of the goals is complete ECMA compatibility while Mono's goal is to track Microsoft.NET as
      closely as possible. PNet is also talking with the Perl/Parrot folks about supporting C# on the next generation Perl runtime.
      • Re:DotGnu and Mono (Score:2, Interesting)

        by nd ( 20186 )
        Mono is a joint project of Ximian and the larger community. Mono's commercial nature also limits community participation.

        Can you back this point up? My understanding is that Mono has a LOT of community participation, where Portable.NET is for the most part a one-man show. It seems to me that the "community" is largely backing Mono.
        • Because of Mono's affiliation with Ximian and its commercial interest some developers are precluded from participating in the mono-hackers development mailing list. Specifically, if a Mono developer is also associated with the DotGNU project or expresses an interest in Portable.NET, they are no longer allowed to participate in the mono-hackers mailing list.
  • by Anonymous Coward
    all virii now cross-platform
    • now? Silly rabbit, Microsoft has had the cross platform thing down for YEARS. I had the MS Word Concept Macro on SPARC/Solaris 2.51 running Word 6 on WABI.

      ye of little faith, thinking Microsoft would have to wait until 2002 for a cross platform threat...
      • Re:i can't wait ... (Score:5, Interesting)

        by Melantha_Bacchae ( 232402 ) on Saturday November 23, 2002 @08:50PM (#4740872)
        cant_get_a_good_nick wrote:

        > thinking Microsoft would have to wait until 2002
        > for a cross platform threat...

        No, they had to wait until they had a Java-a-like that they could control, and a bunch of silly collaborators to port it to anything in sight for them. Convincing the world to make regular payments for the continuing use of their products, as opposed to one charge up front would also be a big help.

        Then they can pull out the operating system Microsoft Research has been sitting on since the late 1990's. The operating system that is platform independent and runs on top of their Java replacement. The operating system that will swallow the internet into a single giant distributed network under their control, giving them the 100% monopoly of their wildest dreams. The operating system called Millennium (http://research.microsoft.com/research/sn/Millenn ium/mgoals.html).

        With per use charging, the OS itself could be given away on CD ala AOL, made available for free download, and/or automatically installed on XP machines via Windows Update (gee, I hope you didn't install XP Service Pack 1 which includes permission for them to do this and the .Net runtime). Install it, or let it install itself, and you will be making regular payments to Microsoft if you ever want to use your computer again.

        I don't think we have too long to wait. .Net is available for Windows, and well on its way for Linux and OS X. Longhorn may well be Millennium.

        Mind you, this is a giant gamble on Microsoft's part, and they are as likely to get nuked (figuratively, or even literally if a foreign country gets too annoyed with Microsoft's attempt to take over their country's computers) as they are likely to succeed. I don't think the company would survive a stunt like this, but they survived Bob, the antitrust trial's joke of a penalty phase, and Licensing 6.

        This isn't a case of poor misunderstood Microsoft, either. Why else would they codename the original Millennium JVM "Borg" (http://research.microsoft.com/research/sn/)?

        Shinoda: "The age of Millennium."
        Io: "What does that mean?"
        Shinoda: "A thousand year kingdom. It wants to create a home for itself. There is one flaw in its plan: Godzilla."
        "Godzilla 2000 Millennium" (Japanese version)
  • wow (Score:2, Informative)

    by absurdhero ( 614828 )
    This is a huge milestone. Now everyone who has two hands and 10 fingers needs to get in there and help rhys out! There are lots of things for people to work on. From Documentation to Libraries. so go to http://dotgnu.org and get started!
  • objective analysis (Score:4, Interesting)

    by galacticdruid ( 569137 ) on Saturday November 23, 2002 @06:07PM (#4740274) Homepage
    You know - I'm a tried and true perl and open source hacker and believer. But then I got this job doing .NET and c#. It was hard at first because I've been of the opinion that m$ really sucks because they're a monopoly, they extort $ out of schools, etc. etc.

    But in terms of pure technological merit, c# is a damn good language! Especially if you use the vs.net ide, you can get stuff done way fast. So keep an open mind w/ this language. It's very exciting to be able to build stuff using vs.net, and deploy on linux.

    Keep up the good work on this project guys!!
    • by manyoso ( 260664 ) on Saturday November 23, 2002 @06:23PM (#4740329) Homepage
      You should have a look at #Develop. I really like it and it is Free Software too :-)

      http://www.icsharpcode.net/OpenSource/SD/default .a sp
    • agreed. I hate to say it, but C# in vs.net is incredibly easy. People tend to forget that Billy boy & co. started MS with compilers/languages, and only moved into operating systems with the guy who wrote CP/M refused to sign an NDA with IBM just to talk to them about there new peecee.
    • by Ed Avis ( 5917 ) <ed@membled.com> on Saturday November 23, 2002 @06:54PM (#4740462) Homepage
      Sure, C# is a good language compared to C and all that. But then that's true of a whole bunch of languages out there. You could easily enthuse just as much about OCaml or Scheme or Ruby or Smalltalk. It doesn't seem that C# is the best language out there, just that it is 'better than C most of the time' (which isn't difficult, now that CPUs are so fast) and 'what other people seem to be using', in other words herd mentality. Which is fine - and the reason why I use Perl - but it's a mistake to think that technical merit and expressivity are something magically invented with C#, any more than the graphical user interface suddenly came along when Windows was released. Although some journalists do seem to have that idea.

    • You know - I'm a tried and true perl and open source hacker and believer.

      But in terms of pure technological merit, c# is a damn good language!

      Compared to Perl, everything looks like a damn good language.
    • c# is a damn good language

      It's a strongly-type, object-oriented, Java/C++ descendent. It breaks no new ground, but it does have some nice incremental improvements over Java:

      • xml-based documentation format (similar to javadoc, but more intuitive).
      • richer collection of primitive data types
      • conditional compilation macros
      • properties (intead of get/set methods)
      • automatic boxing/unboxing of primitive types [e.g., an int can be cast to an object]
      • foreach() construct
      • proper enumerations
      • delegates (reduces verbosity when making one-method interfaces)
      • attributes mechanism for annotating assemblies/classes/members with meta-data (instead of using javadoc tags as a kludge)
      Some off the above features have their dubious aspects. The really bad features (IMO) are:
      • fewer constraints on how things in your code (namespaces, classes) must be arranged with things in your filesystem (directories, files)
      • wierd behavior of virtual/override/new virtual (I would provide you an example, but the lameness filter wouldn't let me post C# code).
      The bad points of C# are:
      • less disciplined than Java
      • no dynamic inner classes (but Java didn't have them at first either, IIRC)
      • no anonymous inner classes (maybe wrong on this one)
      • less open source code, existing support, and tools than Java
      But all in all, some of these things will improve with time. It should also be noted that the predominant IDE for C# (VisualStudio.NET), the documentation, and the core API's all suck. Especially the documentation... I opened up some Javadoc web pages after working with .NET for a month and almost cried at how easy it is to navigate and read compared to VisualStudio's crappy help browser (yes, even when run externally).

      Ultimately, C# may be the better language, but not by much. I can't help but look at Smalltalk and Scheme and think that these C-derivative language designers just don't get it. What I really want to see is a new generation of meta-languages that allow complex relationships and design patterns to be expressed at a high level in a compact fashion.

  • Corporate workplace (Score:3, Informative)

    by chunkwhite86 ( 593696 ) on Saturday November 23, 2002 @06:07PM (#4740275)
    This is an excellent step forward for Linux on the Desktop. As Corporations begin to adopt the Microsoft .NET servers (for better or for worse), Linux desktop clients will be able to participate, and not be left out in the cold.

    Congratulations to the development team on their achievement.
  • by rhysweatherley ( 193588 ) on Saturday November 23, 2002 @06:09PM (#4740280)
    The weekly DotGNU IRC meeting is currently in progress if you want to come talk to us about the release, or anything else. The meeting began at 22:00UTC Sunday in channel #dotgnu on irc.openprojects.net.
  • by ekrout ( 139379 ) on Saturday November 23, 2002 @06:21PM (#4740325) Journal
    The C programming language does everything I need it to do.

    Writing a new operating system? I choose C.

    Coding up your own desktop environment? I choose C.

    Desire to write the next award-winning PC game? I choose C.

    I'm not sure why so many man months were spent trying to hook into .NET. Couldn't we have spent more time refining the applications, utilities, and system code that we already have rather than wasting time extending the Microsoft monopoly?

    Sorry, but you people really confuse me sometimes. I write a few sentences of praise for Microsoft's latest operating systems just a few hours ago and I get marked as a troll. Now I see an article praising those who work hard to let Microsoft's .NET succeed.

    People: Make up your mind, or find a new hobby. people.
    • by J. J. Ramsey ( 658 ) on Saturday November 23, 2002 @06:35PM (#4740384) Homepage
      "I'm not sure why so many man months were spent trying to hook into .NET. Couldn't we have spent more time refining the applications, utilities, and system code that we already have rather than wasting time extending the Microsoft monopoly?"

      Alternative C# compilers have the potential to undermine rather than extend the MS monopoly, simply because they are an alternative source for a C# platform.

      The real trick would be getting C# programmers in the habit of targeting just the ECMA standard rather than the standard + MS lock-in extensions.
      • Alternative C# compilers have the potential to undermine rather than extend the MS monopoly

        Didn't Microsoft itself provided a reference implementation that would work perfectly under BSD? What, they are shooting themselves in their feet?

        It's crystal clear they want it embraced by other Operating Systems, but I don't really know why yet. But our pockets will sure find out sooner or later, as well as everyone else's pockets.
    • Yeah, you can do it all with C, but if you're building enterprise applications you can build them much faster with C#. I'm no M$ fan, but you can be very productive with this language. Being able to easily port the stuff to linux would be a major bonus.
      • I can also be productive in Java, Python, Perl, Eiffel or Smalltalk. What makes C# so special?

        I though the whole point of .NET was that the language didn't matter? As long as you have a backend that produces .NET bytecode, you are already in buissness.

        • C# is java, with M$ extensions. So if the code will be running on Wintel box, you can probably be more productive with C#, because it was designed for that.

          As far as language doesn't matter, that's true as far as it goes, but I don't think you can do the windows forms in java, and that's part of the productivity.

    • by fferreres ( 525414 ) on Saturday November 23, 2002 @06:46PM (#4740431)
      Now I see an article praising those who work hard to let Microsoft's .NET succeed.

      1) The language and the technology may be good.
      2) Creates more choice for the programmer.
      3) Will have support (from Microsoft, so companies will demand it)
      4) Will be known to many developers, that will expect C# support. Probably, you couldn't care less, but let's not forget some Windows apps are most desired under Linux or any os.
      5) Nobody is talking about taking away options
      6) .NET has a nicelely laid out set of classes, though you may not like it, some people are really productive with them

      The things that I don't like are the suit fear, or bad moves that Microsoft may have in mind to leverage they IP on their .NET or kids learning C# in college as "the language".
    • by psxndc ( 105904 ) on Saturday November 23, 2002 @06:47PM (#4740436) Journal
      Actually most games are written in C++.

      One thing you didn't mention though is Web Applications which, though you may argue are no big deal, I would argue at least a 10-15% of the development going on centers around. A super set of that is B2B applications which probably account for 25-33% of the development going on. C # and Java are way better suited for web development and B2B development and have established frameworks to springboard from.

      I understand about your frustrations with the fickleness of the /. crowd, but the excitement here is the choice to _not_ extend the monopoly. By creating a C# compiler, libraries, etc Portable.NET and Mono are allowing developers to not use Microsoft tools or Microsoft OS's to generate useful code. Yes MS created C#, but you don't have to use anything MS owned or controlled to use it. If it doesn't exist already, I wouldn't be surprised if there is an apache mod_aspx/C# in the works. People assume that because MS created it, it has to be bad and unusable by the OSS crowd. It's really not the case...

      now to quote a reply I've seen to a comment like yours before:

      Why do I need C, I can use assembly.
      Why do I need assembly, I can just type in 1's and 0's.
      etc :-)

      psxndc

      • I think the point being made is that by supporting C# and the .net development environment, you give credability to those "products".

        I won't try to argue whether they would suceed or not without this extra help, but might it not be better to convince people to use java over c#?

        C# succeding means MS still has oportunities to extend beyond the published specs. Sun has already shown that they won't tolerate that with Java.

        Surely the future accesibility of the dev environment is safer under suns controll than evul M$????
    • You're right, C is a fast and portable language. However, C hands the tedious job of memory management over to the programmer. Not all of us are as proficient at avoiding or debugging memory leaks as you. Most of us would rather spend our time productively coding the program. .NET provides automatic memory management, and is still impressively fast.

      Also, C code requires the maintenance of multiple versions of your application - at least for applications that have a GUI. .NET's very nice hierarchy of classes also stands out in this regard (System.Windows.Forms).

      Moreover, OOP is big; C is not an object-oriented language, and C++ is, for many, a convoluted nightmare. When you're building truly portable (no rebuilding necessary) enterprising applications, .NET will be a major boon.

      Don't be blinded by your hostility toward Microsoft. After all, these projects help undermine the dominance of Windows by providing an alternative platform on which to run your programs. .NET could be a great thing to happen to Linux.
    • by rjh ( 40933 )
      "When all you have is a hammer, everything looks like a nail." -- Abraham Maslow

      If you think C is the talismanic ne plus ultra of programming, I really think you need to get out more. Learn C++ and the STL; see what processor-intensive stuff you can do trivially with it. Learn LISP and grok the lambda calculus and the beauty of functional programming. Learn Python and Perl and see the coolness of executable pseudocode.

      If the only language you let yourself use is C, then you're limiting yourself in ways which aren't good for either your mind or your career. C is a good tool and one that ought to be in every hacker's toolbox--but just like you can't be an effective carpenter if all you have is a hammer, you aren't going to be an effective hacker if you keep on swinging C at problems which call for LISP, Smalltalk or SPARK solutions.
    • by nzhavok ( 254960 ) on Saturday November 23, 2002 @08:30PM (#4740823) Homepage
      The C programming language does everything I need it to do.

      I too once was a C zealot. Then I had a job at Compaq which required me to develop in TCL which I hated at first, but eventually it opened my eyes a lot.

      These days I do 90% of my work in python, it's a bloody great language. I remember when I first started hacking C about a decade ago, I'd pump out these little programs quite quickly but anything large took a lot of time, usually debugging. I never got tierd of C but I suppose when I started programming professionally it lost a lot of its appeal.

      Anyway, I diverge.

      Python lets me create complex systems very fast. The first time I used python I worte a client/server chat program, it took about half a day to do (including the basic python tutorial). I find I don't have the time to fuck around with C anymore, I don't find the joy in hunting down bugs either (at least I hunt less in python).

      I still use C on occasion though. But only then I can't do it fast enough in python, the C code is still usually ran from python in the end.
    • by Temporal ( 96070 ) on Saturday November 23, 2002 @10:08PM (#4741142) Journal
      I have a very hard time coding in C. It's not that I don't know the language. I can write anything in C, and write it well. But it takes so much work! Writing C code which is clean, modular, reusable, robust, and maintainable is a pain, if not a flat out contradiction in terms. If forced to use C, I would basically end up emulating all of the features of C++ using macros and redundant code.

      As a matter of fact, one of my favorite programming techniques is impossible in C. I like to use reference counted smart pointers to handle memory management automatically. However, in C, there is no way to automate that -- you would have to manually call some sort of functions which increment and decrement the reference count, which defeats most of the purpose.

      If I were writing an operating system, I would probably choose C. But a desktop environment? A game? I've worked on my own game engine (see my homepage), and the thought of trying to do it all in C makes me cringe. You might not agree, but I think you just don't know what you are missing.

      I am actually now designing my own programming language. In my language, I have been able to write an IRC-like client/server chat program in 161 lines of code, and it would perform better than any but the most thoughfully designed C programs. Sure, you could write it in C, but why? Why spend days writing and debugging something that would take hours in another language?

      Woohoo, I'm all psyched up to work on my compiler now. Time for a coding binge! Thanks! :)
  • by J. J. Ramsey ( 658 ) on Saturday November 23, 2002 @06:29PM (#4740351) Homepage
    Since Mono is written in C#, it needs a C# compiler in order to be compiled, while Portable.NET is written in C, so it just needs a C compiler, like gcc, to be compiled. If Portable.NET gets good enough, maybe it could be used to bootstrap Mono instead of the Microsoft C# compiler.
  • by Gopal.V ( 532678 ) on Saturday November 23, 2002 @06:36PM (#4740391) Homepage Journal
    The freshmeat links are out here it is Freshmeat Portable.Net [freshmeat.net]

    Get the release and report bugs if you can find !

    PS: assigning them to me does not count as fun
  • Hmmmm (Score:5, Interesting)

    by the eric conspiracy ( 20178 ) on Saturday November 23, 2002 @06:38PM (#4740397)
    I guess I have some rather severe misgivings about this - how useful is this going to be given the lack of the proprietary MS libraries that you are going to need to run real-world applications, or move code in a portable fashion from one machine to another?

    It's nice to have something like a this in the free software regime from a technical perspective, but is it really ever going to be anything but a little sister to the Microsoft version? Won't that reality diminish the corporate view that Linux is really just a hacker's toy, and if you want the real thing get Windows?

    Interoperability and portability are good, but interoperability really occurs at the protocol level, and portability requires libraries.
    I can see this resulting in are misleading market claims from Microsoft saying things like Lookie Here C# code is portable just like Java code !!

    One good thing that could come out of this is that it might force Sun to loosen it's grip on Java a bit so that we get more serious open JVM's etc.

    • Exactly correct, I agree with everything you said. I'm glad someone brought these points up.

      However, I thought Java was quite a bit open already. How else did HP, IBM and Tower create their own JVMs for HP-UX, Linux, Windows etc?
    • Re:Hmmmm (Score:2, Interesting)

      by Gopal.V ( 532678 )
      >> Microsoft saying things like Lookie Here C# code is portable just like Java code !!

      They already built Rotor for that .... We're now
      plain mean competition ....

      Especially they cannot take new patents on this
      coz we hold prior art as on today !!

      When MS invented .NET, we have to replace it with
      DotGNU to prevent MS from doing a "Run this
      binary and trust us !" strategy
    • The microsoft "embrace and consume" philosophy is a serious issue. As for the libraries though, if the API is published it should always be possible to create a workalike library. If it isn't, then we have the moral high ground over them and that WILL keep some people from using it. Everyone wants things to be "open source" these days, though many are still iffy on "free software". Er, I mean, almost everyone.
    • Re:Hmmmm (Score:2, Interesting)

      Given MS' track record and general sentiments towards open or free software, I seriously can't see how anyone can think they don't have some sort of plan to make life difficult for .NET on non-Windows platforms -- or, at least, an ulterior motive with .NET in general. Killing Java is certainly one, but I doubt it is the only motivation they have.

      Perhaps I'm wearing tinfoil, but I can't help but think that Mono and DotGNU are somehow being played the fool by Microsoft.

  • by bnavarro ( 172692 ) on Saturday November 23, 2002 @06:44PM (#4740417)
    ...(and old-time programmer):

    This is an interesing development. However: I wonder how useful this language is on non-windows platforms. Let me explain.

    You see, I have just started a new job that is heavily leveraging the .NET framework to bring an enterprise-level solution to fruition as quickly as possible. I evaluated c#, and decided that the greatest advantage c# brings to the table is rapid development through dynamic ActiveX/COM objects. That is: even though this is a compiled language, you code in it as though it was an interpreted language with ActiveX hooks. You would load any ActiveX object with a statement like
    X = new Object(params);
    and then you can immediately reference it with statements like
    Z = X.func(param);

    If you haven't written JScript, VBScript, or WSHScript, you have no idea just how amazingly powerful this is. A database connection & query takes around 4 lines of code. I was able to master in-code LDAP (Lightweight Directory Access Protocol, aka Active Directory on Windoze boxes) queries in less than one day, having never touched an LDAP server in my life prior to that.

    Sadly, *NIX has never really implimented anything like COM. Each programming language still has to be manually extended in some form or another to recognise new APIs -- headers for compiled languages (and remembering to link to the libraries), or worse, "extension agent" coding for dynamic languages like Perl and Python (assuming the API code is a binary shared library). And APIs are almost never identical accross multiple languages.

    So, really: what is the need for C# on *NIX? None of my c# code that I am writing will port, because it is heavily dependent on the COM/ActiveX objects to get the real work done. Unless the .GNU project aims to bring ActiveX functionality over to *NIX, and port all of the cool ActiveX objects like ADO (Database), DOM (XML), System.DirectoryServices (LDAP), FSO (Files), etc.

    Is thes even feasible to do?

    • Hang on, .Net is essentially a replacement of COM! COM interop from C# is messy and feels like a hack at best

      None of the functional areas you mention are actually ActiveX objects - they are in fact namespaces in the .Net framework. ADO (actually ADO.net is the replacement for ADO) is System.Data, DOM is System.Xml and the FSO (FileSystemObject) has been replaced by System.IO
    • "Unless the .GNU project aims to bring ActiveX functionality over to *NIX, and port all of the cool ActiveX objects like ADO (Database), DOM (XML), System.DirectoryServices (LDAP), FSO (Files), etc."

      That's why I don't know why people are embracing .net for other non-windows platforms. If you need a language to be dependant on vendor specific libraries that are difficult to implement, is your language really portable? Now I admit I'm speaking out of my ass right now(I don't really know the specific libraries), but I hear the .net interfacing with Window systems will be difficult(from Mono).

      Maybe someone could pull my head out of me ass, and tell me honestly why a developer would want to write a .net program in Linux.

      • by Ctrl-Z ( 28806 ) <tim&timcoleman,com> on Saturday November 23, 2002 @07:19PM (#4740560) Homepage Journal

        First of all, most of the topics you mentioned are being implemented as part of the .NET Framework class libraries.
        ADO.NET is in System.Data
        XML is in System.Xml
        LDAP is an open standard that Microsoft does not own.

        Developing these class libraries is part of the Mono project.

        The language (C#) is not dependent on these vendor-specific libraries. It is quite easy to write code that will run on both Windows and Linux that does not involve any of them. Of course, it may not do what you want, but that's why Portable.NET/Mono/whoever is building the things they are.

        It's not so much "why a developer would want to write a .net program in Linux" as "how does a developer make a .net program written in Windows run on Linux".

        Just my 2 cents.
    • The bigger issue is not so much COM or not. For example, there's always XPCOM that was developed as part of Mozilla.

      The Microsoft advantage is the Microsoft disadvantage: there is a single vendor to cast interfaces into concrete.

      In practice, I'd expect the most sucessful interfaces to become available as interface libraries to UNIX tools (in your example, that OpenLDAP would come with a C# interface in much the same way that Perl interfaces are ubiquitous in UNIX).

      Having a choice between "vendors" in the UNIX world has advantages and disadvantages too, but plumbing between libraries and a language is a small matter of programming. How well it can be implemented is dependent on two factors:
      How well the C# interface is documented
      How well the MS code is written

      The latter may sound surprising, but experience shows that the hardest thing in emulating MS libs more often than not is getting the implementation bug for bug compatible.

      My experience has been mostly with C libraries and Perl interfaces, and I've never lost too much time gluing stuff together. Making that glue code reusable is much harder, and is helped a lot if you have an interface specification available (Java did a lot of good work in that area, and rumor has it C# does a good job at it too).

      Documentation of the interfaces is what the success in practice hinges on.
    • by tenchiken ( 22661 ) on Saturday November 23, 2002 @07:53PM (#4740699)
      There are a lot of statements here that need correction.
      First of all, cOM is on it's way out. It is being replaced by the new remoting and web services architecture. The new component arch works much better and is far easier to understand then the iUnknown interface in COM. COM+ services (most notable, transactions) are still being supported, and I have no doubt that Mono will do a great job implementing these.


      Sadly, *NIX has never really implimented anything like COM.

      Not true. In fact, there is a COM implemented for UNIX called XPCOM. It's the foundation of Mozilla. In addition, COM itself is a copy of CORBA/IDL (the tools for Corba/IDL are fairly poor tho). Gnome uses CORBA, and KDE also uses a distributed object protocol. In additional, almost every language supports SOAP (including .NET) and Perl's .NET support is awesome.

      So, really: what is the need for C# on *NIX? None of my c# code that I am writing will port, because it is heavily dependent on the COM/ActiveX objects to get the real work done. Unless the .GNU project aims to bring ActiveX functionality over to *NIX, and port all of the cool ActiveX objects like ADO (Database), DOM (XML), System.DirectoryServices (LDAP), FSO (Files), etc.

      It's a really good thing that .NET rewreites all of these, and MONO is writing all of them. ADO is replacd with the much more usefull ADO.net, DOM is boosted with XSL, XSD, X** (many other XML standards), System.Directory is also bein gimplemented. FSO is replaced by the much cleaner streaming interface. Mono is implementing all of these
      • by mrsam ( 12205 ) on Saturday November 23, 2002 @11:43PM (#4741487) Homepage
        First of all, cOM is on it's way out. It is being replaced by the new remoting and web services architecture.

        I've yet to see anyone address this point, which must be made. I'm not sure what that "remoting and web service architecture" is. I don't know. But I damn know one thing: in three or four years Microsoft will obsolete that technology, and it will be replaced with something else.

        Microsoft receives significant revenue from training armies of MCSE, using endless arrays of certifications and development programs. And, as such, they have a vested interest in keeping the revenue alive with what I call a "steady technology churn." They can't just pick an API, and go with it for the long term future. They need to force all the MCSEs back into the training camps, in order to make sure that their paper certifications do not expire.


        I dabbled with some Windows programming, many years ago. You wanna know one thing? Nothing that I've learned back then is worth today any more than a hair on my ass. VBX controls, DAOs, all of that has long been made obsolete. I've done _nix programming for quite sometime before trying the Windows waters, but I quickly figured out what was going on: that the primary occupation of a Windows developer is to provide revenue to Microsoft, in terms of continuing MSDN subscriptions, fees for an endless stream of documentation for Application Interface Of The Year.

        "Developers, developers, developers", indeed...

        So I quickly ended that short term experiment, and went back to hacking _nix. The thing about _nix -- which is 180 degrees opposite of Windows programming -- is that the skills and the knowledge that you've learned ten or fifteen years ago is still used, and is as valid today as it was back then. If you go and learn today's crop of Windows APIs, in just a couple of years all the time you've spent today would be a complete and a total waste of time, because nothing that you've learned now is relevant any more, it's been obsoleted.

        On the other hand, things like file descriptors, pipes, sockets, and other basic POSIX APIs will still be just as useful ten years from now as they are today, and as they were ten years ago. That is not to say that you won't learn anything new in the mean time. On the contrary, I have learned many great _nix technologies over the years, and I'm sure that I'll keep learning more exciting stuff in the years to come.

        The key difference is that everything that I will learn will only complement, enrich, and add to my existing, growing base of knowledge. Unlike with Windows, where its only purpose would be to replace stuff that's been obsoleted by Microsoft. As a Windows programmer, I'm in for a lifetime's worth of a struggle to keep churning through one API after another, one Microsoft language, or library, or interface API after another, all while being milked by Microsoft for the training and development fees in the mean time. As a _nix programmer, I'm in for a lifetime of enrichment and expansion of my technical skills and knowledge.

  • by NZheretic ( 23872 ) on Saturday November 23, 2002 @06:51PM (#4740448) Homepage Journal
    Microsoft's CEOs have made it "patently" clear [ffii.org] that they intend to restrict competing .Net implementations by cultivating Microsoft's patents, such as United States Patent Application #20020059425 "Distributed computing services platform" [uspto.gov] which covers the design and inter-operation of .NET based implementations.Although there is prior art examples of individual technologies such as the JVM etc, Microsoft patents such as the one mentioned, define and claim the interoperation of the components, in such a way that any re-implementations will be sure to be covered by the patents. This remains true even for the Microsoft specs submited to standard

    In comparison, Sun has granted the Apache and all open source developers FULL access to the specs, test kits and granted the full rights to develop competing products under the JSPA [apache.org]. Sun mhas also fully opened up the Java development standards process under the new Java Community Process (JCP) [jcp.org].

    There those that claim that .NET is open to re-implementation, but until Microsoft make a simliar public legal declaration to Sun's JSPA, any .NET reimplementation represents a pending legal mindfield.

    • So what's the appropriate prior art on .NET? I know they didn't come up with this shit entirely themselves. How much of it is from prior applications (COM/DCOM) and how much of it is ripped off from CORBA... Also how much of it is ripped off from Java?
    • by g4dget ( 579145 ) on Saturday November 23, 2002 @10:19PM (#4741187)
      In comparison, Sun has granted the Apache and all open source developers FULL access to the specs, test kits and granted the full rights to develop competing products under the JSPA [apache.org].

      This is wrong, or at least highly misleading. Sun has granted rights only to standard developed under the JCP from here on forward (and then only to participants in the JCP):

      * For Sun-led specifications finalized from here forward (including revisions to existing specifications) the license terms will allow independent implemenations under open source licenses.

      Sun has hundreds of patents on core Java technologies that are unrelated to JCP efforts, and Sun has granted no licenses to those. You would likely run into those if you tried to create an independent Java implementation.

      Both C#/CLI and Java/JVM should be considered proprietary platforms covered by numerous patents. And both Sun and Microsoft have demonstrated that they cannot be trusted on intellectual property issues or commitments to open standards.

      There are plenty of high quality, truly open languages and runtimes out there. Open source software developers are fools to waste any time on either C# or Java until Microsoft and/or Sun make binding commitments to make those platforms truly open.

  • "C$", at some point, someone is going to try to use it. Probably Microsoft. Or maybe they wanted to patent C$ but made a typo (they are next to each other). Or maybe it's just what they meant, but of course, they couldn't just go and name it C$, so they chosed the closest thing that looked right.

    We know Microsoft choses names by methaphores or analogies, and never by pure luck or randomly.

    Now the big question is what are the dangers of embaracing they IP that now looks "free" but may not be so in the future. I don't know, there must be something I am missing here.
  • by eonblueye ( 627191 )
    I use to strongly think/believe that Linux was THE alternative for Microsoft Windows. But all we have become is another emulation of it? I guess it's safe to say we are the no-fault stunt double and they never get fame or truly nobody knows they are. Shouldn't it be time for gnu, linux, et at; to produce and come up with their own standards? I just don't want to be a follower, I want the leadership position.
  • by zruty ( 108179 ) on Saturday November 23, 2002 @09:01PM (#4740901)
    This place is really getting full of M$ trolls.

    Dont you all see the pattern here? Oh geez, let's all begin developping using this so neat C$ language and let's contribute to this so great .NET$ "innovation". Bill and his buffoons must be smoking a big fat one with a smile now.... And we are even lighting it for them...

    The trap is set, and we are happily jumping on the trigger using both feet. Of course, Bill will help us out by releasing his .NET vital infrastructure source code real soon now, since we are so nice in contributing to the hype and fud ourselves. And of course, there is no way in hell Bill will pollute his own spec just for our own good and for the sake of his own pocket... Noooooo, of course not!

    During this time, Java continues to die slowly, getting fewer and fewer developpers. Don't you realize that we are contributing in digging our own grave?

    Java might be not so great, but it is still the only true alternative to this M$ obscenity.

    Please people, read the J2EE spec, the Java language spec., and go play with JBoss for a while... Then, come back, and take another look at this .NET$ aberration and you will be the one laughing, not Bill and his monkeys.

    Wake up people!

    Zruty
  • by Anonymous Coward on Saturday November 23, 2002 @09:45PM (#4741045)
    There are four GUIs available for Mono which can be used for Portable .NET and Microsoft .NET too.

    1. GTK# - C#/CLI Bindings to GTK+ 2.0. Works on Windows and Linux. It also has C# Bindings for GNOME 2.0 as GNOME#, GConf as GConf#, Glade as Glade#, etc...
    http://gtk-sharp.sourceforge.net

    2. QT# - C#/CLI Bindings to QT 3.0 and KDE. Runs on Linux, but it is difficult to run on Windows though. It currently uses QtC for its C# bindings, but this will change.
    http://qtcsharp.sourceforge.net

    3. Windows.Forms - the System.Windows.Forms like GUI uses Winelib in Wine and monostub.exe in mono to run on Linux, and it uses native Windows .DLLs for Windows.Forms to run on Windows.

    4. ASP.NET - System.Web works on Linux and Windows. It can be tested with XSP test server.
    So, to test this, you will need mono, mcs, and xsp.

  • I don't get it. (Score:3, Insightful)

    by Otis_INF ( 130595 ) on Sunday November 24, 2002 @04:57AM (#4742382) Homepage
    Ok, that some people don't understand the big importance of a good, solid, 100% compatible .NET framework on Linux, fine.

    But... why 2 frameworks? (Mono and DotGNU). Why is it so damn hard to just focus on the importance of a solid .NET framework on linux so ALL the developers who understand the importance of .NET on Linux join forces and work on 1 platform only (I prefer Mono for this, since it's intentions are better: 100% compatability with MS' .NET api).

    Now, Mono can use more developers but these developers are working on their own port of .NET: DotGNU!

    I know this has something to do with politics, something to do with licensing. It DOESN'T have anything to do with different technical views on the matter.

    I simply can't understand why people are so far fetched focussed on politics instead of the art of software development. Now Linux will probably end up with Mono being finished way too late (if it's not finished in 2003, MS will release generics in .NET first so Mono will be behind that release for another year) and another platform, DotGNU with functionality that only complies on the ECMA standard, and thus is pretty useless in everyday applications, since System.Data, System.Web.* and System.Windows.* are pretty useful. (understatement).

    As a .NET developer on Windows I'd like to see a solid .NET platform on f.e. Linux which is compatible with .NET from MS so my customers won't have to use Win2k or Win.net server to run my ASP.NET applications, but have more of a choice. When there is no .NET platform on Linux, Linux is not interesting for me or for my customers, and believe me (looking at what power is inside ASP.NET f.e.) in the future also not interesting anymore for a LOT of developers.

Technology is dominated by those who manage what they do not understand.

Working...