Slashdot Mirror


Microsoft Common Language Runtime To Be Cross-Platform

axlrosen alerts us to a Microsoft sleeper announcement from Mix07: a version of its Common Language Runtime will be available cross-platform. The Core CLR shows up as part of the Silverlight SDK that Redmond is open sourcing. From the blog posting: "The biggest Mix '07 announcement made on opening day of this week's show was one that Microsoft didn't call out in any of its own press releases: Microsoft is making a version of its Common Language Runtime available cross-platform. The CLR is the heart of Microsoft's .Net Framework programming model. So, by association, the .Net Framework isn't just for Windows any more."

308 comments

  1. "Cross platform" by brennanw · · Score: 5, Funny

    Now supporting XP and Vista!

    --
    Eviscerati.Org: All Hail the Eviscerati
    1. Re:"Cross platform" by Marcion · · Score: 5, Interesting

      "Silverlight will plug into Internet Explorer, Mozilla and Safari browsers, meaning the slimmed-down CLR will run on these platforms, as well."

      When a browser became a platform I'm not sure, when they started handing out the Web 2.0 Kool-Aid I suppose. It doesn't mention Linux so I reckon they mean Firefox on Windows.

    2. Re:"Cross platform" by Burpmaster · · Score: 2, Interesting

      I was at a presentation of XNA and the presenter referred to it as "cross platform" because it runs on both X-Box 360 and Windows XP (and now Vista). Let's not allow Microsoft to dilute the meaning of the terms "cross platform" and "Open Source".

    3. Re:"Cross platform" by matt+me · · Score: 1

      Now supporting XP and Vista Haha I clicked through to make that exact joke.
    4. Re:"Cross platform" by rockmuelle · · Score: 5, Insightful

      Whoa there... just like 'Open' has other meanings that don't imply 'Open Source', cross-platform has many interpretations. The XNA claim to be cross-platform is definitely a valid one, particularly when you consider that the X-Box 360 is a PowerPC architecture and Windows XP and Vista are primarily run on x86 chips. If single development environment that can not only target three versions of an OS, but also target multiple processor architectures isn't cross platform, then I'm not sure what is.

      -Chris

    5. Re:"Cross platform" by tempestdata · · Score: 2, Interesting

      Slimmed down sounds like marketting speak? Crippled is more accurate.

      Sure they can make a version of the CLR available on all platforms, just has to be crippled enough that people would rather use the one on windows. That way they can say "if you really really want to use it on any platform you can.. but we recommend that you use the version on windows because of X, Y and Z".. Also they will have some stupid excuse for not supporting X, Y and Z on the other platforms as if it was the fault of the other platforms.

      --
      - Tempestdata
    6. Re:"Cross platform" by tempestdata · · Score: 1

      Yes I know marketing has one t not two, it was a typo. sorry

      --
      - Tempestdata
    7. Re:"Cross platform" by Anonymous Coward · · Score: 2, Interesting

      "When a browser became a platform I'm not sure,"

      Since the '90s when Netscape was touting its' server software and advertising "best viewed in Netscape X.x" on web sites.

      Web as a platform is what scared MS into the so-called Browser Wars.

    8. Re:"Cross platform" by Have+Brain+Will+Rent · · Score: 1
      Dude, code that compiles and runs for two processor architectures isn't called "cross-platform". It's called "not broken". Assuming OS and APIs are identical, you shouldn't have to praise that trait. You should take it for granted.


      ok.... what version of Windows is running on the X-Box and how is it identical to XP/Vista?

      BTW running on two different processor architectures is called "cross-platform". Changing the architectures makes for a different platform just the same way changing the OS makes for a different platform. Obviously you've never run into code breaking when it is moved from a big-endian machine to run on a little endian machine, or vice versa.

      --
      The tyrant will always find a pretext for his tyranny - Aesop
    9. Re:"Cross platform" by rainman_bc · · Score: 2, Interesting

      Let's not allow Microsoft to dilute the meaning of the terms "cross platform"

      As opposed to Sun? Only recently do we have a JRE for FreeBSD that's supported. Only recently does Adobe make a Flash client for Linux. Adobe still has yet to make a flash client for 64 bit windows.

      Vendors do it all the time - dilute the meaning of cross platform. What they really mean is "cross platform where it suits us".

      --
      09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
    10. Re:"Cross platform" by civilizedINTENSITY · · Score: 1
      "k.... what version of Windows is running on the X-Box and how is it identical to XP/Vista?"

      Regardless of other factors in the dialog, this deserves comment because the ability to compile source code has to do with compilers and libs. Your comment's parent's remark stands on its own here:

      Dude, code that compiles and runs for two processor architectures isn't called "cross-platform". It's called "not broken".
    11. Re:"Cross platform" by Quarters · · Score: 1

      Dude! The 360 doesn't run Windows!

    12. Re:"Cross platform" by Anonymous Coward · · Score: 0

      Java standard is open. Java source code is open and can be ported to anything, legally. You only need to get through zillions of regressions. If you succeed, you have ported Java and you may call your Java really Java. Those are trademark issues at hand.

      Now, those issues are soon over I reckon given the fact Sun is going to open source Java. Or they already did? Or I'm confused with Solaris. Whatever, if all goes well, then Java is under an even less restrictive license soon. Then *NIX OSes can port it themselves without MS porting and raping (PR... or E&E...) it.

    13. Re:"Cross platform" by DShard · · Score: 1

      Not allow them how exactly? Flex is no more "cross platform" then this. HTML is barely cross platform, and that has _tons_ of pressure trying to make it so. This is a losing battle. Your confused about the lack of clout we have. We will need a reverse engineering effort on _both_ these technologies.
      Microsoft is playing a convenient and old card here. We'll see how successful it is. I hope people will see the ruse for what it is, but I doubt history matters at all to most. Both adobe and microsoft will try to lock you in to this new format. The only thing you can do is resist the temptation.

    14. Re:"Cross platform" by Anonymous Coward · · Score: 0

      They're all "Microsoft Platform". There, now you're no longer confused.

    15. Re:"Cross platform" by deepnerd · · Score: 1

      I'll believe it when I see it - (like Vist working!)

      Many of us old timers are STILL waiting for NT / WIN32 to be "POSIX compliant"... "Pluggable API Layers"... and "Open Playing Fields for Developers"... (ROFL)

      It all sounds like just another yet-to-be-broken promise from the SAME people who still haven't figured out that FileListeners depend upon things like "file path characters" - HEY GUYS: Most of the WORLD is not using "\\"! You ever gonna encapsulate THAT??

      So no matter what the intent of the "Open" statement, just how much ANYone ever gets to run outside of the CLR is TBD. XBOX or Linux, methinks that SOMEone will probably have to leave a LOT behind... somewhere.

      Also keep in mind that we are talking about Microsoft here - The guys who "code first, design later." In such a weenie wonderland, we should be thankfull that MS could ransom so much IP from Borland for a mere $100 Million... While .NET is the first thing that MS ever did right, they had to steal it.

      (LOL)

    16. Re:"Cross platform" by ppanon · · Score: 1

      AFAIK, Safari is only available on the Apple Mac, so that implies the restricted CLI will also be ported to that platform. But, yes, it says nothing about Linux; it wouldn't be surprising if Microsoft failed to port it to that platform (and probably Unices in general) to keep a competitive advantage against what it considers a major threat.

      --
      Laissez lire, et laissez danser; ces deux amusements ne feront jamais de mal au monde. - Voltaire
    17. Re:"Cross platform" by rlp · · Score: 1

      > Now supporting XP and Vista!

      Don't forget Windows Server 2003 R2. See, it's REALLY cross-platform

      --
      [Insert pithy quote here]
    18. Re:"Cross platform" by that+this+is+not+und · · Score: 0

      For me, 'cross platform' would mean that the source tarball is easily downloadable and there is a folder for it in the NetBSD pkgsrc tree.

      I was afraid they were going to mean 'cross platform' as that there are binaries for Windows NT on i386, alpha, and powerpc (not MIPS, because they abandoned that one early).

      Please keep your craven justification of Microsoft marketing spam to yourself, thankyouverymuch.

    19. Re:"Cross platform" by that+this+is+not+und · · Score: 1

      Many of us old timers are STILL waiting for NT / WIN32 to be "POSIX compliant"... "Pluggable API Layers"...

      The 'pluggable API layer' turned out to be OpenNT, which is/was a certified POSIX subsystem for NT. A robust one, not the bare-minimum one that Microsoft bundles by default, which is actually uninstalled and replaced by OpenNT if you install it. It works really well, actually. It became Interix and then Microsoft bought the company (Softway Systems), neutered it and released it for free as Services For Unix.

      There could have been other pluggable API layers, but I haven't heard of them. It was actually a really cool idea, but one that Microsoft had little interest in actually pursuing.

    20. Re:"Cross platform" by bheer · · Score: 2, Insightful

      Dude, code that compiles and runs for two processor architectures is called "lowest common denominator" (unless you use #ifdefs, in which case it's clearly not the _same_ code), assuming even one of the processor architectures have _any_ unique features at all. We aren't yet at the point where processors are homogenous commodities differentiated only by price.

    21. Re:"Cross platform" by ClosedSource · · Score: 1

      Actually, that sounds more like Sun's original game plan for Java. Get everybody to adopt the language because it's WORA, than introduce a Sun-specific Java accelerator to get native-like performance. That's why they were so pissed at MS: optimising Java on Windows made a hardware accelerator superfluous.

    22. Re:"Cross platform" by ClosedSource · · Score: 1

      "Java standard is open. Java source code is open and can be ported to anything, legally."

      This nothing to do with being cross platform. It's not about what can be done, it's about what has been done.

    23. Re:"Cross platform" by prencher · · Score: 3, Informative

      FUD more?

      The CLR shipped with silverlight runtime is supported in IE, Firefox and Safari on windows and mac. It contains all CLR 2.0 features, and has all of the silverlight libraries. It does however only contain a subset of the BCL (Base Class Libraries), but that is the same for all the users without .NET that downloads the silverlight runtime, be it on mac or windows. You are a fool if you believe that the majority of windows users have any version of .NET installed, let alone 2.0, even today.

    24. Re:"Cross platform" by Anonymous Coward · · Score: 0

      Posted a bit too fast there, addendum: The runtime is only 4mb to keep it a reasonable download as a browser plugin. Did you really expect a full on .NET framework with all the trimmings?

    25. Re:"Cross platform" by Anonymous Coward · · Score: 0

      It became Interix and then Microsoft bought the company (Softway Systems), neutered it and released it for free as Services For Unix. How exactly did they neuter it? The first SFU was Softway's final release and was still bare-minimum implementation. Many C library functions were missing c.f. Linux or Solaris and there wasn't even support for main(argv,argv,envp) which breaks stuff like GNU make. The next release, Interix 3, is much friendlier and easier to port to. It's much better than it used to be.
    26. Re:"Cross platform" by Anonymous Coward · · Score: 0

      It (as well as the original Xbox) does run a stripped-down Windows kernel. Their APIs are DirectX too, which is Microsoft's proprietary API. Microsoft advertises the ease of porting from Windows to Xbox. As far as the developers are concerned, the 360 is more "Windows" than anything else out there.

    27. Re:"Cross platform" by mrmeval · · Score: 1

      Can CLR unclog their pipes?

      --
      I'd go on a Vegan diet but the delivery time from Vega is too long. --brownkitty
    28. Re:"Cross platform" by drsmithy · · Score: 1

      Also keep in mind that we are talking about Microsoft here - The guys who "code first, design later."

      Well, it's the the OSS community's motto "as well" (heck, it's practically a warcry)...

    29. Re:"Cross platform" by drsmithy · · Score: 1

      There could have been other pluggable API layers, but I haven't heard of them.

      OS/2 (text mode apps only though) and Win32.

      It was actually a really cool idea, but one that Microsoft had little interest in actually pursuing.

      That's because pursuing it for the sake of pursuing it is bad business. They need an API that's profitable to plug in, before ll developing it is a worthwhile endeavour.

    30. Re:"Cross platform" by Serious+Callers+Only · · Score: 1

      That's why they were so pissed at MS: optimising Java on Windows made a hardware accelerator superfluous.


      Yes, Microsoft optimised Java out of existence on Windows.
    31. Re:"Cross platform" by random0xff · · Score: 1

      Maybe we should use a new term: cross-vendor

    32. Re:"Cross platform" by ClosedSource · · Score: 2, Informative

      No. Sun sued Java out of existence on Windows.

    33. Re:"Cross platform" by Dog-Cow · · Score: 1

      You are beyond stupid.

    34. Re:"Cross platform" by linuxrocks123 · · Score: 1

      > BTW running on two different processor architectures is called "cross-platform". Changing the architectures makes for a different platform just the same way changing the OS makes for a different platform.

      No, it makes for a different processor. What you're thinking of is "processor-independent". For something to be "cross-platform", it would have to be written in such a way that it could run on operating systems with materially different architectures and APIs.

      Hope this clears up your confusion.

      --
      vi ~/.emacs # I'm probably going to Hell for this.
    35. Re:"Cross platform" by makomk · · Score: 1

      The CLR shipped with silverlight runtime is supported in IE, Firefox and Safari on windows and mac. It contains all CLR 2.0 features, and has all of the silverlight libraries. It does however only contain a subset of the BCL (Base Class Libraries), but that is the same for all the users without .NET that downloads the silverlight runtime, be it on mac or windows. You are a fool if you believe that the majority of windows users have any version of .NET installed, let alone 2.0, even today.

      What's the betting that sites will stick to the subset of libraries included with Silverlight? In particular, what's to stop them from using non-included parts of the BCL and telling people "just download the full version of .NET"? (Most Windows users probably have it installed already by now.)

    36. Re:"Cross platform" by Have+Brain+Will+Rent · · Score: 1
      I'm afraid you're the one that is confused. A "platform" is a particular combination of hardware and software, in the current case a processor and operating system. Change either and you have changed platforms. Software being "cross platform" means it runs on platforms that differ in a non-trivial way, i.e. OS or hardware. Being processor independent can be synonymous with cross platform, if the only differences between platforms are the processors, or it can be a necessary but not sufficient component of being cross platform if both the processor and OS differ, or it can be irrelevant if all the platforms under discussion differ only by OS.


      When talking about platforms if you want to refer to just the OS (or supporting libraries, specifications etc.) then you would say "software platform" and if you want to talk only about the processor (or other supporting hardware) then you would say "hardware platform". Otherwise, in computing, the word platform is understood to mean a particular combination of hardware and software.


      Also be aware that cross platform is not the same thing as platform independent.


      If you are still confused you may find the following helpful:

      http://www.bellevuelinux.org/cross-platform.html
      http://www.thefreedictionary.com/platform
      http://www.atis.org/tg2k/_platform.html
      http://mtechit.com/concepts/platform.html
      http://encarta.msn.com/encnet/features/dictionary/ DictionaryResults.aspx?refid=1861738674

      --
      The tyrant will always find a pretext for his tyranny - Aesop
    37. Re:"Cross platform" by linuxrocks123 · · Score: 1

      > A "platform" is a particular combination of hardware and software, in the current case a processor and operating system. Change either and you have changed platforms. Software being "cross platform" means it runs on platforms that differ in a non-trivial way, i.e. OS or hardware.

      Nope, it means that it's independent of the low-level OS API. Correctly written application software in a high-level language should run on any processor -- you get that for free. Making software cross-platform often involves creating an abstraction layer around the OS API, or using one that already exists (such as Java or the POSIX standards).

      Sorry my earlier post wasn't able to clear up your confusion. I hope this helps, but unfortunately I don't have time to discuss this further with you. However, if you're still confused as to the difference between platform and ISA, I'd suggest reading some encyclopedia articles on the topic. Reading the sites you linked to above might help, and I'll also give you some places to start for more information:

      http://en.wikipedia.org/wiki/Instruction_set
      http://en.wikipedia.org/wiki/API

      --
      vi ~/.emacs # I'm probably going to Hell for this.
    38. Re:"Cross platform" by Have+Brain+Will+Rent · · Score: 1
      Nope, it means that it's independent of the low-level OS API. Correctly written application software in a high-level language should run on any processor -- you get that for free. Making software cross-platform often involves creating an abstraction layer around the OS API, or using one that already exists (such as Java or the POSIX standards).


      Simply repeating/paraphrasing the statements in your earlier post does not suddenly change them from incorrect to correct. As well the fact that you don't seem to know that what (you claim) software should do and what it actually does do in the real world are often two very different things, indicates a lack of experience on your part.


      Sorry my earlier post wasn't able to clear up your confusion.


      That's probably because the confusion is all yours. Being well educated in the field and a professional in it for more than three decades I'm perfectly well aware of the accepted definitions of the terms and I provided multiple sources supporting the definitions I used.

      You on the other hand have just repeated your unsubstantiated opinion and then say:

      unfortunately I don't have time to discuss this further with you

      which, sorry, seems a tad cowardly to me. If you had looked at the links I gave you would have realized you were wrong. Or perhaps you do realize that and you're one of those people who just can't admit to a mistake. That would certainly explain your repeating yourself and then running away. It would also explain why instead of providing links to definitions of the term under discussion, "cross platform", you instead link to wiki pages on terms irrelevant to the definition of "cross platform". That seems a transparent attempt to misdirect the discussion away from your mistake linuxrocks123.

      --
      The tyrant will always find a pretext for his tyranny - Aesop
    39. Re:"Cross platform" by prencher · · Score: 1

      Silverlight is completely seperate from your .NET framework installation, it does not know of it. If you want to use silverlight you have to target it specifically (in this way it's similar to the .NET Compact Framework, which is another .NET subset), and include anything it doesn't have in your application. The moment your app works in silverlight however, it will work whether it's on mac or windows.

    40. Re:"Cross platform" by Have+Brain+Will+Rent · · Score: 1
      You left out his next statement:

      Assuming OS and APIs are identical, you shouldn't have to praise that trait. You should take it for granted.


      So unless the X-Box runs Windows his first comment is irrelevant which was the point of my original reply to him. Perhaps I should have been more straightforward in my comment.

      In reply to your comment I would say the ability to correctly compile source code very definitely has to do with the platform (hardware and software) for which it is being compiled, along with a host of other things.

      --
      The tyrant will always find a pretext for his tyranny - Aesop
    41. Re:"Cross platform" by that+this+is+not+und · · Score: 1

      The last versions of Interix included the GNU toolchain.

      I never thought I'd run into anybody who claimed that Microsoft improved on Interix. Truly shocking.

      Furthermore, there were Microsoft releases of Interix after the purchase, and before SFU. I own one of the last Softway Interix versions and a commercial-CD release of 'Microsoft Interix.' Various useful things, like the vi editor, etc. are missing, cut away and removed from Microsoft Interix. It makes running the inetd and shelling into a Windows box with a rsh less useful when the text editor no longer exists.

      Another thing Microsoft cut away and discarded was the Alpha version of Interix. A POSIX subsystem, including the GNU toolchain and GCC, was actually a useful thing to run on NT Alpha, if you were saddled with Alpha boxes running NT and wanted to compile stuff to run on them. Particularly if you arrived too late to 'Kiss the ring' necessary to get the Visual C extensions for Alpha.

    42. Re:"Cross platform" by Burpmaster · · Score: 1

      If single development environment that can not only target three versions of an OS, but also target multiple processor architectures isn't cross platform, then I'm not sure what is.

      Except that just about every other development environment in existence targets many more platforms than they do and they aren't pushing an agenda by only supporting the platforms of one company. I'm sorry, but touting one of the least cross-platform environments in modern existence as "cross-platform" DOES dilute the meaning.

    43. Re:"Cross platform" by petermgreen · · Score: 1

      sun GPL'd some stuff. Most notablly hotspot and javac and promised to release the rest of the JDK (except for some minor components they don't own the legal rights to release) early this year (its not happened yet though afaict).

      ultimately the code sun have released is of very little use to the foss community until/unless they put the class libraries under a suitable license (GPL with an exception to allow use with propietry apps known as the classpath exception being the one they apparently plan to use) as well.

      As it stands now you can get the java source, port it and probablly release patches but afaict if you want to release the resulting source as one unit or you want to release binaries you will most likely need a pay for license from sun.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    44. Re:"Cross platform" by Anonymous Coward · · Score: 0

      ha ha give it up luser u were pwned

  2. Cross platform? by msauve · · Score: 0, Redundant

    Is that, like, it runs on Windows Vista _and_ Windows XP?

    --
    "National Security is the chief cause of national insecurity." - Celine's First Law
    1. Re:Cross platform? by Major+Blud · · Score: 0

      So I'll be able to finally run my favorite .NET apps in PC-DOS 6.0?

      --
      If you post as Anonymous Coward, don't expect a reply.
    2. Re:Cross platform? by immcintosh · · Score: 1

      My guess is it means it'll run on Windows and OSX. That seems to be Microsoft's usual definition of cross-platform.

  3. Cross-platform but x86 only by Rosyna · · Score: 1

    Currently, Silverllight 1.1 is x86 only. It won't run on PowerPC based Macs, just the ICBMs.

    For a logistical standpoint, that doesn't seem very cross platform to me if they've already chopped off half of the other platform with the 1.1 release...

    Yes, this is my current soapbox.

    1. Re:Cross-platform but x86 only by Anonymous Coward · · Score: 0

      MS won't support linux, so the best cross-platform they came up is still short.

      Someone better come up fast with an openjava-based alternative to flash that can run in any cell phone, operational system, PDA, etc.

    2. Re:Cross-platform but x86 only by kpdvx · · Score: 4, Funny

      Silverlight 1.1 runs on Intercontinental Ballistic Missiles? Well, that is certainly worrisome.

    3. Re:Cross-platform but x86 only by spikedvodka · · Score: 1

      Took me a minute... but I think it's more of a backronym to Intel Chip Based Machines

      --
      I will not give in to the terrorists. I will not become fearful.
    4. Re:Cross-platform but x86 only by Tornado419 · · Score: 1

      Currently, Silverllight 1.1 is x86 only. It won't run on PowerPC based Macs, just the ICBMs.

      It only runs on Intercontinental ballistic missiles?
    5. Re:Cross-platform but x86 only by Anonymous Coward · · Score: 0

      And 1.0 Beta supports x86 and PPC Macs. It's an alpha, stop trying to make a political point despite facts to the contrary.

    6. Re:Cross-platform but x86 only by Anonymous Coward · · Score: 0

      >>For a logistical standpoint, that doesn't seem very cross platform to me if they've already chopped off half of the other platform with the 1.1 release...

      The 1.1 release is still a beta, or possibly alpha version...

  4. Cross Platform by Frequently_Asked_Ans · · Score: 1

    M$'s way of saying it doesn't work at all

    --
    "Stallman says add to this code and you are one of us. Gates says use this code and you belong to us."
  5. ha! by cosmocain · · Score: 1

    So, by association, the .Net Framework isn't just for Windows any more.

    so you're...guilty by association! *scnr*
  6. I sense a kindred spirit... by brennanw · · Score: 1

    Come... together we shall mock the world!

    --
    Eviscerati.Org: All Hail the Eviscerati
  7. Mono? by morgan_greywolf · · Score: 2, Informative

    Wasn't .NET already cross-platform with the introduction of Mono?

    1. Re:Mono? by Jugalator · · Score: 4, Interesting

      Yes, kinda, partially.

      My question is more like --

      Will this aid Mono development? Is Mono still necessary? What about the Windows specific API's? A lot in .NET Framework is, like System.Windows.Forms, and Microsoft.*.

      --
      Beware: In C++, your friends can see your privates!
    2. Re:Mono? by mpapet · · Score: 0

      Well, except Mono is a small project that Microsoft would rather see die. It will disappear when they are ready to drop litigation bombs.

      What disturbs me more is how the term "open source" has been co-opted and soiled by Microsoft when the license terms which will only be FSF approved when microsoft owns the FSF.

      --
      http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
    3. Re:Mono? by fm6 · · Score: 1

      An underfunded third-party implementation of the CLR is not exactly the same thing as one that is backed both by the name and the resources of Microsoft.

    4. Re:Mono? by rapett0 · · Score: 1

      You know, I wonder if they can just take the approach as some of the Windows emulators take on Linux. Once its all opened up and the workings are exposed, just replace those functions as needed based on the platform. At the end of the day, all the platforms have differences or one type or another, so changes would have to be made to the fundamental libraries anyway to ensure same behavior cross-platform.

    5. Re:Mono? by gral · · Score: 4, Interesting

      The Core is not really that much. It is just enough to say they are Cross Platform like Java, but really not enough to allow a dev to run .Net code compiled on Windows on a linux or Mac. Mono is actually alot further along, and actually WANTS the CLR to run Cross Platform.

      --
      Scott Carr
    6. Re:Mono? by gral · · Score: 3, Interesting

      Mono really isn't that small a project. What make the .Net framework appealing to most is the ability to work with IO, Database, Sockets, Forms, Console, etc. Mono does all this. It doesn't sound like this "Release" from Microsoft is going to really do much.

      --
      Scott Carr
    7. Re:Mono? by morgan_greywolf · · Score: 1

      Will this aid Mono development?


      Probably not, since the Microsoft Permissive License has a GPL-like 'viral' clause, which means that if Mono used the code, Mono would probably have to be licensed under the Ms-PL.

      Is Mono still necessary?


      Yes.

      What about the Windows specific API's? A lot in .NET Framework is, like System.Windows.Forms, and Microsoft.*.


      I doubt they'll open up those. The announcement relates only the the CLR, not the .NET Framework.

    8. Re:Mono? by digitig · · Score: 1

      My understanding is that MS retained IPR on .NET 2.0 features (including CLR support for generics) and they could hit Mono for the 2.0 features any time they wanted. Access to those features is worth something.

      --
      Quidnam Latine loqui modo coepi?
    9. Re:Mono? by Kalriath · · Score: 1

      Will it aid Mono? No, not really. The CLR is what they refer to, which is only the driver behind the Common Type System, Code Access Security model, the MSIL Interpreter and so on. Types, Classes and Namespaces within the framework are just that - framework classes. They aren't part of the CLR.

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
    10. Re:Mono? by Anonymous Coward · · Score: 1, Informative

      There is not just MONO, but also ROTOR.
      http://www.ondotnet.com/pub/a/dotnet/2002/03/27/ar chtour.html

      Pitty neither of those gives the true cross-platform we need for the C#.net Platform.
      ROTOR is just a BSD port of the C#.net virtual machine (no JIT compiler, no full framework libraries).
      MONO is just a rewrite of the C#.net virtual machine + partial framework libaries (no win32 compatibility layer below).

      In the end, the C#.net Platform will always be an NT-only solution.
      Maybe REACTOS will be the solution to run the full Platform without MS licences... some day.

    11. Re:Mono? by tobiasly · · Score: 1

      Well, except Mono is a small project that Microsoft would rather see die. It will disappear when they are ready to drop litigation bombs.

      Maybe you missed the news, but Microsoft and Novell (which sponsors Mono) entered into an agreement to prevent such "litigation bombs". Plus, both the C# language and the CLI are ECMA standards, and according to the Mono guys, Microsoft has been very forthcoming in their help in implementing Mono.

    12. Re:Mono? by Richard_at_work · · Score: 1

      It was cross-platform from the very start, Microsoft released Rotor for FreeBSD back in 2002.

      Shared Source CLI Provides Source Code for a FreeBSD Implementation of .NET

    13. Re:Mono? by ASBands · · Score: 1

      Does ATI provide proprietary drivers for Linux? Yes. Are alternative, open-source versions still necessary? Yes. I wouldn't fully trust Microsoft to implement anything correctly.

      I would like to see .NET code run on Linux (and I guess OSX..), because it's a Java-like environment without the annoyances of Java. Sure, C++/CLR (my .NET language of choice) has its quirks (some of which I need C# to fix), but at least it isn't Java and it (hopefully) will soon be easy to cross-platform without anything more than minor annoyances.

      --
      My UID is a prime number. Yeah, I planned that.
    14. Re:Mono? by Anonymous Coward · · Score: 1, Informative

      The permissive license does not have a viral clause. The MSPL is similar to a BSD style license. The community license does contain a viral license: comm license.

    15. Re:Mono? by samkass · · Score: 2, Funny

      Of course they have. Mono is just legitimate enough for Microsoft to say "and if you need cross-platform support, there's Mono out there, so go with .NET". But just unsupported enough so that when companies ACTUALLY go with .NET, Microsoft can say "you don't REALLY want to move off of Windows because Mono is unsupported and potentially flaky, and who knows whether we'll sue them someday."

      --
      E pluribus unum
    16. Re:Mono? by Durandal64 · · Score: 0, Troll

      What disturbs me more is that the term "open source" has been co-opted and soiled by the FSF. The FSF doesn't have a trademark on the term, and the basic meaning of "open source" can be intuitively discerned as "source code which is publicly viewable", implying absolutely nothing about the license under which it's published.

    17. Re:Mono? by KinkyClown · · Score: 1

      And my question is then:

      Will they bring the much anticipated BLUE SCREEN OF DEATH to Linux?

    18. Re:Mono? by Anonymous Coward · · Score: 0

      Microsoft .NET used to be cross-platform because Microsoft supported FreeBSD and OS X via SSCLI (Rotor); however with .NET 2.0 they've dropped support for everything except XP SP2 in the SSCLI.

  8. Me? Cynical? Never. by AKAImBatman · · Score: 5, Insightful

    The Core CLR shows up as part of the Silverlight SDK that Redmond is open sourcing.

    That's great. Now if Microsoft would actually implement a few web standards (rather than spewing out more Microsoft "standards") I might actually trust them. As it happens, though, I don't. Internet Explorer has the absolute worst track record of all the modern web browsers. It's fairly straight forward to tune Javascript/DOM code to run in Mozilla, Opera, and Safari. But Internet Explorer? Meh. Let's just say that it adds another 30-50% to the project time.

    Now Microsoft wants to broadcast their wonderful multimedia technology that will enhance the web, be cross-platform, show cool multimedia-type stuff that we can already do with SVG or Canvas. Woohoo. Whoopdedoo. Wow.

    Not.

    This smacks of yet another Microsoft embrace, extend, and extinguish stratgey. "Yeah, guys. Come on in. Here's the Silverlight plugin which works on Macs. We're going to be real buds with these Mac peoples! We're even porting a teeny bit of the CLR (ed: And you thought Java was browser bloat?) to make our XAML/Avalon/WPF technology work for you guys. Oh, did we mention that Macs are kind of slow? (ed: They are now!)"

    Next version: "We haven't seen enough customers demand support for the Mac. So we're dropping the plugin for that platform and adding some amazing new features to the Windows version." *FWHHOOOSH* Extinguished.

    If Microsoft really wanted to compete, they'd be the first to implement the OpenGL API for the Canvas tag that the WHATWG has been working on. Oh, but wait! That wouldn't be Window-y enough. It would have to be the DirectX API through Javascript, dontchaknow. :-/
    1. Re:Me? Cynical? Never. by Chester+K · · Score: 2, Interesting

      It's fairly straight forward to tune Javascript/DOM code to run in Mozilla, Opera, and Safari. But Internet Explorer? Meh. Let's just say that it adds another 30-50% to the project time.

      Now Microsoft wants to broadcast their wonderful multimedia technology that will enhance the web, be cross-platform, show cool multimedia-type stuff that we can already do with SVG or Canvas.


      Actually, the reason they're bundling the CLR is because the browser's own Javascript/DOM systems (which are also supported by Silverlight) are horrendously slow in comparison. At the MIX conference, they ran a demo where a Silverlight chess app had an identical AI player routine written in browser-run Javascript and CLR-run Javascript (I believe the exact same JS code was used for both), and the in-browser AI could only analyze a couple hundred moves in the same time the CLR version could analyze a million. That's four orders of magnitude faster.

      That's why they're including the CLR as a code option. Because it's unbelievably faster.

      --

      NO CARRIER
    2. Re:Me? Cynical? Never. by AKAImBatman · · Score: 5, Informative

      Dude. CANVAS. Hello?

      Microsoft pulled the wool over your eyes. They were showing you a DOM app that needed to modify the rendering tree in order to make a move. This is similar to a 3D Scene Graph, but without the hardware acceleration. When Microsoft showed you the Silverlight app, they were showing you a hardware-accelerated drawing program. The very purpose for which Canvas was created.

      As for the AI speed (assuming that the performance issues weren't entirely being caused by the DOM manipulations), Silverlight still uses Javascript for scripting. If it can run so much faster in their CLR scripting why don't they use their new Javascript engine in Internet Explorer?

      In case you think I'm joking, that is exactly what Mozilla is doing with their new Tamarin engine. The new engine is faster and more feature rich, ergo it's being integrated into the browser platform. To make matters even more interesting, Mozilla and Adobe are sharing the development of the engine, so that they can both use it. Mozilla in the browser, Adobe in Flash.

      I'm sorry. Microsoft is pulling a fast one on you. There is no need for Silverlight other than to lock you into Microsoft technology.

    3. Re:Me? Cynical? Never. by Excors · · Score: 1

      the OpenGL API for the Canvas tag that the WHATWG has been working on

      Only a minor point to clarify, but the WHATWG hasn't been working on the OpenGL API, and the 2D canvas (which it has worked on, and which has been implemented) isn't designed to be hardware-accelerated. Some Firefox and Opera developers have been experimenting with exposing OpenGL ES, and it seems likely that they will propose it in the WHATWG at some point to get standardisation, but that hasn't happened yet and it isn't much of a priority, and I expect it will take quite a while to get it sorted out.

      (I've done some work with pseudo-3D in the 2D canvas, which is kind of slow, so I'm quite interested in how it's going to progress in the future.)

    4. Re:Me? Cynical? Never. by AKAImBatman · · Score: 1

      Actually, it is mentioned in the spec; albeit briefly: "A future version of this specification will probably define a 3d context (probably based on the OpenGL ES API)."

      Basically, it's been reserved and pointed to as a future point of development. Opera seems to be the most eager to develop this part of the spec, but so far they haven't released anything. As I was saying, if Microsoft wants to accelerate web development they'd look at helping the WHATWG by defining and implementing that part of the spec. That would give them a huge lead over their competitors without locking in the web to Internet Explorer.

      Also, nothing in the 2D spec prevents hardware acceleration behind the scenes. It simply isn't defined either way. :-)

    5. Re:Me? Cynical? Never. by owlstead · · Score: 1

      I don't *want* JavaScript that is written to consume CPU cycles. Its bad enough that it is hard to control as it is. What if you get this same page on a computer without a fast CPU? Flash is anoying enough, let's leave it at that (and even though I am a Java programmer, I don't want Applets either, make it a WebStart application if you need my CPU cycles).

    6. Re:Me? Cynical? Never. by Excors · · Score: 1

      Yep, but the spec saying "3D would be cool" is a long way off actually doing any work on it - there was a bit of discussion on the mailing list some years ago, but (as far as I'm aware) nothing else has been done within the WHATWG since then. (And all the work is done in the open, so it would be obvious if they had done any.)

      In any case, Microsoft is staying out of the WHATWG because of the lack of a patent policy, but they're involved in the HTML WG and seem to be interested in pursuing the HTML5 work now. I expect the 3D canvas work would be done in the WHATWG instead (as it seems much more productive than the HTML WG) and so Microsoft wouldn't be able to get involved even if they cared; but I expect that the 2D canvas will end up in the W3C spec, which will hopefully give Microsoft enough reason (and enough assurances about avoiding patent lawsuits) to implement it at some point in the future. But that'll probably be years in the best case, and 3D seems further out... In the meantime, I'll just keep making sites that work in everything except IE :-)

    7. Re:Me? Cynical? Never. by cshark · · Score: 1

      "That's great. Now if Microsoft would actually implement a few web standards (rather than spewing out more Microsoft "standards") I might actually trust them. As it happens, though, I don't."

      Please correct me if I'm wrong (and I'm sure you will), but wasn't C# released as an ECMA standard? I guess what I'm not clear on from your post is what exactly a "microsoft standard" entails. If open standards like ECMA-334 aren't good enough for you, what is?

      --

      This signature has Super Cow Powers

    8. Re:Me? Cynical? Never. by JohnFluxx · · Score: 1

      The core is, but the libraries aren't. There's not that much you can do with the open standard c# other than a hello world.

    9. Re:Me? Cynical? Never. by AKAImBatman · · Score: 1

      Oh, boo hoo. Go play some tetris: http://java.dnsalias.com/tetris/

    10. Re:Me? Cynical? Never. by MickDownUnder · · Score: 1

      There is no need for Silverlight other than to lock you into Microsoft technology.

      Here's a need - INCREASED PRODUCTIVITY, SECURITY, AND CAPABILITIES OVER FLASH!
      You've obviously never developed an application using Microsoft .NET. I'm betting you're some poor Adobe Flash animator realising everything you know is about to be deprecated.
      Adobe flash can't even be compared to what Microsoft is delivering as a development platform.
      How about instead of pulling wool over my eyes I'll just breathe a huge sigh of relief instead?

      Thank god for Microsoft, I can't wait for Flash to be just one of those memories that when you recollect makes you groan out load.

    11. Re:Me? Cynical? Never. by AKAImBatman · · Score: 1

      Don't take this the wrong way, but....

      Actually, take it however you want. You sir, are an idiot.

      Flash indeed. Hrumph.

    12. Re:Me? Cynical? Never. by mvdwege · · Score: 1

      Yeah right. And Microsoft never used a smoke-and-mirrors demo to kill competing technology (*cough*Pen Windows*cough).


      Mart
      --
      "I know I will be modded down for this": where's the option '-1, Asking for it'?
    13. Re:Me? Cynical? Never. by Anonymous Coward · · Score: 0

      I actually agree with your sentiment but I give them a chance with which I mean I'm watching it. They had a chance with Mono, but suddenly they stopped all negotiations. Really odd (look up that story I think it was posted on OSnews first).

      Now, I'm still waiting for a port of Quicktime on a certain OS. Say all you say about Real you want. At least their damn plugins (and player) was ported to that certain OS. Now, one might argue Quicktime isn't a standard. True. But Apple would love to see it widely adopted and webpages often use it for embedded video playing. Well, it used to be very popular. As was Real. Now we have Flash. Which isn't an open standard either nor does a full featured open source implementation exist. If Microsoft's standard allows an open source implementation and its technically as good or better than Flash I'm all for it. The fact I hate Microsoft as corporation (I do) is irrelevant in that regard.

      Another option of what is happening is that Microsoft realizes embedded WMV (or, forcing WMP) isn't the standard anymore. So they adapt. By seeming nice. That is what Shared Source is to me: seemingly nice. You have no rights whatsoever with Shared Source.

      Its ironic we're talking about standards and .NET and you bring up DirectX, given their history and relation to Java and OpenGL.

  9. Be afraid, bitches.... by LibertineR · · Score: 5, Insightful
    If a lot of you, previously unexposed to the CLR gain access to it, you will discover that it is not the crap that so many of you have read it to be.

    From denial, to grudging acceptance, to surprised admiration, is how the process works, and whether you hate Microsoft or not, a few months playing with C# usually results in the comment "Damm, why didnt they do this with Java?"

    The Borg isnt dead, they have only been regenerating. Prepare to modulate shield frequencies, because they are coming.......

    1. Re:Be afraid, bitches.... by teknopurge · · Score: 1

      what is better about it compared to java, besides the fact they don't serve the same purpose?

    2. Re:Be afraid, bitches.... by UnknowingFool · · Score: 5, Interesting

      From denial, to grudging acceptance, to surprised admiration, is how the process works, and whether you hate Microsoft or not, a few months playing with C# usually results in the comment "Damm, why didnt they do this with Java?"

      After playing with C# for a few months, the answer I came up with is that C# happened after Java and (I would hope) improve upon Java in some ways. But I stopped using it because of a few reasons. The first of which was the cross platform problem. While Java wasn't open source at the time, it worked on a lot of different platforms. At best you could implement .NET with Mono but there was no guarantee that a change by MS would not negate the hard work of the Mono team. The second reasons is that MS has always been long on promises about technology and short on execution. I'm content to let some else be the guinea pig.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
    3. Re:Be afraid, bitches.... by suv4x4 · · Score: 1

      If a lot of you, previously unexposed to the CLR gain access to it, you will discover that it is not the crap that so many of you have read it to be.

      Who actually claimed the CLR and C# is "crap". No one said that. Microsoft business is more of politics and the burden of supporting obsolete legacy architectures. .NET's CLR engineering isn't hindered by either of those.

    4. Re:Be afraid, bitches.... by Anonymous Coward · · Score: 0

      I've been with C# for about 6 months now and I still consider it inferior to Java. The syntax is much more complicated. I end up getting confused whether I'm dealing with a property or a method. I personally think that the .Net libs are inflexible but I'll chalk it up to my inexperience with them.

    5. Re:Be afraid, bitches.... by Anonymous Coward · · Score: 1, Funny

      This is Slashdot. You can be assured that someone said it.

    6. Re:Be afraid, bitches.... by rapett0 · · Score: 1

      Parent has a great point. I am not a fanboy for any particular platform as you will see in my previous posts, though maybe I do take MS's side simply because I think the bashing is over the top sometimes.

      Regardless, I cut my teeth in the C++/ASM world and jumped into .NET kind of early. Did it have some issues to start? Sure. Does it still have some? Sure. As all languages and platforms due. However, I feel many people felt that .NET (and subsequently the CLR/IM, etc) was meant to be cross platform hardware-wise, while MS took it to be only on Windows (sort of a Windows JVM so to speak). Hopefully with this change, all the effort gone into .NET can now be harnessed on Unix platforms. Sure, many of us can simply use whatever stack is available, but it be nice to spend most of the time in one so you can focus on the product/problem at hand, not worrying about the idiosyncrasis (sp?) of a stack you don't spend most of your time in. Again, not being pro MS here, but I do know it would be nice to have the option to develop the same in Linux, for example. I know mono is there, but I always felt it took the .NET - down approach, instead of the CLR/IM - up approach. (Again, could be wrong as you can't have one without the other, but I feel many .NET people are out of theie element in Mono.)

    7. Re:Be afraid, bitches.... by heffrey · · Score: 1

      I think a lot of people on Slashdot have said that over the years. Anyone who puts their head above the parapet and compliments a piece of MS technology is roundly shouted (and modded) down. I think the undeniable anti-MS sentiment of Slashdot is what the original poster was referring to.

    8. Re:Be afraid, bitches.... by LibertineR · · Score: 1

      Huh? The syntax is almost identical! I think you are correct in needing more experience with the language. Tone down your ambitions until you master the basics. A lot of people jump into C# without a good understanding of the CLR or .NET as a whole. You will gain much by learning the underpinnings first, and you will then discover that C# is about as flexible as it gets. Is it perfect? No. But it aint bad at all.

    9. Re:Be afraid, bitches.... by LibertineR · · Score: 1
      I was afraid my comment would create another C# vs. Java debate, as that was not the intent. I was just relaying what I have experienced from people new to the language after hearing nothing but crap about it. In every case, people who read all the Slashdot crap about C# or .NET for that matter, when exposed to the real thing, discover it to be much better than expected, and I was only suggesting the same thing this go'round with Silverlake.

      I did NOT want to create another C#-Java slugfest, trust me....

    10. Re:Be afraid, bitches.... by Iloinen+Lohikrme · · Score: 2, Insightful

      Darling and others, as I am may day drunk, I just have to say this: all languages are all the same. I use and have used Java as my primary programming language for the last 5 to 6 years. Before that I used Pascal and some C to achieve what I wanted. In these years I have to confess, all these languages to me have seem to be all the same. Yes, Java is more object orientated and thanks to modern IDE's (hallelujah for Netbeans) developing has newer been as easy at it is. The story still remains the same, I could still do the same things that I do with Java almost as easy with any language.

      For you language fanatics and others... I use Java not because it's nice pretty language... It's not... It's because Java has a history, it has a history in enterprise, it has history with Sun, IBM, Accenture (those bastards!) and others... with that history I can be sure that Java isn't going to go anywhere, it's going to stay. Yes C# could be as nice as Java, but hey, it doesn't have the same history, it doesn't have the same industry support as Java... and looking at Microsoft's history... well... embrace and extend... change as you go... well.. that doesn't suite to me... I need assurance that my code works and my environment where I'm developing works as well it's today still a decade in the future...

      Oh yeah... C# and the whole .NET platform are usable and secure in that day that Microsoft will open source them whole with any and all extensions that they have made to them, and they backing up and giving support options for deployments in Linux, AIX and Solaris environments... I'm sorry but giving up Java for .NET and C# with out real assurance and multi-platform support is for mad mans and MBA's only.

    11. Re:Be afraid, bitches.... by IGnatius+T+Foobar · · Score: 2, Interesting

      If a lot of you, previously unexposed to the CLR gain access to it, you will discover that it is not the crap that so many of you have read it to be.
      In the end, it doesn't matter. Using the .NET framework both hurts Java marketshare and props up Microsoft's marketshare, and their monopoly. Do you really want to hand even more keys-to-the-kingdom to Microsoft? What if, a few years from now, .NET pushes Java out of the market, and Microsoft gains a monopoly in this space? Do you really think .NET would ever improve?

      Microsoft creates a better product only as a last resort. Without competition they will sit on their asses and collect monopoly rents. And that is why I cannot in good conscience use or recommend any Microsoft product or service.
      --
      Tired of FB/Google censorship? Visit UNCENSORED!
    12. Re:Be afraid, bitches.... by naasking · · Score: 1

      If a lot of you, previously unexposed to the CLR gain access to it, you will discover that it is not the crap that so many of you have read it to be.

      It isn't, but it's still more complicated than it needs to be, and not general enough to be a true CLR. After almost 6 years of working on .NET for my day job, I'd say I have a fair handle on it, and there are a number of aspects of the CLR that still leave a sour taste.

      It definitely improved over Java in VM-level generics, value types, and other smaller stuff, but MS ignored the advice of various language researchers when building the CLR, and it shows; it's very hard to do certain basic things on .NET, and this limits the language features that can be efficiently and safely implemented on it. See for instance inefficient tail calls, unverifiable function pointers/indirect calls, and a lack of continuations. The primitive Delegate type is also an unnecessary complication, since a delegate/closure is really a distinguished interface with a single "Apply()" method. So close, and yet, so far...

      I'm glad they're adding limited type inference to C# 3.0, but adapting advanced languages to the CLR is still unnecessarily difficult.

    13. Re:Be afraid, bitches.... by Anonymous Coward · · Score: 0

      "If a lot of you, previously unexposed to the CLR gain access to it, you will discover that it is not the crap that so many of you have read it to be.

      From denial, to grudging acceptance, to surprised admiration, is how the process works, and whether you hate Microsoft or not, a few months playing with C# usually results in the comment "Damm, why didnt they do this with Java?""
      - by LibertineR (591918) on Tuesday May 01, @04:34PM (#18946709)

      I'm inclined to agree, and it comes from nearly the exact same experience you outline: I am mainly an MIS/IT/IS database-information systems coder, who worked with Borland & Microsoft tools since the mid 90's professionally!

      (Ms-Access 2.0 - current, VB3-6, MSVC++/Borland C++ Builder, & Borland Delphi) & tried like hell to avoid doing work programming browsers (never 'caught-on' with me, other than basic HTML, until 2-3 years ago, as there is no avoiding it).

      I was, at first, reluctant to use ANYTHING run out of a runtime!

      I.E.-> Anything that could not compile a file (or set of files in a 'project') to a statically linked 'stand-alone' executable type for smaller programs!

      (& I tried to steer clear of using ActiveX/OLEServers in my work, doing more using std. 'old-school' libs (DLLs) when I could get away with it, & the extra time to create them (ActiveX OCX's /OLEServer DLL's aren't bad when used LOCALLY (not online via browsers like IE can do))).

      Then, I got (like it or not) "thrown into the pond & told 'SWIM BOY'" with Visual Studio 2003, & later with Visual Studio 2005, & love the IDE environs, it is loaded and SLICK!

      It is good for locally built .exe apps in VB.NET, & even runs decently fast, imo, about as fast as VB5-6 apps do really, and with a safe runtime (or rather, safer one), which surprised me.

      See, as I am sure you probably remember? When VB3 came around, its apps were a bit slow compared to ones done in say, MSVC++ or Delphi (fastest of them all, on this latter one, per VB Programmer's Journal 1997 issue "Inside the VB5 Compiler" issue in fact, of all places, proven so there).

      Where I like it best? ASP.NET actually!

      ASP.NET, to me, is a faster, better, more capable version of ASP imo.

      Server-side generated, and IF you steer clear of ActiveX usage? Basically, it's "multi-platform" because it's server-side generated, and imo? It's truly a better "ISAPI" than ISAPI ever was (due to garbage cleanup).

      "The Borg isnt dead, they have only been regenerating. Prepare to modulate shield frequencies, because they are coming......." - by LibertineR (591918) on Tuesday May 01, @04:34PM (#18946709)

      They never will be. I got into a discussion YEARS AGO, circa 1999, regarding talk just like that even back then (at this site, "Linux Today") posting as apk:

      http://www.linuxtoday.com/news_story.php3?ltsn=199 9-05-14-016-05-NW-SM

      And recently posted there (just for posterities' sake) about a "Linux will kill Microsoft" type of discussion held there.

      That was years ago, & it STILL hasn't happened, & never will.

      Don't get ME wrong - I like & use Linux @ times over time, since Slackware 1.02 around 1993-1994 or so, & then again when the Linux Penguin crew (a 'socio-technological marvel' they are, not sarcasm, but proof people CAN & DO CREATE NICE THINGS THAT WORK, & FOR FREE NO LESS) do a really technology loaded stable kernel & when the KDE folks put out new versions of their excellent desktop.

      Still, I have been hearing how "Linux/BSD/UNIX will kill Microsoft" for coming up on 14 years now, & it STILL hasn't happened, & never will. Each OS has merits, especially in various 'niches', imo, but Microsoft is a force, that is still kicking butt, when imo? It should NEVER have gone as far and did as well as it did.

      I thought, for su

    14. Re:Be afraid, bitches.... by Anonymous Coward · · Score: 2, Interesting

      .net libs are inflexible. Most methods are not 'virtual' so you can't override them; this was done on purpose because CLR cannot optimize virtual methods (Java can because its runtime type system is orders of magnitude simpler).

      Delegates exist because of the need to map the existing function-call based Win32 event system into C#.

      Runtime generic types and the restrictions they cause (either no variance or extremely slow variance) exist because of CLR's inability to execute code without full type information (the bytecode effectively cannot be interpreted due to value types). In C# you can't pass a List-of-Strings to a method taking List-of-Objects -- that's just dumb.

    15. Re:Be afraid, bitches.... by cdwiegand · · Score: 0

      Uh, yeah. Properties are assigned to, or you take their value and use it elsewhere. You can't "call" a property. Methods, on the other hand, can't be assigned to, can be called, and you can also use their return value. That's the only similarity. And it doesn't matter which one it is if you just care about the return value....

      Java, on the other hand, confuses me with it's lack of properties (so which function do I call again, and how do I call it, to set this array-like parameter-like value?), and it's distinctive overengineering. Looks like Swing, it's waaay worse than Windows.Forms. And the whole JSP -> EJB -> some persistence engine thing is also overengineered, and memory hungry.

      Admittedly, C# is newer than Java, so they were able to avoid a few mistakes that Java made.

      --
      . Define sqrt(x) as something really evil like (x / rand()), and bury it deep. Watch your coworkers go nuts.
    16. Re:Be afraid, bitches.... by The+Bungi · · Score: 1

      Yes, Foo.get_Adapter() is so much better than Foo.Adapter.

    17. Re:Be afraid, bitches.... by cthulhuology · · Score: 1

      ugh! Ignorance of history is painful!

      CLR is the crap that I have read it to be. Look at any modern Smalltalk, and you'll see a runtime that makes the CLR look utterly unimpressive. Some smalltalkers are experimenting with networked images that dynamically discover new code when invoked from other images. Think CPAN or Rubygems on steroids where "method not found" just grabs the necessary modules and keeps chugging along. Nevermind you can always load new code in a running system, and change tracking of code is automatic, the 3D networked interactive environments, drag and drop scripting of objects, and cool 3d graphing of object spaces, etc, etc.

      Compare the CLR to Erlang/OTP and its ability to deploy new code into a running system to the CLR and the CLR still seems weak, forget the distributive properties of Erlang. Distributed programming without pain is still under the "comming soon" category for the CLR.

      Hell for that matter Chuck Moore's Colorforth is more innovative, and his VM complete with hardware drivers is 2056 lines of assembler! Play with a OO Forth like Mops and then look at the CLR and you'll quickly say CLR WTF! Other people have done it better, faster, and simpler.

      The CLR is still just the Same Shit Different VM. It is just needlessly complex, wrapping tons of equally overly complex APIs, and still failing to live up to standards of 1980.

      Wirth did the first Pascal VM in what 1970? And it took Microsoft 26 years to buy OmniVM (in 1996), and we're supposed to be amazed? Oooh look! A system that still can't do what others could do in the 1970s! Hooray!

    18. Re:Be afraid, bitches.... by UnknowingFool · · Score: 1

      True. Some debates always delve into shouting matches about minutae that don't matter. Emacs 1337! No, vi 1337! I was merely responding that some people like me have tried C# but had legitimate reasons not to use it. I found nothing wrong with the language itself.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
    19. Re:Be afraid, bitches.... by Anonymous Coward · · Score: 0

      I don't think the CLR is crap. These days all my new Windows code is developed in C#. But code that needs to run elsewhere I won't entrust to any Microsoft technology --- the probability they'll try to lock users in to other Microsoft technologies is too high. But if all you're programming for is Windows, .NET is a fine platform. Hell, anything is better than that fustercluck called MFC.

      Does the CLR need to be cross platform? Not really. Cocoa isn't really cross-platform, either, yet it's a wonderful framework for Mac development. (Yes, I'm aware of GNUStep; I don't mean to put down the fine work that's been done there, but wake me when any one of their application screen shots look better than something that crawled out of Windows 3.0. No matter how good or elegant the back-end code may be, mainstream users will no longer accept applications that look like crap. If you have graphic skills, GNUStep needs your help!)

      Cross platform? Java's still one of the best bets around, and may well outlive C#.

      All tools have their appropriate uses. Learn them and use them where they make sense.

    20. Re:Be afraid, bitches.... by Anonymous Coward · · Score: 0

      That's Foo.getAdapter() you moron. And yes, it's much better. At least you *know* what's happening. With Foo.Adapter, you can't know for sure if it's a freely accessible field or a property mapped to setter and getter functions. The only way to tell is to look at the implementation of Adapter.

    21. Re:Be afraid, bitches.... by Roman+Coder · · Score: 1

      Another way of saying this, is at the end of the day, do you want the Internet, or the Microsoft.net ?

      --
      "The future can only affect the present if there is room to write its influence off as a mistake." - Yakir Aharonov
    22. Re:Be afraid, bitches.... by Dan+Ost · · Score: 1

      Python is what Java should have been.
      In some ways, C# is an improvement over Java, but not enough of an improvement to keep me from saying
      "Python is what C# should have been".

      --

      *sigh* back to work...
    23. Re:Be afraid, bitches.... by fitten · · Score: 2, Insightful

      So your only real beef was that it wasn't 'cross platform' enough for you? I've written both Java and C# and I can definitely tell you which one I think has better development tools and is easier to develop in (and it ain't Java), is pretty fast, etc. One complaint that I do have is that some of the underlying class libraries could have been implemented better... for example, iterating through a collection prevents you from modifying that collection. I can understand a very simple implementation prohibiting this but a reasonable implementation would let you, IMO. However, you can work around this without too much trouble.

    24. Re:Be afraid, bitches.... by Anonymous Coward · · Score: 0

      "So your only real beef was that it didn't have critical feature A? Well I know it has feature B and C, so your complaint isn't valid."

      Just think about that argument for a while. Who cares about feature B and C if A is a hard requirement? And Java has tons of absolutely top notch development tools, I don't think you can seriously argue that Visual Studio is ahead in that department. Of course C# does have some improvements over Java, and the CLR is really nice, but Java is still miles ahead in terms of platform support and existing codebase.

    25. Re:Be afraid, bitches.... by Tickletaint · · Score: 2, Funny

      Coming from a Cocoa background, but for quite a while now having been diligently coding Windows apps in C# on the side, I feel confident in asserting that the .NET framework is, indeed, utter shit. Oh sure, it's nicer than the Java framework, but that's a bare minimum, not an achievement. Last year .NET (C# really) finally gained partial classes (like Objective-C categories, except shitty and inflexible), but that doesn't help the brain-dead class hierarchy (the fuck is a SortedList doing with IDictionary?). Don't even get me started on the whole heap of garbage they call ADO.

      In short, .NET is a framework only a Microsoft programmer could love. Jesus tittyfucking Christ, why couldn't they rip off Apple for this one? I'd almost respect them if they had.

      --
      Make Slashdot readable! See journal.
    26. Re:Be afraid, bitches.... by Black-Man · · Score: 1

      Damn straight. Java as a UI development tool just plain sucks. I assumed .NET was the only game in town and after being a MFC developer for many years and taking a 6 year hiatus, I am totally disappointed in their latest offerings. They have stagnated. I recently picked up objectiveC and XCode. Holy shit... Apple has nailed it.

    27. Re:Be afraid, bitches.... by lordSaurontheGreat · · Score: 1
      It's also really unfair comparing CLR and C# to Java.

      Java runs on x86, x86_64, PPC, Itanium 64, and many many others I don't care to list. It also has OS compatibility with Solaris, Linux, Windows, OS X, and a few others I can't remember.

      C#/CLR is totally pathetic. Two architectures: x86 and x86_64. One OS: Windows NT and progeny.

      The next person to compare Java and C# better have a C# program running on ALL of those platforms NATIVELY without any Mono tricks or anything before you get modded down as a mindless FUD person.

      The differences in platform compatibility make Java and C# incomparable. They're totally different tools. C# is for internal company tools which only need to work in tightly controlled lab-like environments where everyone has the right version of .NET. Java is for Enterprise-class multiplatform deployments where a robust and reliable system is needed.

      All other talk is just Microsoft fanboys being blind followers of the Great Idiosyncrasy.

      --
      Consider yourself spoken to.
    28. Re:Be afraid, bitches.... by pembo13 · · Score: 1

      I have, and still use C#, and I utterly hate it. I prefer C to it. And why should someone be afraid of a good thing if it were good?

      --
      "Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
    29. Re:Be afraid, bitches.... by dcam · · Score: 1

      Oh really? You don't know what you are talking about.

      --
      meh
    30. Re:Be afraid, bitches.... by nickallen · · Score: 1

      Microsoft did a lot of things much worse than Java though.

      For example, C# removed checked exceptions which is one of the most useful features of the Java language. Most people don't seem to understand them though and think that they are just an annoyance and keep adding throws XXXXException to their methods. This totally removes the power of checked exceptions and is absolutely the wrong thing to do.

      Checked exceptions are useful when you deal with IO in programs (and any useful program has to do some form of IO). Basically, you can be sure that the programmer has had to think about all IO problems (eg network cable removed, disk full, access denied, file does not exist etc) and decide if a given method is the correct place to handle it. If not then it needs to propagate the exception to a higher level - most likely wrapping it as the cause of a higher level exception. Thus higher up levels have to deal with only one kind of exception that is abstracted to their needs (e.g getCustomerData(String name) throws CustomerQueryException) and not many implementation specific exceptions (i.e NOT getCustomerData(String name) throws FileNotFoundException, PermissionDeniedException, FileNotReadableException, etc...)

      So, because access to databases in C# do not throw checked exceptions unless the programmer remembers to handle every possible kind of exception (with no help from the compiler) the program will most likely crash with a meaningless error message. In Java the exceptions would get wrapped up the call chain and so the top level method that must handle it has enough information to present a meaningful error message to the user. eg:

      Could not get the bank details for customer X.
      The was an error contacting the server.
      The connection to the server timed out.

      Each line representing an exception that was wrapped in a higher level exception. Of course writing error handling code is annoying and not much fun but it is essential and very important. In Java one can be sure that the programmer has had to think about every problem that could occur and decide where it is best handled. As there as so many problems that can occur in any kind of complex application this is an amazing help from the compiler and leads to much cleaner designs when used properly. C# got this so wrong...

    31. Re:Be afraid, bitches.... by Anonymous Coward · · Score: 0

      I've always known that the CLR was technically better than Java -- after all, it came later and was an attempt to replace it. Why don't I use it? Because I don't want to be tied inextricably to Windows for the next X years... and any efforts like Mono etc. always start behind the 8-ball, for patent reasons even if they do catch up on the implementation.

    32. Re:Be afraid, bitches.... by ClosedSource · · Score: 1

      A few examples of the top of my head:

      Delegates for event handling rather than using Java's adapter hack.
      Not using Java's failed checked exception handling experiment.
      Static classes.
      No superfluous dependencies like class paths, binding between classes and file names etc.

    33. Re:Be afraid, bitches.... by blackcoot · · Score: 1

      "for example, iterating through a collection prevents you from modifying that collection".

      have you stopped to ponder, for a moment, what modifying a collection does / should do to any iterators over that container? on the one hand, you can declare them invalid (like c++ does), on the other hand, you can stop the container from being modified (like you say the CLR does). what other low overhead, constant time options do you have?

    34. Re:Be afraid, bitches.... by shutdown+-p+now · · Score: 1
      Coming from a Cocoa (which implies Objective-C) background means no namespaces, no exceptions, no templates/generics, and no other nice features that made their way to mainstream programming languages through the 90's. I don't see how such background has the potential to make your comment particularly notable or informative, rather the opposite. To answer your only real complaint:

      The fuck is a SortedList doing with IDictionary?
      IDictionary is the interface for containers which provide the ability to look up items by key. This is precisely what SortedList offers over the simple ArrayList. In fact, the very first sentence in the description of SortedList on MSDN explains this very clearly: "A SortedList element can be accessed by its key, like an element in any IDictionary implementation, or by its index, like an element in any IList implementation."

      Then again, System.Collections namespace is legacy stuff as of .NET 2.0 - in general, you should be using the generic collections in the System.Collections.Generic namespace instead.

    35. Re:Be afraid, bitches.... by shutdown+-p+now · · Score: 1

      .net libs are inflexible. Most methods are not 'virtual' so you can't override them; this was done on purpose because CLR cannot optimize virtual methods (Java can because its runtime type system is orders of magnitude simpler).
      This is so wrong I don't know where to begin. The runtime type system of Java is not particularly different from that of .NET, with the notable exception of generics. If by "optimizing virtual methods" you mean avoiding calls via vtable where possible, then both .NET and Java, for the most part, provide equal opportunities. In practice, you usually simply can't do that, especially when you have dynamic class loading (Java class loaders add a lot of complexity here) and/or dynamic code generation.

      The reason why methods in C# (not .NET) are non-virtual by default is not optimization, but a deliberate design choice. Any virtual method can be overriden. Unless you code your classes very carefully, you cannot guarantee that overriding any random member of your class is going to have any meaningful results, or, indeed, work at all. Imagine that you provide a public property accessor, but use the underlying field directly in your own methods. If someone overrides the accessor to return a different value, he can reasonably expect that the new value will be used throughout - but it won't. The only sane way is to default to non-virtual, and explicitly say which methods are safe to override by marking them virtual, then write the code accordingly.

      Delegates exist because of the need to map the existing function-call based Win32 event system into C#.
      Another idiocy. Win32 event system is not "function-call based", as anyone who ever wrote a Win32 GUI application knows - the only function you need there is WndProc, and even that is not forced on you - you can avoid calling DispatchMessage, and deal with the messages right there in the message loop. As for delegates, they are (with anonymous methods in C# 2.0) the first-class functions of .NET world, something that Java still doesn't have.

      Runtime generic types and the restrictions they cause (either no variance or extremely slow variance) exist because of CLR's inability to execute code without full type information (the bytecode effectively cannot be interpreted due to value types). In C# you can't pass a List-of-Strings to a method taking List-of-Objects -- that's just dumb.
      What is "slow variance"? I know covariance and contravariance, and it's something that is not in general applicable to generic types - your example with lists can be a very good demonstration of that. Let's suppose that C# had covariant generic types - that is, allowed to pass a List to a function taking a List. Let's see how that could work:

      void Foo(List<object> list)
      {
      int i = 123;
      list.Add(i); // it's okay, since int derives from object, and List<object> has method Add(object)
      }

      List<string> list = new List<string>();
      Foo(list);
      // now what... a list of strings with an int in it??
      That's precisely the reason why neither Java nor C# allow you to do that - or rather, do not allow you to do it in a non-typesafe manner. Here's how this is actually done in C#:

      void Foo<T>(List<T> list)
      where T : object // can take list of any type derived from object
      {
      object x = list[0]; // any possible T is derived from object, all ok
      int i = 123;
      list.Add(i); // isn't valid for all possible types of T, so compiler complains here
      }
      For a more theoretical approach, you might want to refresh your memory on (or get acquainted with) the Liskov substitution principle - if you really don't know what that is, you are not qualified in object-oriented design, sorry.

      Any more questions?

    36. Re:Be afraid, bitches.... by shutdown+-p+now · · Score: 1

      That's Foo.getAdapter() you moron.
      Though sometimes it happens to be foo.adapter() . Except when it's an array, of course, and then it's just foo.adapter (that is, a public final field).

      Thanks, but I'll take the consistent syntax of C# properties any day. (And yes, I understand that it's just the legacy of the well-developed language, and that properties are just syntactic sugar. But why not enjoy the sugar? It's tasty...)

    37. Re:Be afraid, bitches.... by shutdown+-p+now · · Score: 1

      What if, a few years from now, .NET pushes Java out of the market, and Microsoft gains a monopoly in this space? Do you really think .NET would ever improve?
      I don't see any reason why it wouldn't. The core of .NET - the runtime, base class library, and the languages - are all defined by ISO standards, and are free to implement by anyone. The "vendor lock-in" comes when you start working with WinForms, ADO.NET, ASP.NET, WPF, and other Microsoft-specific APIs - but the thing here is that they are just that, APIs, and well-documented ones at that. There's nothing stopping one from implementing them from scratch, or replacing them with one's own APIs if they are badly designed and/or stagnate (witness Gtk# vs WinForms for a good example). If Microsoft ever stops or even slows down development of .NET, Mono and the rest (DotGNU, not sure who else is there) will quickly catch up and overcome. So they are forced to keep coming up with new stuff, and so far it's been pretty good: C# 3.0 is awesome, and WPF is a first decent packaging of a lot of not-so-new but very good ideas. If Java dies somewhere during this race for the lack of innovation - so much the better, survival of the fittest; we'll still have open source alternatives around. Just as long as MS doesn't patent the proprietary pieces - but I believe one cannot patent an API. Or am I wrong here?
    38. Re:Be afraid, bitches.... by fitten · · Score: 1

      Well... many times, what I need to do is loop over the container and remove elements that meet certain criteria from it that I want to process, for example. But you can't do that. You have to loop over the container and add those to another container (the process-and-remove-these container). Then, when you're done, you then must loop over the process-and-remove-these container and remove them from the original container. Additionally, to clean up you have to either use the process-and-remove-these container as a queue or stack to remove those elements or just let the GC clean it up.

      Similarly with adds... loop over the container and add anything you want to add to the add-these-later container, then after you're done with the first loop, loop over the add-these-later container to add to the original.

      The problem is that you have to do that *every* time you iterate and want to modify the contents of any container.

      It would be nice to get a snapshot of the container in your iterator that you could loop over and still allow insertions/deletions from the original container.

      Alternatively, you can copy your container, loop through your copy and apply the insertions/removals to the original container as you come to them.

      It isn't a big deal, it's just extra coding that you have to write fairly often (or at least, I do frequently). But you do have to create/destroy a fair number of objects (some may be fairly heavy weight) just to iterate over a container and do something with it that could otherwise be pretty easy as long as you were capable of handling the synchronization issues yourself and you honored the contract of knowing that an addition/removal from the original collection would not be reflected in the snapshot iterator (one-way iteration).

    39. Re:Be afraid, bitches.... by blackcoot · · Score: 1

      i can't speak for c# or java, but i'm fairly certain that what you're describing are non-issues for c++. in the first case, the solution is to call remove_if(...) with an appropriately bound functor. adds would be done by calling copy_if with an appropriately bound functor and the right kind of insert iterators.

  10. Microsoft's Press Release by Anonymous Coward · · Score: 0, Offtopic

    09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0

  11. Mono. by Anonymous Coward · · Score: 0

    And one again the CLR isn't the same thing as .NET.

    1. Re:Mono. by Anonymous Coward · · Score: 0

      So? The difference matters only to developers and hard-core tech geeks. It's not important to the majority of Slashdot readers.

  12. Not the whole CLR... by Mattintosh · · Score: 4, Interesting

    The summary got my hopes up. I like C# and .NET quite a lot, but I also like Mac OS and Linux. I've been trying out Mono and Monodevelop (as well as some Xcode plugins for C#/Mono), but they're really not a good match for VS2k5 yet. (I'm hoping that "yet" comes true and doesn't turn into "ever".)

    Unfortunately, only the "Core CLR" will be ported, and only to the Mac OS (probably due in part to MS Office for Mac), not Linux, and not even older (PPC) Macs. I also seriously doubt there will be much in the way of developer tools for the(se) other platform(s).

    Sad, really. Office and VS are the only two decent Microsoft products, and they refuse to port either of them to a decent platform (aside from the tiny fragment of Office that makes it to the Mac).

    1. Re:Not the whole CLR... by Chester+K · · Score: 3, Informative

      Unfortunately, only the "Core CLR" will be ported, and only to the Mac OS (probably due in part to MS Office for Mac), not Linux, and not even older (PPC) Macs. I also seriously doubt there will be much in the way of developer tools for the(se) other platform(s).

      A subset of the CLR similar to the Compact Framework is included in Silverlight; with a much simpler security model. It's not a replacement for the full .NET Framework by any stretch. There have been whispers about a Linux version of Silverlight as well (Flash has one, and Microsoft is trying to provide a superset of the Flash/Flex featureset).

      As for developer tools, while it's not exactly developing on a Mac, per se, you can use Visual Studio to do remote debugging on CLR code running in a Silverlight app on a Mac client.

      --

      NO CARRIER
    2. Re:Not the whole CLR... by drew · · Score: 1

      SharpDevelop is a pretty cool free IDE for .NET but so far still only works on Windows. (Monodevelop was forked from a very old version of SharpDevelop) In my opinion it's almost as good as VS2k5. If you're willing to pay for an IDE (as you seem to be if you are comparing to Visual Studio) there's a .NET/Java IDE called X-Develop that appears to be pretty good, and runs on Mac, Linux, and Windows. I haven't used it beyond a few days of trial evaluation, but it looked really impressive to me.

      --
      If I don't put anything here, will anyone recognize me anymore?
    3. Re:Not the whole CLR... by cerberusss · · Score: 1

      I've been trying out Mono and Monodevelop (as well as some Xcode plugins for C#/Mono), but they're really not a good match for VS2k5 yet.
      You might think this a shame, but typically, Linux/Unix developers code with a decent editor, a separate compiler and another separate debugger.

      The reason Mono hasn't broken through does not particularly depend on an IDE, in my opinion.
      --
      8 of 13 people found this answer helpful. Did you?
  13. Great for Mono by brewstate · · Score: 0

    Unfortunately this will not be seen for some time but it will be great for the Mono people and the nixes. It will be interesting to see how much they actually released.

  14. rotor? by nuzak · · Score: 1

    How's this differ from rotor?

    --
    Done with slashdot, done with nerds, getting a life.
    1. Re:rotor? by the+linux+geek · · Score: 1

      The main difference is that it's not ancient. We're up to .NET 3.0 now. Rotor (at least the cross-platform version) was 1.x.

    2. Re:rotor? by Anonymous Coward · · Score: 0

      The main difference is that Rotor was a research platform. It was designed to be easy to understand and modify, and the tradeoff was SLOOOW performance. It had a mega-lame JIT compiler and a non-tuned garbage collector. I would expect this product to be optimized for speed and small memory footprint since only the CLR team will be maintaining the code.

      Note that even though Rotor was designed to be simple it is still a pretty ferociously complex bit of code to really understand. Just the way that platform uses the x86 is pretty convoluted (but ingenious, IMO)

  15. So what does this mean for Mono? by masdog · · Score: 1

    How will this effect the Mono project?

    1. Re:So what does this mean for Mono? by Marcion · · Score: 1

      Nothing because Microsoft will mess it up.

      Open Source or no, they are still Microsoft, they announce something big *then* go program it in a half-baked way, then hope to fix it with service packs and hot fixes.

    2. Re:So what does this mean for Mono? by anomalous+cohort · · Score: 1

      nobody in a position to spend money takes it (mono) seriously

      I was in a developer conference last year. I was a speaker so I got to hang out in the speaker's lounge. Many of the other speakers were MSFT evangelists. They were joking it up quite a bit with typical geek bravado and camaraderie until the subject of mono was brought up. After that, it was pale faces, trembling, and hushed whispers.

    3. Re:So what does this mean for Mono? by The+Bungi · · Score: 1
      After that, it was pale faces, trembling, and hushed whispers.

      Yes, I'm sure that's the case. I mean, I'm going to choose a CLR, compiler and toolset written on Novell's dime instead of the Microsoft one released for free that is fully supported and tested for the past six years. Just like everyone uses half-assed implementations instead of J2EE when they go with Java. I'm sure that's what they're afraid of. After all, it's not like they didn't release an open source version of their own that also builds on OS X.

      Or maybe I'm missing the point here - why exactly were they "trembling"?

    4. Re:So what does this mean for Mono? by cyfer2000 · · Score: 1

      Not much, Mono is much bigger than a CLR.

      --
      There is a spark in every single flame bait point.
    5. Re:So what does this mean for Mono? by Anonymous Coward · · Score: 0

      > How will this effect the Mono project?

      I found that question confusing. Did he mean 'affect' as in 'change, usually negatively', or did he mean 'effect' as in 'cause to happen' ?

      It could do either: affect it or effect it. Or possibly even infect it.

      """Please note that although the word "effect" is most commonly found in noun form, it also exists as a verb, and as such is often confused with the word "affect" (itself most commonly a verb, but occasionally found in noun form, especially in the areas of psychology and philosophy)."""

    6. Re:So what does this mean for Mono? by anomalous+cohort · · Score: 1

      I did not ask why the trembling. These were not top level people in the organization. If I had to guess, I would say that MSFT did not get where they are by underestimating the competition.

  16. In my best Don Adams... by msauve · · Score: 1

    I missed it by that much.

    And shouldn't we both be modded (-1, too obvious)?

    --
    "National Security is the chief cause of national insecurity." - Celine's First Law
  17. Java JRE VS MS CLR by Marcion · · Score: 1

    Who cares, you can run Python on both!

    1. Re:Java JRE VS MS CLR by setagllib · · Score: 3, Interesting
      --
      Sam ty sig.
  18. Parent not trolling by metamatic · · Score: 5, Informative

    That's exactly what Microsoft did with ActiveX. They pushed ActiveX as cross-platform, delivering an ActiveX SDK for the Mac and supporting ActiveX components in IE.

    Then after a while, they dropped ActiveX support, saying it was too much effort to make it work on OS X.

    Then after a while longer, they dropped IE too.

    Same with WMV. Seen Windows Media Player for the Mac? No? That's because they dropped it a while back, and killed all support for DRM-protected Windows Media on the Mac. (Instead they suggest that people use a third party QuickTime plugin that only handles unprotected WMV.)

    Jeez, lots of Microsoft fanboys or astroturfers moderating today.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    1. Re:Parent not trolling by Anonymous Coward · · Score: 0

      Seen Windows Media Player for the Mac?
      Yes.
    2. Re:Parent not trolling by Richard_at_work · · Score: 2, Informative

      Same with WMV. Seen Windows Media Player for the Mac? No? That's because they dropped it a while back, and killed all support for DRM-protected Windows Media on the Mac. (Instead they suggest that people use a third party QuickTime plugin that only handles unprotected WMV.)
      Im pretty sure that Windows Media Player for Mac never handled protected WMV files at all (I am prepared to stand correct though), so there was nothing lost with the move to Flip4Mac.
    3. Re:Parent not trolling by MightyYar · · Score: 1
      No. The parent is correct.

      From Microsoft's website:

      Microsoft will continue to offer Windows Media Player 9 as a free download for Macintosh users, but has no plans to provide future updates or product support for Windows Media Player for Mac.

      As an alternative, Microsoft has teamed up with Telestream to make its popular Flip4Mac program available to Macintosh users. Flip4Mac provides Windows Media video and audio playback in the QuickTime Player for Mac OS X.

      ...

      Note: Flip4Mac does not support content that is protected with Windows Media digital rights management (DRM).
      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  19. Still copying Java by 0xABADC0DA · · Score: 1

    Now they are even copying Java's "free but can't include it with your distro" licensing scheme. Only they have 'improved' on it by adding in bans on benchmarking and, oh yeah, you can't use it on Linux. And you can't even use your code with mono if you develop it with Microsoft's CLR.

    So basically this is exactly like every other feature they ripped from Java and then pissed on.

    1. Re:Still copying Java by micromuncher · · Score: 1

      You're right. Its almost exactly the direction Sun's taken with Java, and this is why Microsoft is doing it. Its a marketting/mindshare thing, not a utility thing.

      0xDEADBEEF

      --
      /\/\icro/\/\uncher
  20. This isn't news. by Anonymous Coward · · Score: 0

    The fact that Silverlight would include a stripped-down, cross-platform CLR implementation was first announced over a year ago. The only people who don't know about this are those who are just finding out about Silverlight (WPF/E) for the first time. Move along.

    1. Re:This isn't news. by romland · · Score: 1

      Not only that, it was even announced on Slashdot earlier today. Albeit, not in the summary or subject (see topic related to Silverlight posted earlier).

  21. runs on Intel and AMD processors ! by Tsiangkun · · Score: 0

    I wonder if by cross platform if they mean it runs on both windows XP and Vista, in both 32 and 64 bit versions, on both Intel and AMD processors ?

    I guess I'm just an old cynic, but I don't think it will be cross platform in the same way linux is cross platform.

    1. Re:runs on Intel and AMD processors ! by Anonymous Coward · · Score: 0

      Uh, what? That doesn't make any sense. What you just ascribed to Windows is precisely the "same way linux is cross platform"

    2. Re:runs on Intel and AMD processors ! by LWATCDR · · Score: 1

      Worse than that.
      The story said that they will supply plugins for Mozilla, IE, and Safari.
      My guess is that it will work on OS/X and Windows but forget BSD and Linux.
      Oh and it is not open source so even if they port it to X86 Linux it will not run on an Arm ,Mips , or PPC so forget about it for PDA style systems.

      I hope Canvas and the new Thedora tag catch on so we can drop Flash and this crap.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    3. Re:runs on Intel and AMD processors ! by Dillon2112 · · Score: 1

      He's referring to the dilution of the term "cross-platform". To me, it means that it runs on Linux, OS X and Windows (any variety) and possible *BSD.

      This is the Java/Python/Scheme/Ruby/etc. "cross-platform" meaning.

      Somehow, when MS uses "cross-platform", they mean "XP, Vista, IE, Firefox (maybe), and perhaps we'll throw in OS X, maybe, but even then only on Intel".

      The hope, of course, would be that would could get our hands on a "real" cross-platform CLR. That would certainly encourage me to look at .NET, but I don't plan on it until then (or if Mono develops a bit more and can some out from under the shadow of the patent gods).

    4. Re:runs on Intel and AMD processors ! by Tsiangkun · · Score: 1

      that might not have been well written, but I run Linux on MIPS processors. I'm sure this CLR will be useful to me on this machine, right ?

      Yeah, so it won't really be cross platform in the same way linux is cross platform, it will just support various hardware configurations that also happen to be able to run windows.

      Whooptydoo, microsoft releases SDK compatible with hardware that runs windows.

    5. Re:runs on Intel and AMD processors ! by BradleyUffner · · Score: 1

      There is also a verison of the framework for ARM based PocketPC based devices.

    6. Re:runs on Intel and AMD processors ! by lupus-slash · · Score: 1

      Mono is being ported to run on mips and several basic programs work on it.
      You can help us complete the port so you'll have a chance of running silverlight on your system in the future:)

  22. Troll, eh? by AKAImBatman · · Score: 2, Informative
    I wish I could say I was surprised. :-/

    From TFA:

    The Core CLR will include the garbbage collection, type system, generics and many of the other key features that are part of the CLR on the desktop. It won't include COM interop support and other features "that you don't need inside a browser," the Microsoft execs say.

    Which is to say that it's being ported just for Silverlight. Silverlight depends on XAML. (Originally expanded to Extensible Avalon Markup Language.) XAML is the serialized form of WPF (Windows Presentation Foundation) vector drawing commands. WPF is based around .NET 3.0. Thus XAML consists of references to the .NET objects. That's why the CLR is required in pared-down form.

    Microsoft is literally porting a chunk of Windows Vista to provide gee-whiz effects. Thus the use of Silverlight will always tie you back to Microsoft. Embrace, extend, extinguish.

    Now where are the DOM 2 Events, Microsoft?
    1. Re:Troll, eh? by WarwickRyan · · Score: 1

      Troll, in the same way that Microsoft are suddenly a stalwart of the Open Source community.

  23. Don't! by Daishiman · · Score: 2, Insightful

    It's a trap!

    1. Re:Don't! by Locutus · · Score: 1

      I wonder what technique they'll use to force this on OEM pre-loads and what techniques they'll use to break the Flash/Shockwave plugins from working.

      It's not like OEMs are going to be as easily pushed around like they were when Microsoft forced their browser on them and essentially pushed Netscape Navigator off the pre-loads. Just competing isn't something Microsoft knows how to do so there must be some way they plan on forcing this on the public along with a way to harm Flash sites/users.

      So how will they push this onto the market?

      LoB

      --
      "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
  24. Famous Blues Brothers quote by flyingfsck · · Score: 4, Funny

    "We have both kinds of music here: Country *and* Western."

    --
    Excuse me, but please get off my Pennisetum Clandestinum, eh!
    1. Re:Famous Blues Brothers quote by Yoooder · · Score: 1

      Rawhide!

    2. Re:Famous Blues Brothers quote by HomerJ · · Score: 1

      That's what I thought when I read the article. If I had mod points, I'd rate it a +6 funny

    3. Re:Famous Blues Brothers quote by just_another_sean · · Score: 1

      And we serve both kinds of beer! Bud *and* Bud Lite. What'll it be?

      --
      Creationist Textbook Stickers Declared Unconstitutional by CowboyNeal
    4. Re:Famous Blues Brothers quote by that+this+is+not+und · · Score: 1

      No Schlitz? No Blatz?

  25. But not the .NET libraries! by Trumpetgod2k1 · · Score: 0

    It looks like Microsoft is only opening up the CLR to the cross-platform world, but so many of the .NET libraries on which applications rely remain closed and windows only. Kinda like if Sun gave us a JVM with no rt.jar chock full of utilities, UI components, and otherwise useful tooling. Don't expect that slick Windows.Forms app you wrote to "just work" when you try it out on Ubuntu.

  26. Poor Mono devs by suv4x4 · · Score: 1

    They could've just used the CLR instead of having to code their own, but alas. Microsoft open sourced only now when put under pressure by Adobe.

    Pitty.

    1. Re:Poor Mono devs by Kalriath · · Score: 1

      Well, that's wrong. The CLR was always open source. Licensed under Ms-PL (pretty open source developer friendly, surprisingly) and with a clickwrap contract stating that Microsoft pledges not to sue you for patent infringement (and granting worldwide, non-exclusive, perpetual royalty-free distribution rights) provided you don't sue them or any of their customers, it's one of the most open things they have (remember, if they try to sue you, they would have to use the argument "clickwrap contracts are not valid" - this is not in their best interest to do). I think the Mono devs even used this as a base! It is the framework that hits the Mono devs like a flying brick, because that is not open source.

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
    2. Re:Poor Mono devs by Kalriath · · Score: 1

      I hate replying to myself. Anyways, I'm slightly off here. The CLR is not the open source component, the CLI is. What the difference between the Common Language Runtime and the Common Language Infrastructure is, I don't know.

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
    3. Re:Poor Mono devs by lupus-slash · · Score: 1

      You're completely wrong. MS never open sourced the CLR (the CLR is their implementation of the spec, called CLI). MS released with a non-open-source license rotor, which was a crippled implementation of the spec (it is completely outdated and was useless even when they released it). And Mono is not based on it in any way: we even reject contributors that looked at the rotor source code.

    4. Re:Poor Mono devs by Kalriath · · Score: 1

      Ok, I'm only half wrong then. The current release of the CLI is released under a license which is theoretically GPL-compatible (Ms-PL - although it might be amusing seeing how it would work since both have the "viral clause"). I will admit that it always seems to be one major release behind the framework itself (current CLI code release - 2.0. Current Framework release - 3.0)

      The fact that you reject contributors just because they've seen the code (hell, it's probably not THAT inspirational) is more telling about your crappy attitudes than Microsoft's. Now I see why people are constantly saying "I hope the Mono project dies".

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
    5. Re:Poor Mono devs by Kalriath · · Score: 1

      Ok, correction to myself again, the CLI isn't released under one of the Open Source compatible licenses - this one has a "no commercial use" clause. Well, THAT sucks. Still, my point about your attitudes stands.

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
    6. Re:Poor Mono devs by lupus-slash · · Score: 1

      The current release of the CLI is released under a license which is theoretically GPL-compatible.

      Why don't you stop embarassing yourself? What you wrote is completely false.
      No wonder you don't understand anything about licensing and you don't understand why we don't want the MS-encumbered code to make its way into mono.

    7. Re:Poor Mono devs by Kalriath · · Score: 1

      And you're clearly a moron who can't read - you'll note the reply where I admitted I had not read the exact terms of the CLI's license, which is moronically written and unusable for any real purpose, as I was under the impression it used the Ms-PL which is theoretically GPL compatible. I was wrong, and admitted that.

      If you're a representative of the Mono project, I hope the project dies horribly. No wonder people are reluctant to embrace open source if assholes like you are it's proponents. Go screw yourself.

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
  27. I agree... by brennanw · · Score: 1

    ... the jokes really do write themselves.

    --
    Eviscerati.Org: All Hail the Eviscerati
  28. Whoa.. MS Storm! by k1e0x · · Score: 1

    So Microsoft is really mad about Ubuntu and the iPhone and are trying to generate as much news as possible today?

    Balmer crys.. "I still matter!"

    --
    Bringing liberty to the masses. - http://freetalklive.com/
    1. Re:Whoa.. MS Storm! by Aladrin · · Score: 1

      He never said MS didn't matter. He said Ballmer was crying 'I still matter!' Ego is a funny thing, and he's suggesting that Ballmer's ego took a blow and he's not willing to share attention with others. (Even if it's only a little attention.)

      --
      "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
  29. Stop the celebration by PineHall · · Score: 4, Informative
    From the blog:

    Microsoft is not opening up the source code to the Core CLR. It is opening the code to the DLR by posting it to the Microsoft CodePlex source-code repository under a Shared Source Permissive license.
  30. Uh, why? by jd · · Score: 0, Offtopic
    Very few OO languages come remotely close to taking advantage of the fact that OO is inherently highly parallelizable. An instance of an object is, to all practical intents and purposes, a thread. Method invocation is method invocation, whether you are looking at Java, CORBA, or MPI. Yet most languages treat OO as though it were simply a very fancily-encapsulated sequential program. This is important - it's easy to serialize a parallel approach, it's bloody hard to parallelize a serial approach. (Why do you think there are so few decent parallel programmers - to the point Intel has to beg people to write parallel code?)

    Also, very few OO languages are consistent. Advanced IDE and RAD packages are needed, together with books that aren't just dead tree matter but look about the size of said dead tree, because the interfaces are illogical, and what is mathematically pure and correct is often not directly implementable at all.

    OO could be better. OO should be better.

    Others have picked up on the failures of existing implementations, though for different reasons. D is infinitely better than C#, C++ or Java, for example. If you want a good, solid, cross-platform framework, then writing it for D would make more sense than writing it for C#. And although .Net is ok, it's not what I'd call good. Use ACE+TAU+CIAO for a while. Real-Time CORBA 3 isn't lightning-fast, but I'd use it over .Net any day.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  31. Re:Be NOT afraid, bitches.... by ameline · · Score: 1

    I've found that .net imposes between a 50 to 400% performance penalty for floating point computationally intensive code as compared to native code. (One extreme example being 3D Perlin noise generation -- where the code running under .net 2.x is almost 4 times slower than native code.). If you're using the Intel 9.x compiler and it finds vectorization opportunities, the performance difference can be even larger.

    And .net application startup time stinks too.

    Intel's C/C++ compiler rules -- It's *so* much better than all the rest for quality of code generation it's not even funny.

    Oh and Mono is not terribly useful -- it does not support mixing managed and unmanaged code, for example -- so it's only really appropriate for programs that are entirely c#. Managed C++ will not work under mono in any realistic situation.

    --
    Ian Ameline
  32. Where'd the quarantine go? by anothy · · Score: 0, Troll

    So, by association, the .Net Framework isn't just for Windows any more.
    Damn.
    --

    i speak for myself and those who like what i say.
  33. this could be nice by nanosquid · · Score: 1

    If it's under the Microsoft Permissive License (Ms-PL), then it's being released under a BSD-like license with an explicit patent grant. I think that would really put to rest whatever remaining concerns people have have had about possible Microsoft patents on core CLR technologies.

    More generally, I think Microsoft has really shown signs of change with the CLR, IronPython, and related technologies. Maybe they are starting to "get" it at least a little.

    (However, Ms-PL isn't OSI-approved yet; what's up with that?)

    1. Re:this could be nice by Tacvek · · Score: 1
      Ms-PL is not OSI approved because OSI does not support license proliferation. Microsoft has not convinced them that there is a need for a different licence.

      Further, I find the License way too ambiguous. The BSD license was right to the point. This one is not. Take this passage:

      (D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
      I have issues with the first sentence. It could mean one of two different things, which could be a big problem. it could mean: Under this license, if you distribute any portion of the software in source code form you must include a complete copy of this license with your distribution. I think that is what it was intended to mean. However, it could be read that the source code must be distributed under that license. If that were to be interpreted as the license in its current form without additional modifications (such as additional restrictions) it poses a GPL-compatibility problem (although the patent retaliation clause already make the license incompatible with the GNU GPL v2). But if ignoring license compatibility issues, it would generally act more or less like the 3-clause BSD license.

      Then the second sentence has problems. What does it mean for a binary license to be compliant? It must include the trademark retaliation clause and mandate that the copyright information be retained? Anything else?

      I hope I made my point clear.
      --
      Stylish sheet to fix many problems in Slashdot's D3: https://gist.github.com/801524
    2. Re:this could be nice by wwahammy · · Score: 1

      Actually its not approved because Microsoft hasn't submitted them. There was an incident a while back where an independent developer submitted Ms-PL to OSI for review. OSI decided not to review it because the people that wrote the license (Microsoft) didn't actually submit it. Microsoft also said that at this point they're not interested in submitting it to the OSI.

      That's not to say that your points are invalid but OSI has never ruled that the Ms-PL should or shouldn't be approved.

    3. Re:this could be nice by Tacvek · · Score: 1

      Fair enough. I had heard that the OSI had been looking at the license, and that there were some complaints about license proliferation. But the not submitted by author is certainly a justifiable reason not to certify.

      --
      Stylish sheet to fix many problems in Slashdot's D3: https://gist.github.com/801524
    4. Re:this could be nice by nanosquid · · Score: 1

      Ms-PL is not OSI approved because OSI does not support license proliferation. Microsoft has not convinced them that there is a need for a different licence.

      That's a pretty strong statement; do you have any pointers to official OSI statements or is that merely your guess? The OSI may not like license proliferation (who does), but in the past, they seem to have approved lots of similar licenses.

      However, it could be read that the source code must be distributed under that license.

      No, it couldn't be reasonably read that way. "Including a copy of a license" doesn't mean "placing your code under a license".

      although the patent retaliation clause already make the license incompatible with the GNU GPL v2

      Yeah, but it should be compatible with GPLv3.

  34. CPU Platform-specific? by CdBee · · Score: 1

    Is this going to be like Mono, where you can compile it to run on PPC Macs but because the application binaries have x86-targeted code within, you can't run them without splicing in an intel CPU emulator somehow?

    --
    I have been a user for about 10 years. This ends Feb 2014. The site's been ruined. I'm off. Dice, FU
    1. Re:CPU Platform-specific? by Anonymous Coward · · Score: 0

      You're mixing up Mono and Rosetta.

      Mono has ports to many different CPU architectures, and these ports don't involve translating code into x86.

      Rosetta's the name Apple uses for the commercial CPU emulator code from Transitive, so that OS X on x86 can run OS X programs built for PPC.

  35. Re:Be NOT afraid, bitches.... by ChronosWS · · Score: 1

    In other news, hand-optimized assembly using hardware accelerated vector processing for floating point operations is shown to be faster than using Bash scripts for the same purpose. Seriously, if you are going to make an argument about performance, at least make one better than a strawman. Any developer worth his salt would simply write the perf-critical code in an appropriate language and call out to it, which is trivial to do in .NET. The reason to write code in .Net isn't for blazingly-fast specialized math routines, it's for general application development using a very rich set of libraries and a relatively consistent set of interfaces.

  36. The Borg isnt dead by Black-Man · · Score: 1

    Yeah... its regenerating w/ all its might. Zune has been released w/ great fanfare and has destroyed the iPod. XBox360... are they even making any other consoles? Microsoft destroyed Nintendo as a company just like they were Apple circa 1988.

    Yup... dream on Balmer fan boy.

  37. not this again, MS-CrossPlatform = MS Windows. by Locutus · · Score: 0, Troll

    Any discussion about Microsoft supporting ANYTHING outside of Microsoft Windows is a waste of time. They will NEVER support anything outside of Microsoft Windows for any reason other than to make those others look like a joke. This is because EVERYTHING Microsoft does is to maintain and protect the Microsoft Windows monopoly and has little to do with profits. After all, approximately 30% of Microsoft profits come from the Windows Desktop, 30% from MS Office, and 30% from Microsoft Windows Server. Everything else is just using those profits to hold down the threats to Windows and that includes court costs, lobbying, etc.

    So, this crossplatform Silverlight crap is all about stopping Adobe Flex/Flash from growing into a platform. It is already VERY capable as a client platform and BECAUSE it is crossplatform(the real one, not MS-crossplatform) they must stop it at all costs.

    CLR is a hammer against the competition and MS Silverlight is also. BFD, it's meaningless unless you're a Microserf and then you already believe crossplatform == MS-Crossplatform which => Windows forever. IMO.

    LoB

    --
    "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
    1. Re:not this again, MS-CrossPlatform = MS Windows. by Locutus · · Score: 1

      Troll? LoL, show where Microsoft plays in the "real" cross platform space and explain why they would do it. I double dog dare ya. No, I triple dog dare ya.

      LoB

      --
      "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
  38. Re:Be NOT afraid, bitches.... by ameline · · Score: 2, Insightful

    Yeah -- nice try -- it's not a strawman -- The call out to unmanaged code and return each take over 1000 cycles. (And such callouts don't work at all in mono.) So something that should take about 500 cycles (3D perlin noise generation) now takes ~2500. Ouch -- just a bit slower than leaving it managed. (For image rendering with procedurally generated textures, the perlin noise generator is frequently a *huge* spike in the

    Sometimes you need nice fast math functions that can take a small handful of cycles.

    My beef is that .net advocates often claim it's just as fast as native code, when it is demonstrably not.

    My argument is that .net is not appropriate for performance sensitive computationally intensive programs. It's fine for UI driven stuff where that code never needs to run anywhere other than windows.

    Oh, and speaking of strawmen, where did I talk about hand optimized vector assembly? Or Bash? WTF?

    --
    Ian Ameline
  39. Irrational exuberence by Anonymous Coward · · Score: 0

    > Ms-PL isn't OSI-approved yet; what's up with that?

    Microsoft hasn't requested OSI approval, which anyone has to do before the OSI will consider approval.

    And I wouldn't hold my breath with it being under MS-PL. My guess is that it's more likely to be under one of the more restrictive licenses with the "Platform Restriction" that limits you to developing MS Windows software. I mean, the whole point of them releasing this is to try and kill Flash and keep people tied to Windows & Windows Media Player.

  40. freaking MS by Intangion · · Score: 0

    shouldnt they get sued for false advertising?

    they said .net would be cross platform also
    they are freaking LIARS

    windows 2k, XP and vista DOESNT count as cross platform
    you should at least have a non MS platform supported..

    freaking MS doesnt know the meaning of the word crossplatform, or honesty for that matter

  41. I don't see a viral clause by nanosquid · · Score: 2, Insightful

    Probably not, since the Microsoft Permissive License has a GPL-like 'viral' clause, which means that if Mono used the code, Mono would probably have to be licensed under the Ms-PL.

    I don't see a "viral" clause in the Ms-PL. All the Ms-PL requires is that you include its copyright notice with your distribution and that the Ms-PL licensed code itself remains under the Ms-PL.

    "Is Mono still necessary?" Yes.

    Yes, but not because of the license. It's because Mono does a lot more than run CLR and .NET code.

    1. Re:I don't see a viral clause by killjoe · · Score: 1

      "A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.

      (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.

      (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.

      (D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.

      (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement."

      Section C is the advertisement clause a-la BSD before it was changed.

      Section D is the viral clause a-la GPL.

      This license limits your rights to re-license the code as you like which makes it very different then the BSD/MIT/X11 licenses.

      --
      evil is as evil does
    2. Re:I don't see a viral clause by that+this+is+not+und · · Score: 1

      It's really no surprise that if Microsoft 'open sources' something, the license they will most closely mimic is the GPL license.

    3. Re:I don't see a viral clause by Anonymous Coward · · Score: 0

      (D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. But this does not say that the you must extend the MSPL to anything beyond the 'portion', does it? Unlike the GPL, which discusses derived works at length, or the MSCL which has this section in addition to the MSPL clauses:

      (A) Reciprocal Grants- For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
    4. Re:I don't see a viral clause by drsmithy · · Score: 1

      Section D is the viral clause a-la GPL.

      There's nothing there about derivative code, though (which is the part - along with a fairly generous definition of "derivative" - that makes the GPL "viral").

  42. typical FUD by nanosquid · · Score: 4, Insightful

    Well, except Mono is a small project

    Mono is a big project as far as such projects go.

    that Microsoft would rather see die.

    I don't know. Who cares?

    It will disappear when they are ready to drop litigation bombs.

    The legal situation surrounding Mono has been more carefully analyzed than any other open source project I can think of. Unless you can point to a specific legal problem with Mono, you're just spreading FUD.

    What disturbs me more is how the term "open source" has been co-opted and soiled by Microsoft when the license terms which will only be FSF approved when microsoft owns the FSF.

    The Microsoft Permissive License looks like a perfectly good open source license to me; it's basically like Apache. In particular, it includes patent grants. The FSF probably doesn't like the Ms-PL because it's BSD/Apache-like.

    If you can identify a specific problem with the Ms-PL, please point it out. Otherwise, please stop spreading FUD about it.

    1. Re:typical FUD by segedunum · · Score: 2, Interesting

      The legal situation surrounding Mono has been more carefully analyzed than any other open source project I can think of. Unless you can point to a specific legal problem with Mono, you're just spreading FUD.
      No it hasn't, because the questions that need answered are conveniently side-stepped in the Mono FAQ. As an exercise, find yourself the extremely flimsy and amateurish patent grant on the ECMA's web site and ask yourself whether it really does give anyone implementing a CLR a full and transparent patent grant - specifically regarding the CLR and .Net concepts specified within the ECMA. It doesn't, which is why there was an awful lot of confusion about a supposed letter from Microsoft, HP and others that supposedly gave Mono a permanent RAND patent grant for now and forever - which the ECMA agreement as it is now does not give.

      Needless to say, no such letter exists or has ever existed, and many think that it has all now been swept under the carpet and the current FAQ covers everything. It doesn't.
    2. Re:typical FUD by segedunum · · Score: 1

      The Microsoft Permissive License looks like a perfectly good open source license to me; it's basically like Apache. In particular, it includes patent grants. The FSF probably doesn't like the Ms-PL because it's BSD/Apache-like.
      So use a BSD or an Apache license then. There's no reason to create another license just so they can call it the Microsoft Public License. I'm not sure, but I'm rather sceptical about how compatible this license will be.
    3. Re:typical FUD by ClosedSource · · Score: 2, Interesting

      As I stated before, this is only significant if there are patents that apply exclusively to the CLR. It's quite possible that whatever patents are involved, they may apply just as much to other FOSS projects as they do to Mono. Given the fact that companies try to make their patents are broad as possible, this is a likely scenario. Not that I'm not claiming that these patents are valid, just that if they are found to be, they will probably cover more than the CLR.

      If MS had the choice of suing the mono project vs. some higher profile target like Linux, I suspect they would choose the latter.

    4. Re:typical FUD by nanosquid · · Score: 1

      I believe the Ms-PL is different from Apache in that it requires retention of attributions in the code. That seems reasonable and harmless. The license also seems compatible with just about everything other than GPLv2, but it's incompatible with GPLv2 in the same way Apache 2 is, something that will get fixed in GPLv3.

      Also, given that both Sun and IBM have created their own open source licenses, why should Microsoft not get one too?

    5. Re:typical FUD by nanosquid · · Score: 1

      No it hasn't, because the questions that need answered are conveniently side-stepped in the Mono FAQ. As an exercise, find yourself the extremely flimsy and amateurish patent grant

      Patent grants on what? If there are no Microsoft patents that Mono violates, there is nothing to be granted.

      Every open source project is at risk at being sued over patent infringement. For Mono, people have been unusually diligent to examine any potential threat from Microsoft and avoid it.

      So, unless you can point out a specific patent problem with Mono, you're just spreading FUD.

      And why does your criticism not apply to Linux? Unlike Mono, Microsoft has explicitly said that Linux is infringing lots of their patents and that they do intend to enforce them. So, what do you suggest? Should we all stop using Linux because Microsoft might sue for infringement?

    6. Re:typical FUD by segedunum · · Score: 1

      Patent grants on what? If there are no Microsoft patents that Mono violates, there is nothing to be granted.
      That's just straw grasping. I not your use of the word 'if'. Have a look around for various CLR and .Net concepts Microsoft has patented - and they apply specifically to stuff running in a CLR. They are not general patents.

      Every open source project is at risk at being sued over patent infringement. For Mono, people have been unusually diligent to examine any potential threat from Microsoft and avoid it.
      That's the same old, tired cop-out statement. The fact is that Microsoft's patents on .Net and the CLR apply specifically to anything that implements the ECMA specs. If you were to apply much of this stuff to Java, not a problem, but cloning .Net is.

      So, unless you can point out a specific patent problem with Mono, you're just spreading FUD.
      Since you're so knowledgeable on this topic, go an find some patents that Microsoft does have for the CLR and various .Net components on top. They exist. Microsoft has even admitted and warned of this about five years ago.

      And why does your criticism not apply to Linux?
      Confirmation you have no clue. Linux is not a technology invented by Microsoft whereby Microsoft has applied and received patents for concepts that apply absolutely specifically to anyone implementing their own CLR. They're not general patents that apply to Java or Linux or anything else. They apply specifically to anyone implementing a CLR as per the ECMA specifications.
    7. Re:typical FUD by segedunum · · Score: 1

      As I stated before, this is only significant if there are patents that apply exclusively to the CLR.
      There are. Microsoft has always done whatever is necessary to protect what they see as their own inventions.
    8. Re:typical FUD by ClosedSource · · Score: 1

      "There are. Microsoft has always done whatever is necessary to protect what they see as their own inventions."

      Which includes all their patents by definition, so what? You say there are patents that apply exclusively to the CLR. In that case you should be able to name them, so what are the patent numbers?

    9. Re:typical FUD by nanosquid · · Score: 1

      Have a look around for various CLR and .Net concepts Microsoft has patented - and they apply specifically to stuff running in a CLR. They are not general patents.

      Yes, and people know about them and they don't apply to Mono. If they did, Mono would have worked around them.

      Confirmation you have no clue. Linux is not a technology invented by Microsoft whereby Microsoft has applied and received patents for concepts that apply absolutely specifically to anyone implementing their own CLR.

      You're confusing patent and copyright. The fact that Linux wasn't written by Microsoft only protects Linux users against copyright claims, not patent claims. In fact, most of the concepts and ideas in Linux were invented by other people, some long ago, some more recently. It is likely that Microsoft does hold patents that "read on" Linux (both the kernel and user space). The only question is whether those are valid, not because of prior art from Linux, but because of prior art from third parties.

      They're not general patents that apply to Java or Linux or anything else.

      Funny you mention Java, since, Sun does hold patents on fundamental aspects of Java and the Java runtime. Unlike Mono, open source Java implementations do seem to violate them. Furthermore, this issue is not addressed by Sun's "open source" release.

  43. MOD PARENT UP by Winckle · · Score: 1

    +1 knows what the fuck he's talking about

    1. Re:MOD PARENT UP by Anonymous Coward · · Score: 5, Informative

      Unfortunately neither of them actually knows what they are talking about.

      For starters, a.k.a. why Chester K doesn't know what he's talking about, at MIX they showed JavaScript in the browser against C# in Silverlight v1.1 - not C# in JavaScript. The speed comparisons are correct.

      why AKAIAmBatman is wrong is because this is absolutely not about the performance of rendering. The setup here is that you have one app, with whatever that infrastructure is running in, delegating to the player code. The player code being C#, JavaScript, or a human. This is how you typically do chess games and no surprise it's how they did it here. Therefore the JavaScript is doing no rendering of any kind. That is unless the game was implemented using JS, but even if it was it doesn't matter. The idea is to give each player 1 second to calculate and they give you the best move and how many calculations done. This is merely a measure of raw computational power: calls, either some array lookups, and simple math (potentially bitwise arithmetic, potentially not depending upon the implementation). Finally they used the same algorithm just implemented in the two different languages.

      And because Chester K was misinformed this populates down into AKAIAmBatman's comments where things go wrong. The Tamarin engine has nothing on this. ActionScript has nothing on this. What we're talking about is approaching near native code speed in the browser. JavaScript, no matter what, just isn't going to get there and still be JavaScript. It's way too dynamic. Maybe you can do some whole program analysis but even that is going to be tough. It seems the goal for Tamarin is only a 10x improvement (http://simonwillison.net/2006/Nov/9/tamarin/) if you look at the source code. That means that C# will still be 1000 times faster than the improved Tamarin engine. It's just a fact - JavaScript sucks.

    2. Re:MOD PARENT UP by yoasif · · Score: 1

      Yeah... but what about ...Java? Sounds like Microsoft is just reinventing the wheel and integrating it into their browser so that they can control it. The cross platform bit is probably a ploy to help it get wider acceptance before other platforms get killed.

    3. Re:MOD PARENT UP by killjoe · · Score: 1

      Why not run an applet in that case?

      Actually how come MS just didn't make sure silverlight ran on mono and ship mono with windows? Or would that be too much like actually being cross platform and open source and all that jazz?

      --
      evil is as evil does
    4. Re:MOD PARENT UP by AKAImBatman · · Score: 1

      why AKAIAmBatman is wrong is because this is absolutely not about the performance of rendering.

      It seems the goal for Tamarin is only a 10x improvement. That means that C# will still be 1000 times faster than the improved Tamarin engine.

      These two statements immediately kill your credibilty. A 1000x improvement in performance would mean that the current Javascript engines are some of the worst interpreters known to man. I can assure you that they are not. Tamarin, in fact, is a just-in-time compiler, meaning that it approaches the performance levels of native code. If the C# code appears to run 1000x faster, it's because there's a bottleneck elsewhere in the pipeline.

      Specifically, the operations performed by Javascript engines are often extremely slow. I can rarely get more than 30 frames per second out of video games written for the DOM. Anything too complicated easily drops to 15 fps or less. This isn't caused by the Javascript. In fact, very little Javascript is running at all! It's the limitations of the DOM rendering engine. Canvas bypasses this by offering a 2D rendering surface. This means that in most browsers you get a performance level on par with a surface like the GDI. If and when browser developers start using DirectDraw or SDL surfaces for Canvas operations, you'll start seeing graphical performance on par with nearly anything you can do on the desktop. An OpenGL context would similarly be able to reach levels approaching your average OpenGL program. The 3D card would be doing all the work.

      Silverlight is not necessary. Flash and Java were both products of the days before we had advanced web technologies. We are barely a few steps away from making both of them redundant in the web browser. And now Microsoft wants to try and embrace, extend, and extinguish the market with a 10 year old design with some new polish. Brilliant.
    5. Re:MOD PARENT UP by ESqVIP · · Score: 1

      AKAImBatman, while I generally agree with what you said here, I must say AC is right when saying this specific discussion has nothing to do with rendering:

      At the MIX conference, they ran a demo where a Silverlight chess app had an identical AI player routine

      It's a chess AI! No rendering needs to be done. When there's some rendering to do, it's something very quick, with few animations and effects. (they wouldn't be able to make any fancy graphic effects just using the DOM anyway)

      And about JavaScript vs CLR: I guess those figures are a bit exaggerated here. Ten thousand times slower? If those numbers are any accurate, I wonder what JS implementation they were using. But I don't expect Tamarin to get much faster either; JIT may work on Flash, but ActionScript uses static typing for that. I don't know how good is its (current) type inference system, but JavaScript will need to rely a lot on it for any truly significative gains on speed. (also, from my experience, Mozilla's DOM handling is much slower than IE's)

  44. Didn't we already know this? by Qwavel · · Score: 2, Insightful


    MS had already said that they planned to support Apple (and WinCE) for their WPF/E (windows presentations everywhere) technology. They then renamed that to Silverlight, and lo-and-behold, it still supports Apple. Where's the news?

    Not to mention that this was predicted all along. MS has been supporting the MacOS for years, and hinting at the cross-platform possibilities of their net platform. MS wants the Mac to replace Linux as the alternative to Windows, so this is a pretty straightforward decision for them. So why are people acting suprised?

    1. Re:Didn't we already know this? by I'm+Don+Giovanni · · Score: 3, Interesting

      The news is that the first bits are available, and it's the complete CLR, not a stripped down CLR. The accompanying .NET Frameworks libs are stripped down, but the CLR is complete, supporting all .NET languages. The original wpf/e spec only had support for C# and VB.NET, and lacked support for reflection and whatnot (which many of the more "exotic" languages depend on).

      Also, the DLR is new.

      --
      -- "I never gave these stories much credence." - HAL 9000
  45. The language is not the runtime library! by Amtiskaw · · Score: 1

    Compilation, language semantics, and runtime environment are trivial parts of modern languages. Any fool with a copy of the spec can implement the Java VM, any many have, but that never made Java truly Free or open source. The runtime library is where the real action is. A modern language is its runtime library, far more than interchangeable fluff of keywords and syntax. Hell, that's the whole key to .NET, you can write in VB.NET, C#, or whatever-you-like, but you're always using the same underlying libraries. Java code is never "cross platform", only the Java runtime is or ever can be, the same with .NET. Open sourcing the CLR doesn't mean crap, when Microsoft open source the Windows Forms libraries, now that'll be news.

  46. Sadness. by oGMo · · Score: 4, Funny

    You say this sarcastically, but this is what Microsoft really means when they say "cross-platform": it runs on all Windows platforms. (Vista, XP, Mobile, XBOX, etc.) I'm not joking. There should be (+1, Sad, Sad World) moderation.

    --

    Don't think of it as a flame---it's more like an argument that does 3d6 fire damage

    1. Re:Sadness. by drsmithy · · Score: 1

      You say this sarcastically, but this is what Microsoft really means when they say "cross-platform": it runs on all Windows platforms. (Vista, XP, Mobile, XBOX, etc.) I'm not joking. There should be (+1, Sad, Sad World) moderation.

      Yet how many people will call code "cross platform" because it's POSIX compliant...

    2. Re:Sadness. by Anonymous Coward · · Score: 0

      Yet how many people will call code "cross platform" because it's POSIX compliant...
      POSIX-compliant code runs on a wide variety of very different operating systems on a wide variety of very different hardware, all from a wide variety of very different vendors - everything from massive supercomputers running HP-UX or AIX on processors most of us have never even heard of, right down to - yes, you guessed it - even Microsoft Windows supports the POSIX APIs.

      I think that's a bit more cross-platform than Microsoft code that only runs on various versions of Microsoft Windows.
  47. Re:Be NOT afraid, bitches.... by Anonymous Coward · · Score: 0

    Of course they don't work in Mono. Unmanaged code applies to COM marshalling, P-Invoke, and other things that have nothing to do with the CLR. Mono just works well with the actual, sort-of portable code. If you expect managed code to work in Mono on Linux... read better.

    That said, the .NET Win32 compiler for unmanaged C++ is not near as efficient as the old 6.0 compiler. Have you ever looked at all the "security/thread model" junk the compiler tacks on in the assembly? It's hideous and horribly inefficient (and the flags that are supposed to turn it off, don't).

    To add insult to injury, I know from experience that even regular 2005 .NET still calls Win32 stuff under the hood. The classic Socket send problem that is (as of today) over fifteen years old is still there!

    FWIW, I use Java, C, and Ruby as much as possible... and when the project calls for it I have to use .NET. All much better for different things. C# has some cute aspects but is hampered by the usual Microsoft ideology. That and Java 1.6 has some improvements on the C# "nicities" (like true generics!).

  48. Cross platform.. by nurb432 · · Score: 0

    And still IP restrictive.

    No thanks. THere are far too many other cross platform languages that arent a potential litigation trap.

    --
    ---- Booth was a patriot ----
  49. Re:Be NOT afraid, bitches.... by cpeterso · · Score: 2, Interesting

    Are you sure that Mono does not support callouts to unmanaged code?

    http://www.mono-project.com/Interop_with_Native_Li braries

  50. You've never used C#, have you? by Mr2001 · · Score: 1

    That's Foo.getAdapter() you moron. And yes, it's much better. At least you *know* what's happening. With Foo.Adapter, you can't know for sure if it's a freely accessible field or a property mapped to setter and getter functions. The only way to tell is to look at the implementation of Adapter. First, who cares? The whole point of using properties is to make something that's conceptually a field but works a little differently under the hood, or (more commonly) simply to prevent a field from changing or limit the values the field can hold. Unless you screwed up when writing your setter/getter methods, the distinction between field and property should be unimportant to anyone using your class.

    Second, if you're using a decent IDE, like the one most C# programmers use, then it'll tell you whether Adapter is a field or a property.

    Finally, since public fields are frowned upon (as in most other languages), you can just assume that Adapter is a property, and you'll be right 9 times out of 10. Ask any experienced C# programmer how often they aren't sure whether a certain identifier is a field or a property: it simply isn't an issue in real life.
    --
    Visual IRC: Fast. Powerful. Free.
    1. Re:You've never used C#, have you? by VGR · · Score: 1

      First, who cares? The whole point of using properties is to make something that's conceptually a field but works a little differently under the hood, or (more commonly) simply to prevent a field from changing or limit the values the field can hold. Unless you screwed up when writing your setter/getter methods, the distinction between field and property should be unimportant to anyone using your class.

      I care. I don't like surprises. Surprises and hidden behavior make for difficult debugging.

      Second, if you're using a decent IDE, like the one most C# programmers use, then it'll tell you whether Adapter is a field or a property.

      I don't know a graceful way to say this: stuff your IDE. All IDEs are memory hungry, bloated, and have frustratingly tedious editors. I don't expect the whole world to use vi(m), but I do and I am very very efficient with it. I cannot be nearly as efficient with an IDE. I know some IDEs have vi-like plugin editors but I find them pale imitations. And did I mention the memory usage?

      Finally, since public fields are frowned upon (as in most other languages), you can just assume that Adapter is a property, and you'll be right 9 times out of 10. Ask any experienced C# programmer how often they aren't sure whether a certain identifier is a field or a property: it simply isn't an issue in real life.

      Read: eventually you just learn to decipher the code and know that it is not what the syntax suggests it is. Sure, that's a useful skill, but it's not helpful, it doesn't enhance productivity, and it's not innovative. Oh, and it saves a paltry number of keystrokes at best. Not enough to justify the increased crypticness.

      Good rule for language design: K.I.S.S. so programmers can concentrate on their work instead of the syntactic candy.

      --
      The Internet is full. Go away.
    2. Re:You've never used C#, have you? by Anonymous Coward · · Score: 0

      First, who cares? The whole point of using properties is to make something that's conceptually a field but works a little differently under the hood, or (more commonly) simply to prevent a field from changing or limit the values the field can hold. Unless you screwed up when writing your setter/getter methods, the distinction between field and property should be unimportant to anyone using your class. I care. Not all the times I will have the code available to check if that's a property or a method, and even if I have it, not all the times I will need to know it (because the code is not from my project, therefore I am not paid to know it?). Why do I need to know the difference? A simple attribution does just that, an attribution, I know beforehand that after that line the value will be there, there won't be any validation, truncation, exceptions, etc. A method can do all of that.

      What if I use a property thinking this is a field, and then the value doesn't get where it should? Even the mere concept of property doesn't solve anything, it saves only a few keystrokes from a proper method.
    3. Re:You've never used C#, have you? by flukus · · Score: 1

      I find properties really irritating. Depending on the context it makes you have to think about whether you will have a property accessor or if theres a get method. Their fine alot of the time but it's a pain when you want to overload the getter. After that you have 2 choices. Add a get method, which is inconsistent and or add a property, also inconsistent. Thats the main reason I prefer the java standard libraries over the .net ones. Everythings build around predictable patterns (usually) and they don't throw in too much syntactic sugar, which keeps everything much more consistent. Disclaimer: I'm a .net programmer at the moment.

    4. Re:You've never used C#, have you? by Mr2001 · · Score: 1

      What if I use a property thinking this is a field, and then the value doesn't get where it should? Even the mere concept of property doesn't solve anything, it saves only a few keystrokes from a proper method. Whenever you see an expression that could be a property or a field, assume it's a property. "Don't expose any public fields" is a guideline of OO design in any language.
      --
      Visual IRC: Fast. Powerful. Free.
    5. Re:You've never used C#, have you? by Mr2001 · · Score: 2, Insightful

      I don't know a graceful way to say this: stuff your IDE. All IDEs are memory hungry, bloated, and have frustratingly tedious editors. I don't expect the whole world to use vi(m), but I do and I am very very efficient with it. I cannot be nearly as efficient with an IDE. I know some IDEs have vi-like plugin editors but I find them pale imitations. And did I mention the memory usage? Memory usage? Visual Studio uses about as much memory as Firefox. We're talking about .NET and (most likely) Windows here, you know. You have to be a masochist to run those on a machine where memory is tight anyway.

      Read: eventually you just learn to decipher the code and know that it is not what the syntax suggests it is. That's true anywhere. If I write "x = 5", is that assigning a field or a local variable? If I write "foo.bar()", am I calling a virtual instance method I can override, a sealed instance method I can't override, or is "foo" a class name and I'm calling a static method? Or maybe "foo.bar" is a field containing a function pointer (C++) or delegate (C#)? You have to know context to make sense of it. If you can't keep enough context in your head to understand the code you're writing, you can't hope to be much of a programmer anyway.

      Sure, that's a useful skill, but it's not helpful, it doesn't enhance productivity, and it's not innovative. Oh, and it saves a paltry number of keystrokes at best. Not enough to justify the increased crypticness. It saves you a paltry number of keystrokes. It saves me a ton, because I use an IDE that takes advantage of stuff like this to save me time. I can type "okb.te=ma();" and have it come out "okButton.Text = MakeCaption();"

      And finally, properties aren't cryptic in practice, because they can only be confused with public fields, which no one uses - public fields are deprecated, they don't produce the same metadata, and they're no more efficient when the JIT can inline property accessors. Private fields are typically distinguished by prefix or case, much like class names are distinguished from other identifiers (which is why I know "foo.bar()" probably isn't calling a static method).
      --
      Visual IRC: Fast. Powerful. Free.
    6. Re:You've never used C#, have you? by AJWM · · Score: 1

      Whenever you see an expression that could be a property or a field, assume it's a property.

      Dangerous practise, that.

      (Emphasis added.)

      --
      -- Alastair
    7. Re:You've never used C#, have you? by ealar+dlanvuli · · Score: 1

      Take a delegate of a property.

      Oh. You can't. Ever.

      3sat

      --
      I live in a giant bucket.
    8. Re:You've never used C#, have you? by 280Z28 · · Score: 1

      Take a delegate of a property.

      Oh. You can't. Ever.

      3sat

      OK, but that's what interfaces are for.

      Your post is like someone slamming XHTML for not having a font element.

      --
      Turning coffee into code.
    9. Re:You've never used C#, have you? by Anonymous Coward · · Score: 0

      One, that was the most nonsensical reply I've ever heard.

      Two, I was listing problems with the language. This is a serious (though rare) problem with the grammar. The ambiguity between properties and delegates is a big mistake imo.

      3sat

    10. Re:You've never used C#, have you? by Mr2001 · · Score: 1

      Sure you can. You can either use reflection to find the accessor method, or you can make an anonymous delegate to access the property. The latter also works with fields.

      --
      Visual IRC: Fast. Powerful. Free.
    11. Re:You've never used C#, have you? by Anonymous Coward · · Score: 0

      Whenever you see an expression that could be a property or a field, assume it's a property. "Don't expose any public fields" is a guideline of OO design in any language. First, it's not a good programming practice to assume anything. The code in order to be considerable readable must expose all the information you need to know. Properties, as implemented in the .Net, make the code less readable by creating a situation where one thing could mean different things.

      Second, what OO says is to hide the internal state of the objects, but there's nowhere saying that "properties are necessary in order to do that" or that "JavaBeans are the only way to do it". It's completely acceptable to have public fields, if the class design requires so.

      Properties don't guarantee encapsulation! Some stupid Java developers think that by generating a bunch of getters/setters for all private fields will make it "encapsulated". How, for Christ's sake, if you have just exposed all fields mindlessly via getters/setters? The problem with properties is this mindless "I don't care about the design, just make it property, wow, magical encapsulation!" notion.
    12. Re:You've never used C#, have you? by Mr2001 · · Score: 1

      First, it's not a good programming practice to assume anything. The code in order to be considerable readable must expose all the information you need to know. So, are you saying "x = 5" and "foo.bar()" are unreadable because you can't tell whether x is a field or a local variable, whether foo is an instance or a class name, or whether bar is a virtual, sealed, or static method (or a field containing a function pointer) - or, for that matter, what state might be changed by the bar method?

      No individual line of code can give you all the information you need to know to make sense of it. In order to be a successful programmer, you have to be able to hold enough context in your head to understand the code you're writing.

      Second, what OO says is to hide the internal state of the objects, but there's nowhere saying that "properties are necessary in order to do that" or that "JavaBeans are the only way to do it". It's completely acceptable to have public fields, if the class design requires so.

      Properties don't guarantee encapsulation! What properties and get/set methods do is give you the possibility to add validation or reaction behaviors in the future if they become necessary, without breaking source compatibility. If your code is full of lines like "x.Width = 5", what are you going to do when you decide you need to prevent Width from ever becoming negative, or react when it's changed (e.g. adding a log entry or redrawing something on screen)? In a language without properties, you have to go through and manually change all those lines; you could've saved a lot of time by using a setWidth() method in the first place. In a language with properties, you can change Width from a field into a property while maintaining source compatibility.
      --
      Visual IRC: Fast. Powerful. Free.
    13. Re:You've never used C#, have you? by Anonymous Coward · · Score: 0

      So, are you saying "x = 5" and "foo.bar()" are unreadable because you can't tell whether x is a field or a local variable, whether foo is an instance or a class name, or whether bar is a virtual, sealed, or static method (or a field containing a function pointer) - or, for that matter, what state might be changed by the bar method? Your examples only show your lack of experience, and you didn't understand anything of what we said at all.

      First, classes are uppercase. Therefore "foo" is not a class, it is an instance.

      Second, all you need to know when you call a method is that it will run. That's it. Why? Because that's a method and that's what methods do. It's very important that one thing does one thing only, it would a completely different matter if the syntax for "foo.bar()" could mean something other than a method call. In the case of an attribution with properties you might get a method called as a result, and this might lead to catastrophes. And as I said before, classes are uppercase, so it can't be a static method, and "final" will only matter if you plan extending it.

      Have you noticed that the behavior of "properties" is similar to operator overloading? In this case overloading the meaning of the operator "="? The same criticisms apply.

      Third, you are inside a class, "x" will be a variable, period. It's readable. How? It's right in front of you in the method you are editing if it's local, no matter if you are using "vi" or Eclipse. Otherwise it will be a field from the instance. Difficult? Only if you are blind because it's right on your screen and you don't need to go to someone else's code to figure that out.

      No individual line of code can give you all the information you need to know to make sense of it. In order to be a successful programmer, you have to be able to hold enough context in your head to understand the code you're writing. Yes, it can. That's why Java has so many "limitations". Only the people that don't understand what good practices are say that Java is limited. Just by quickly looking at the code I know what is going on, the same definitely is not true either for C, Perl or C#.

      Your reasoning falls short in a very common scenario, and that's why I think you are not experienced enough, that is "working with third parties or opensource projects code". You don't have access to their code (or just don't care because the thing should "just work"), you will believe in their documentation. If the syntax is not consistent then the number of times you will need to consult the documentation in order not to destroy anything will increase a lot, therefore decreasing the productivity.

      It's not impossible, but it's naive to the extreme to argue that this is nothing.

      What properties and get/set methods do is give you the possibility to add validation or reaction behaviors in the future if they become necessary, without breaking source compatibility. That's why a method is better suited for it. Properties just add confusion.

      you could've saved a lot of time by using a setWidth() method in the first place. In a language with properties, you can change Width from a field into a property while maintaining source compatibility I wasn't born yesterday, and no, nobody is arguing about that. Properties isn't a good solution because adds confusion. A method, like getter/setter is better suited for it.

      But many developers confuse getters and setters with "encapsulation", and there's no guarantee of encapsulation by the simple use of it. For example:

      class A {
       
      public int a;
       
      }
       
      class B {
       
      private int b;
       
      public int getB() {
      return b;
      }
       
      public void setB(int b) {
      this.b = b;
      }
       
      }
      What in the name of God you think you are "encapsulating" in the class B? The value is freely changeable, to whatever value. First question good developers must make: Do I really need to have the value "b" exposed? Second question: Is this value part of the processing, or just a place holder for data?
    14. Re:You've never used C#, have you? by Mr2001 · · Score: 1

      First, classes are uppercase. Therefore "foo" is not a class, it is an instance. Oh, is that a rule of the language? Or is it a convention that programmers came up with to get around an ambiguity?

      If you feel the need to make a public field for some reason, you can make its name lowercase. Or you can prefix it with an "F". Problem solved.

      It's very important that one thing does one thing only, it would a completely different matter if the syntax for "foo.bar()" could mean something other than a method call. In the case of an attribution with properties you might get a method called as a result, and this might lead to catastrophes. And as I said before, classes are uppercase, so it can't be a static method, and "final" will only matter if you plan extending it. 1. It can mean something else, if "bar" is a property/field containing a method pointer. In that case it means "retrieve this value and then call it", and you won't know exactly what behavior results without knowing what pointer is stored there. (Not much of a problem in Java, I admit.)

      2. Final does matter, because it affects the behavior of the method. If you know the static type of foo, then you know exactly which method foo.bar() will call - if it's final. If it isn't final, then foo could be an instance of a derived class with entirely different behavior for that method.

      3. See above for my response to the case convention.

      You don't have access to their code (or just don't care because the thing should "just work"), you will believe in their documentation. If the syntax is not consistent then the number of times you will need to consult the documentation in order not to destroy anything will increase a lot, therefore decreasing the productivity. Why the hell would I need to consult the documentation to find out whether a certain word refers to a field or a property? It's the 21st century. I'm using an IDE, it has access to the actual metadata and/or source code, and I can find out in one second by hovering my mouse pointer over the word. And I only have to do that if (1) the class was written with such disrespect for convention that it actually exposes public fields and (2) I'm completely unfamiliar with it.

      That's why a method is better suited for it. Properties just add confusion. Hate to burst your bubble, but in the real world properties don't confuse anyone, hence the subject of this comment. Try asking someone who actually uses the language instead of making up theoretical criticisms that have no relation to actual practice. What you're saying here makes about as much sense as "Chinese people all look the same to me" - which they might indeed, if you've never met more than one or two.
      --
      Visual IRC: Fast. Powerful. Free.
    15. Re:You've never used C#, have you? by Anonymous Coward · · Score: 0

      Oh, is that a rule of the language? Or is it a convention that programmers came up with to get around an ambiguity? There are no classes lowercase in Java. Therefore no ambiguity and the programmers never needed to come up with anything.

      2. Final does matter, because it affects the behavior of the method. If you know the static type of foo, then you know exactly which method foo.bar() will call - if it's final. If it isn't final, then foo could be an instance of a derived class with entirely different behavior for that method. It doesn't matter at all because when coding OO you will consider the method to be called from that class, whose behavior will match the purpose of that class. Who cares if it was overriden from some other super class? This won't affect your code at all.

      Why the hell would I need to consult the documentation to find out whether a certain word refers to a field or a property? It's the 21st century. I'm using an IDE, it has access to the actual metadata and/or source code, and I can find out in one second by hovering my mouse pointer over the word. And I only have to do that if (1) the class was written with such disrespect for convention that it actually exposes public fields and (2) I'm completely unfamiliar with it. Here you go again, completely missing the point. Have you ever used an opensource library or framework? You don't have the code in your workspace to see the comments by passing the mouse over. Of course you can attach the documentation to Eclipse from an arbitrary piece of code, but you won't have it by default.

      And, yes, even with the help from the IDE, which all of the dozens of Java IDEs have better than Visual Studio, you will need to see the documentation eventually.

      Try asking someone who actually uses the language instead of making up theoretical criticisms that have no relation to actual practice. I don't think "operator overloading" is a theoretical criticism, in this case overloading the operator "=".
    16. Re:You've never used C#, have you? by Mr2001 · · Score: 1

      There are no classes lowercase in Java. Therefore no ambiguity and the programmers never needed to come up with anything. There are no lowercase classes by convention. There's nothing to stop you from creating one, except the shame of violating that convention.

      There's a similar convention in .NET to prevent confusion between public fields and properties. The convention is don't make public fields, and it's been followed in the standard library: you might say "there are no fields public in C#". If you insist on violating that convention, then you can come up with your own convention to distinguish them from properties.

      Here you go again, completely missing the point. Have you ever used an opensource library or framework? You don't have the code in your workspace to see the comments by passing the mouse over. Yes, I have. In fact, I've used closed-source libraries and frameworks too. You think the .NET Framework comes with source code? It doesn't.

      But now you're the one missing the point. You don't need source code because you have compiled metadata. If you have the library in binary form--which you must if you're able to compile your own project against it--then you can use all the IDE's popup help and completion features. You don't need it in your project or workspace, you just need a reference to it from your project, which is exactly what you need to compile your project too.

      Of course you can attach the documentation to Eclipse from an arbitrary piece of code, but you won't have it by default. Well, that sounds like a problem with Eclipse, because Visual Studio has no problem extracting metadata from a compiled library. It can even translate the metadata back into a class definition for you (sans method bodies).

      I don't think "operator overloading" is a theoretical criticism, in this case overloading the operator "=". You, who don't use C#, say properties are confusing. Thousands of programmers who actually use it every day say they aren't confusing. Either they're just smarter and less easily confused than you, or you're making a fool of yourself with theoretical criticisms about things you don't understand.

      BTW, Java has an overloaded operator too. Do you get confused every time you see some code that concatenates strings?
      --
      Visual IRC: Fast. Powerful. Free.
    17. Re:You've never used C#, have you? by ealar+dlanvuli · · Score: 1

      Reflections is not a valid solution (though it does get the job done I'm sure), and a lambda expression is cheating. Either properties are first class or they are not, wrapping them in a lambda expression means they are not.

      3sat

      --
      I live in a giant bucket.
    18. Re:You've never used C#, have you? by Mr2001 · · Score: 1

      It's not cheating. Methods are not "first class" in C# at all; delegates are, and an anonymous delegate that calls the property accessor is equivalent to a delegate made directly from the property accessor. If the few nanosecond difference bothers you, you shouldn't be using managed code in the first place.

      BTW, is this a problem you've actually encountered, or just another theoretical complaint with no bearing on the real world of C# development?

      --
      Visual IRC: Fast. Powerful. Free.
    19. Re:You've never used C#, have you? by ealar+dlanvuli · · Score: 1

      It's an annoyance I've had to work around several times. It's possible to work around it, but it should be possible to do directly.

      Using reflections is cheating period. We've all used it to do real things, but it's still a sign of poor language design when it's required.

      Using a lambda expression is also cheating, I don't even know why we are debating that. Also, considering trivial changes to the grammar make this a non-issue, I don't see why it's being defended.

      Sean

      --
      I live in a giant bucket.
    20. Re:You've never used C#, have you? by Mr2001 · · Score: 1

      Using a lambda expression is also cheating, I don't even know why we are debating that. I still don't know why you're calling it "cheating". No one is going to mark you down for using anonymous delegates in the real world.
      --
      Visual IRC: Fast. Powerful. Free.
    21. Re:You've never used C#, have you? by ealar+dlanvuli · · Score: 1

      Because I'm looking at it from a language design standpoint.

      --
      I live in a giant bucket.
    22. Re:You've never used C#, have you? by Mr2001 · · Score: 1

      Well then, you might just as well ask why you can't make a delegate out of a field or a variable (without "cheating"). From a language design standpoint, properties are not methods and thus not subject to being made directly into delegates. They're more like smart fields that can calculate their values on demand, react to changes, and constrain new values, and the fact that they become methods + metadata at the CLR level is an implementation detail.

      --
      Visual IRC: Fast. Powerful. Free.
  51. Windows as a Platform by Anonymous Coward · · Score: 0

    I don't know about others, but I tend to think of "Windows" as the platform, in which case it's pretty likely to end up tied to Windows (outside of, perhaps, a neglected token Mac version).

    So no, even if it's technically correct in some way, I'm not going to help the marketing department spin this as some kind of "open, cross platform" development when it's shaping to be proprietary Windows software.

    Sometimes, technically correct is not the best kind of correct.

  52. Technically it always has been... by blueforce · · Score: 1

    Since .Net 1.0 was released there has been a shared source implementation several platforms besides windows - FreeBSD and OS X.

    So far, the SSCLI (formerly known as rotor), is kept up-to-date with the current .NET CLR. The current "cross-platform" version of the .Net framework available is 2.0. The 3.0 framework and SDK were recently released but are only supported on Vista. I wouldn't be suprised if no SSCLI for 3.0 is released since it's Vista- and Longhorn-centric.

    I'm not too familiar with the Mono project, but I'd bet that the SSCLI was probably a key tool for its (at least initial) implementation.

    I concede that the shared source license prohibits commercial use, but that wouldn't stop someone (e.g. Mono) from making a truly open-source cross-platform implementation.

    But, like others have already said - it's not so much the CLR that makes languages like C# so useful, it's the framework libraries - ASP.Net, WinForms, etc. Without those, it's not very useful for anything interesting.

    I'd love to see the Microsoft + Novell partnership result in a truly cross-platform implementation, but I won't hold my breath.

    --
    If you do what you always did, you get what you always got.
    1. Re:Technically it always has been... by lupus-slash · · Score: 1

      I'm not too familiar with the Mono project, but I'd bet that the SSCLI was probably a key tool for its (at least initial) implementation.

      You lost your bet and it would be good in the future if you didn't bet an things you don't have any clue about.
      Mono existed and was functional long before rotor was released. Moreover, the mono project rejects contributions from people that looked at the rotor code.

  53. Re:Be NOT afraid, bitches.... by Anonymous Coward · · Score: 0

    Oh, such BS, and marked insightful on top and all. /. in all it's glory. Since you obviously have no idea what mono does or doesn't do - and it does support unmanaged calls, fyi - it's pretty obvious you just pulled those numbers out of your ass. So there, insightful BS for all your /. needs.

  54. Re:Be NOT afraid, bitches.... by segedunum · · Score: 1

    If you expect managed code to work in Mono on Linux... read better.
    This is why Mono's claimed cross platform capabilities by many clueless people are a bit of a joke. .Net is simply a gigantic wrapper around existing Win32 and COM based code implementations. Creating your own compatible, .Net clone implies reimplementing that in a compatible manner.

    To add insult to injury, I know from experience that even regular 2005 .NET still calls Win32 stuff under the hood.
    Dude. That's because the .Net framework is a half-baked object-oriented wrapper around the Win32 API and all the same COM components you've been using all these years. .Net does absolutely nothing. I'm shocked that you seem to be a tad shocked about this.
  55. looking like Silverlight is about IPTV control by Locutus · · Score: 1

    I've heard Ozzy talk about how the Internet is going to take over the TV for our entertainment and advertising and I've heard Microsoft say that they'll be putting everything on the Internet. Any discussion about crossplatform support is just plain silly since we ARE talking about Microsoft and crossplatform does not mean it'll work well off of MS Windows.

    anyways, I've recently seen a MS Silverlight demo shown online and they showed it playing a movie via NetFlix over IP. Put all this together with their massive deals with the Telecoms for MS IPTV and it looks like MS Silverlight is going to be more about the Silver Screen than it is about Adobes Flash.
    IMO.

    LoB

    --
    "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
    1. Re:looking like Silverlight is about IPTV control by Anonymous Coward · · Score: 0

      Ozzy invented Lotus Notes.

      does anything the man says now matter? really.

  56. And I would even listen to them because....? by Livius · · Score: 0

    That's what Microsoft said when they first plagiarized Delphi and Java to create C#.

    Why should I believe them this time?

  57. OOPS by Jeremiah+Cornelius · · Score: 1

    I thought -from reading the headline- that Open Source shared a Coke with Silverlight, and that consequently Microsoft caught Mono.

    --
    "Flyin' in just a sweet place,
    Never been known to fail..."
  58. Rotor != .NET, Mono != Rotor by Mr.+McD · · Score: 2, Informative
    There's a lot of mis-information being thrown around on this forum so I thought I'd try clear some things up
    • Rotor IS NOT an open source implementation of .NET. It is a reference implementation of the CLR as defined by the ECMA. It does not include the .NET stack. You cannot run a .NET application on top of Rotor under Mac OS X or any other OS
    • Rotor has no GUI implementaion
    • Mono IS NOT based on Rotor but Mono is a clean-room implementation of the CLR and the .NET APIs, plus some other very cool APIs that don't exist in .NET.
    • Mono is not a Microsoft sanctioned implementation.
    • Mono is offered under a license that is compatible with Linux.
    • Mono is cool, .NET is just Ok. ;)


    Ryan-
  59. Agreed... by unity · · Score: 1

    I've been programming since '95. I have used professionally: perl, javascript, java, c++, php, python, vbscript, VB4/5/6, etc.... And C# is handsdown the current winner. The fact that this has a better chance to go multi-platform; because of this decision is a good thing in my book. Hell, I was just looking at the Mono project last week, seeing If I could help out at all.

  60. Hmmm... by crazzeto · · Score: 1

    I thought CLR was already cross platform in the form of Mono... Linux/Mac/BSD(?)

  61. Internet Explorer on *nix platforms by grahamsz · · Score: 1

    I've used IE on Solaris and I believe it was also available on HPUX. Those versions didn't even last as long as the Mac version.

  62. FUD by ZxCv · · Score: 2, Informative

    At best you could implement .NET with Mono but there was no guarantee that a change by MS would not negate the hard work of the Mono team.

    Really? How so? What kind of change from MS would make Mono stop working? In the absolute worst possible case, I'm sure Microsoft could hamper future development of Mono, but that takes nothing away from any apps that are currently running just fine on Mono.

    Speaking on ~4 years of experience, .NET does a fine job at being cross platform, contrary to what everyone around here likes to believe. I've got everything from high-volume mail servers to data collection and processing apps to billing systems, all written in C#, running on Windows Server 2003, Linux, and Mac OS X. It is obviously not perfect at being cross-platform, but IMHO, it makes up for that in plenty of other areas.

    --

    Perl - $Just @when->$you ${thought} s/yn/tax/ &couldn\'t %get $worse;
    1. Re:FUD by UnknowingFool · · Score: 1

      I was talking about more than a technical change. MS could go after the Mono team legally. While their case may not have had merit, it could freeze Mono usage. Most companies like to stay away from controversy and legal actions by MS would have kept my company definitely away from Mono.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
    2. Re:FUD by Anonymous Coward · · Score: 0

      MS could go after the Mono team legally. While their case may not have had merit, it could freeze Mono usage. Most companies like to stay away from controversy
      Here's a quick quiz for you:

      Which major free software product has Microsoft repeatedly threatened in public with possible legal action over alleged violations of unspecified Microsoft intellectual property? Is it:

      (a) Mono?
      (b) Linux?
      (c) Samba?

      Hint: it isn't (a). And yet for some reason both (b) and (c) are extremely widely adopted in industry...
  63. C#-Script anyone? by SpryGuy · · Score: 1

    I'm so sick of ECMCMAEIEIO Script or jScript. Ugh.

    I'd love to see C# script! Being able to use the same libraries and syntaxes (for the most part) as programming in C# would be a big help. And support in all browsers!

    --

    - Spryguy
    There are three kinds of people in this world: those that can count and those that can't
  64. Open source by Per+Abrahamsen · · Score: 1

    Just in case the moderator is wrong, and you really are as ignorant as you appear:

    1) The FSF has nothing to do with the term "Open Source", apart from an active dislike. They prefer "free software". The organization stewarding the Open Source Definition is the Open Source Initiative.

    2) The term "open source" was not applied to software before a meeting 1998 amongst people interested in commercializing free software, where the term was first defined. They did try to trademark it in order to prevent it from being diluted like the term "free software" had already been, but a trademark requires a specific product for trade.

  65. the stagnant backwater by Anonymous Coward · · Score: 0

    Mature platforms/languages/libraries (linux, win32, java, .net, perl, python, php, apache, iis, oracle, ms SQL server) have a looming issue that they work well enough that most average user have no need to upgrade.

    This lessens the focus on producing meaningful updates/enhancements to those platforms. This troubling aspect means that we will be very likely developing systems similar to what mainframe developers/admins have been doing for the last 15 years in that the software/hardware will be stagnant and once it meets business needs, it will no longer be in anything other than lowest cost maintainece mode.

  66. .Net Framework on Mac OS X by Anonymous Coward · · Score: 0

    Will be available also on Mac OS X and it's a fact.

  67. USCIIIIII Is not A Secret Now, it is news by usciiiiii · · Score: 1

    You can read the Headlines of the story @ http://www.sdtimes.com/cols/index.html And the story is @ http://www.sdtimes.com/fullcolumn/column-20070501- 04.html

    --
    inventor@prepatent.org
  68. they clearly mean OSX by sentientbrendan · · Score: 1

    They clearly mean they will have OSX compatibility when they said cross platform...

    I'd be pretty surprised if they released a linux port, since they seem to have a policy of not touching linux. I wouldn't be suprised if there was a solaris or BSD port. They did make a port of the CLR to BSD in the past (http://msdn.microsoft.com/msdnmag/issues/02/07/sh aredsourcecli/).

  69. Re:Be NOT afraid, bitches.... by ameline · · Score: 1

    To be more precise mono does not support mixed mode assemblies. So it's not really feasible to run managed C++ code under mono. Yes, you can load a dll with unmanaged code and call it. And it is neither pretty nor fast to do so.

    Secondly, I did not "pull the numbers out of my ass" I have carefully crafted benchmarks from real code used in real applications, ran these benchmarks for many thousands of iterations, made sure that the timed runs had the caches warmed up, and used the highest precision timing available, experimented with many combinations of compile options, and compared several versions of both the MS and Intel compiler, and verified that all the different versions of the benchmarks were generating the same correct answers -- I've been doing this sort of thing for a living for decades, and I'm very careful and thorough. All my testing shows that when doing floating point computations, .net managed code operates at a roughly 1.8x performance disadvantage when compared to native code performing precisely the same operations.

    --
    Ian Ameline
  70. Definition of 'Cross Platform' by steveoc · · Score: 3, Interesting

    From inside the mind of Microsoft, 'Cross Platform' could well mean something like this :

    Being Cross-Platform means that Silverlight will be available on many different supported Operating Systems, and Silverlight represents THE most cross-platform product produced by Microsoft in its long and exciting history.

    The wide range of operating systems targetted for production release of Silverlight include :

    Vista Enterprise
    Vista Ultimate
    Vista Home Premium
    Vista Business
    Vista Home Basic (Limited support for some features)

    The features and facilities of the free cross platform runtime binaries will understandably differ from platform to platform. For example, on Vista Home Basic, the silverlight runtime binary will only operate in full resolution no more than 3 times in any 24 hour period .. this being a feature that users have strongly demanded from Microsoft during pre-production surveys and beta tests.

    Silverlight for Vista Enterprise and Vista Ultimate will be able to run for a whole 8 continuous hours in any 24 hours period before a noticable degradation in performance and visual resolution is apparent. Again, this is in response to demand from users for a safer and more secure experience when executing silverlight applications, and demonstrates Microsoft's committment to tailor its development to exactly suit the wishes of its valued users.

    Silverlight makes use new synergistic paradigms in the field of computer science to provide the richest experience possible for the end user. Unfortunately, such highly advanced concepts as are seen in this new platform are not easily retrofitted to older legacy operating systems which are no longer vendor supported. Whilst Microsoft would dearly love to provide runtime binaries for systems such as Windows XP, our users have shown a clear preference for the more modern and powerful Vista range of operating systems, and so it is unlikely that a fully supported Silverlight runtime will be made available for Win XP. There may be some residual interest for Windows XP in the hobby niche market, however professional organisations overwhelmingly choose Vista.

    Similarly, antique operating systems such as VMS, PrimeOS, MS-DOS and Linux either do not provide the necessary power to run Silverlight, or may in some instances have serious question marks regarding their legality, which unfortunately may impact our ability to support Silverlight in these environments. But again, the demand there is very low-impact, being part a dwindling hobby niche market of little mainstream interest.

  71. wrong by nanosquid · · Score: 1

    Section D is the viral clause a-la GPL.

    No, it isn't. Section D merely says that you must include a copy of the license with your distribution, not that you must place your all code under that license. That's a perfectly reasonable thing to require.

    Section C is the advertisement clause a-la BSD before it was changed.

    No, it isn't. The BSD advertising clause placed vague advertising requirements on the recipient. This clause simply says that whatever attributions are present in the software must remain there. It doesn't say anything about advertising.

    This license limits your rights to re-license the code as you like which makes it very different then the BSD/MIT/X11 licenses.

    That, too, is incorrect. You can't change the license on BSD, MIT, or X11 code either. What you can do is put your modifications under another license (say, the GPL), which means that the combined work is then subject to the new license and the original license. For the GPL, that just happens to work out as if the entire work was under the GPL. Well, you can do the same thing under the Ms-PL (except for the patent clause, but that will presumably be compatible with GPLv3).

    1. Re:wrong by killjoe · · Score: 1

      It clearly says you may only distribute with a license compatible with this. It has limits on re-distribution and re-licensing in that the license has to be compatible with the this license.

      This is exactly the same principle as the GPL. Just like you can't take GPLed code and release it under the MS license you can't take this code and release it under the GPL.

      --
      evil is as evil does
    2. Re:wrong by morgan_greywolf · · Score: 1
      Is English your first language?

      if you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.


      (emphasis mine)

      The second sentence only deals with object code. The first sentence deals with the source code form, which must be distributed "under this license". The words "any portion" would automatically mean that derivative works that are distributed in source form must be distributed "under this license."

      What that means is that the license is viral in exactly the same way the GPL is.

  72. only if you lose the trust of users by try_anything · · Score: 1

    Mature platforms/languages/libraries (linux, win32, java, .net, perl, python, php, apache, iis, oracle, ms SQL server) have a looming issue that they work well enough that most average user have no need to upgrade.

    Users won't blink at an easy install from a trusted source: Microsoft for Windows and its apps, the distro repository for Linux and its packages, and the application distributor for application updates (e.g., Mozilla for Firefox users.) The only obstacle is getting your platform into enough of those trusted places that you have enough of your target users covered.

    the software/hardware will be stagnant and once it meets business needs, it will no longer be in anything other than lowest cost maintainece mode.

    Maybe nobody will pay for improvements, but they'll keep installing the updated versions. Most users automatically click "Yes" when prompted, "Software updates have been downloaded. Install?"

    If you ran a large business, and your mainframe payroll or inventory program popped up a message offering to install updates, you would probably not only click "No," you would run around the office screaming, "DON'T CLICK YES! NOBODY CLICK YES!" You would be panicked by six fears:

    1. Loss of stability.
    2. Downtime during the upgrade.
    3. Data corruption and loss due to the upgrade.
    4. Interface changes that inadvertently disable critical functionality.
    5. Retraining costs.
    6. Getting billed a gazillion dollars for this damn upgrade that you didn't want in the first place.

    These are all reasonable fears that apply much less to, say, Firefox updates. Firefox updates rarely hurt stability, they involve practically no downtime, they don't include interface changes that break existing habits, they've never corrupted my bookmarks or settings, the retraining cost is minimal (and underestimated by users anyway), and they're free. These are all implicit assumptions that users have been trained to expect by sophisticated, professional developers. As long as developers live up to those expectations, they are free to upgrade the programming platform as much as they want.

    In fact, I would say that if many users click "No" when prompted to update your program, then your users are extremely dependent on the stability of your program, or you've done something very bad to lose their trust.
  73. One thing it will do by CarpetShark · · Score: 1

    The only reason I see for microsoft doing this is to leverage the FLOSS community, in order to get free ports to other platforms. If -- when -- Operating Systems become commodities (which Linux is really helping to make happen), then .NET will be Microsoft's cross-platform "OS". Anyone who helps them to port the CLR will be helping their future domination of education etc., for free.

  74. You are trying to blow up a small city... by TheConfusedOne · · Score: 1

    Allow? Deny?

    Hmmm, this would certainly make the whole zombie bot army thing a lot more fearsome.

    --
    --- I wish I could hear the soundtrack to my life. That way I'd know when to duck.
  75. This clause makes this look like a GPL-alike by argent · · Score: 1

    No, it couldn't be reasonably read that way. "Including a copy of a license" doesn't mean "placing your code under a license".

    No, but "If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license" does.

    What do they mean by "a license that complies with this license"? An equivalent license? Or a less-restrictive one?

  76. Re:Be NOT afraid, bitches.... by shutdown+-p+now · · Score: 1

    Sometimes you need nice fast math functions that can take a small handful of cycles. My beef is that .net advocates often claim it's just as fast as native code, when it is demonstrably not.
    Well, let's check it (math functions) out then, shall we? Here's the sample code:

    using System;
    static class Program
    {
    static void Main()
    {
    double x = double.Parse(Console.ReadLine());
    double y = double.Parse(Console.ReadLine());
    double z = Math.Sin(x) * Math.Cos(y) + Math.Cos(x) * Math.Sin(y);
    Console.WriteLine(z);
    }
    }
    The line of particular interest to us is the one with sines and cosines. Let's see what the JIT compiler made out of it:

    0000005c fld qword ptr [esp]
    0000005f fsin
    00000061 fstp qword ptr [esp+28h]
    00000065 fld qword ptr [esp+8]
    00000069 fcos
    0000006b fstp qword ptr [esp+30h]
    0000006f fld qword ptr [esp+28h]
    00000073 fmul qword ptr [esp+30h]
    00000077 fstp qword ptr [esp+38h]
    0000007b fld qword ptr [esp]
    0000007e fcos
    00000080 fstp qword ptr [esp+40h]
    00000084 fld qword ptr [esp+8]
    00000088 fsin
    0000008a fstp qword ptr [esp+48h]
    0000008e fld qword ptr [esp+40h]
    00000092 fmul qword ptr [esp+48h]
    00000096 fadd qword ptr [esp+38h]
    0000009a fstp qword ptr [esp+10h]
    (That was copy-paste out of VS2005 debugger's "Disassembly" window). Looks fine to me, not any different from what a native code compiler would do.
  77. Re:Be NOT afraid, bitches.... by ameline · · Score: 1

    I think you mean "Not much different than a naive code compiler would do". Using the x87 sin and cos instructions is a pretty slow way to get those results -- especially if you're using single precision -- you can get the correct answers well over twice as fast by doing a few terms of the taylor series. Furthermore the Intel compiler will recognize vectorizable uses of the trig functions and compute several in parallel, resulting in an even more dramatic speedup.

    x87 code is so 1980's. These days anyone wanting decent fp performance on x86 is using the SSE unit.

    I suggest that you do as I have and compare actual performance of real FP intenstive code.

    My experience has been that the CLR jit code generator does a very simple translation from MSIL to machine code with virtually no sophisticated optimizations.

    --
    Ian Ameline
  78. What a joke by Anonymous Coward · · Score: 0

    User brennanw could not have stated this any better. Since when can .NET developers write an enterprise application without Microsoft's Visual Studio SDK? Sure you could pop open your favorite text editor and code away and use csc.exe to compile your codebase, but think how hard that is. if you could name three .NET developers who would go the non Visual Studio SDK route, then I might re-consider this argument.

    So where does this put us? Microsoft will inevitably have to develop versions of Visual Studio SDK for Mac and Linux, and those versions will only work on Tuesday afternoons and Thursday evenings. On top of that you'll have to pay a license fee.

    Can you imagine why any developer not thinking to him or herself, "Hmmm, let's just make this a J2EE application?"

  79. Re:Be NOT afraid, bitches.... by lupus-slash · · Score: 1

    If you use managed C++ for time critical code you're already doing something wrong.
    Using C++ and p/invoke would be an ok option and it would work just fine in mono, too.
    The numbers you quote are completely unrealistic, at least as far as the mono JIT is concerned (and I'd guess the MS runtime would be as fast as us, but I haven't checked). What is the function you're calling in C++ from managed code?
    As an example the following C function:

        void nullf (double *array, int pos, int count) {}

    takes 50 cycles of overhead when called from C# code on Mono on my 1.6 GHz Pentium M.
    Newer processors should take a little less, but that is the ballpark.
    So if you see a 2000 cycles overhead instead of 50 you're likely doing something wrong or you just invented the number (or you should be using mono:-).

  80. Re:Be NOT afraid, bitches.... by ameline · · Score: 1

    noise3[i++] = computePerlinNoise3D(x, y, z); // (float, float, float) and returns float.

    It appeared to be marshalling on every call. The calling function was reading the cycle counter, and was therefore unmanaged (c++), and the noise function was managed. That gave a time that was 2200 cycles more per result than having both the caller and callee managed. It is not possible to test this on mono as mono does not support mixed mode assemblies.

    I was experimenting -- I have several isolated test cases, all very heavy on single precision FP, with no library calls, and I wanted to see how fast it went running under the CLR. I am not making up any numbers.

    --
    Ian Ameline
  81. Re:Be NOT afraid, bitches.... by lupus-slash · · Score: 1

    You're apparently doing the opposite of what any performance-conscious person would do: having the performance-critical code be managed and the driver code be unmanaged, no wonder you got slow results.

    That's why people suggested the use of p/invoke, which in your case would have the loop in C#/managed code and the computePerlinNoise3D() function implemented in C/C++/asm in a shared library.

  82. Re:Be NOT afraid, bitches.... by ameline · · Score: 1

    Obviously it would not be sane to do this in a real application -- what I'm trying to do is assess what (if any) the performance penalty is for running FP intensive code managed by CLR. My observations seem indicate that this penalty is between 1.7 and 1.9x.

    Furthermore, there seems to be a surprisingly heavy penalty for having unmanaged code call managed code. I haven't measured it the other way around, so I can't comment on it.

    --
    Ian Ameline
  83. Should have been "off" not "of" by ClosedSource · · Score: 1

    Yes, the top of my head must be a busy place.

  84. the only thing "open" about MS is your wallet by AlgorithMan · · Score: 1

    a version of...

    I knew I could stop reading right there...

    --
    The MAFIAA is a bunch of mindless jerks who will be the first up against the wall when the revolution comes
  85. Re:Be NOT afraid, bitches.... by lupus-slash · · Score: 1

    It can be realistic that FP code which is not vectorized or that has other constraints (bounds checking, defined precision, etc) runs slower than the similar code compiled by a modern C/C++ compiler. I guess a 1-1.5 slowdown would be in the correct ballpark.
    But this is a different issue than the 2000 cycles issues you posted about: anyone can show with poorly written code than anything is slow.

  86. Re:Be NOT afraid, bitches.... by shutdown+-p+now · · Score: 1

    I think you mean "Not much different than a naive code compiler would do". Using the x87 sin and cos instructions is a pretty slow way to get those results -- especially if you're using single precision -- you can get the correct answers well over twice as fast by doing a few terms of the taylor series. Furthermore the Intel compiler will recognize vectorizable uses of the trig functions and compute several in parallel, resulting in an even more dramatic speedup. x87 code is so 1980's. These days anyone wanting decent fp performance on x86 is using the SSE unit.
    This is interesting, but how many C++ compilers out there will use SSE for such code? I would imagine Intel compiler does, but what others? Does GCC do it? What about Visual C++?

    I suggest that you do as I have and compare actual performance of real FP intenstive code.
    Can't say I ever did it, so I'll trust your conclusions. Better yet, if you have a small test which clearly demonstrates the difference, why not share it?

    My experience has been that the CLR jit code generator does a very simple translation from MSIL to machine code with virtually no sophisticated optimizations.
    It depends. It's pretty hard to tell what it optimizes, actually, because when it runs under a debugger, it seems to disable quite a few optimizations, inlining in particular, and also register variables (it saves everything on the stack after every operation). I had a test where running it under VS debugger gave a 2x difference with running the same code separately, and inspection of generated assembly code in the debugger showed that no functions were inlined. Yet I'm sure that it does do inlining when you don't "look" at it, since I manually inlined the code, and compared the speed of that to the original code running outside the debugger. They did equally well.
  87. Re:Be NOT afraid, bitches.... by ameline · · Score: 1

    No, it's close to a 2x slowdown, and that's with no vectorization opportunities. The CLR is not using the SSE unit to do floating point -- it's still issuing x87 instructions. And if you're doing single precision math (like most graphics work is) this is a bad thing.

    As for poorly written code, you'll have to blame the C++ compiler -- all I did was a straight fcn call -- one function had some inline asm in it, so it was unmanaged, one did not, so it was managed. And that costs roughly 2000 cycles per call.

    Just for shits and giggles, I ported the perlin noise algorithm to c# (took about 10 minutes). There was still a > 2x slowdown compared to native C++. (535 cycles/result vs 1175 -- and that's averaged over millions of iterations.)

    The current MS .net CLR stinks for performance when doing floating point work. If you have anything vectorizable, it stinks even worse.

    --
    Ian Ameline
  88. Java on Windows by DragonWriter · · Score: 1

    Both the "Microsoft optimized Java out of existence on Windows" and "Sun sued Java out of existence on Windows" are true, from different, but neither unreasonable, perspectives.

    The Microsoft "Java" was incompatible with all other Java, and thus reasonably, despite the use of the name, not "Java" but merely "Java-like", so its reasonable to say that Microsoft destroyed Java on Windows.

    And, of course, Sun sued Microsoft for breaking their license for Java, resulting in Microsoft not bundling any "Java" VM with windows.