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!"
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.
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
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
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?
See the thing is you can,
A) Develop for the propriety C# dependent on a company which might decide tommorow that the language is a dead end and drop it leaving developers in limbo.
B) Develop for the subset of C# implemented by an open source system and have a far longer lifetime guarentee for your system.
Sure for your average webmonkey it won't make much difference, but the people who are spending the big money in developing systems that will still be around in 2020 they'll go for option B.
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.
-- Ed Avis ed@membled.com
C# is not a Microsoft idea. It was actually created by a University (I searched hard for the link, I couldn't find it). The CLR idea and stuff was from them. MS did polish it up some, surely, but the core innovation came outside.
MS is kind of like the anti-PARC. Where Xerox PARC came up with revolutionary things but could never put them to market, MS stares so much at the market it can't come up with any revolutionary things. Thing is, they have anough money to buy the revolutionary things, and do what they do best, polish them and market and sell them.
Microsoft isn't going to do anything - This is just peachy for them. When you have the universe breathing down your neck because you're financially abusing everybody else in the universe, having somebody else implement your system on another platform is really a *good* thing. Makes MS look pretty good where anti-trust is concerned.
I'm guessing that the angry one here is probably Scott McNealy.
Sorry, Scott.
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!
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
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.
+++ David Watts 5495 0.0 0.5 1888 884
And Linux would be what? a trully innovative implementation of a 30 year old operating system using the same coding techniques.
The whole industry is the same. Lotus didn't invent the spreadsheet, Oracle didn't invent SQL, Apple didn't invent the windows and mouse GUI, Linus didn't invent UNIX. Most of the ideas in UNIX are taken from Multics.
Looking for an Information Security student project suggestion?
Try http://dotcrimeManifesto.com/
"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.
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
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
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 withUltimately, 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.
-1, Too Many Layers Of Abstraction
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.
Linux does not pretend to be something it's not. MS does.
War is necrophilia.
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.