Portable .NET Reaches A Quarter Million Lines
Pnet Guy writes: "Portable .NET is a component of the dotGNU meta project to provide a CLI (ECMA standard) platform for free software. The project true to its name runs on a variety of platform including Linux,Hurd and Cygwin GNU systems. To avoid any legal problems Pnet has decided to go the hard way and bootstrap our compiler off gcc. Unlike Mono which uses microsoft's runtime to run their compiler. Our premier developer Rhys Weatherly has contributed 254,423 lines written since Jan 1, 2001. Which amounts to about 5000 lines per week which is phenomenal for any programmer. He is dotGNU's one-man army. So join him in celebrating his quarter billion lines of his code." Update: 12/27 02:41 GMT by T : Note that as many readers have pointed out, that's just like the headline says -- a quarter million lines, rather than billion.
Some related links to check out include the
dotGNU home page,
the Southern Storm Software (Rhys Weatherley's shop, with Portable .NET information),
Mono's page and Pnet's CVS repository.
I once wrote a 'small' 150k line util. Before I left the company, I was asked to comment it, after decent amounts (ie, more than '// perform the calculation') of comments, the line count was around 230k.
So how many of the quarter million are comments then ?
I didn't read the article, so maybe there are more specifics. But um, so what? Are these quality lines of code? Comments? Have they been peer reviewed? Regression tested (you did write test cases before hand, right)? I mean almost any programmer can crank out 5000 lines of crap a week, big deal. If he's producing quality, reasonably bug free code, in this amount, good for him. Otherwise, I'm not so sure I'd be touting this is a big achievement. With one person writing the code, you're only getting one persons views, etc. They're aren't any sanity checks during design decisions or even better, another way of looking at the problem. That's a bad thing in my opinion.
there are no stupid questions, but there are a lot of inquisitive idiots
Exactly.... I can write 250,000 simicolons pretty fast, too.
.NET will damage Microsoft in any way is kidding themselves. And let's face facts here: what's good for Microsoft is bad for Linux. Period.
.NET and C# want to be, and you'll see Java staring back at you. And Java's got a 5 year head-start on .NET. It's *real* and has a proven track record. Why devote any time to infectious vaporware from Microsoft...
Not to mention that anyone who thinks that writing an open implementation of
Why not spend your time improving the threading implementation on Linux, for one thing? Java on Linux is one thing that has a chance in hell of defeating the Microsoft juggernaut. Ever done thread programming in C or C++? It sucks ass -- try it in Java and you'll see how clean a language *can* be if you think it out. Sure, Java's got some problems -- GUIs for one thing are a tad slow (though not bad on fast machines), but on the server, Java is king.
Look at what
Anyway, this whole thing seems like a colossal waste of time to me.
see ya,
-nate
This is no way a defence for MS, and even if it was, i do not think that that would make me an evil developer. .NET framework ? When compared to Win32 API it'a very big step forward for the developers who make money from Windows programming. I'd really like to hear comments of some programmers who has worked with J2EE and Java. Implementing something like MS passport may be a security problem, and i agree about it.But why most of the guys like to flame about what MS is doing with .NET technology, and totally ignore the technical framework these ideas are built on ? .NET framework, and C# are clearly superior to former MS software, and apart from being created by a monopoly they seem pretty good to me. If someone with o strong technical background and experience, would comment on why C# and/or .NET framework is evil, i'd read it with, and learn from it. Having C# and .NET Framework on Linux would be fine. Please try to explain why you don't need a good programming language and a proggramming api on linux ? or why it is bad. Do you think that MS is after money and Sun and Oracle are after something else ?
Ok, so did you take a look at the
Does anybody know how the two projects compare/cooperate? Both projects seem fairly active and doing very good work. I had assumed that Mono would be that part of DotGNU that provided the C# Compiler, Runtime and standard Libraries. But it seems that DotGNU also makes these parts with their portable net (PNet) together with their "Hailsorm" replacement.
.NET brings us.
The Mono project seems to be only interested in the C# language/compiler and runtime environment.
It is also interesting that the DotGNU project seems to have put a little more thought into the licensing issue. And in particular what it means to be a derived work (check their FAQ) in the new dynamic code environment that
Even though they are a GNU project they do not not use the ordinary GPL or the LGPL for their work but a GPL plus exception as also is used with GCC. This makes it possible to create derived works (in embedded devices for example where everything is linked together because you don't have a shared library loader) that with "normal" LGPL would be considered derived works.
Which is strange if you think about it. Ximian which sponsors Mono makes use of a more agressive copyleft then the 'regular' GNU project. Which means that if Mono "wins" then we will have more (forced/copylefted) free software then when the GNU project "wins". Never thought that a commercial company would be more agressive about copyleft then the GNU project.
Does anybody have more information about the why/how of the two (competing?) projects?
The DotGNU website and the Mono website don't seem to talk about the other project even though it is obvious that they are doing the same sort of thing.
Ooooh, let's give those lamer moderators a big ol' present this Boxing Day: I got points to burn, guys.
Microsoft once again leads the way for Linux. Amazing, isn't it, how many Linux projects are simply clones of existing Microsoft software.
Need a word processor? Get a Word clone. Need a flowchart tool? Get a Visio clone. Need a vector illustrator? Get an Illustrator clone. Can't find a clone? Run WINE and use the original!
For a community that loathes Microsoft, there certainly seems to be a lot of effort to re-create Windows and Windows apps.
--
Don't like it? Respond with words, not karma.
Which is still a fuckload of code. I used sloccount, which is not perfect, but is a pretty informative tool none the less.
/tmp/pnet/pnet-0.2.6
./sloccount
Totals grouped by language (dominant language first)
ansic: 121564 (81.39%)
sh: 17160 (11.49%)
yacc: 5634 (3.77%)
lex: 2091 (1.40%)
asm: 1937 (1.30%)
cpp: 961 (0.64%)
exp: 20 (0.01%)
Total Physical Source Lines of Code (SLOC) = 149,367
Development Effort Estimate, Person-Years = 38.37
Schedule Estimate, Years = 2.14
Estimated Average Number of Developers = 17.92
Total Estimated Cost to Develop = $ 5,183,332
It appears that the damn lameness filter is preventing me from posting this, so i have trimmed the output a bit.
Mono is more full-featured than DotGNU in a number of important ways:
.NET system until it is able to be self-hosted
- Mono has a nearly fully functional VM with Jit.
- DotGNU has no VM at all
- Mono nearly has a c# compiler written in c#.
- DotGNU intends to use gcc and a C compiled C# compiler.
- Mono has more than 60% of the class libraries written
- DotGNU has only a fraction of classes written.
- Mono is much better coordinated and has better public relations thanks to Miguel
- Mono has regression analysis scripts
- As far as I can tell Mono has better i18n support
Problems with Mono:
- no garbage collection
- initially hosted via Microsoft's
Mono unknowns:
- will it depend on Gtk/GNOME?
Initially Java had a lot of grassroots support by Open Source developers until Sun renegged on the verbal promise to submit the Java language to ISO as well as EMCA. This basically showed that they have nothing but contempt for open source development. The Java language, standard library and VM development are still essentially an exclusively Sun-controlled process. It is not uncommon to have very fundamental Java bugs FOR YEARS in their bug databases that could easily be fixed by an open source effort in days. Say what you will of Microsoft - but they appeased the developers. Microsoft got EMCA approval for C# and its libraries and actually solicits and welcomes comments from the programming community - unlike Sun where you only have a voice if you are a large computer firm that pays $250,000 per year to be heard/ignored in the poorly named "Java Community Process".
The CLR VM is also far more advanced than the Java VM from a technical point of view and can more efficiently host non garbage collecting languages. CLR supports delegates which the Java VM has no equivalent. CLR optionally supports non-safe code for increased speed (great for drivers especially). C# is simply more elegant than Java in a number of ways (such as automatically boxing builtin types for collections, the "using" resource clause) resulting in far fewer lines of code in C# for a most tasks - and reduced potential errors as result. The most important point is that Microsoft knows how to develop a polished piece of software. Sun Micro is not a software company, but a hardware company. Remember until the Sun/Microsoft Java lawsuit that it was Microsoft that had the fastest Java Virtual Machine - not Sun. First to market does not necessarily win the race. Sorry, Sun, better luck next time.
my questions are:
does it work?
is it buggy?
how reliable is it?
in my opinion well commented code is just as important as the code itself.
what good is code that noone knows anything about except the author?
//comments are a good thing
/* lets not criticize them */
Because Java is still owned solely by Sun with no committee governing it's existance (C# and .NET are actually ECMA-standardized (as of December 13th) and both standards are being fast-tracked to ISO) and C++ is both complicated and open to errors (buffer overflows, anybody?) You get a platform meant to be compiled and not interpretted, which does fly, and a massive platform that abstracts much of what an OS needs to do.
It's ANSI C.
If it's this long, then it's not a suitable implementation
language.
He should have used a more capable language (read C++)
and avoid rewriting and copy/pasting the whole world
including data structures.
To understand how big code is written: www.kde.org
--exa--