Slashdot Mirror


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.

15 of 303 comments (clear)

  1. But how many are comments? by SuzanneA · · Score: 2, Interesting
    Well commented code can end up with quite a high percentage of the code base as commments.

    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 ?

  2. Hmmm by cnkeller · · Score: 3, Interesting
    Which amounts to about 5000 lines per week which is phenomenal for any programmer. He is dotGNU's one-man army.

    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

    1. Re:Hmmm by JediTrainer · · Score: 5, Interesting

      This is a question that I face at work all the time.

      The reality is that you CAN make use of mediocre programmers too, but you need to be careful.

      The gifted programmer can take the lead of any coding that goes on and write the core components. That gifted programmer should also design the layout of the code and properly set up the abstraction of appropriate components. The mediocre programmers can then be assigned some of the easier programming tasks, while the gifted programmer resumes efforts on the more difficult ones.

      You'll never get away from having programmers of different skill levels working together. But - every project should have at least one gifted programmer to lead the way. The rest of the programmers can still be useful, and can catch each other's mistakes. They might even catch a mistake in the gifted programmer's code the odd time. When you're coding in a rush, mistakes happen.

      The same person looking at the same code over and over again will get used to seeing that code and sometimes silly mistakes might take a while to uncover, because after time it starts to 'look right'. No matter how gifted a programmer is, mistakes happen. It's how efficiently you can find and correct them that counts.

      --

      You can accomplish anything you set your mind to. The impossible just takes a little longer.
  3. Re:okay by nate.sammons · · Score: 1, Interesting

    Exactly.... I can write 250,000 simicolons pretty fast, too.

    Not to mention that anyone who thinks that writing an open implementation of .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.

    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 .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...

    Anyway, this whole thing seems like a colossal waste of time to me.

    see ya,

    -nate

  4. Ok, maybe you won't like this but.. by Fuzuli · · Score: 3, Interesting

    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.
    Ok, so did you take a look at the .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 ?

    1. Re:Ok, maybe you won't like this but.. by Anonymous Coward · · Score: 1, Interesting

      There are at least 3 other views competing in the same mindspace with .NET. The Java crowd dislikes .NET because it rips off good ideas from them, and removes the technical lead they used to have, while the C/C++ crowd don't see much use for Java nor C#. And then you have all these scripting sects, that is, Perl, Python, Tcl, and so on, who have their reasons to believe that their approach is best.

      The anti-crowd is, this time, not necessarily anti-M$.

      It's much more some more of the holy wars of the kind of vi/emacs, apple/ibm.

  5. Difference/Cooperatio between DotGNU/PNet and Mono by Carl · · Score: 4, Interesting

    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.

    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 .NET brings us.

    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.

  6. Ah, the portable .NET by FFFish · · Score: 2, Interesting

    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.
  7. The actual count: 149,367 by PureFiction · · Score: 5, Interesting

    Which is still a fuckload of code. I used sloccount, which is not perfect, but is a pretty informative tool none the less.

    ./sloccount /tmp/pnet/pnet-0.2.6

    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.

  8. Here are the main differences by Anonymous Coward · · Score: 4, Interesting

    Mono is more full-featured than DotGNU in a number of important ways:

    - 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 .NET system until it is able to be self-hosted

    Mono unknowns:

    - will it depend on Gtk/GNOME?

    1. Re:Here are the main differences by rhysweatherley · · Score: 3, Interesting

      DotGNU Portable.NET has a functional VM right now too. I haven't bothered with a JIT yet, because the primary goals are portability, stability, and completeness. I try to do things in order. A JIT would take a few weeks once the rest of the infrastructure is in place. No point doing it until the basics are there.

      DotGNU Portable.NET has a fraction of classes written, but only because we have 1 very busy developer working full time on this, and my time is split across the entire project. Contributions are always welcome.

      DotGNU Portable.NET has garbage collection now, using the Hans-Boehm collector that is used by gcc.

      DotGNU has less public relations only because the media have bought into the Mono hype and haven't bothered to talk to DotGNU to get the other side of the story. Even when we seek them out to correct blatant mistakes in their articles.

  9. I'll tell you why Open Source dislikes Java by Anonymous Coward · · Score: 1, Interesting

    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.

  10. why are we bickering about how many lines of code? by Mark19960 · · Score: 2, Interesting

    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 */

  11. Re:Why bother .NET? by Anonymous Coward · · Score: 1, Interesting

    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.

  12. This many lines only show incompetency of coder by exa · · Score: 2, Interesting

    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--