Slashdot Mirror


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

189 of 422 comments (clear)

  1. .NET for Linux by RebelTycoon · · Score: 5, Funny

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

    1. Re:.NET for Linux by Phil+Wilkins · · Score: 5, Funny

      A lot of their ideas are actually not that bad

      A lot of their ideas are actually someone else's.

    2. Re:.NET for Linux by the+eric+conspiracy · · Score: 3, Informative

      granted that word and excel were practically taken from other suites

      Word is a junk product as far as I am concened, but Excel 1.0 was clearly superior to the competition when it came out for the Mac. I know several people who dumped their PCs running Lotus after working with Excal. Of course they switched back when Excel came out for Windows.

      Unfortunately Microsoft's market position has effectively quashed any attempts to displace Excel as the standard spreadsheet. There was a time when Wingz was better than Excel, and Lotus had a very interesting product for OS/2 for a while. This is very bad as far as I am concerned because Excel is really oriented more towards business users than I would like - which makes it harder to use for the scientific and engineering applications I am involved in.

    3. Re:.NET for Linux by cant_get_a_good_nick · · Score: 2

      A lot of their ideas are actually not that bad

      Microsoft hasn't been all that good at innovating. The only real innovations I can think of were Microsoft Bob, and it's bastard child from Hell clippy. Neither score major points with me, though I give them points for being attempts at least to break away from the WIMP metaphor..

    4. Re:.NET for Linux by cant_get_a_good_nick · · Score: 3, Insightful

      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.

    5. Re:.NET for Linux by drinkypoo · · Score: 3, Insightful
      Microsoft has has plenty of good ideas, or at least been the first to implement plenty of good ideas. The one-button way to do everything (the start-button) makes good sense, now everyone is copying this interface. Microsoft even moved still more things into it. Of course the taskbar (who made that up, anyway? arguably you could say it was xsm, assuming xsm predated the first version of CDE (or openview) which featured a toolbar. I can't think of a window manager older than that that does things any way but by pop-up menus. Longhorn will feature a taskbar (as we have seen in recent screenshots) so a lot of the Mac types who don't know any better will think that Windows is copying mac; Let them know better.

      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.'"
    6. Re:.NET for Linux by Zeinfeld · · Score: 5, Insightful
      Microsoft hasn't been all that good at innovating. [vcnet.com]

      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/
    7. Re:.NET for Linux by Otter · · Score: 4, Funny
      So confused... Is it weekends that we like MS, or just Saturdays, or just 6-7pm EST...

      Rule 1: Everything from Microsoft is bad.
      Rule 2: Unless Miguel says it's good, in which case it's good.
      Rule 3: If you need it to play games, it's a necessary evil. X-Box purchases can be justified by asserting that they cost Microsoft money, and one is therefore attacking "Micro$haft" by buying one.

    8. Re:.NET for Linux by mrbnsn · · Score: 4, Informative
      The reference you are looking for is Colusa Software, a spinoff from research at U.C. Berkeley.
    9. Re:.NET for Linux by Malcontent · · Score: 3, Insightful

      Linux does not pretend to be something it's not. MS does.

      --

      War is necrophilia.

    10. Re:.NET for Linux by TummyX · · Score: 2, Funny


      Linux does not pretend to be something it's not.


      It doesn't pretend to be a viable desktop replacement for windows?

    11. Re:.NET for Linux by elvum · · Score: 2

      To be fair, there are a very large number of people in the Open Source and Free Software movements who spend their free time copying Microsoft back :-)

    12. Re:.NET for Linux by aminorex · · Score: 2

      I find Linux to be substantially superior to Windows
      as a desktop OS. Firstly, if something is broken,
      I can fix it. Secondly, if an API doesn't work as
      advertised or is undocumented, I can read the code
      and use it anyhow. Thirdly, all of the major
      productivity tools are available for free (cf.
      OpenOffice). Fourthly, it runs pretty much anything
      Windows will run (cf. crossover plugin, Wine).
      Fifthly, it's faster and takes less memory, so it
      runs well on more hardware. Sixthly, I can
      customize the UI much more effectively, without
      replacing binary code. Seventhly, I can get
      security updates much more rapidly as vulnerabilities
      emerge, and when I do, I don't have to sign a
      license permitting an untrustworthy entity to
      remotely control and secretly install arbitrary
      untrusted software on my system. Eighthly,
      I don't have to finance Bill Gates' questionable
      charitable causes. Ninthly, I'm not supporting
      the role of megacorporations in destroying
      liberal democracy.... I could go on, but that's
      more than enough.

      --
      -I like my women like I like my tea: green-
    13. Re:.NET for Linux by Stephen+VanDahm · · Score: 2

      And Linux would be what? a trully innovative implementation of a 30 year old operating system using the same coding techniques.

      But Linux developers don't usually claim to be innovative, Microsoft does.

      Steve

    14. Re:.NET for Linux by DickBreath · · Score: 2

      Microsoft has has plenty of good ideas, or at least been the first to implement plenty of good ideas.

      Some good ideas yes. I credit that to pouring tons of money on projects. Money that can be extorted from a locked in monopoly base. Also, Microsoft doesn't have the concerns of a real business of releasing good products. Microsoft can release many generations of screwed up products before finally getting it right. Most others don't survive more than about two screwed up releases. That is, in a competitive market.

      The one-button way to do everything (the start-button) makes good sense, now everyone is copying this interface.

      While I don't have a problem with the one-button interface, I just want to point out a flaw.

      Just because everyone copies it doesn't make it a good interface. Maybe just usable.

      For a long time, Detroit made the American cars that were the model everyone else aspired to be. What was the standard copied interface? Courtesy light controlled by a knob to the driver's left on instrument panel. Windshield wipers controlled by another complex knob on instrument panel. A foot pedal to switch headlights to bright.

      What did Japan do? How about put the switch next to what it controls, such as a 3-position switch directly on the cuouresy light itself. How about the headlight bright beam on a "light stick" that controls all exterior lights, turn signals, body lights, headlights, bright headlights, etc. How about the other stick controlling everything about windshield wipers.

      Now even the American cars use the same controls.

      My point? Just because an interface element is widely copied does not make it good. (Or bad.)

      As a longtime Mac user, I can recognize one true innovation that Microsoft brought to GUI's. I don't think most people at Microsoft even appreciated it. The focus. The Mac did not have the concept of "the focus". No, really, it didn't. The idea that the focus is not only a text selection when the focus is on a text control, but the idea that the focus can be moved to any control, any button, any radio button, any dropdown menu, etc. This enables the entire system to be capable of being run without any mouse. Pity that Windows XP slacks away from this ideal and makes it such that some basic window manipulation operations now require a mouse. The focus was a true innovation. One that everyone else has copied, and for the better I might add.

      --

      I'll see your senator, and I'll raise you two judges.
    15. Re:.NET for Linux by Malcontent · · Score: 2

      No it does not, I think you are confusing macOS-X which does promise to be a viable replacement for windows. You may have seen the commercials but I assure you they are made by apple. There are no Linux commercials which promise such a thing.

      Linux does however have a very nice desktop environment which I greatly enjoy using.

      --

      War is necrophilia.

    16. Re:.NET for Linux by rnd() · · Score: 2
      Linux does not pretend to be something it's not. MS does.


      If "linux" (aka the oss community consisting of for-profit companies, not-for-profit companies, and generous and self-interested individuals oriented toward developing software to run on top of the gnu-linux kernel) had a marketing department, people would make the same accusation.

      Since "it" doesn't, "we" rely on urban legends and viral marketing.
      Microsoft wishes it could market this way, but it can't.

      --

      Amazing magic tricks

    17. Re:.NET for Linux by drinkypoo · · Score: 2
      Oddly enough I agree with pretty much everything you said. I was just talking to my dad a couple months ago about the headlight interface on all cars today and how it came from Japan. I love it, of course. Of course they didn't do it solely for UI improvement; All of those controls go into one part which costs a lot, thereby simplifying building the car, and making more money selling parts when any part of it fails. Still, the foot switch (while fun, and okay on a car with a slush box like almost all american cars were for a long time) was pretty silly. Your feet do super-critical things, and turning on the brights is not one of these things. Turning them off might be, though...

      Microsoft, of course, did not invent focus. That comes from various X-based systems. I don't know if the ability to focus on a button came from windows or not, I'm a little loose on my release chronology.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  2. DotGnu and Mono by fizz-beyond · · Score: 5, Interesting

    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
    1. Re:DotGnu and Mono by manyoso · · Score: 5, Informative

      Mono's compiler is written in C#. Mono has a fast JIT. Mono's libraries include preliminary versions of Microsoft.NET libraries (see non-ECMA) like System.Windows.Forms and support for ASP.NET and ADO.NET. Mono is a joint project of Ximian and the larger community. Mono's commercial nature also limits community participation.

      DotGNU is a GNU project and has a CLR/.NET environment sub-project called Portable.NET. Some of the key differences with Portable.NET and Mono are:

      PNet has a C# compiler written in C that is very fast, but not as complete. As a consequence it does not suffer from bootstrapping problems.

      PNet's compiler architecture is meant to provide great support for new CIL language compilers. Currently, cscc (that's the IL compiler suite) supports compiling C and C# to CIL with other languages on the way. It can also compile a subset of C# to the JVM.

      PNet only has an interpreter called ilrun (no JIT) at this time. PNet's libraries are not as far along, but one of the goals is complete ECMA compatibility while Mono's goal is to track Microsoft.NET as
      closely as possible. PNet is also talking with the Perl/Parrot folks about supporting C# on the next generation Perl runtime.

    2. Re:DotGnu and Mono by nd · · Score: 2, Interesting

      Mono is a joint project of Ximian and the larger community. Mono's commercial nature also limits community participation.

      Can you back this point up? My understanding is that Mono has a LOT of community participation, where Portable.NET is for the most part a one-man show. It seems to me that the "community" is largely backing Mono.

    3. Re:DotGnu and Mono by manyoso · · Score: 2, Troll

      Because of Mono's affiliation with Ximian and its commercial interest some developers are precluded from participating in the mono-hackers development mailing list. Specifically, if a Mono developer is also associated with the DotGNU project or expresses an interest in Portable.NET, they are no longer allowed to participate in the mono-hackers mailing list.

    4. Re:DotGnu and Mono by Dave2+Wickham · · Score: 5, Funny
      Meh, gimme my ed ;)
      [dave@tc11 dave]$ touch my_file
      [dave@tc11 dave]$ ed my_file
      0
      a
      Ed rocks!!!
      Ed combines ease of use and fuctionality in one program!
      It rules!
      .
      2
      Ed combines ease of use and fuctionality in one program!
      s/fuctionality/functionality/
      2
      Ed combines ease of use and functionality in one program!
      w
      80
      q
      [dave@tc11 dave]$
      </sarcasm>

      (BTW, someone posted the source for a great clone of ed, indistiguishable from the standard version for normal users on everything2.com:
      int main( void )
      {
      char *strin;
      for(;;)
      {
      printf( "- " );
      scanf( "%s", strin );
      printf( "?\n" );
      }
      }
      Oh crap, I'm really off-topic here...
    5. Re:DotGnu and Mono by manyoso · · Score: 2

      Read the post. He never said mono didn't have community developers. "Mono's commercial nature also limits community participation."

    6. Re:DotGnu and Mono by Ctrl-Z · · Score: 2


      Work is being pursued on the topic of System.Windows.Forms using WineLib on non-Win32 architectures.

      Please read the Mono System.Windows.Forms page for more information.

      --
      www.timcoleman.com is a total waste of your time. Never go there.
    7. Re:DotGnu and Mono by Ctrl-Z · · Score: 2


      Sorry, the link should go here.

      Gotta preview next time.

      --
      www.timcoleman.com is a total waste of your time. Never go there.
    8. Re:DotGnu and Mono by cant_get_a_good_nick · · Score: 3, Informative

      I laughed at your ed source, I wish I had mod points.. I hated vi "it's better than ed" so much when I was programming UNIX at school, I actually coded on a mac and ftp'ed the code over to UNIX, i hated UNIX editors that much. You do realize your code will core dump on every read, a pointer isn't a buffer. And since you're discarding the string anyway...


      int main( void )
      {
      char buffer[1000];
      for(;;)
      {
      printf( "- " );
      fgets(buffer, 1000, stdin);
      printf( "?\n" );
      }
      }

    9. Re:DotGnu and Mono by manyoso · · Score: 2

      All true but it completely misses the 'limit' I was talking about. It is not a philosophical argument ;) Some mono developers are not allowed to participate in the mono-hackers mailing list (where technical discussions about Mono reside) because they are also interested in helping and participating in the DotGNU/Portable.NET project. That is what I meant and that is _all_ that I meant.

    10. Re:DotGnu and Mono by Malcontent · · Score: 2

      I thought .NET was an open system. That's what the MS press releases seem to indicate.

      --

      War is necrophilia.

  3. i can't wait ... by Anonymous Coward · · Score: 2, Funny

    all virii now cross-platform

    1. Re:i can't wait ... by koko775 · · Score: 2, Funny

      **In A.D. 2002 OS War Was Begun** Linus: What happen ? IT personnel: Someone set up us the .NET server. Operator: We get signal. Linus: What ! Operator: Main CRT screen turn on. Linus: Its you !! Microsoft: Hello gentlemen !! Microsoft: All your bash are belong to us. Microsoft: You are on the way to destruction. Linus: What you say !! Microsoft: You have no chance to survive make your time. Microsoft: HA HA HA HA....

    2. Re:i can't wait ... by cant_get_a_good_nick · · Score: 2

      now? Silly rabbit, Microsoft has had the cross platform thing down for YEARS. I had the MS Word Concept Macro on SPARC/Solaris 2.51 running Word 6 on WABI.

      ye of little faith, thinking Microsoft would have to wait until 2002 for a cross platform threat...

    3. Re:i can't wait ... by Melantha_Bacchae · · Score: 5, Interesting

      cant_get_a_good_nick wrote:

      > 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/Millenn ium/mgoals.html).

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

      I don't think we have too long to wait. .Net is available for Windows, and well on its way for Linux and OS X. Longhorn may well be Millennium.

      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)

    4. Re:i can't wait ... by Melantha_Bacchae · · Score: 2

      koko775 wrote:

      > **In A.D. 2002 OS War Was Begun**

      Actually, it goes like this:

      You turn around, and all your lovely Linux MAME servers are now displaying a boot screen logo that says "MILLENNIUM" in gold letters on a blue background.

      A little later, after the government tries to blow Microsoft up to free the world's computers, the following words appear on all monitors:

      "Earth.. Destroy.. Erase.. Suppression.. Dominate.. Terror.. Prosperity.. Oppulence.. Oppression.. Revolution.. Kingdom.."

      Then Microsoft counter attacks.

      Don't worry though. Godzilla is on his way. He'll destroy the threat to your computers, kill the evil government collaborator, and trash half your city. ;) Next time, listen to him when he tries to warn you.

      Quote and plot from "Godzilla 2000 Millennium" (Japanese version).

    5. Re:i can't wait ... by antirename · · Score: 2

      If we weren't talking about Microsoft, I'd reccomend that you take off the tinfoil hat. The cd in the mail idea is interesting, but they'd only snag AOL users anyway.

    6. Re:i can't wait ... by cant_get_a_good_nick · · Score: 2

      the OS itself could be given away on CD

      In the early days (pre Windows 3.11 days) they essentially did give the OS away, they had a windows runtime for all those folks who didn't have Windows. Granted, this was still on top of DOS, and at those times Windows was less an OS in itself than a presentation manager, but they gave it away.

      No, they had to wait until...
      Though you did make your political point about them co-opting the world with .NET, that doesn't change the fact that the first cross platform virus was MS with Word 6 macros run essentially the same (because of lax security) on Word 6 for Windows, Mac, and any environment that could emulate enough for one or the other (like WABI on Solaris)

    7. Re:i can't wait ... by IamTheRealMike · · Score: 2
      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/)?

      [sigh] It's called Borg because they were researching self tuning distributed systems, which is how the fictional Borg were supposed to operate. It is NOT called Borg because they wish to take over the world.

      Get a grip!

  4. wow by absurdhero · · Score: 2, Informative

    This is a huge milestone. Now everyone who has two hands and 10 fingers needs to get in there and help rhys out! There are lots of things for people to work on. From Documentation to Libraries. so go to http://dotgnu.org and get started!

    1. Re:wow by 0x0d0a · · Score: 2

      And have *you* contributed anything whatsoever to dotGNU?

    2. Re:wow by 0x0d0a · · Score: 2

      Fair enough -- I'm sorry that I criticized your work. (I'm one of the people that's a little uncomfortable with .NET, and would hardly work on it, and have stuck with other open-source projects like rxvt, snes9x, dillo, gtk-gnutella...).

      My irritation stemmed from the amount of hippocracy on Slashdot -- calls to action, claims that people are going to do political activism...but then no one does anything, including the people trying to convince people to do something. You're the genuine article, and I was out of line. :-)

  5. Re:Cool by JonWan · · Score: 3, Insightful

    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.

  6. objective analysis by galacticdruid · · Score: 4, Interesting

    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
    1. Re:objective analysis by manyoso · · Score: 5, Informative

      You should have a look at #Develop. I really like it and it is Free Software too :-)

      http://www.icsharpcode.net/OpenSource/SD/default .a sp

    2. Re:objective analysis by (startx) · · Score: 2

      agreed. I hate to say it, but C# in vs.net is incredibly easy. People tend to forget that Billy boy & co. started MS with compilers/languages, and only moved into operating systems with the guy who wrote CP/M refused to sign an NDA with IBM just to talk to them about there new peecee.

    3. Re:objective analysis by Ed+Avis · · Score: 5, Insightful

      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
    4. Re:objective analysis by Daleks · · Score: 3, Funny

      You know - I'm a tried and true perl and open source hacker and believer.

      But in terms of pure technological merit, c# is a damn good language!

      Compared to Perl, everything looks like a damn good language.

    5. Re:objective analysis by firewrought · · Score: 3, Insightful
      c# is a damn good language

      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 with .NET for a month and almost cried at how easy it is to navigate and read compared to VisualStudio's crappy help browser (yes, even when run externally).

      Ultimately, 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
    6. Re:objective analysis by g4dget · · Score: 2
      But in terms of pure technological merit, c# is a damn good language!

      I'd say it's "decent", a modest improvement over Java.

      It's very exciting to be able to build stuff using vs.net, and deploy on linux.

      Yuck. VisualStudio is probably the main reason why Windows software sucks so badly: it lets people without a clue throw together software they have no business writing, and it makes on-going software maintenance and evolution unnecessarily hard even for people who know what they are doing. I very much hope that the junk coming out of VS.net will continue to depend on Microsoft proprietary libraries and will not make it to the Linux platform.

    7. Re:objective analysis by sql*kitten · · Score: 2

      automatic boxing/unboxing of primitive types [e.g., an int can be cast to an object]

      Not only that but a common C mistake won't compile in C#:

      if (a = 5) {
      doStuff();
      }

  7. Corporate workplace by chunkwhite86 · · Score: 3, Informative

    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.
  8. Re:title confusing by absurdhero · · Score: 3, Informative

    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.

  9. Re:Cool by 0x0d0a · · Score: 4, Insightful

    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.

    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 .NET move was a pretty good move for MS.

  10. Re:Another Look by Gopal.V · · Score: 3, Informative

    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 !

  11. Never thought this day would come by ekrout · · Score: 3, Insightful

    The C programming language does everything I need it to do.

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

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

    People: Make up your mind, or find a new hobby. people.

    --

    If you celebrate Xmas, befriend me (538
    1. Re:Never thought this day would come by J.+J.+Ramsey · · Score: 5, Insightful

      "I'm not sure why so many man months were spent trying to hook into .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?"

      Alternative C# compilers have the potential to undermine rather than extend the MS monopoly, simply because they are an alternative source for a C# platform.

      The real trick would be getting C# programmers in the habit of targeting just the ECMA standard rather than the standard + MS lock-in extensions.

    2. Re:Never thought this day would come by redfiche · · Score: 2, Insightful

      Yeah, you can do it all with C, but if you're building enterprise applications you can build them much faster with C#. I'm no M$ fan, but you can be very productive with this language. Being able to easily port the stuff to linux would be a major bonus.

      --

      Brevity is the soul of wit

      -- Polonius

    3. Re:Never thought this day would come by the+eric+conspiracy · · Score: 2


      Becuase if we hook into .net, all the new .net applications will just WORK IN *NIX.

      No way that Microsoft is going to let THAT happen.

      MS .Net has a lot more to it in proprietary libraries; stuff that is guarded by patents and DCMA protected protocols that will prevent application portability. MS is already making moves to make things difficult for Wine and Samba with their NDA agreements on SMB specs.

    4. Re:Never thought this day would come by fferreres · · Score: 4, Interesting

      Now I see an article praising those who work hard to let Microsoft's .NET succeed.

      1) The language and the technology may be good.
      2) Creates more choice for the programmer.
      3) Will have support (from Microsoft, so companies will demand it)
      4) Will be known to many developers, that will expect C# support. Probably, you couldn't care less, but let's not forget some Windows apps are most desired under Linux or any os.
      5) Nobody is talking about taking away options
      6) .NET has a nicelely laid out set of classes, though you may not like it, some people are really productive with them

      The things that I don't like are the suit fear, or bad moves that Microsoft may have in mind to leverage they IP on their .NET or kids learning C# in college as "the language".

      --
      unfinished: (adj.)
    5. Re:Never thought this day would come by psxndc · · Score: 4, Insightful
      Actually most games are written in C++.

      One thing you didn't mention though is Web Applications which, though you may argue are no big deal, I would argue at least a 10-15% of the development going on centers around. A super set of that is B2B applications which probably account for 25-33% of the development going on. C # and Java are way better suited for web development and B2B development and have established frameworks to springboard from.

      I understand about your frustrations with the fickleness of the /. crowd, but the excitement here is the choice to _not_ extend the monopoly. By creating a C# compiler, libraries, etc Portable.NET and Mono are allowing developers to not use Microsoft tools or Microsoft OS's to generate useful code. Yes MS created C#, but you don't have to use anything MS owned or controlled to use it. If it doesn't exist already, I wouldn't be surprised if there is an apache mod_aspx/C# in the works. People assume that because MS created it, it has to be bad and unusable by the OSS crowd. It's really not the case...

      now to quote a reply I've seen to a comment like yours before:

      Why do I need C, I can use assembly.
      Why do I need assembly, I can just type in 1's and 0's.
      etc :-)

      psxndc

      --

      The emacs religion: to be saved, control excess.

    6. Re:Never thought this day would come by CoolVibe · · Score: 2, Funny
      No objections on that one here. It happens all the time :) What's karma anyways? ;)

      Karma is, unlike what Taco wants you to believe, directly proportional to the size of your virtual dick.

      (Yes, this is a feeble but hopefully successful attempt at humor)

    7. Re:Never thought this day would come by fferreres · · Score: 2

      Alternative C# compilers have the potential to undermine rather than extend the MS monopoly

      Didn't Microsoft itself provided a reference implementation that would work perfectly under BSD? What, they are shooting themselves in their feet?

      It's crystal clear they want it embraced by other Operating Systems, but I don't really know why yet. But our pockets will sure find out sooner or later, as well as everyone else's pockets.

      --
      unfinished: (adj.)
    8. Re:Never thought this day would come by CoolVibe · · Score: 2
      I can also be productive in Java, Python, Perl, Eiffel or Smalltalk. What makes C# so special?

      I though the whole point of .NET was that the language didn't matter? As long as you have a backend that produces .NET bytecode, you are already in buissness.

    9. Re:Never thought this day would come by daveball · · Score: 2, Insightful

      I think the point being made is that by supporting C# and the .net development environment, you give credability to those "products".

      I won't try to argue whether they would suceed or not without this extra help, but might it not be better to convince people to use java over c#?

      C# succeding means MS still has oportunities to extend beyond the published specs. Sun has already shown that they won't tolerate that with Java.

      Surely the future accesibility of the dev environment is safer under suns controll than evul M$????

    10. Re:Never thought this day would come by overbored · · Score: 2, Informative

      You're right, C is a fast and portable language. However, C hands the tedious job of memory management over to the programmer. Not all of us are as proficient at avoiding or debugging memory leaks as you. Most of us would rather spend our time productively coding the program. .NET provides automatic memory management, and is still impressively fast.

      Also, C code requires the maintenance of multiple versions of your application - at least for applications that have a GUI. .NET's very nice hierarchy of classes also stands out in this regard (System.Windows.Forms).

      Moreover, OOP is big; C is not an object-oriented language, and C++ is, for many, a convoluted nightmare. When you're building truly portable (no rebuilding necessary) enterprising applications, .NET will be a major boon.

      Don't be blinded by your hostility toward Microsoft. After all, these projects help undermine the dominance of Windows by providing an alternative platform on which to run your programs. .NET could be a great thing to happen to Linux.

    11. Re:Never thought this day would come by redfiche · · Score: 2
      C# is java, with M$ extensions. So if the code will be running on Wintel box, you can probably be more productive with C#, because it was designed for that.

      As far as language doesn't matter, that's true as far as it goes, but I don't think you can do the windows forms in java, and that's part of the productivity.

      --

      Brevity is the soul of wit

      -- Polonius

    12. Re:Never thought this day would come by nzhavok · · Score: 5, Informative

      The C programming language does everything I need it to do.

      I too once was a C zealot. Then I had a job at Compaq which required me to develop in TCL which I hated at first, but eventually it opened my eyes a lot.

      These days I do 90% of my work in python, it's a bloody great language. I remember when I first started hacking C about a decade ago, I'd pump out these little programs quite quickly but anything large took a lot of time, usually debugging. I never got tierd of C but I suppose when I started programming professionally it lost a lot of its appeal.

      Anyway, I diverge.

      Python lets me create complex systems very fast. The first time I used python I worte a client/server chat program, it took about half a day to do (including the basic python tutorial). I find I don't have the time to fuck around with C anymore, I don't find the joy in hunting down bugs either (at least I hunt less in python).

      I still use C on occasion though. But only then I can't do it fast enough in python, the C code is still usually ran from python in the end.

      --

      He who defends everything, defends nothing. -- Fredrick The Great
    13. Re:Never thought this day would come by Phroggy · · Score: 2

      Alternative C# compilers have the potential to undermine rather than extend the MS monopoly, simply because they are an alternative source for a C# platform.

      Precisely the way Samba has helped to undermine Microsoft's monopoly, by allowing IT guys to move their file servers to Linux while maintaining compatibility with existing workstations and desktop applications.

      A lot of people write VBScript and ASP, and these people will be moving to C# because it's where Microsoft is leading them and they follow like sheep. If their C# applications run just as well on another platform, that's one less reason to stay on Windows.

      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
    14. Re:Never thought this day would come by Waffle+Iron · · Score: 2
      The C programming language does everything I need it to do.

      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.

      You forgot:

      Author the unchecked buffer that opens the remote root exploit that enables next blockbuster Internet worm? I choose C.

    15. Re:Never thought this day would come by Temporal · · Score: 4, Insightful

      I have a very hard time coding in C. It's not that I don't know the language. I can write anything in C, and write it well. But it takes so much work! Writing C code which is clean, modular, reusable, robust, and maintainable is a pain, if not a flat out contradiction in terms. If forced to use C, I would basically end up emulating all of the features of C++ using macros and redundant code.

      As a matter of fact, one of my favorite programming techniques is impossible in C. I like to use reference counted smart pointers to handle memory management automatically. However, in C, there is no way to automate that -- you would have to manually call some sort of functions which increment and decrement the reference count, which defeats most of the purpose.

      If I were writing an operating system, I would probably choose C. But a desktop environment? A game? I've worked on my own game engine (see my homepage), and the thought of trying to do it all in C makes me cringe. You might not agree, but I think you just don't know what you are missing.

      I am actually now designing my own programming language. In my language, I have been able to write an IRC-like client/server chat program in 161 lines of code, and it would perform better than any but the most thoughfully designed C programs. Sure, you could write it in C, but why? Why spend days writing and debugging something that would take hours in another language?

      Woohoo, I'm all psyched up to work on my compiler now. Time for a coding binge! Thanks! :)

    16. Re:Never thought this day would come by psxndc · · Score: 2
      Well I think credibility is earned. C# and VS are useful products. I personally have decried the evils that are MS products, but Visual Studio is a kick ass IDE that allows me to be productive when I have to write MS based code. As for Sun, they have had opportunities to advance the Java language and have balked at it because, regardless of what you may think, they still want to control it. Yes, the Java Community Process is good, and is a step in the right direction, but Sun still owns Java and ultimately controls Java's direction. Sun is little different from MS in the respect that if they could own the world, they would. Sun is "better" because their OS is Unix based and they are more "open" but make no mistake, they would have Solaris and Java on every desktop if they could.

      psxndc

      --

      The emacs religion: to be saved, control excess.

    17. Re:Never thought this day would come by fferreres · · Score: 2

      Certainly makes a lot of sense!

      --
      unfinished: (adj.)
    18. Re:Never thought this day would come by TheAncientHacker · · Score: 2

      So does toggling in binary machine code by hand. That you can do what you want with it doesn't make it good, it only demonstrates a level of masochism that shouldn't be necessary forty years after better languages than C were available.

      The universal adoption of C is a disaster that has crippled this industry more than any other event. It was a poor hack of a language when it came out and its evolution has only made it worse.

      C# is a small step in the right direction but only a small step since it is so C-like in its design and constructs. Granted that was a necessary design choice to wean people who don't know better away but...

    19. Re:Never thought this day would come by Temporal · · Score: 2
      Huh? Your arguments show a clear lack of understanding of OOP concepts. I really think you should learn how OOP works a little better before you write it off. I strongly recommend these books:

      • Large Scale C++ Software Design by John Lakos (It's really more of an OOP in general book, not so C++-specific. This book changed the way I look at programming, and IMO it should be required reading for anyone who wants to call themselves a coder.)
      • Design Patterns by Gamma et al.
      • Effective C++ and More Effective C++ by Scott Meyers
      Seriously, if you know how to use OOP, it will make you more productive while making your code cleaner, more modular, more reusable, more maintainable, and more robust.

      I had a lengthy rebuttal to your post written, but it occured to me that there wasn't really much to argue, and I was just saying the same thing over and over. You didn't really point out any advantages of C. You only point out what you don't like about OOP. Most of the things you point out are common newbie complaints. Most of your arguments are just plain not true, and there's not much to argue. OOP is not something you can learn and understand overnight. It took me a few years of practice to become as good as I am at it, but now I can lay out object designs in my head and handle all the little details you complain about without any trouble at all. It's worth it, trust me.

      And yes, OOP can be done in C, but as your little code sample clearly shows, it ends up looking pretty ugly, and it takes a lot of extra typing. Clean, concise code is important. If your code becomes unreadable and difficult to maintain, it will just be thrown out and rewritten eventually, wasting your time and the maintainer's. Besides, what do you gain out of all that extra work?

      It's like that old saying... "If all you have is a hammer, everything looks like a nail." Yeah, you can use that hammer to pound in a screw, but it would probably be a good idea for you to learn how to use a screwdriver.
  12. Re:What springs to mind is by Jugalator · · Score: 2

    Imitating MS when you should be beating them is a waste of time.

    More often than not, imitating others is a way of beating them. I guide you to Microsoft if you need someone with better experience in this area. ;-)

    --
    Beware: In C++, your friends can see your privates!
  13. Re:Someone care to explain... by cant_get_a_good_nick · · Score: 4, Informative

    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.

  14. Maybe Portable.NET could be used to bootstrap Mono by J.+J.+Ramsey · · Score: 3, Interesting

    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.

  15. Re:Another Look by pVoid · · Score: 2
    Interestingly enough COM is the same way.

    I like moft, and I follow their technological advances closely... and both of these platforms have got me wondering if some really high up technical person just made the call without consulting the lawyers...

    Hah! That would be sweet: having a mole inside Moft.

  16. Re:Another Look by Jugalator · · Score: 2

    I don't mean to be picky, but I think one should make sure the term ".NET" (which usually mean the entire platform) isn't mixed with the ECMA standardized C# language, which might be what you meant since you later said "... wish it was open like C, C++ or C#".

    I usually try to avoid this confusion by never using simply ".NET", since no one can really explain what it is due to how huge it is, just like the Matrix. :-)

    Instead of .NET, I use something like ".NET Framework" if that was what I meant.

    --
    Beware: In C++, your friends can see your privates!
  17. OK, I'll give it a go... by smcv · · Score: 2

    Problem: if you write your C# compiler (let's call it csharpc) in C#, how do you compile csharpc itself? You can't use csharpc :-)

    You have to use the Microsoft compiler (from Visual Studio .Net) to compile a version of csharpc which will run under the Windows C# interpreter, then somehow make csharpc output Linux native code (because it can't output .Net bytecode and expect that to run on Linux until there's something to compile the interpreter for Linux, and we don't have a Linux version of csharpc to do that with yet). That's messy, to say the least.

    On the other hand, if you're DotGNU and write your C# compiler in C, you can use existing C compilers like gcc to compile csharpc. Once that's done you can write the interpreter and runtime libraries in C# if you like, since you now have a Linux copy of csharpc to compile them with.

    (Replace Linux with your non-Windows OS of choice)

    It'd seem sensible for Mono to use DotGNU's compiler to bootstrap stuff now it's working, although there are probably obscure reasons why they can't.

  18. Re:Someone care to explain... by mindstrm · · Score: 3, Informative

    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.

  19. Freshmeatt posting out ! by Gopal.V · · Score: 4, Informative
    The freshmeat links are out here it is Freshmeat Portable.Net

    Get the release and report bugs if you can find !

    PS: assigning them to me does not count as fun
  20. Hmmmm by the+eric+conspiracy · · Score: 5, Interesting

    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.

    1. Re:Hmmmm by haggar · · Score: 2

      Exactly correct, I agree with everything you said. I'm glad someone brought these points up.

      However, I thought Java was quite a bit open already. How else did HP, IBM and Tower create their own JVMs for HP-UX, Linux, Windows etc?

      --
      Sigged!
    2. Re:Hmmmm by Gopal.V · · Score: 2, Interesting

      >> Microsoft saying things like Lookie Here C# code is portable just like Java code !!

      They already built Rotor for that .... We're now
      plain mean competition ....

      Especially they cannot take new patents on this
      coz we hold prior art as on today !!

      When MS invented .NET, we have to replace it with
      DotGNU to prevent MS from doing a "Run this
      binary and trust us !" strategy

    3. Re:Hmmmm by drinkypoo · · Score: 2

      The microsoft "embrace and consume" philosophy is a serious issue. As for the libraries though, if the API is published it should always be possible to create a workalike library. If it isn't, then we have the moral high ground over them and that WILL keep some people from using it. Everyone wants things to be "open source" these days, though many are still iffy on "free software". Er, I mean, almost everyone.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    4. Re:Hmmmm by Simon+Kongshoj · · Score: 2, Interesting

      Given MS' track record and general sentiments towards open or free software, I seriously can't see how anyone can think they don't have some sort of plan to make life difficult for .NET on non-Windows platforms -- or, at least, an ulterior motive with .NET in general. Killing Java is certainly one, but I doubt it is the only motivation they have.

      Perhaps I'm wearing tinfoil, but I can't help but think that Mono and DotGNU are somehow being played the fool by Microsoft.

      --
      Six sick .sigs, the Number of the Beast!
    5. Re:Hmmmm by nzhavok · · Score: 2

      If you want sun to put a magic sun approved stamp on your JVM or J2EE platforms you have to pay them a lot of cash to have them verify it. Obviously this prevents a problem for OS projects unless some patron comes along and drops the money for it.

      --

      He who defends everything, defends nothing. -- Fredrick The Great
    6. Re:Hmmmm by the+eric+conspiracy · · Score: 2

      As for the libraries though, if the API is published it should always be possible to create a workalike library.

      What if that functionality is patented or protected by the DCMA or involves some sort of DRM with keys supplied from a Microsoft server?

    7. Re:Hmmmm by the+eric+conspiracy · · Score: 2


      Especially they cannot take new patents on this
      coz we hold prior art as on today !!


      No, I am sure that they have already filed on all the patents they think they can get! You don't think they would have released something without patenting as much of it as possible, do you?

      And then what happens when .Net 2.0 comes out, eh? Or for that matter the handwrting/voice/alpha wave recognition expansion pack etc....

    8. Re:Hmmmm by g4dget · · Score: 2
      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?

      Yes, it is. People have written lots of portable, useful code in ANSI C or ANSI C++, and those standard libraries are much more limited than the ECMA/ISO C# libraries. The ECMA/ISO C# libraries contain pretty much all the primitives you need in order to talk to the OS (I/O, networking, threads, processes, etc.). Almost all the other .NET libraries are fluff that is easily replaced by pure C# libraries. Besides, WORA is overrated. I really don't care whether it takes a little bit of hacking and conditionalization to move my code from Linux to Windows.

      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.

      I used to think that, too. But now, I think the time for that has come and passed. Sun has missed the opportunity to create a Java standard, they have pissed off pretty much anybody willing to invest the time to build a third party JVM and runtime, and they have become stuck with a number of stupid technical decisions in the JVM.

    9. Re:Hmmmm by alext · · Score: 2

      And why would I care about that?

      Yes, the folks doing Kaffe would like to have access to the Sun test suites, but lack of certification will not stop my application from running.

    10. Re:Hmmmm by nzhavok · · Score: 2

      Well it's a matter of acceptance and CYA. *You* may not care if it isn't sun approved, however a lot of people will care and it will stop businesses from using it.

      If I'm consulting for someone and they asked what JVM to use I wouldn't suggest one that's not Sun certified because when/if they fuck something up I don't want to take any flak for suggesting a non-certified JVM. It's the same situation with JBOSS, it's a free application server but when I was working at Compaq we wouldn't even suggest it to a client because it wasn't Sun approved (and of course the partnering with BEA).

      Mysql runs my database, doesn't mean I'd recommend it to someone for critical data, same deal with the JVM.

      --

      He who defends everything, defends nothing. -- Fredrick The Great
    11. Re:Hmmmm by alext · · Score: 2

      Certainly Sun occupies a preeminent position as a certifier of Java technologies, but other companies can offer the guarantees that businesses seek - IBM and BEA, for example.

      For example, this Redhat press release covers the certification of the JRockit JVM on Redhat 8 by BEA. This is targeted at the corporate audience, and makes no mention of Sun - their role was one step removed in that they certified JRockit as a J2SE implementation.

  21. Re:C# is a nice language by Jugalator · · Score: 4, Informative

    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.

    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 .NET -- not it's Windows-specific libraries.

    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!
  22. As a new c# programmer... by bnavarro · · Score: 5, Insightful
    ...(and old-time programmer):

    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 .NET framework to bring an enterprise-level solution to fruition as quickly as possible. I evaluated c#, and decided that the greatest advantage c# brings to the table is rapid development through dynamic ActiveX/COM objects. That is: even though this is a compiled language, you code in it as though it was an interpreted language with ActiveX hooks. You would load any ActiveX object with a statement like
    X = new Object(params);
    and then you can immediately reference it with statements like
    Z = X.func(param);

    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.

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

    Is thes even feasible to do?

    1. Re:As a new c# programmer... by jlanng · · Score: 2, Informative

      Hang on, .Net is essentially a replacement of COM! COM interop from C# is messy and feels like a hack at best

      None of the functional areas you mention are actually ActiveX objects - they are in fact namespaces in the .Net framework. ADO (actually ADO.net is the replacement for ADO) is System.Data, DOM is System.Xml and the FSO (FileSystemObject) has been replaced by System.IO

    2. Re:As a new c# programmer... by Kashif+Shaikh · · Score: 2

      "Unless the .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."

      That's why I don't know why people are embracing .net for other non-windows platforms. If you need a language to be dependant on vendor specific libraries that are difficult to implement, is your language really portable? Now I admit I'm speaking out of my ass right now(I don't really know the specific libraries), but I hear the .net interfacing with Window systems will be difficult(from Mono).

      Maybe someone could pull my head out of me ass, and tell me honestly why a developer would want to write a .net program in Linux.

    3. Re:As a new c# programmer... by Ctrl-Z · · Score: 5, Interesting


      First of all, most of the topics you mentioned are being implemented as part of the .NET Framework class libraries.
      ADO.NET is in System.Data
      XML is in System.Xml
      LDAP is an open standard that Microsoft does not own.

      Developing these class libraries is part of the Mono project.

      The language (C#) is not dependent on these vendor-specific libraries. It is quite easy to write code that will run on both Windows and Linux that does not involve any of them. Of course, it may not do what you want, but that's why Portable.NET/Mono/whoever is building the things they are.

      It's not so much "why a developer would want to write a .net program in Linux" as "how does a developer make a .net program written in Windows run on Linux".

      Just my 2 cents.

      --
      www.timcoleman.com is a total waste of your time. Never go there.
    4. Re:As a new c# programmer... by tenchiken · · Score: 5, Informative

      There are a lot of statements here that need correction.
      First of all, cOM is on it's way out. It is being replaced by the new remoting and web services architecture. The new component arch works much better and is far easier to understand then the iUnknown interface in COM. COM+ services (most notable, transactions) are still being supported, and I have no doubt that Mono will do a great job implementing these.


      Sadly, *NIX has never really implimented anything like COM.

      Not true. In fact, there is a COM implemented for UNIX called XPCOM. It's the foundation of Mozilla. In addition, COM itself is a copy of CORBA/IDL (the tools for Corba/IDL are fairly poor tho). Gnome uses CORBA, and KDE also uses a distributed object protocol. In additional, almost every language supports SOAP (including .NET) and Perl's .NET support is awesome.

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

      It's a really good thing that .NET rewreites all of these, and MONO is writing all of them. ADO is replacd with the much more usefull ADO.net, DOM is boosted with XSL, XSD, X** (many other XML standards), System.Directory is also bein gimplemented. FSO is replaced by the much cleaner streaming interface. Mono is implementing all of these

    5. Re:As a new c# programmer... by tenchiken · · Score: 3, Interesting

      More to the point, the Mono project started using WineLib (not all of wine as some posts have suggested) to make sure that the System.Windows.Forms is completly compatable with the standard interface. Imagine, distributing a single binary on both Windows and Linux. That can only help linux. I am waiting for a System.Linux namespace to become available.

    6. Re:As a new c# programmer... by g4dget · · Score: 2
      Sadly, *NIX has never really implimented anything like COM.

      UNIX has had things like COM. But because in UNIX programmers have a choice and because COM sucks technically, most people ended up using other solutions.

      Each programming language still has to be manually extended in some form or another to recognise new APIs

      Each language has its own APIs for extension with native code. That is by choice. But, no, you don't need to manually create new interfaces for each language.

      So, really: what is the need for C# on *NIX? None of my c# code that I am writing will port,

      Your Windows C++ code won't port to UNIX either. So what? Does that make C++ useless on Linux? I don't think so.

    7. Re:As a new c# programmer... by An+Ominous+Coward · · Score: 2

      Once again, Borland Delphi provides the most elegant solution, which in this case is a fine blend of the two ideas.

    8. Re:As a new c# programmer... by IamTheRealMike · · Score: 2
      Not true. In fact, there is a COM implemented for UNIX called XPCOM. It's the foundation of Mozilla. In addition, COM itself is a copy of CORBA/IDL (the tools for Corba/IDL are fairly poor tho). Gnome uses CORBA, and KDE also uses a distributed object protocol. In additional, almost every language supports SOAP (including .NET) and Perl's .NET support is awesome.

      The power of Windows COM comes from the fact that it's a) universal and b) capable of both inproc and outproc coding.

      If I load up Delphi and write a ActiveX (com with extensions) object, it can then be used in any language easily. A bit more work and now it's available for automation by external processes that may or may not be local. The tools are there. It's universal.

      An example. For the longest time, almost every Jabber client implemented on Windows used JabberCOM. Whether they were written in Delphi (the language jabbercom was written in), C++, Visual Basic or even JavaScript (check out RhymBox) they all used the same code. That stuff just doesn't happen on Linux. There are several competing component models, all of which suck.

      CORBA sucks, it's great for outproc communications, but for inproc code it's awful. Miguel himself has admitted as such, and he was a prime CORBA advocate for many years. KDE doesn't really even have an equivalent, KParts is limited to inproc C++ and DCOP is just a simple RPC protocol. UNIX still lacks a decent object model. Windows has always had COM, and even though it's far from perfect, it was there.

      Now MS are at it again, they are addressing the problems that made all these hacks necessary in the first place by standardising the in memory object layouts and ABIs. Once more, they are taking object technology to the next level. None of these ideas are innovative (COM was bought in), but they are setting standards and people use them, and all Windows developers benefit as a result. We need something like that for Linux, but so far all our attempts have failed. I'm still not sure whether to trust MS with .NET, but it's a good solution to the problem, and we need a solution. Bring it on I say.

  23. Re:C# is a nice language by redfiche · · Score: 2

    Well, Hejlsberg works for M$, so yeah, I think M$ gets a lot of the credit. I know my company takes credit (and blame) for the code I write.

    --

    Brevity is the soul of wit

    -- Polonius

  24. Re:Cool by arivanov · · Score: 4, Troll

    Nope.

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

    This is the idea of .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.

    --
    Baker's Law: Misery no longer loves company. Nowadays it insists on it
    http://www.sigsegv.cx/
  25. Dangerous Because of Microsoft Patent Claims Trap by NZheretic · · Score: 5, Interesting
    Microsoft's CEOs have made it "patently" clear that they intend to restrict competing .Net implementations by cultivating Microsoft's patents, such as United States Patent Application #20020059425 "Distributed computing services platform" which covers the design and inter-operation of .NET based implementations.Although there is prior art examples of individual technologies such as the JVM etc, Microsoft patents such as the one mentioned, define and claim the interoperation of the components, in such a way that any re-implementations will be sure to be covered by the patents. This remains true even for the Microsoft specs submited to standard

    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.

  26. Re:What springs to mind is by fferreres · · Score: 2

    The sum of the alternatives makes you better. If you have everything + more, you are better. If you have your own strength but none of your competitors strength, you are not just better in the usualy sense.

    Having a .NET implementation doesn't take options away from you and people can do whatever they like with their time, so if they offer one more option, i don't see the problem.

    We all wish .NET was "owned" by somebody else, so that there would be no fears of a danger of trusting that technology (patent and IP wise), that's the only danger i see.

    --
    unfinished: (adj.)
  27. Re:Someone care to explain... by jacquesm · · Score: 2

    real programmers write their first compiler in assembly of course...

  28. Re:Another Look by fferreres · · Score: 2

    1) .NET != C#
    2) Not everything is part of the ECMA standard, i think just the language and part of CIL spec.

    Being a standard, it doesn't mean it's not patented stuff, so it's free now, but will it be free tomorrow?

    --
    unfinished: (adj.)
  29. Someone should patent .... by fferreres · · Score: 2

    "C$", at some point, someone is going to try to use it. Probably Microsoft. Or maybe they wanted to patent C$ but made a typo (they are next to each other). Or maybe it's just what they meant, but of course, they couldn't just go and name it C$, so they chosed the closest thing that looked right.

    We know Microsoft choses names by methaphores or analogies, and never by pure luck or randomly.

    Now the big question is what are the dangers of embaracing they IP that now looks "free" but may not be so in the future. I don't know, there must be something I am missing here.

    --
    unfinished: (adj.)
  30. Re:Maybe Portable.NET could be used to bootstrap M by J.+J.+Ramsey · · Score: 2

    "mono is self hosting. meaning you can use it's own compiler to compile its self"

    Yes, but somehow the *initial* Mono compiler had to be compiled, and to get that far MS's own C# compiler had to be used as a bootstrap compiler. After that initial compile, Mono no longer needs the MS compiler, but it had to be there originally to bootstrap.

  31. Re:C# is a nice language by Jugalator · · Score: 2

    Hehe.. Yeah, I guess I wasn't clear about what I meant with that post. What I meant with "I'm not sure Microsoft should get credit" is that I don't think the end result of C# would be what it became if Microsoft hadn't got their hands on one of the greatest language designers there are today. But I admit I should have said something more along the lines of "out of the C# design team, I think a lot of C#'s power depended on Hejlsberg's ability to give C/C++ developers a RAD language that is much more powerful than anything Microsoft has brought us before".

    --
    Beware: In C++, your friends can see your privates!
  32. Re:Another Look by rastopop · · Score: 2, Insightful

    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.

  33. Re:Someone care to explain... by jacquesm · · Score: 2

    I thought that traditionally you run your compiler on some other box that already has a 'c' compiler (and compile your libraries there too), then link and pop over the binary and off you go.

    The first c compilers were written on a pdp-11 by K&R in a language called 'B', hence it's called 'C'

  34. Re:Someone care to explain... by jacquesm · · Score: 2

    one more addendum to that, if you can get your hands on a bbc micro emulator (or the real thing if they are still around) and get the BCPL rom, that's as close as you'll get to running 'B'.

  35. Re:Someone care to explain... by jacquesm · · Score: 2

    there is a thing called hand assembly, it's been a while, but in the 6502 days if you couldn't afford an assembler you coded your stuff from the opcode book (KIM 1 comes to mind). It's pretty hard and one mistake and you wipe out your whole program so you'll have to key it in all over again. Especially branch computation sucks.

    Lucky you if you have the tape interface :)

  36. why .net for linux? by eonblueye · · Score: 2, Insightful

    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
  37. Re:Dangerous Because of Microsoft Patent Claims Tr by drinkypoo · · Score: 2

    So what's the appropriate prior art on .NET? I know they didn't come up with this shit entirely themselves. How much of it is from prior applications (COM/DCOM) and how much of it is ripped off from CORBA... Also how much of it is ripped off from Java?

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  38. To COM or not by driehuis · · Score: 2

    The bigger issue is not so much COM or not. For example, there's always XPCOM that was developed as part of Mozilla.

    The Microsoft advantage is the Microsoft disadvantage: there is a single vendor to cast interfaces into concrete.

    In practice, I'd expect the most sucessful interfaces to become available as interface libraries to UNIX tools (in your example, that OpenLDAP would come with a C# interface in much the same way that Perl interfaces are ubiquitous in UNIX).

    Having a choice between "vendors" in the UNIX world has advantages and disadvantages too, but plumbing between libraries and a language is a small matter of programming. How well it can be implemented is dependent on two factors:
    How well the C# interface is documented
    How well the MS code is written

    The latter may sound surprising, but experience shows that the hardest thing in emulating MS libs more often than not is getting the implementation bug for bug compatible.

    My experience has been mostly with C libraries and Perl interfaces, and I've never lost too much time gluing stuff together. Making that glue code reusable is much harder, and is helped a lot if you have an interface specification available (Java did a lot of good work in that area, and rumor has it C# does a good job at it too).

    Documentation of the interfaces is what the success in practice hinges on.

    --

    Bert Driehuis -- All I asked was a friggin' rotatin' chair. Throw me a bone here, people.

  39. Maslow, hammers and nails. by rjh · · Score: 3, Insightful

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

  40. Limits? by AirLace · · Score: 2

    I'd conjecture that Mono's commercial nature doesn't limit community participation any more than DotGNU's particular political holdups. In fact, I'd go so far as to say Mono is more open. It has many signs of a very healthy open source/free software project which DotGNU lacks, like localised groups of developers (mono-es) and active involvement with multimedia and GUI projects, dozens of active contributors and in this case a healthy followership in the Windows world. I've yet to hear of patches to Mono being rejected because of Ximian.

  41. What? by Anonymous Coward · · Score: 2, Interesting

    How did this get a score of 4? .NET will always be faster than Java on Intel because of endianness issues? There are so many other factors affecting performance that endianness issues don't even come up unless you are writing a streaming video codec or something. Why does this author hate java so much? .NET is not so different from Java in many ways. Java is great stuff.

    1. Re:What? by 0x0d0a · · Score: 2

      True.

      The big Java nasties are bounds checking and runtime type checking combined with casts being required when working with generic container objects (the container objects gripe comes directly from a lecture by Harper, one of the ML language designers, who knows what he's talking about).

      Oh, and heap-allocating local variables sucks down cycles as well. That gets awfully expensive if you're calling functions over and over...

      I'm not sure I agree that Java is "great stuff". Java has a few awfully nice features. *Good* networking support. It's crossplatform. It prints out stack traces if it dies, and really good threading support.

      However, Java is annoyingly slow.

      The problem is that the primary alternative is, well, Microsoft.

      I'd kill for a good third alternative.

      Eiffel isn't that popular. Same for Objective C (though I expect OS X has helped that a bit). Ada and Pascal are rarely used any more, and C/C++ are both too low-level. ML is functional.Lisp and Scheme are both functional and lack static typing. Most of the other "alternatives" are even lower performance (Ruby, perl...) and not really designed for large-scale application development.

      The main improvements I'd like to see are:

      * Speed. No-compromises speed. If you have to do runtime overhead at all, you had better have a damn good reason to do it. C and C++ do this right. SML is safe *and* manages to do this. I suppose I can live with bounds checking, a la eiffel and Java. But no more (maybe pay-as-you-go RTTI like C++). The language should be designed around maximizing speed -- it's terribly hard for a compiler to do much with C or C++ because they don't know what a pointer might be pointing to, and cross-function optimization is almost impossible.
      * Threading support standard. One of the best points in Java.

    2. Re:What? by 0x0d0a · · Score: 2

      Good threading support compared to what?

      C, C++, Ada, perl, I dunno, what are you looking for?

      Why should a language be designed around maximizing speed?

      Because when you design a language, you are setting performance absolutes. A program *cannot* run faster than whatever your language is limiting it to. No hacks or tricks later on can avoid this limitation.

      Far less bad is missing functionality, or even imperfect APIs. You can introduce new APIs. You can add new libraries. If the language's native API is too raw for you, you can slap a layer of software on top of it (as much C++ code does with C APIs).

      However, there is no way to "fix" bad performance at the language level.

      That being said, there are some times that peformance just isn't a big deal. That's okay. The problem is that *everyone* has taken this approach -- there isn't just one or two rapid development languages. Modern, *fast* languages are almost nonexistent (the closest things were the ones I posted above...eiffel and ML).

      And everyone says that Moore's law makes performance unnecessary. Fine, but people *upgrade* to a computer that's two or four times as fast. And it's pretty easy, once you throw out the goal of maximizing speed in your language, to lose a factor of two, then four, then ten.

      How many apps that are running on your desktop at this minute are in Java? Ten? Five? For me and most others, it's zero. Because Java sucks down RAM and CPU time. It *works*, yes, but it's much slower than a C equivalent is. So there are lots of Java programs, but software that actually gets used is usually written in C or C++. Not because these languages are somehow magically better, but because they have far less overhead. Java has its place, but it's not competitive as a horizontal-market application language.

      There are other design goals than speed which are much higher in priority to me.

      But those can always be added later. You're setting a bound on the *fastest* an application can run when you design your language. Any tradeoffs you make then impact a horde of developers and users.

      Premature optimization is the root of all evil.

      This saying, which certainly true, doesn't apply in this case. It's intended to refer to application development. It doesn't say "optimization is bad", it says "optimization without testing -- premature optimization -- is bad". Java has been well tested, and it has a handful of nasty bottlenecks that are well known. You're saying that "optimization is the root of all evil.", which I don't agree with at all.

      Beautiful and slow is better than ugly or broken and fast.

      In theory, yes.

      However, we're talking about a language here, not an application.

      C is not broken, though it could be said that it's ugly. Yet most horizontal-market apps are written in C or C++, despite this ugliness. Users *value* performance.

      Java's threading support sucks -- it depends on pthreads

      [double take] What? That doesn't make sense -- no it doesn't.

      Your first alternative is Erlang
      Umm...Erlang is possibly the slowest major language out there. It's far slower than Java. Look at the The Great Computer Language Shootout.

    3. Re:What? by 0x0d0a · · Score: 2

      So you're from one of the "broad generalization" camps.

      Oh, stereotype me, will you. :-)

      [snip long passage about how Erlang concurrent programming is good]

      Look, I don't have a problem with Erlang as a language. There are, I'm sure, lots of good applications for it. The problem is that I'm looking for a language that focuses on speed, which there is a decided paucity of recently. Despite all the compiler improvements and optimization techniques developed, the fastest choice around is generally *still* C and C++, the first of which is *decades* old, and the second of which has a lot of old baggage.

      I want modern functionality with even *better* speed. That's all. Erlang is not what I'm looking for, but that doesn't mean it's not good for some people.

      In Java [threads are] an alien invader _bolt-on_ with all the resulting invonveniences and OS-dependence.

      I wouldn't call Java's support bolted on. It's language level as well.

      Erlang applications scale well with thousands of threads

      That's nice (I was quite impressed with CML, which has similar capabilities), but it doesn't really help me unless I'm dead set on writing a program with thousands of preemptive threads.

      How fast and how fast for solving which problems

      Horizontal market, end user stuff like the desktop programs I mentioned. A web browser. A word processor. A photo manipulation program. A vector graphics program.

      Java has been used to write a scalable application framework which has been used to write a web server which scales better than an equivalent C-based server. See http://www.cs.berkeley.edu/~mdw/proj/seda/

      Your link (well, what should have been a link) is dead. And scalability is mostly irrelevant. Sun sold lots of copies of Java on the "scalability" argument, but on the level you're talking about, it's not germane to my issues, if I'm writing something for a single node. I can make a scalable system too: T=1000yrs + 1 sec * N, as opposed to T=2 sec * N. Remember, Sun cares about selling hardware, preferably lots of hardware. The biggest draw of their product is that you can "trade up" easily. So they make a slow language that lets you "trade up" easily. And surprise, they push the language. Shocking! Java may be sexy for Sun's target market, true, but not for people like me.

      Your broad generalization that Java is slow in any case, any kind of application, anywhere (just because you have this idea in your head), falls flat on its face.

      Saying "Java is slow" has some quite obviously understood implications by both you and me, so don't play stupid. That doesn't win any arguments. Java may well be faster at...oh, I don't know, closing. For the vast majority of cases, if I want to sit down and write something that a user interacts with, a Java program is much more sluggish than a C++ program. This is not something that I'm the only one trumpeting -- anyone that's used Java has run into this. And don't give me the "you're using a slow JVM" bullshit that Java advocates love to spout -- I've been developing exclusively with IBM's JDK. There isn't a faster JVM out there for Linux.

      "Profile, don't speculate".

      Okay. The Java software that I've used is, without exception, sucks down CPU cycles and RAM. Freenet is slow. The theorem-proving environment that Carnegie Mellon University uses for logic courses is slow. Another game-theory environment I've used is slow. Tube (a Java hotline client and library) is mind-bogglingly slow. Now, perhaps I just *happened* to run across every single slow Java application, and just *happened* to run across every single fastest C equivalent, but I don't believe it.

      Don't confuse language with a language implementation. If you sacrificed language features to speed -- like it has been done with C, chances are they will never be added to a language later....if a language _implementation_ suffers from performance problems, they can always be dealt with later.

      I have macros that both allocate, test for the proper allocation, and typecast the allocation of a struct in C. I use an excellent object-oriented C environment with glib and gtk. I have named constants. The C environment that I use today is far nicer than that three decades ago.

      As for your claim that they can always be dealt with later in the implementation, I have an excellent counterexample -- the JVMs that you're so staunchly supporting. When Java was released, it ran like a dog. Sun promised that better compilers would improve things. Optimization got a little better. JITs helped. And you know what? Java is, indeed, faster than it once was. It is *still* sluggish, however. And it's not going to improve much more. And the *language* has limited this -- the lack of typed container objects, the required bounds checking, the almost-impossible-to-avoid reliance on heavy heap-based dynamic allocation of memory. No implementation can fix this. Java as a *language* is terminally limited to never run faster than at a certain clip. Now, it's still quite useful for many things, but not for performance-critical stuff, which happens to matter to me.

      Case in point C's string functions are not only ugly...

      I'll definitely agree with you there. ...but broken.

      And I won't agree with you there.

      If language designers wanted to extend the language with new string functions that allocated memory -- how easy of a change would that be?

      Really, really easy. Look at glib for C or any one of many, many good string classes for C++.

      Premature optimizations in language design, or application design are equally evil.

      Are you unbelivably asinine? "Premature optimizations in language design"? How do you think someone is going to "prematurely optimize" a language spec? Do you want to wait until a language is widely used and *then* run out and make lots of changes to it? Heck, that isn't even relevant. I've been talking about existing languages, which are already well understood. There is no prematurity here at all. ...you'll realize it's all about trade-offs, and speed is secondary to other goals of language design.

      And one day, *you* will realize that having a speedy language does not entail *losing* other functionality.

      Except your faster language will probably result in more bugs, more time-to-market, more complexity, and more poeople overhead because it wasn't suitable for solving the problem at hand in the first place.

      This is coming from the same person that just asked someone not to "generalize" about programming languages. How the hell did you reach the conclusion that speed entailed a lack of safety or an inability to do rapid application development?

    4. Re:What? by 0x0d0a · · Score: 2

      because some microbenchmark says so

      And you're claiming that it's not, simply because you like it. I'd say that my criteria are at *least* as valid.

      Nah, your best bet are zeros and ones

      Except that isn't usually the case. It simply isn't reasonable for a human to know all the timings for the various chips they're targeting and write perfect code any more, and even if they could, CPUs are too complex, and compilers too good. Rasterman, who writes a good deal of low-level code to do graphics stuff very quickly (and hence knows x86 assembly better than most), recently wrote how he spent a huge amount of time rewriting a C library in x86 assembly, and got no real speedups in his hand-tweaked one. Even tiny embedded systems are leaving assembly in droves, because compilers are *good* these days.

      Plus, targeting multiple x86 processors, where you might have obsolete opcodes implemented in microcode or optimal alignments might change isn't really reasonable for much of anything.

      I wouln't call Java's support bolted on. It's language level as well."

      Ah, ah, ah, it still depends on pthreads. Pthreads isn't native.


      Your statement is simply nonsensical. Feel free to show Slashdot a place in the Java spec where it says "implemented JVMs shall utilize the pthreads library".

      Non-preemptive threads

      Fine, non-preemptive threads. It doesn't help me unless I want to write a program with thousands of *non-preemptive* threads. ...scalability is mostly irrelevant. Not for everybody.

      Fine, let me clarify it. Scalability, the sort of way Sun is selling is (which translates to "you can add more hardware to get some reasonable amount of performance increase" is totally fucking irrelevant to almost every software package in the world. Yes, perhaps erlang is useful for 80 node setups (I'm not saying it is, just that I don't care enough to try to find out). I (and the overwhelming majority of other people) are not working with 80 node setups, and the interesting factor is whether performance sucks on a single node system.

      Your problem seems to be Swing, not Java.

      No, in fact, it is *not* Swing. There are plenty programs with Java components that do not use Swing -- and they're *still* slow, and it's *still* because of the Java bit.

      Furthermore, JVM isn't the only way to implement Java.

      And this is totally irrelevant to the discussion, because running a Java program in IBM's JVM is the fastest way to run Java on Linux. No existing Linux native code compiler produces code of equivalent quality. So unless you want Java to appear even slower than it actually is, you're going to be talking about running in a JVM.

      So if they've improved performance over the years, it can't be done anymore for some imaginative reason? Garbage.

      No, it's simply massively trailed off. All the big issues with the implementations (well, the major ones, like Sun's and IBM's) have already been worked out, and there isn't much left to be fixed. If you'll look at the improvements of JVMs since...oh, I don't know, '99, they've been pretty steadily trailing off. There are fundamental issues with Java at the language level that cap performance, which I listed earlier in this thread.

      Right, like some end-user GUI stuff. Performance critical indeed.

      Yes, actually that *is* performance critical. Feel free to reimplement SDL or GTK in Java while I laugh. Very few pieces of software on a PC-or-larger system are as performance-critical as real-time stuff that a user is interacting with, like games or a word processor. It doesn't really matter if my backup server has 30% worse performance, but it does if Quake does.

      Also, you took issue with my link to Bagley's Language Shootout page...yet that page deals almost exclusively with core computational operations, not "end-user GUI stuff".

      'fputs' isn't broken? Can you say buffer overflow by design?

      Have you ever actually *seen* or *used* fputs()? I'd love to hear what "buffer overflow" you're thinking of, because I don't think you have the faintest idea what you're talking about.

      Reread my last response

      Yup. I rebutted the points in it that were relevant.

      This is a library written by someone.

      It doesn't add keywords -- it *is* extending the evironment that I'm writing in, however. This is also completely irrelevant, because the semantics don't matter -- only whether the missing functionality is present. Which it is.

      C is definitely slower than assembly on micro-benchmarks, and even otherwise. Orders of magnitudes slower. Your point?

      [laughing my ass off] Okay, "orders of magnitude", eh? Before making a damn fool of yourself any more, run out and find yourself a benchmark where your C compiler produces code that is a *hundred* times slower than your hand-coded assembly. This should be entertaining. Find me...oh, a matrix multiplication benchmark, say, where assembly is 100 times faster than a C compiler can generate. I'd love to see what flaws *in the C language* you can find that would ever make C 100 times slower than assembly. The flaws I pointed out in Java were *in the language itself*.

    5. Re:What? by 0x0d0a · · Score: 2

      Take a look at the SEDA link I gave you

      It was broken, but I found it via google. Okay, fine. What I assume the relevant information is at the site is Despite using Java, we have achieved performance that rivals (and sometimes exceeds) that of C/C++. The point of his paper was that the particular architecture he was using, *even though* implemented in Java, performed better than Apache and some other webserver called Flash that I haven't heard of. It's comparing architecture 1 in Java versus architecture 2 in C. If he wants to build an architecture 1 server in C, there might be more grounds for comparison. Apache certainly does not represent a performance cap on C -- there are many webservers written in C that outperform Apache -- Boa and Tux are two off the top of my head, though I'm sure I could find more if I went looking.

      I thought you wanted to trade features and convenience for speed. Or is it some features and convenience.

      Oh, I want to be able to code in the thing, sure. It's quite feasible to code large scale software projects in C, as has been demonstrated many times. It simply isn't feasible to do the same in assembly (granted, there has been some work on oddities like typed assembly language, but they're nothing more than research projects, and I doubt they'll ever add up to much.). I want a language that places a few constraints on the software author to improve the optimizer. Ocaml is a good example that good speed and functionality can be had together -- now, the only thing that needs to be done is produce a popular, imperative language that has good performance. (Not all of us are functional language fans.)

      I don't think I was talking about the language specs at that point. Rather implementations.

      Okay, fine. Blackdown Java doesn't use pthreads. It also eats more memory (and, incidently, runs more slowly than IBM's JVM, which does use pthreads.)

      And it certainly is possible to write Java progs which scale better than equivalent C programs. On the same hardware. It has been done.

      I can write a bublesort in C and a quicksort in Java or visa versa. My beef is that the Java language puts fundamental caps on performance that I think are unwarranted and unnecessary, regardless of whether the language is "modern" or not.

      Okay, gets() has been judged to have risks higher than the worthwhile benefits, and has been obsoleted. GCC at least will issue a warning when you use it. There are certainly times when using gets() could be justified -- if, for instance, I have a program that uses IPC through stdin, so I have guarantees on the length of the buffer -- the code on each end is trusted. This way, I don't have to check lengths. However, there's no requrement to use gets() if it's not appropriate for your situation (i.e. reading in data from the user), since fgets() exists and works just fine.

      Just to give you some perspective, I was arguing about language performance some time ago on Slashdot and someone mentioned that IBM had added or was considering adding an option to disable bounds checking on arrays precisely because of the performance hit. People *care* about the peformance involved in bounds-checking everything. If you're using the appropriate API call for the appropriate situation, there's no problem.

      This is relevant to our discussion, since you wrote speed is almost everything in a language...if you trade those goals in a language design for speed, you would very unlikely find fixing these issues in the future easy. While performance issues can be dealt in the implementation far easier than breaking languages.

      I said that functionality could be added later -- performance limitations stuck with developers forever. You said that functionality should be added soon and performance worried about later. I responded and said that this *had* happend via libraries like glib for C. You complained that functionality was being added to libraries, rather than (technically) to the language. I said that it was an issue of semantics -- that whether the improvements added keywords or functions didn't matter, as long as they added the needed functionality. I still stand by that, and I don't see how what you wrote here is a rebuttal to that.

      Maybe not order, maybe just one order.

      I'm very dubious that you could even manage one order. Perhaps there's a case somewhere that could do this, but in general, even a few years back when compilers were much less good, recoding inner loops was unlikely to buy you anything like this. As I pointed out, Rasterman was unable to improve on current gcc code.

      The point is, these are all trade offs, Java and Erlang are higher-level languages than both C and assembly, and raw speed is definitely a trade-off for convenience, portability, etc., etc.

      I disagree that raw speed must be traded to achieve convenience. I'm not a huge fan of ocaml the language, but ocaml code is extremely portable, runs nearly as fast as C, and is a very high-level language. Both speed and modernity can be achieved.

      C compilers could get significantly better optimization (and add better checking and modern features) if an additional series of constraints were laid on top of the very free-form C. There are a few languages that do this sort of thing now. Splint, for instance (a lint for C that can handle extra constraints on C), can do this a little. I've seen more involved ones, though I don't have names handy.

  42. Yes a limit ;) by manyoso · · Score: 4, Interesting

    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.

  43. Re:Cool by The+Original+Yama · · Score: 3, Insightful

    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.

    Besides, the .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.

  44. Re:Cool by Synn · · Score: 3, Insightful

    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.

    They're quite frank about keeping .NET on windows and windows only.

    In fact that's what Sun is selling in every debate about .NET vs Java: Java gives you multiple vendors while .NET traps you into one.

    MS may let .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.

  45. Cocoa apps in C#? by theolein · · Score: 3, Interesting

    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.

  46. Bill and his buffoons must be laughing hard.... by zruty · · Score: 5, Insightful

    This place is really getting full of M$ trolls.

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

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

    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 .NET$ aberration and you will be the one laughing, not Bill and his monkeys.

    Wake up people!

    Zruty

    --
    Zruty -- Ruler of Zrutland
    1. Re:Bill and his buffoons must be laughing hard.... by elflord · · Score: 2, Insightful
      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 .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...
      ... 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

      You're completely missing the point. What Bill chooses to do or not to do with Microsofts implementation of the C# language has little relevance to its usefulness as a development tool for writing Linux/UNIX applications. Unlike Java, C# has been turned over to standardisation committees. Basically, it's got a life of its own outside of Microsoft HQ now. Bill can't unilaterally "pollute" something that is controlled by a standards body. Of course, Microsoft can make a non-compliant version of their own language. But then again, so what ? Microsoft have been making non-compliant implementations of other languages for years. C, C++, Java ... you name it, they've butchered it. But it didn't prevent those technologies from being useful.

    2. Re:Bill and his buffoons must be laughing hard.... by stefpe · · Score: 2, Interesting

      Yes, sure MS has turned over C# to a standard committee.

      But I don't think that matters. Unless LOADS off people start developing .NET apps on Linux/Unix very soon, Microsoft is still going to be the ruling force behind .NET.

      If or until this changes, the great majority of .NET developers will encounter .NET first on Windows, all the books on the market will be about .NET on Windows and so on.
      That means that the open source community will constantly have to play catch up with Microsoft each time they release a new version or new tools or libraries.

      In the end, I think this is a no-win situation.(If you're interested in alternatives to Microsoft's platforms).
      I think all this will do is lure developers away from Linux and Unix. They might start out with .NET on Linux or something, but after a while, I think a lot of them will realise they have to switch to Windows because all the new, cool libraries are Windows-only. Yeah, .NET is supposed to be portable, but I'll bet that a lot of the stuff will be specific to Windows anyway (think ActiveX).

  47. Re:Someone care to explain... by Khalid · · Score: 2

    This a classic bootstraping problem, you have plenty of them in computer science. Conceptually it's exactly like recursive fucntions

    f(n) = n*f(n-1) if n > 0
    f(0) = 1,

    you describe the function f for (n) in a simpler (n-1) version of itself.

    Saying that a compiler is written in itself is misleading, in fact it's written in a simplified version, but powerfull enough to letwrite the first version of the compiler.

    For a compiler n usually is 3.

    Hence here how the first C compiler has been written.

    f(0) was the the initial version, (a subset of C) and if my memory serves me well has been written in Fortran and of course compiled with Fortran to produce the first binary.

    f(1) which can compile the complete C syntax has then been writen but in the C subset which f(0) understands, to produce the first complete C compiler.

    Last but not least f(2) the final compiler has been rewriten or extended using all the C syntax of f(1) and then compiled with f(1) to produce the final compiler.

    And here you are, you process has converged, now if you want to make new enhancements to the compiler, you can use the previous comiler and the syntax it understands (minus the new enhancements)

  48. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  49. decent language/runtime, uncertain legal status by g4dget · · Score: 2
    I think C#/CLI is a decent language and runtime, and the open source implementations of it are shaping up quite well. C#/CLI are mostly a copy of Java, but they fix some nagging technical issues with Java/JVM.

    The biggest problem I see is that Microsoft is claiming patents on the CLI:

    According to Microsoft, third-party developers who want to develop or deploy an implementation of C# development tools and CLI-compliant virtual machines, which are part of the .Net framework, must enter into a reasonable and non-discriminatory (RAND) license agreement with Microsoft. That's the short answer. [...]

    According to Microsoft's director of intellectual property Michele Herman, who I interviewed earlier this year, the answer is a qualified yes. "If someone implemented a product that conforms to the specification, we believe we have a patent or one pending that's essential to implementing the specification.

    This has also been reported elsewhere and confirmed by Microsoft. What the patents in question are remains unclear; given that C#/CLI also really is just a copy of earlier technologies (and even Java/JVM hardly contains new ideas), the patents are probably bogus, but that wouldn't keep Microsoft from causing big legal troubles.

    Note that the situation with Java/JVM isn't much better. Sun has been filing hundreds of patents on Java/JVM-related technologies, some of which look like they are essential for creating compatible implementations (e.g., the bytecode type checking), and Sun's intellectual property policy towards third party Java-related projects and implementations has often been hostile. Sun has repeatedly tried to kill third party Java implementations (all conforming Java implementations depend on Sun source code). Sun has had to be dragged kicking and screaming even to the point where they don't claim ownership of ideas developed by others (!) as part of the community process. And Sun renegged on their promise to make Java a language standard twice. Sun is not to be trusted either.

    I think both Sun and Microsoft are equally duplicitous and manipulative when it comes to Java or C#, respectively. My conclusion is that, until either Sun or Microsoft or both make a firm, binding commitment on intellectual property issues, neither platform is suitable for widespread adoption by open source projects. Furthermore, until Sun and/or Microsoft create open standards without even a hint of patent encumbrances, even commercial software developers should consider both systems the equivalent of VisualBasic: a proprietary language that can be changed by its creators at will and for which there will be no viable independent third party implementations.

    C# or Java could have been a great thing if they had turned out to be open, standardized, and widely used. But, frankly, there are plenty of better languages and runtimes than either C# or Java around anyway, so given that those languages remain proprietary, why bother with them?

  50. GUIs for Portable.NET, Mono, and Microsoft .NET by Anonymous Coward · · Score: 3, Informative

    There are four GUIs available for Mono which can be used for Portable .NET and Microsoft .NET too.

    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 .DLLs for Windows.Forms to run on 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.

  51. Java is as dangerous because of Sun patent trap by g4dget · · Score: 4, Interesting
    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 [apache.org].

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

    * For Sun-led specifications finalized from here forward (including revisions to existing specifications) the license terms will allow independent implemenations under open source licenses.

    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.

  52. Well if that is true, then the MONO folks should.. by ainsoph · · Score: 2



    Be quite concerned about Ken Thompsons idea. now shouldnt they?

  53. What about Mac? by Latent+Heat · · Score: 3, Informative
    It is generally regarded that Mac is software-wise a Microsoft "client state", i.e. a platform for Office. Mac creates the appearance of independence, but sales of Macs and OS-X are no skin off Microsoft's back if they can sell copies of Office.

    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.

  54. patent application #20020059425 by g4dget · · Score: 2

    I see nothing in that patent application that has anything directly to do with C#/CLI. That patent has to do with distributed computation, and it would apply equally to systems implemented in Java or C++. I don't see anything in it that would apply to a conforming C#/CLI implementation.

  55. Re:Dangerous Because of Microsoft Patent Claims Tr by epukinsk · · Score: 2

    I have a feeling that if Microsoft, a good-as-convicted monopolist, tries to sue a community of open source developers on a patent basis in order to prevent interopability, they will get their balls chopped off in court.

    Or at least the defense will have a very strong case.

    Erik

  56. The Microsoft Upgrade Treadmill by mrsam · · Score: 5, Insightful
    First of all, cOM is on it's way out. It is being replaced by the new remoting and web services architecture.

    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.

  57. Re:I only use C# by Malcontent · · Score: 2

    You really should have given objective-C a shot. It's damn nice and much much much much much better then C#. Plus webobjects is a tour de force.

    --

    War is necrophilia.

  58. Ask Jason Hunter, vice-president, Apache Software. by NZheretic · · Score: 2
    New JCP Agreement and Rules to Stimulate Innovation, Create More Choices for Java Developers
    "JCP 2.5 breaks new ground by making open source licensing possible for those who work on Java specifications and those who create compatible independent implementations of the specifications," said Jason Hunter, vice-president, Apache Software Foundation and JCP Executive Committee member. "In addition the cost structure has been changed to allow smaller developer groups and individual developers to gain broader access to Java specifications, often times free of cost."

    It may not be perfect, but at least it is fully open.

  59. Re:Dangerous Because of Microsoft Patent Claims Tr by Malcontent · · Score: 2

    What would cause the court system to extract it's nose out of Bill Gates' ass?

    --

    War is necrophilia.

  60. Re:Cool by thelexx · · Score: 3, Informative

    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.

    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 .class file, the constant pool contains
    _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
  61. See Microsoft Communications Protocol Program by NZheretic · · Score: 2

    The DOJ negotated Microsoft Communications Protocol Program effectivly grants Microsoft the ability to boycott GPL/LGPL licensed implementations.

  62. come on--use your head by g4dget · · Score: 2
    I don't know how much clearer one can put this: that agreement applies only to software and specifications developed as part of the JCP. It does not apply to the entire Java platform or any of the stuff Sun cooks up on their own.

    That is, almost everything in the Java 2 platform is completely Sun proprietary. Sun even renegged on standardizing it through ISO/ECMA, which would at least have required them to disclose what patents apply.

    C#/CLI has patent problems. But so does Java/JVM, and at this point, they look more serious than those with C#/CLI. If you want an open platform, you have to look somewhere else: neither C#/CLI nor Java/JVM fits the bill.

  63. Do you the patent search yourself by NZheretic · · Score: 2
    Remember I stated : Although there is prior art examples of individual technologies such as the JVM etc, Microsoft patents such as the one mentioned, define and claim the interoperation of the components, in such a way that any re-implementations will be sure to be covered by the patents.

    Go to the US Patent Office's website and do a search yourself ( hint "AN/Microsoft" ), there are plenty of examples of patents to be concerned about.

  64. Oh, the Irony! by Twintop · · Score: 2

    Here is a story talking about an open source version of the .NET arcitecture, and right below it is an ad saying, "BUY M$ Visual Studio .NET TODAY!"

  65. Neat, but won't MS kill it? by SysKoll · · Score: 2

    Portable .NET sounds pretty neat. However, will it be useful? Assume that it's a success. It 2004 and several corporations are deploying Linux servers to serve department-wide .NET apps, hereby deprived MS from revenue it extracts from heavyweight .NET servers. What prevents MS to change critical parts of the .NET standard in the next iteration? Nothing. It's even likely that the new additions will be heavily patented to protect them against compatible servers. The next generations of .NET apps will then be uncompatible with the portable version and customers will have to revert to all-Windows shops.

    Mind you, this is not a flame or anything, I am just trying to be practical here. Anything that can give people breathing rooms when it comes to MS standards is good. But here, I am really afraid that as soon as the portable .NET will start being successful, MS will notice it and intervene.

    Any reason why the scenario above could not be implemented?

    -- SysKoll
    --

    --
    Mad science! Robots! Underwear! Cute girls! Full comic online! http://www.girlgeniusonline.com/

  66. Come on - Use your eyes, by NZheretic · · Score: 2
    From the JCP FAQ
    Q: Whats a JSR?
    A: A JSR is a Java Specification Request. This is the document submitted to the PMO by one or more members to propose the development of a new specification or significant revision to an existing specification. There are currently more than 90 Java technology specifications in development in the JCP program, including the next versions of Java(TM) 2, Micro Edition (J2ME(TM)), Java(TM) 2 Platform Enterprise Edition (J2EE(TM)), and Java(TM) 2 Standard Edition (J2SE(TM)).

    From Effort on the edge, Part 1

    But how can you, as a JSR lead, grant that right, where those patents are owned by the companies that make up your expert group? The JCP 2.5 JSPA addresses both in-bound and out-bound intellectual property. In-bound intellectual property is the set of patents, licenses, or other rights that you and your expert group members bring to the table. Out-bound intellectual property signifies the rights of your specification's users, reference implementation, and compatibility test kit.

    In essence, when your experts join your expert group, they grant the spec lead the right to sublicense the existing intellectual property they bring to developing the JSR. That not only includes patents, but copyrights, trademarks, and trade secrets as well. You and your experts can, in turn, choose whatever license form you desire for your output. If you choose the new Open Source License, you steer your technology's users clear of possible infringement on patents, trademarks, or other intellectual property they might not initially be aware of.

    Sun is playing by those new rules. "Prior to the use of JCP 2.0, [Sun's Java licensees] were the only ones to gain access to the technologies needed to implement the things that comprise the Java technology from Sun," explains Gingell. "And licensees typically got all of the specifications, implementations, and conformance tests along with service and support programs as a bundle.

    "One way to look at JCP and its evolution is that it's a process of unbundling all of these things. As of JCP 2.5...the specifications, reference implementations, conformance tests are all separately available," adds Gingle. "J2SE is not today available under the terms of JCP 2.5. Sun did commit to making available some of the JSRs it has led under 2.5 terms prior to the adoption of 2.5 by the JCP, and we have committed that all prior JSRs would be available under those terms but on an indefinite schedule. The expectation is that those changes will occur as maintenance on the technology occurs, roughly over the course of a year or so we'd expect."

    To facilitate open source J2SE implementations, in August 2002, Sun announced a scholarship program for qualified nonprofit organizations that require access to Sun's compatibility tests to verify their adherence to JSR standards. Nonprofit groups that qualify can obtain Sun's compatibility test kits free of charge.

    Gingell notes that, "When J2SE is available under the terms of JCP 2.5, if someone wanted to implement it from specifications, they could do so without also licensing the reference implementation. They would have to license the TCKs to verify that they'd made a compatible implementation. They would thus have to be a TCK licensee, which would be available for free to qualified nonprofits."

    At least Sun is making concrete steps towards being more open.
    Where are the equivalent public declarations from Microsoft?

  67. Re:HELLO! Re:DotGnu and Mono by Erik+Hollensbe · · Score: 2

    of course, vi stands for 'visual', and we all know that anything that makes light of the fact that it's 'visual' has to be a microsoft product in it's roots, which of course, makes it inherently bad.

    and the 'K' desktop environment? What are they thinking? With that white toolbar, and the blue background, we all know what they stand for. WASP (white anglo saxon prostestants)'s only for this desktop!

  68. just fluff--nothing legally binding by g4dget · · Score: 2
    From the JCP FAQ [jcp.org]

    You are reaching if you think that combining Sun's statement on the JCP together with some minor revisions of Java2 mean that Sun makes available all their patents for free Java implementations.

    At least Sun is making concrete steps towards being more open.

    Sun has made no legally binding commitments on keeping Java open. Sun even pulled out of two standardization processes because they didn't even want to disclose their patents, let along license them.

    Where are the equivalent public declarations from Microsoft?

    There are none (well, they have committed to RAND, but that's of no interest to open source).

    The upshot is that both Microsoft and Sun are spreading PR and FUD. Neither of them has made any legally binding commitment to an open system or language. Neither system offers anything technically new or interesting. That's why the open source community shouldn't waste any more time on either of them.

  69. Far more interesting than C# by be-fan · · Score: 2

    Personally, I really don't see the advantages of Java or C# outside a specific application domain. For heavy systems level work, C++ is superior, because once your needs branch away from what is provided in the standard libraries of Java or .NET, there is a far deeper and broader collection of libraries available for C++. Plus, both Java and C# have an overhead that C++ simply does not have. For applications where performance isn't critical, a *real* high level language is in order. Java and C# claim to be high level, but in all truth, outside of their standard libraries, there is not a whole lot (aside from removed features) in the base language that seperate them from C++. Assuming you have the same libraries for both, and are a competent C++ programming (meaning you use the STL to the point where new/delete are rare in your code) Java/C# code is just as long (or, in the case of Java longer). Python, in comparison, feels like a real high level language. Python code is an order of magnitude shorter than most Java/C# code and much easier to read. Once the new Parrot VM comes out (supposedly it has JIT compiling) these higher level languages will get a significant performance boost, and will be far more appropriate for many applications than Java or C#.

    --
    A deep unwavering belief is a sure sign you're missing something...
    1. Re:Far more interesting than C# by Elian · · Score: 2

      No supposedly--Parrot has a working JIT now. Dowload it from parrotcode.org and try it...

  70. Sun is doing the same thing by g4dget · · Score: 2
    My point is that the one patent you cite is not relevant.

    If you want to talk about patents more generally, yes, Microsoft is patenting a lot of C# related stuff. But so is Sun. Both companies are lying when they say that they are creating "open systems". We have no more reason to trust Sun than Microsoft.

    The best approach for the open source community is to give both Sun and Microsoft the cold shoulder. Let McNealy and Gates play out their megalomaniac power plays and let us get on with writing good software.

  71. A thousand year Reich by Epeeist · · Score: 2

    Shinoda: "The age of Millennium."
    Io: "What does that mean?"
    Shinoda: "A thousand year kingdom. It wants to create a home for itself.

    A thousand year Reich. Wasn't that innovated by someone else?

  72. If .NET runs on Linux, you don't need win2k server by Otis_INF · · Score: 2

    As a .NET developer I don't give a rats *ss on which platform my software runs, but currently it's just Win2k + .NET (from MS), fine by me. If Mono succeeds on Linux, I can run my software without modification on Linux too, which is a good thing since then the amount of servers which run my software increases, and thus my potential customer base grows too.

    If there will be NO .NET on Linux however, and .NET really takes off (it already begins to do that), Linux won't be a logical choice for the application server platform. In other words: linux will go down the same road Novell took years ago.

    --
    Never underestimate the relief of true separation of Religion and State.
  73. I don't get it. by Otis_INF · · Score: 3, Insightful

    Ok, that some people don't understand the big importance of a good, solid, 100% compatible .NET framework on Linux, fine.

    But... why 2 frameworks? (Mono and DotGNU). Why is it so damn hard to just focus on the importance of a solid .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).

    Now, Mono can use more developers but these developers are working on their own port of .NET: DotGNU!

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

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

    --
    Never underestimate the relief of true separation of Religion and State.
    1. Re:I don't get it. by alext · · Score: 2

      And some people don't seem to appreciate the difficulty of achieving 100% compatibility.

      DotGNU/Mono will always be in catch-up mode since technical policy is entirely decided by MS. It is impossible to work with DotGNU/Mono without confronting this 'political' reality. Fortunately, it is likely that your customers will continue to see value in other platforms such as Java, so your future is not entirely dependent on the emergence of Microsoft knock-offs.

  74. Re:Cool by Matts · · Score: 2

    just look at how Bruce Perens' threats to fork Web standards made the W3C reject RAND licensing.

    You know, this is pretty hysterical. You're looking at the world through the microcosm that is Slashdot. The W3C didn't reject RAND because of Bruce Perens, they rejected it because their members didn't want it, and because many people in different communities (the XML community, the Web community, the vector graphics community, etc) fought against it. RAND was really unpopular in all but the larger members of the W3C (e.g. Microsoft, Adobe - and even they fought internally about it), because companies realised that they were better off with RF specifications.

    --

    Matt. Want XML + Apache + Stylesheets? Get AxKit.
  75. Not in Sun's and others self interest to backslide by NZheretic · · Score: 2
    g4dget wrote:
    You are reaching if you think that combining Sun's statement on the JCP together with some minor revisions of Java2 mean that Sun makes available all their patents for free Java implementations.

    Your ignoring the last paragraph quoted from Effort on the edge, Part 1

    Gingell notes that, "When J2SE is available under the terms of JCP 2.5, if someone wanted to implement it from specifications, they could do so without also licensing the reference implementation. They would have to license the TCKs to verify that they'd made a compatible implementation. They would thus have to be a TCK licensee, which would be available for free to qualified nonprofits."

    g4dget wrote:"Sun has made no legally binding commitments on keeping Java open.".
    At least Sun's Robert A. Gingell Sun Fellow & Vice President has published a Letter of Intent which includes the declration

    Again in the interests of meeting the spirit of the requirements, Sun will modify the specification licenses of all the JSRs currently in progress to reflect Apache's requirements as met in the new draft JSPA. And we reaffirm a previous statement that we would work over time to change the licenses of previously completed JSRs to comply with the new JSPA draft. We specifically commit to doing such changes at a minimum for:

    JSR 31 (JAXB), JSRs 52, 53, 152, 154 (JSPs/Servlets), JSR 63 (JAXP), JSR 67 (JAXM), JSR 93 (JAXR), JSR 101 (JAXRPC), JSR 127 (Java Server Faces), JSR 172 (J2ME Web Services)

    As noted in the introductory summary, we believe these changes constitute a full meeting of Apache's requirements both in letter and in spirit.


    Which at least is an effectively legally binding commitment for the aformention JSRs.

    It's a start, and it's value should not be dismissed lightly. Once again, Where are the equivalent public declarations from Microsoft?

    Why will not Sun pull out of this accord? - Because, increasingly, it is not in Sun's self interest to do so.

    Sun has adopted the LGPL/GPL licensed GNOME Desktop for both it's Solaris and Linux systems. In fact so much more open sourced software is being deployed on their systems, adding value to the platforms, that it is not in Sun's interest to limit free lisenced code interoperation with the Java frameworks.
    For similar reasons IBM and other Java licensese are pressuring Sun to further open up the Java enviroment.

    In it's comments of the voting for the new JCP IBM even commented:

    IBM's vote is based on the technical merits of this JSR and is not a vote on the licensing terms. IBM supports licensing models that create an open and level playing field by allowing third parties to create independent implementations of Java Specifications and that do not allow individuals or companies to exercise unnecessary control for proprietary advantage. We support open source as a licensing model for contributions in the JCP, and would hope others will support this direction. This comment is not necessarily directed at the current business or license terms for this JSR, however, it is a statement of IBM's preferred licensing model.

    Forces are moving into place which is going to make it very difficult for Sun to backslide to a close model again.

    As for FUD, it seem to me that over time, Microsoft is becoming the sole dominant player in lies based on untruths.

    By the way g4dget, are you any relation to John Carroll?

  76. Your ignoring the evidence by NZheretic · · Score: 2
    From my quoting of Effort on the edge, Part 1
    In essence, when your experts join your expert group, they grant the spec lead the right to sublicense the existing intellectual property they bring to developing the JSR. That not only includes patents, but copyrights, trademarks, and trade secrets as well. You and your experts can, in turn, choose whatever license form you desire for your output. If you choose the new Open Source License, you steer your technology's users clear of possible infringement on patents, trademarks, or other intellectual property they might not initially be aware of.

    Sun will be submitting the updated J2SE, J2EE etc to the new JCP, and therefore are effectively granting open source developer members full rights to re-implement the standard.

    Do you need to be cautious, yes. But is it safer to create an open source Java framework than to re-implementing .NET - Hell yes.

  77. wishful thinking by g4dget · · Score: 2
    and therefore are effectively granting open source developer members full rights to re-implement the standard.

    There is nothing legally binding there. Sun can do whatever they want at any time, and they can define whatever they like to be part of the JCP or not.

    But is it safer to create an open source Java framework than to re-implementing .NET - Hell yes.

    Why re-implement either if neither company is playing fair? There is nothing technically particularly interesting or novel about either language.

  78. Re:What springs to mind is by nagora · · Score: 2
    The best way to beat an enemy is to learn from them. I can see you haven't done that with MS.

    I have. I have learnt that allowing Microsoft to set "standards" is like walking up to a tiger with a plate of raw meat and thinking that it won't eat you too.

    TWW

    --
    "Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
  79. the lesser of two evils theory? by g4dget · · Score: 2
    Which at least is an effectively legally binding commitment for the aformention JSRs.

    If you think that a statement of intent on a web page somewhere is a legally binding contract, I have a bridge to sell you.

    Once again, Where are the equivalent public declarations from Microsoft?

    Who cares? Neither Java nor C# break technically any new ground. They would have been interesting if they had become open standards, but neither did. Instead, they have become a quagmire of patents and intellectual property claims. Why argue about which one is the lesser of two evils? The open source community should not touch either of them. Let Sun and Microsoft battle it out; let's hope they'll sue each other out of business.

    By the way g4dget, are you any relation to John Carroll?

    What an idiotic question. You think everybody who isn't enamored with Sun must be a Microsoft shill? I don't work for either Sun or Microsoft. As far as I'm concerned, Microsoft management consists of a bunch of megalomaniacal sleazeballs, but so does Sun management.

    Now, what about you? You keep deflecting criticism of Sun by making completely irrelevant comparisons with Microsoft. Do you work for Sun by any chance?

  80. See - Not in Sun's and others self interest... by NZheretic · · Score: 2
    My follow-up Not in Sun's and others self interest to backslide - covers your first question.

    And Why re-implement either? - Opens source development often follows the successful strategy of finding a standard that works and re-implementing it and building upon it. Linux from Unix, JBoss from Sun's J2EE specs, etc.
    If it comes to a choice between one of the dominant webservice standards, Java or .NET, who should open source developers choose?

    1. Re:See - Not in Sun's and others self interest... by g4dget · · Score: 2

      My follow-up Not in Sun's and others self interest to backslide [slashdot.org] - covers your first question.

      It's not a question. I have probably been in this business a little longer than you and corporate policies can change in an instant, whether you think it's in their interest or not. In fact, Sun has built almost their entire software strategy on taking free software and making it proprietary--why would they stop now?

      Opens source development often follows the successful strategy of finding a standard that works and re-implementing it and building upon it.

      Java was a mediocre technical compromise when it started out, and instead of improving it, as Sun has promised, they have essentially frozen it. What they have spent their time on is chasing one pipe dream after another of enterprise infrastructure world domination. Sorry, the technology isn't even up to that.

      If it comes to a choice between one of the dominant webservice standards,Java or
      .NET, who should open source developers choose? Neither. Both are technically poor, bloated, proprietary, and they are not even well-defined "standards". We can do better in the open source community.

  81. Re:C# is a nice language by IamTheRealMike · · Score: 2
    Thank Anders Hejlsberg, chief architect of the C# language, instead.

    It's interesting to compare his previous work (Delphi) work .NET

    Delphi was and still is rightly praised for being incredibly kickass. Outside of indie Windows development, Pascal is a dead language, but there is a truly astonishing amount of code written in Object Pascal for Windows - even Microsoft have used it for some products.

    So I found it interesting to do a comparison. He clearly took some ideas from it to integrate into C#. For instance language integrated properties are something I constantly wish that Java had. The "uses" clause became "using".

    Anders pats himself on the back for using XML comment tags though. Big mistake IMHO, xml comments are one of the most irritating things about C#. The start and end tags serve no purpose except to make the file larger and harder to read. JavaDocs are more elegant and easier to write. Using XML in many cases is a good decision, but here it is not. But then there are some curious omissions. Delphi doesn't use an IDE that generates gobs of code for user interfaces, it uses binary resources that are reconstructed from data embedded in the EXE/DLL files at runtime by the class library. It's clean and elegant. But what does VS.NET use? IDE generated code of course.

    I guess it's only realistic that most of the innovation in .NET comes from perhaps one or two people, while the rest merely reinvents what came before. After all, the reason that innovation (whatever that is) is so highly prized is that it's rare.

  82. Re:C# is a nice language by spongman · · Score: 2
    But what does VS.NET use? IDE generated code of course.
    Sure, but you don't have to see that code. In fact, the default is set so you don't see it, and in general you don't ever need to.

    On the other hand source code is much more preferable to separate binary resources. Firstly it all in the same file, so your project management becomes much simpler. Secondly it's trivial to support source control systems (CVS, SourceSafe, etc...) - with binary resources it's hard to track incremental changes.

    One of the features most requested for early versions of Visual Basic was to convert the form layout resources from binary into text and embed them in the form source file for exactly these reasons. And they did this, although you don't see the textual representation of the resources in the editor - they're hidden just as before (unless you explicitly want to see them). Microsoft didn't just do this because they thought it might piss you off, they did it because people asked them to, and it makes sense. Besides, it's not like it's 'gobs' of code, but even if it was, who cares?

  83. Wrong by TheAncientHacker · · Score: 2

    C# was developed in house. Some of the concepts behind CLI and CLR were pre-existing but even then only parts. After all, UCSD p-System predates MS-DOS and it wasn't the first.

  84. Successful Negotiating Strategy 4 Free&Open So by NZheretic · · Score: 2
    g4dget wrote: "If you think that a statement of intent on a web page somewhere is a legally binding contract..."
    If the Apache foundation lawyers have a signed paper copy of the aformentioned letter, yes.

    g4dget wrote: "The open source community should not touch either of them.".
    Opens source development often follows the very successful strategy of finding a standard that works and re-implementing it and building upon it. It is possible to reimplement standards based on proprietary products but due care should still take place

    GNU/Linux is a implementation based on Unix and the Posix standards. Unix was proprietary licensed by AT&T, and early open source BSD386 (what became FreeBSD and NetBSD ) development, which replaced the remaining proprietary AT&T code in BSD, was greatly hampered by threats and lawsuits from AT&T. Early Linux development escaped legal entanglement precisely because the developers took steps to insure no such code mixing with AT&T's source took place. However, this took place before software patents were in widespread use, in fact it was not until 1991 that most software companies took any interest in software patents at all.To quote Bill Gates May 16, 1991 email "If people had understood how patents would be granted when most of today's ideas were invented, and had taken out patents, the industry would be at a complete standstill today."

    Does this mean that the open source development community should avoid any and all frameworks and patented methords? NO - There is a better way.

    The solution is to start a negotiation "dialog" with all the parties involved, getting them to actually support open source implementations and licensing based on their proprietary products. How? It's not easy but it is possible.
    1) Win-Win: demonstrate how it is in there best interest to work with the open source community - using open source developed code to ad value to there own products
    2) Reward : Any relatively good behavour, incomparison to other players, reward - say thank you and promote them.
    3) Converted partners : When you have made a "convert" to open source, such as IBM and SAP, them to badger other partners into also adopting open source friendly licenses.
    4) Comparison : play one against the other, Get Microsoft to open it's .NET spec and patent licensing by continualy comparing them to Sun's terms.

    5) Badger, Badger, Badger them with the truth : Long conversations and confontations are tiring but it forces the other side to truly consider the issues.

    In the long term, does it work? Yes. With the X Window System, in 1998 the Open Group releases X11R6.4 under restrictive licensing, after months of haggling and bitter arguing, The Open Group rescinded the restrictive licensing. On November 14th of this year, again after months of similar haggling and bitter arguing, the Patent Policy Working Group of the W3C announced the Royalty-Free Patent Policy.

    It's ironic, but the open source friendly licensing model actualy bring about a solution to the software patient problem proposed by Bill Gates himself in the same email, patent exchanges - "The solution to this is patent exchanges with large companies and patenting as much as we can". Since no company can aparently truly trust the competition in long term relationships, open source friendly licensing provides a methord where competing parties can build upon each others patents.

    g4dget wrote: "You think everybody who isn't enamored with Sun must be a Microsoft shill?"
    Well, the tactics you employ under the shear weight of contradictory linked evidence is a tactic I find often applied by members of the Microsoft Shill persuasion. No, I don't work for Sun, IBM or any other vendor in the IT industry, but I do admire and promote postive behavour when I see it.

  85. Source vs binary resource by Latent+Heat · · Score: 2
    It is 6 one, half dozen the other on source vs binary: automatic source clutters up the source (yeah, yeah, toggle outlining) while Delphi's binary is this mystery meat hidden underneath the sauce.

    There is one big advantage to Delphi's binary approach. The interpretation of that binary resource is in the actual widget class itself, so if you knew which methods to override, you can customize how that binary resource is written at design time and read back in when the thing runs. Overriding Delphi's GetChildren and GetChildOwner and you can go to town making widgets containing lists of Designer-accessible widgets.

    You can do the same thing in C#/.NET to render configurable collection widgets into code, but it you have to create your own collection classes by overriding gobs of methods and it doesn't do quite what you want, and to customize further you have to get into the code-generation API (ew, gross!).

    C# is OK but Delphi rules.

  86. Re:C# is a nice language by IamTheRealMike · · Score: 2
    Actually Delphi 6 switched to text for resources, which are compiled into binary when the program is built, so SCM systems work ok.

    I don't like IDE generated code because it means you have to use that IDE to edit it - kind of tool lockin if you like.

  87. Corporate work by alext · · Score: 2

    This is an excellent step forward for Microsoft on the desktop. As corporations begin to adopt Linux servers, Microsoft software will be able to dominate rather than being left out in the cold.

    Congratulations to Microsoft for their success in subverting these open source developments.

  88. Which means... by alext · · Score: 2

    Shhh... remember that DotGNU and Mono have never specified meaningful objectives - that would allow their success to be measured, and this would affect the hype factor.

    Real objectives would concern real value: the portability and interoperability of products/developments that organizations actually use. Better to stick to announcements about how the C# compiler is now self-hosting, or how someone somewhere is thinking about looking into the feasibility of implementing part of some Dotnet library.

    A few months ago ISTR making comments like this to Miguel de Icaza. His response? That people once said the same things about Linux. This appears to be how these guys think - Dotnet is some static, open, well-defined, low-level API and that cloning it is a one-off effort that entails no risk ands cedes no control to MS.

    Personally I wouldn't touch this stuff with a bargepole.

  89. Most naive post competition, contestant #1 by alext · · Score: 2

    You don't say! Moral high ground? I'll certainly raise this at the next XP rollout meeting in my company.

    Meanwhile, the rest of us who sup with the devil will be taking long spoons, and praying that Parrot and Kaffe do not fall prey to MS-cloning zombies.

  90. Value vs. Compatibilty by alext · · Score: 2

    You are expressing exactly the mindset of Adobe, Oracle etc. who will also be developing for this platform.

    By clearly stating your requirement for a high-level of compatibility, you are exposing the fundamental weakness of Dotnet cloning efforts:

    Unlike, say, Java or Python, the value of Dotnet clones is not directly related to their functionality but to their compatibility. Moreover, this relationship is highly disproportionate - even a few incompatibilities can dramatically diminish their value, since users (other developers) will not make the effort to support the small non-MS market if it compromises their main market developments.

    The only viable route for open source is for it to be based on an open platform - a platform unencumbered by compatibility with proprietary technologies. This can certainly make use of Dotnet, but it can do so without ceding control to Microsoft.

  91. Re:Cool by 0x0d0a · · Score: 2

    I *would* agree, but the problem is that people have frequently taken option A in the past (esp. if a powerhouse like MS is backing it, and MS has made quite a show of backing .NET to the hilt).

    ASP. IE/Navigator web extensions. Visual Basic. FrontPage extensions. Javascript that works on only IE. All these were things that (at least at one point) relied on a single company, yet many people chose to go with them.

    It's worth considering.

  92. Re:Cool by 0x0d0a · · Score: 2

    they will have to withdraw from the certification standard

    Why? As long as they support the language (and presumably a certain set of library code, haven't looked at the exact requirements), they should be gold.

    serious disadvantage in the war against java which is what this shit is about

    Not really. Has gcc fallen beside the wayside to Sun's or IBM's cc because it supports extensions that go above and beyond ANSI (well, now ISO) C? No. People frequently use gcc or gmake because code uses GNU-only extensions that are useful. I use the --verbose flag of GNU rm in a particular script, for another instance of being willing to require extensions.

    alternative implementations

    This is completely and utterly not an issue for MS. They ship .NET on all their machines. Anyone using extensions is going to have things work just fine on a Windows box. Furthermore, I seem to recall MS going up against Borland, Watcom, and a couple others and squashing them in the past while *using* a language that's quite standardized (C), yet VS code not infrequently uses extensions to C and C++. Matter of fact, the reason the cygwin/mingw/gcc guys don't do MFC is because it utilizes some VS extensions. What makes you think that this would be any different?

    Because there is something that makes .NET always faster than java if implemented properly on intel architecture.

    True. Java is, and will always be hobbled by performance. I think that sacrificing performance was a fucking stupid idea on the part of Sun, but that doesn't imply anything about whether MS will extend .NET or not.

    I hate java so any means of killing it should be cherished and supported.

    Ah, well. Someone has to break Goodwin's Law. There were Germans that said the same thing about communists right before Hitler's rise to power...

    we will be back to square one where we began.

    You mean MS will be in control of the primary popular application development language?

    To perl and python as the only "portable" languages.

    Um...no. You just quoted performance as being the crucial issue, right? Perl and python are both quite slow languages when compared to real programming languages -- I'm not sure whether perl or python really fall into the "scripting" or the "programming" language set.

    Perl is completely and utterly useless for developing a full-scale application. It's a slick language for hacks -- nothing, nothing can compare with the power of ten lines of perl code. But somewhere above a couple hundred lines of perl, I've found that programs generally devolve into unreadability and the lack of types becomes an issue.

    I don't know about python -- I don't use it. I suspect that again performance would be enough of an issue to kill it in any fight against .NET. That's not really what python is intended to be used for -- general application development. It's nice for rapid development and scripting. Prototyping. Not putting out a finished, runs-on-end-user-systems product like a word processor or a web browser.

  93. Re:Cool by 0x0d0a · · Score: 2

    It's possible that the JVM bytecode engine can contain bit-level ops and is big-endian. I really don't know if it is, but it's possible. Other than that, I dunno what he's talking about.

    You could always use a compiler that compiles Java to native code instead of a JVM...

  94. Re:Cool by 0x0d0a · · Score: 2

    Not putting out a finished, runs-on-end-user-systems product like a word processor or a web browser.

    And before someone invokes Sketch, you will notice that the performance-critical portions of the thing had to be written in C. (It also isn't as fast as the excellent sodipodi, though that is neither here nor there. BTW, if you haven't looked at sodipodi recently, it's up to the point where it can be used for (light) production work. I remember when the GIMP got to this point and development exploded. Mmm...Linux has vector graphics now. :-)

  95. Re:Successful Negotiating Strategy 4 Free&Open by g4dget · · Score: 2

    If the Apache foundation lawyers have a signed paper copy of the aformentioned letter, yes.

    That's a contract between Sun and the Apache foundation, not a contract with anybody else. The license on what Sun ships hasn't changed. Sun's attitude towards "contamination" hasn't changed. Besides, where is the text of that contract? Where are the signed copies?

    GNU/Linux is a implementation based on Unix and the Posix standards. Unix was proprietary licensed by AT&T,

    But UNIX wasn't patented and AT&T wasn't all that litigious about it (all they wanted was that people honored their copyrights). And POSIX was an open standard, unencumbered by patents. None of that applies to Java (or C#).

    Does this mean that the open source development community should avoid any and all frameworks and patented methords?

    Indeed, it shouldn't. But it should stay out of the line of fire of two major, greedy, and litigious players.

    Well, the tactics you employ under the shear weight of contradictory linked evidence is a tactic I find often applied by members of the Microsoft Shill persuasion. No, I don't work for Sun, IBM or any other vendor in the IT industry, but I do admire and promote postive behavour when I see it.

    I do like to promote positive behavior, too. That's why I supported Java and open source strongly during the first few years, when Sun promised to create an open standard, to encourage third party implementations, to improve numerical peformance and type safety, and to open source their implementation. Sun has broken every one of those promises, and the weight of evidence is that Sun is a duplicitous company that is not to be trusted.

    Sun, in fact, has a long history of taking open source software and making it proprietary, and that hasn't stopped with Java either. Swing, for example, was also ready to be open sourced (IFC), but Sun took it proprietary. Before that, of course, they built their entire company on BSD UNIX.

    Sun is also in trouble as a company, and they have failed to evolve the Java platform technically. This is not a company with which one negotiates or on whose products one builds open source software, in particular since Sun has no technology that is in any way distinguished. In fact, Java has fallen behind technically so badly that it really cannot be recomended anymore.

    I don't know whether you are merely clueless or whether you have some stake in Sun, but either way, your arguments don't hold water and the direction you propose for open source is dangerous. We have given Sun more leeway than just about any other company, and they have taken unfair advantage of open source again and again. This should stop now.

  96. Re:Parrot: the dedicated mops and life engine by karlm · · Score: 2
    Parrot is a 32-register VM (32 registers of each of 3 types), so you should se significant performance increases over almost all of the VMs out there when running on a decently modern ISA (Itanium, PPC, Alpha, PPC, MIPS, and to some extent x86-64). Remember that the Mono and .NET people are more or less copying the design of the JVM while the Parrot design is completely different from (AFAIK) anything designed before.

    Stack-based VMs are much easier to create, but generate a lot more overhead in the JITs. (See Ken Thompson's paper on the DIS VM from the Bell Labs website.) Bickering is bad, but they really want to get it right. You forget, St. Larry has a huge community behind him.

    Now,I wish they'd make an ultra-lightweight memory machine VM and implement higher level VM extensions using the VM code itself. All of these higher-level VMs force thier own object models on the code. Perl, Python, etc. get thier object and calling models mangled to be C#-like in order to run on the CIL. Automagic memory management and pointer safety are wonderful things, but stuffing round pegs (Python objects) into square holes (C# objects) doesn't help anyone. I can definately see making seperate sets of registers for pointers and non-pointers (address spaces for mempry machines) and having pointer arithmetic functions cause inlining of helper functions instead of directly manipulating pointers, depending on CPU state. This would allow you per-thread enforcement of arbitrary memory management/object models. If you didn't want pointer safety, etc., it would run blazingly fast. HP had a project called Dynamo where they made a JIT VM that took in PA-RISC object code as its "byte code". On actual PA-RISC hardware, it usually ran very close to native speed, and in some cases exceeded native speed through heavy use of runtime optimization in the critical sections of code.

    Anyway, my point is that on architectures with many registers, stack-based VMs are not the way to go for fast JITs. I applaud the Parrot people for taking on such a difficult task. Hopefully we'll see performance payoffs, particularly on non-ia32 machines.

    --
    Copyright Violation:"theft, piracy"::Anti-Trust Violation:"thermonuclear price terrorism"<-Overly dramatic language.
  97. Re:I only use C# by rnd() · · Score: 2

    fyi: vb7 is very similar syntactically to vb6 and yet it has all of the functionality of c#.

    --

    Amazing magic tricks

  98. Re:Parrot: the dedicated mops and life engine by Elian · · Score: 2

    What, you mean besides two working BASIC interpreters, a Scheme implementation, Befunge-93, Brainfuck, and a partial perl 6 implementation? (Partial because the spec's not done) Nope, nothing at all to show for the work... ;-P