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!"
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...
Tournament Management Online &
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?
Blink
How long before Microsoft changes or adds something for "security" reasons and prevents you fron using open-source .NET? Maybe we need to start a betting pool.
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!!
we are all one consciousness experiencing itself subjectively - bill hicks
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.
I'd rather be a conservative nutjob than a liberal with no nuts and no job.
before, the portable.net libraries had to be compiled using a certain proprietary C# compiler. Now, pnet can compile them by itself. So it is completely independant of proprietary software making it 100% free.
I doubt that will happen. They'll add something and make the open-source engine work mostly, but as a less-reliable system with fewer features.
.NET move was a pretty good move for MS.
And they aren't going to get MS sorts using it (even ignoring the pre-installed issue that beat even Netscape's best efforts), because MS put lots of money, time, and talent into their own VM, and the GNU one just ain't gonna be significantly better any time soon.
The
May we never see th
Yup they have copyrights but we are reproducing our implementation from ECMA spec (334 and 335) which are public
So their copyrights don't matter as we're not using their code . Their patents can be contested as ECMA does not look lightly on submarine patents
And we have GNu to support us !
Quidquid latine dictum sit, altum videtur
The C programming language does everything I need it to do.
.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?
.NET succeed.
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
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
People: Make up your mind, or find a new hobby. people.
If you celebrate Xmas, befriend me (538
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.
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.
If you are writing a C compiler in C, how do you compile it in the first place?
Traditionally, you compile by hand, which produces crappy but working code.. then you use the resulting compiler to re-compile, yielding clean code.
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
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.
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!
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
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.
.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.
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
Is thes even feasible to do?
Nope.
.NET always faster then java if implemented properly on intel architecture. It is the fact that it is a little endian standard while java is big endian. Assuming everything else equal .NET will always win. That is besides the fact that many third llparty developers will actually prefer to deal with an ECMA standard language then with a Sun standard.
.NET. Sink Java. And so far it is proceeding very well on target and on schedule with the help of the GNU community. Nothing bad about it, I hate java so any means of killing it should be cherished and supported. The problem is that after sinking java MSFT can deal with competitors on their own turf exactly as you describe and we will be back to square one where we began. To perl and python as the only "portable" languages.
First, they are trying to do a full ECMA certification for NET and make it standard. In order to do what you are saying they will have to withdraw from the certification standard which immediately gives them a serious disadvantage in the war against java which is what this shit is about.
Second, deciding to apply for the certification process they have taken into account that making the language a standard will create alternative implementations. Not just GNU. There will be commercial ones as well. And that is the idea. Because there is something that makes
This is the idea of
Baker's Law: Misery no longer loves company. Nowadays it insists on it
http://www.sigsegv.cx/
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. Sun mhas also fully opened up the Java development standards process under the new Java Community Process (JCP).
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.
"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.
This is all true, but right now people who choose to help or participate in the DotGNU/Portable.NET project are precluded from participating in mono-hackers which is the mailing list devoted to technical discussions about Mono. That is a clear limit placed upon the Mono project because of it's affiliation with Ximian. Miguel does not want Mono developers who are also affiliated with Portable.NET on the mono-hackers list because of confidential information relating to contracts Ximian has, or will have, with various groups. This limits Mono developers, who are also interested in Portable.NET, from contributing to technical discussions about Mono.
Then the community has an excuse to fork the standard. The FOSS community has an impressive degree of leverage -- just look at how Bruce Perens' threats to fork Web standards made the W3C reject RAND licensing.
.NET framework is a very useful tool in itself, without MS compatibility. It suits the FSF's need for a flexible, secure, fast, language- (as long as the app is somewhat C-like, anyway) and platform-independent infrastructure for the development of network aware applications and services.
Besides, the
OLPC Australia
The MS reps I've heard have stated multiple times .NET is a Windows-only system, only that it would "play nice" with other standards.
.NET on windows and windows only.
.NET vs Java: Java gives you multiple vendors while .NET traps you into one.
.NET run on other platforms, but you can bet the bank they'll do everything in their power to keep it a "windows preferred" platform.
They're quite frank about keeping
In fact that's what Sun is selling in every debate about
MS may let
Why not try writing them in Objective C. It's very powerful is flexible enough to have bridges to Perl, Java, TCL, Python and Ruby and allows you direct intergation of plain C as well as close integration of C++. Not only this but if you're into frameworks, you'll find that Cocoa has quite a lot of them.
cant_get_a_good_nick wrote:
n ium/mgoals.html).
.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.
.Net is available for Windows, and well on its way for Linux and OS X. Longhorn may well be Millennium.
> 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/Millen
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
I don't think we have too long to wait.
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)
This place is really getting full of M$ trolls.
.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...
.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!
.NET$ aberration and you will be the one laughing, not Bill and his monkeys.
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
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
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
Wake up people!
Zruty
Zruty -- Ruler of Zrutland
There are four GUIs available for Mono which can be used for Portable .NET and Microsoft .NET too.
.DLLs for Windows.Forms to run on Windows.
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
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.
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):
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.
Why aren't they porting .NET/Windows Forms and so on to OS-X? For starters, it would make it easier to maintain their Office software base on a common platform. Are they worried that independant developers would do the same and mess up their master plan?
Sun has to strive for true platform independence with its Java, but since Microsoft is the Apple silent partner, what would be wrong, from Microsoft's dark, evil perspective, of running .NET on both Windows and Mac -- they run Office both places while there is no such thing as Linux-Office.
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.
What precisely do you mean by "full ECMA certification"? Last I heard it was just the language itself and none of the libraries. Which is effectively the same as none of it being submitted since MS can still break compatibility across platforms that they themselves don't support. So it boils down to trust, which I have zero of in MS.
.class file, the constant pool contains
As for your endianness claims, here's part of two messages from a Google group search on the issue:
One:
"Java specifies the endianness used in object files, and (I believe) the
endianness used when writing numbers to binary data files, but the
language is defined in such a way that there is no way for a program to
tell which endianness is used for in-memory representations. So long
as the JVM (Java Virtual Machine) implementation does the correct
conversions when reading in `.class' files and when read/writing binary
data files, it is free to use a little-endian represention internally."
Two:
"If you'd bothered to study the JVM before jumping to such conclusions
you'd know that, in a
_unaligned_ data of _variable-length_, endianness is completely
irrelevant. The thing _has_ to be parsed byte-by-byte... Not even
the bytecode vectors are aligned within the file, although the
tableswitch' and 'lookupswitch' bytecodes are word-aligned within the
code vectors, so these are the only constructs that would require
extra work on a little-endian machine, and only in the 25% of cases
where the code vector happens to be word-aligned by accident....
Incidentally the format of the constant pool _inside the JVM_ is
completely undefined and up to the implementor."
"Gold still represents the ultimate form of payment in the world." - Alan Greenspan, 1999
Ok, that some people don't understand the big importance of a good, solid, 100% compatible .NET framework on Linux, fine.
.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).
.NET: DotGNU!
.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).
.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.
But... why 2 frameworks? (Mono and DotGNU). Why is it so damn hard to just focus on the importance of a solid
Now, Mono can use more developers but these developers are working on their own port of
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
As a
Never underestimate the relief of true separation of Religion and State.