Portable.NET Now 100% Free Software
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!"
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.
You should have a look at #Develop. I really like it and it is Free Software too :-)
t .a sp
http://www.icsharpcode.net/OpenSource/SD/defaul
It essentially means they wrote the compiler in C, and didn't write the compiler in C#, just to paint themselves in the corner and have a chicken and egg problem on how to compile a compiler written in C# if you don't have a C# compiler. I thought this was kind of odd myself, seems like a pat on the back for not doing something stupid, unless someone could point me to some need to compile a compiler in it's native language.
gcc itself has a bootstrap problem. The gcc code itself is actually pretty gcc specific, non-standard C code that can't be directly compiled correctly by other compilers. So there's an extra step, the gcc build routne adds a bootstrap compiler - youdon't compile the real compiler directly, you compile a small 'gcc-ish' compiler that though not complete, has a sufficent enough subset of gcc-isms to compile the real compiler.
Get the release and report bugs if you can find !
PS: assigning them to me does not count as funQuidquid latine dictum sit, altum videtur
Very robust and well thought out language. Yes, Yes, I know blah blah blah M$ this and M$ that. But ya know what? I could give a flying crap about everyone's predisposition against Microsoft.
.NET -- not it's Windows-specific libraries.
I'm not sure Microsoft should be thanked for the greatness of the C# language on it's own, which I'm sure most of us agree is the best thing of
Thank Anders Hejlsberg, chief architect of the C# language, instead.
While I'm on the topic...
Anders Hejlsberg interviewed about C# #1
Anders Hejlsberg interviewed about C# #2
Pretty interesting, where he discuss the design goals of C#, how satisfied he is with what C# became, etc.
Beware: In C++, your friends can see your privates!
There are a lot of statements here that need correction.
.NET) and Perl's .NET support is awesome.
.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.
.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
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
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
It's a really good thing that
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.
He who defends everything, defends nothing. -- Fredrick The Great