This article is filled with shameless promotion; however, there is content to be found (I hope). Still interested? Read on . . . .
1. What's so special about Portable .NET (pnet) anyway?
First, introductory matter. DotGNU aims to provide a complete alternative for all aspects of webservices, including user authentication (Virtual Identities), service directories, access, and security (SEE), as well as support businesses interested in using the Free DotGNU model.
There is a very important issue of webservices that many other webservice projects, notably Rotor, do not address: how do you protect user freedom (vendor independence, copyleft, ownership of one's own data, etc.) when everything is on a remote computer, instead of your own?
Also, DotGNU plans to extend beyond the CLI [1] through a multi-VM-supporting architecture. Current plans include support for Parrot and Java™.
Finally, no other project aims to be the "best damned development environment ever." :-)
One feature, prominent in both DotGNU in general and pnet more specifically, is extensibility. The Converted Virtual Machine (ilrun) allows you to add support for other stack-based bytecode formats by writing bytecode conversion routines, rather than your own VM. First plans are to add support for Java™ bytecode to the IL [2] supported right now.
The compiler is also pluggable, in much the same fashion as GCC. Finally, there is a multi-language compiler writing tool (treecc), enabling the aspect-oriented programming [3] used in the pnet compiler.
2. Why webservices anyway?
Well, they push network communications to a higher level, making network programming easier. Also, they're much easier to distribute to users (portable bytecode, auto-download/authenticate/run).
However, this presents a problem: if most of the real program (speaking in the abstract sense, not the sense of a system process) is on the server, then it is not distributed to the user. So how do you enforce a copyleft? If all the user's data is on a service's machine, how can a person lay claim to it?
DotGNU started out highly reactive to these problems; after all, the best way to fight them seemed to be providing an alternative that was at once more useful and freer. As the dangers posed by Microsoft .NET fade, however, the group is turning back to the "best damned development environment" focus. This is done through the pluggable architecture; "plug-something-in" and "${something}-independent" is written all over the DotGNU system. No single VM, compiler, language, or system environment dominates it.
But try to run GNU, if you can.
Anyway, the group eventually hopes to offer the ability to do anything more easily with some relation to DotGNU (as I observe things).
3. What happened in October?
Major shakedown. Much of the Steering Committee has been quiet on the developers list for quite some time. And Rhys, who formerly dominated development of pnet almost completely, announced plans to scale down. The virtual identities group quieted down, the VRS developers disappeared for a while, and phpGroupWare stayed mostly independent of the "mainstream" DotGNU happenings. And pnet hadn't done a release in a while.
So concerned third parties, notably Peter Minten and Jonathan Springer, announced their worries. And everything started moving again, with help from Brandon Bremen, Gopal.V, Sylvain Pasche, Chris Smith, Eric Altendorf, Robert Hwang, Rich Baumann, and quite a few others (who hopefully won't be offended by their missing names) who suddenly started hacking pnet. This has so far culminated in pnet bootstrapping purely on free software. [4]
Other amazing Phoenix [5] are:
- SEE/VRS: Eric Altendorf, Chris Smith, Ian Fung, and myself started pushing the concepts of the Secure Execution Environment, Virtual Remote Server, and Goldwater concepts around, trying to find a way to implement them.
- Interoperable Virtual Identities: It seemed for a while that DotGNU would lose interoperable auth, in favor of a pure macs@Freport solution. Well, with the beginnings of renewed discussion on interop VI, or GBFM :), things are looking up.
- The website: fallen into disrepair, Rich Baumann and Gopal.V have announcements again. Look at the front page; things are quite busy. I, on the other hand, have not gotten around to committing the SEE description page I wrote about a year ago. :(
- Treecc multi-language support: Peter Minten has added support for two new languages to treecc, the aspect-oriented compiler writing tool.
- Pnetlib: geez, this was just embarrassing before. (Somewhat separate from pnet; different package and all that.
- Uri: The System.Uri class, mostly written by myself, is notorious for its instability. Well, we're diving back in.
- DotGNU Promotion: Brandon Bremen is working on a promotional article. And witness this article, and the Slashdot announce, and etc.
4. Why does this release deserve all this media attention?
Because everything has been so terribly exciting these past few weeks! As Peter Minten said, "A year ago there was something, and now that something works."
As stated previously, pnetlib can now be compiled with cscc-cs. This opens up development on the GPL'd (with linking exception) core library.
Also, pnet is no longer pure CLI. Support for Java™, C, Parrot, and whatever else you'd like to add is on the way.
I came to the DotGNU project looking for a better development environment than those available now. One day in the future, it will get there; hopefully, I'm helping to speed them towards that goal. If you find current development environments inadequate in any way, I ask that you have a look and see how DotGNU can fit into your development.
As with the Hurd: If the possibilities aren't endless, what's the point?
5. Where do I go next?
Well, if you have Red Hat 7.2, Mandrake 9.0, or Debian sid, packages for your system are available via the preceding links.
Otherwise, visit Southern Storm Software and grab treecc, pnet, and pnetlib.
All of these packages & RPMs are also available on your favorite GNU mirror, in directory dotgnu-pnet/.
Finally, join the discussion at developers AT dotgnu DOT org!
Footnotes
[1] ".NET" is a marketing term used by Microsoft. The actual platform is better referred to by neutral parties as CLI (Common Language Infrastructure).
[2] IL is Intermediate Language, referring to both IL assembly and IL bytecode in my usage.
[3] No, I don't really know what aspect-oriented programming is, or how it works. However, the benefits as they pertain to compilers are well explained in this article by Rhys Weatherley. Or in the source code.
[4] Previously, cscc-cs (the C# frontend to cscc, the compiler collection known as "Gargle Blaster Foo Muncher") had been unable to compile the standard library, a major obstacle in development of said library.
[5] When I asked about a plural for the word "Phoenix", mdupont said: there is only one...and it is immortal...it is a singleton object ;)
|