Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

An anonymous reader writes "With Oracle suing Google over 'unofficial' support for Java in Android, Microsoft has come out and said it has no intention of taking action against the Mono implementation of C# on the Linux-based mobile OS. That's good news for Novell, which is in the final stages of preparing MonoDroid for release. Miguel de Icaza is not concerned about legal challenges by Microsoft over .Net implementations, and even recommends that Google switch from using Java. However, Microsoft's Community Promise has been criticized by the Free Software Foundation for not going far enough to protect open source implementations from patent litigation, which is at the heart of the Oracle-Google case."

Oracle doesn't have a patent on "virtual machines", they have a patent on specific technologies. So, the question is whether Mono violates Oracle's specific patents. Sun/Oracle's patents were mostly known at the time Microsoft designed the CLR, so there's a good chance that they designed around Oracle's patents. Dalvik, on the other hand, was created both to be Java compatible and also under the assumption that Sun was friendly towards open source systems.

You can never be certain that a given piece of software violates no patents at all. But Mono seems in a pretty good position: Microsoft doesn't claim patents against it, and furthermore, it was designed to avoid patents by the other big player, Sun/Oracle. That's probably as good as it's ever going to get for these kinds of virtual machines.

How many times does this have to happen before people see a pattern and avoid partnering with Microsoft? The bigger players can survive the knife between the shoulderblades... the smaller players *if they eventually get a payoff* still usually end up dead anyway.

(Going against my rule, and replying even though it will risk my karma a lot)...

Unfortunately what you said is only partially true.

For example:

OS/2: Originally Microsoft developed Windows NT as OS/2 - a microkernel which was OS/2 on the front backward compatible with DOS and Windows, and switched to Windows, only after IBM started to show less and less interest in coding, and more interest in their process.(http://en.wikipedia.org/wiki/Windows_NT)

Mosaic: Mosaic was open source originated at NCSA labs, and IE was developed by original Mosaic staff.

Java: Microsoft did not develop.Net, until Sun sued them for license issues, effectively stopping them developing on Java.... and others.

A story is rarely single sided, but it's very hip to hit on MS on Slashdot...

Java: Microsoft did not develop.Net, until Sun sued them for license issues, effectively stopping them developing on Java.

I think you missed the part where Microsoft made Visual J++ with various extensions and a failure to pass the Java compliance tests. Fixing compliance would have been easy, if they just wanted to make a compatible Java(tm) implementation, but really this was their first attempt to shaft Sun.

At the time Java came with its own set of widgets, and it had a terrible reputation (deserved) for being slow. At the center of the conflict was Microsofts insistence that developers should be able to use native Windows widgets for GUI apps - otherwise it would risk tainting the Windows platform as slow and unresponsive (yeah - I know - even slower, ok?).

To facilitate that they wanted developers to have the option to call native APIs directly. Library developers would then be able to make abstraction libraries which could take advantage of the rich Windows GUI (and COM) controls.

Sun would have none of that. Microsoft wouldn't yield. Microsoft lost the lawsuit, and then went on to make a language the way they felt it should be made. With a way to call native APIs which is leaps and bounds better than the nazi-abstraction of Java. No glue code necessary, just pure metadata annotations.

Sun went on with their own business and along comes IBM with Eclipse. Only IBM weren't too happy about the whole Swing deal. Java has definitely improved in speed, but on the GUI side all those gains (and more) had been eaten up by Swing. So IBM went for native GUI widgets with SWT.

There was a reason Microsoft didn't want to fix their JVM so that it would pass the compliance tests. They lost (or settled?) and Sun got an insane amount of $$$. Microsoft created C# and.NET the way they though it should be.

C# has evolved much faster than Java. And in some areas Suns "doubts" about whether such language features were feasible has been put to shame: Delegates, operator overloading, Native API (P/Invoke) marshalling, reified generics, value types etc.

IE was purchased by Microsoft. They didn't do some dirty trick, they found a company making a product they liked and purchased them. Not just the rights to their product, the brought on the developers and all that.

DR-DOS wasn't a product that MS ripped off... It was a product that ripped off MS. MS-DOS launched in 1981. DR-DOS launched in 1989 and was version numbed to be the same as MS-DOS. They weren't breaking any laws or anything, but DR-DOS was designed to be their own DOS, compatible with MS-DOS.

Wordperfect lost on its own merits. It was the be-all, end-all of office programs. However the developers failed to keep it up, failed to improve it, and Office eclipsed it. You ever try using it recently (it is still around, still in development)? It is a pile of crap. It lost because there was a superior competing product. You know, how capitalism is supposed to work and all that.

I'm not claiming MS has never done anything underhanded. However people whine and bitch far too much. That a given product failed doesn't mean MS did anything wrong, it may just mean that the product sucked.

Let's ignore the DR-DOS bit for a moment (there is a reason they lost the court case over that) and also ignore that MS-DOS was ripped form Q-DOS...

You have the facts wrong on Internet Explorer. They licensed technology from Spyglass Inc for a small base fee plus a percentage of the royalties that would come from the revenue stream from IE. Then they gave IE away for free bundling it with the OS so that Spyglass got sweet F all compared to what was expected to be passed to them. There is a good reason Micro

The back stab I was referring to for OS/2 wasn't Windows NT but rather Windows 95. As per the documentation put forward by IBM in the USA Vs Microsoft case... and Microsoft eventually settled with IBM for the damage they caused them:

Microsoft actually contracted with Spyglass to provide a royalty form Internet Explorer revenue in order to use Mosaic as a base... Microsoft then gave the product away free and therefore skipped out on said royalties. They eventually had to pay Spyglass a settlement for this action but not before sufficient damage was done and teh company did not survive - being bought out by OpenTV in 2000.

With Java Microsoft contracted with Sun to write their own Java VM for the Windows platform. They then added interfaces to the java.* namespace and changed behaviour in this namespace. As a consequence things written for Sun's Java would not run properly due to changes in what was expected to be standard and things written for Microsoft's Java VM were not likely to run in Sun's one. The issue came to a head since Microsoft used the Java name and logos... Note that Microsoft would have been okay if they had used their own microsoft.* or similar namespace... but then that would have made Sun's VM the preferred write once run anywhere target. Sun survived this and the result was Windows XP SP1a and the removal of the MS Java VM. Microsoft were free to continue to develop MS Java VM if they actually stuck to the specs... instead they produced.Net and C#.

I'll let you google the references for that one yourself;)

It may be hip to hit on Microsoft on Slashdot... however there are occasions they deserve it (just as there are occasions they do not). I put it to you that the highlights I've picked from the past 10-15 years are points against them... and are far from an exhaustive list.

I met a guy who worked for Microsoft on Visual J++ when it was initially compatible and he said there was quite the buzz to be the best "Java" there was. He then told me that all the Java project managers, included the Visual J++ ones were called to a meeting with Bill Gates. After that meeting, all current progress was stopped and they turned direction to a version of MS Java( not real Sun Java ) which used proprietary Windows calls and Visual J++ was changed to default to using those Windows specific APIs.

I believe this meeting was mentioned in court documents where it was said the Bill Gates yelled out "does anyone remember Windows?". Court documents showed that Microsoft, as a company, did and was operate to protect their position in desktop operating systems. ie, screw developers, screw competition, they do what is best for profits and that means protecting Windows at all costs.

Java is still very much a threat to Microsoft and they are still trying to win developers over to their technology so they can be directed, legally, to technology which will only run on Windows. MS.NET on Android or anything is foolish and a sign of naivety to Microsoft's motives and what it means to product life cycles and TCO. IMO

You understanding of the reasoning behind Microsoft's forking of OS/2 is faulty - it was related to their managing to pull Windows up into protected mode as a cute hack, making the switch to MS/IBM OS/2 (and associated "long-term planning for PC platform") less urgent and making the kernel team for the joint product (mostly in MS) suddenly working on a product that had a questionable future. It was a conscious choice by Microsoft. You're also off on your claim on.net

Java: Microsoft did not develop.Net, until Sun sued them for license issues, effectively stopping them developing on Java.... and others.

This is what Microsoft tried to do to Sun to get rid of their Java: Embrace -- Extend -- Extinguish
This is the sworn expert testimony in court in case Comes vs Microsoft of a mr. Ronald Alepin on 5 january 2007, about Microsoft's strategy in 1995:
Groklaw transcript of Comes vs Microsoft document [groklaw.net] (page down a bit for the transcript).
(please read the whole thing for yourself. this quote here on/. is too short to really inform).

...
Q. Before I do this, though, sir, in relation to Microsoft's employment of Java and use of Java, when you testified about Microsoft's Java interface extensions --
A. Yes.
Q. -- do those interface extensions tie the applets or applications to the Windows operating system?
A. They tie them. Another phrase is they bind the applications or they lock them into the Windows platform. That's correct.
Q. Okay. Thank you, sir.

It's long ago, but maybe it can still be illuminating to read if you care about Microsoft's plans with their.NET platform and interoperability e.g. with Mono (I personally don't use.NET so I don't care, but your comment "..until Sun sued them for license issues.." nagged me as only partially true:-).

OS/2: Originally Microsoft developed Windows NT as OS/2 - a microkernel which was OS/2 on the front backward compatible with DOS and Windows, and switched to Windows, only after IBM started to show less and less interest in coding, and more interest in their process.
(http://en.wikipedia.org/wiki/Windows_NT)

Wikipedia disagrees and claims it was due to Windows 3.0's runaway success that MS felt bold enough to go on its own. My own recollection is in accordance with that.

Java: Microsoft did not develop.Net, until Sun sued them for license issues, effectively stopping them developing on Java.... and others.

These license "issues" were embrace, extend extinguish by extending Java which was against the licensing agreemmt.

A story is rarely single sided, but it's very hip to hit on MS on Slashdot...

I don't know for sure, but Google, about 6 months after the original Android/G1 release, made a native SDK available. I imagine that for something like Mono, you would create a native executable JIT compiler/runtime (which is how you do.Net on any other platform). Or, perhaps, your mono code will be cross-compiled to a native Android/ARM binary program which does not require a separate Mono runtime to be installed on end-user phones.

Interesting thing about MonoDroid is that while all the other incarnations

"MonoDroid applications run with the Mono execution environment. This execution environment runs side-by-side the Dalvik Virtual Machine. Both runtime environments run on top of the Linux kernel and expose various APIs to the user code that allows developers to access the underlying system. Both Mono and Dalvik are runtimes written in the C language."

.Net has been around for years and years, Mono has been around for almost as long, and there's been no lawsuit, so Microsoft has no interest or intention of suing, right? I'm not convinced. The way I always figured it, if you're going to sue for something like that, you wait till the 'unofficial' platform has become wildly popular and it's largely too late to 'turn the ship', so to speak, then you sue.

Microsoft's problem with.Net and Mono is that while it's become used somewhat, it hasn't really become use

It doesn't matter. If you promise people you won't sue over something, you can't later change your mind and sue them. It's called promissory estoppel. If they tried, any competent judge would throw the case out before trial.

If you are a dedicated.net developer looking to make mobile apps, this makes the android platform really appealing.

Mono touch on iphone still requires a paid account, and suffers from an uncertain future. Windows phone only has silverlight and xna options. I don't know much about silverlight really, but i have little interest in learning it, and xna is pretty low level if you intend to make forms type things. Android is like this happy place of unencumbered.net app development. Who'd have thought it?

It's a pity. It wouldn't even have to be open source, but a free license for open source apps would be nice.They're not going to make C# ubiquitous in the open source world if they don't cater to open source developers. Java is a better investment for them, despite being technologically inferior, because they can reuse code and skills between desktop and mobile development.

As an open source developers, we should develop a new language that will compile down to MonoDroid which will then be able to compile down to Droid. That way, if MS pulls their shenanigans, we can still, er, program for the droid. Um, yeah. Or you could learn Java.

Below are the en.swpat.org analyses. Two of the biggest things in Java's favour are that they have distributed OpenJDK under GPLv2, with the implied patent grant that gives, and Oracle is a member of OIN and there are thus a bunch of GCC and Classpath packages they've promised not to use their patents against.

It is ISO/IEC 23270 (http://www.iso.org/iso/catalogue_detail.htm?csnumber=36768). That means it is not something under MS's control and just subject to their promises. Now that's not all of.NET, that is different, but comparing C# to Java and ignoring the face that C# is an open standard, like C++ and Java is not is a bit disingenuous.

MonoDroid is not open/free software, is a commercial and closed product based on Mono. Novell probably pay MS some royalties for it under their agreements, so Microsoft saying they will not sue and they probably are profit from it is funny

It doesn't matter how much they assure that they won't go after free implementations. Without it written in legalese, irrevocable, it's a worthless statement.

What happens in, say, 5 years if/when Microsoft is feeling the pressure of competition? Let's say they're going bankrupt. Sound unlikely? Well, replace 5 years with 20 years. They'll find they have this lovely patent pool full of wonderful words which are potentially worth billions of dollars. Like every single example I can think of in the history of computing since 1980, of course they'll sue using their patents to draw out their death.

The same applies to any of the big names: Google (you're next), Oracle (already doing it), IBM (somehow never died), Sun (via Oracle), for starters. The nuclear weapon analogy holds nicely here too. The software patent mess is Mutually Assured Destruction. But amassing them and then saying "We won't use them"... what happens when your state collapses? Where do they go?

Forget that it's riding on the most insecure OS on the planet. IF Microsoft, which KNOWS ALL the "undocumented" features of.NET, and it's hand picked partner Aventure, cannot build an app which is both stable and fast, then who can?

Isn't this article about.NET running on Android? Is there going to be a Java or even C/C++ based stock exchange running on people's phones soon? It seems fairly clear that the OP was suggesting quality software of any scale could not be written in.NET.

Don't get me wrong, Google has a policy of open platform in terms of cooperating with other corps when it strengthens their position (like Flash for instance) and they won't mind C# if it gives them advantages.

Still, it's a risk, same like Java.

You know, if I'd be Google, I'd think about how to come up with something that mitigates this risk, and maybe brings some first mover advantage.

I've not been surprised if they'd come up with their own programming language, that'd just blow the other's away.

Except that poetmatt is just throwing out FUD. He is intentionally misrepresenting the fact that Microsoft has stopped officially supporting development of things like IronRuby as deprecating the entire platform. The fact that it is even modded as insightful despite being obviously false is quite telling for Slashdot.

Except that Microsoft is *not* moving away from dynamic.NET languages. They just released a platform unifying and solidifying dynamic language support within the.NET Framework itself.

This support is head and shoulders above anything else. Imagine that the platform and not the languages actually has services for doing dynamic member lookup with advanced caching and global optimizations. Making a platform which generalizes how different dynamic languages such as EcmaScript, Ruby, Python and C# look up members is no small feat.

It means that the language implementations themselves shrink quite a lot.

What we have on one hand is *one* disgruntled ex-Microsoft employee being cited on Microsofts plans for the future. On the other hand we have concrete and recent actions by Microsoft which suggests that they are very much investing in making.NET a dynamic multi-language platform.

I have no doubt that working with implementing an "outside" language inside an organization like MS is an uphill battle. But I have real problems seeing this as a sign that MS is backing away from dynamic languages.

We've been hearing that for years, and with Windows 7, it appears (from what I've read) if you want do any sort of work, you still need to use C++. Mind you, I don't program for Windows. Do they have any plans in building the next api in managed code for the next windows release, or is this a case of "do as I say, not as I do". Also, is there much of a performance hit using managed code in windows?

and with Windows 7, it appears (from what I've read) if you want do any sort of work, you still need to use C++.

You read wrong. You can program against any API* using C#. Mind you, C# can also be used in "unmanaged" (they call it "unsafe") mode - where you have access to pointers, pointer arithmetic, direct memory allocation etc.

All regular APIs are either COM or have already been wrapped or even re-implemented in.NET..NET can easily interop with COM APIs.

I believe that the only place where you would want to drop top C/C++ would be for device drivers.

I, for one, would avoid using the terms ".NET" and "safe" in the same paragraph. I realize they are talking about safe from patent trollage, but it implies that someone would actually want to, you know, actually USE.net or Mono by choice.

Not sure where you're getting the "don't know how to program" crap. Java is the one with training wheels. C# has operator overloading, pointers (if you want 'em), closures, anonymous methods, covariance, contravariance, and a slew of other advanced features that require skill to properly implement. Not to mention LINQ + expression trees, which in itself is a reason to switch twice over.

When it comes to strongly-typed JIT compiled languages, C# wins hands down. Java fans tend to look down on.NET, but that's mostly a defense mechanism. At some point someone probably told you you were 1337 for using Java. The truth is that Java was made for people who would like to use C++ but can't understand pointers. C# has its share of idiots too, but it's got features for those of us who know how to code as well.

Perhaps he was referring to the actual.NET framework rather than the C# language, in which case his comment really is praising it. The less you have the program the better, that's why.NET and various other libraries and frameworks exist in the first place; so you don't have to redo the menial stuff over and over again or make your own library to save time. So by saying.NET does everything for you is high praise (assuming it does it properly of course).

Oh, that's right, Java is licensed under the GPL, so it's inherently better.

To be fair, a decent contingent on slashdot was always saying that Java wasn't open source enough, and in light of the recent Oracle-Google lawsuit, it turns out they were right.

In the context of this particular story, I'm not sure how.NET doesn't look better than Java -- you've got one's parent company saying they won't sue you (even if that's not a great guarantee) and one that's actually suing you right now.

Well... to be fair, there is a difference between Oracle suing the GOOGLE company and Microsoft promising not to sue YOU (user/developer) for using the Mono implementation... mainly because Novell/Microsoft relation.

I wonder how far would Microsoft allow Google to go in implementing a C# compiler/interpreter in the same way they are doing it with java...

Actually I think Microsoft wouldn't care if Google implemented a compiler for Android. Microsoft makes a lot of money off the development tools for.NET (largely Visual Studio) and expanding the potential developers to Android would likely only help Microsoft. Look at the huge boom of iPhone developers and imagine a similarly large group developing for Android. That would be a lot of potential customers for VS.

The only contention I have with this argument would be that Microsoft might want to steer.NET programmers to Windows Mobile instead of Android. That said, Windows Mobile sucks really bad and Android is already one of the most popular phone operating systems, that Microsoft would either be glad for the added business (and Windows licenses that would be sold, since VS only runs on Windows) or they might consider dumping Windows Mobile altogether and push Android/.NET (a long shot, but quite possible).

Except that Mono is *also* under the GPL. No, it's not about ideology, it's simply some slashdotters have a vendetta against Microsoft that they'll follow even against common sense.

I bet you would've said the same thing about the people who refused to use Java for the exact same reason. Yeah, the good folks who had the Java patents before were fine with Android, but look what happens when new people are in control. It doesn't have to take a company buyout - what happens years down the road when there are new people in charge at Microsoft? All of sudden those glaringly obvious holes in patent protection aren't looking so benign. I like how Oracle says that Google "knowingly infring

The.NET platform is leaps and bounds ahead of the Java platform in nearly every way.

When you're older and you've done tons of code maintenance, especially maintenance of code written by others, you'll realize Java's simplicity and lack of "features" are what make it superior. No language can guarantee maintainable code, but certainly having fewer means to write heinously complicated code betters one's chances. Syntactic sugar rots productivity the way cane sugar rots teeth.

I can't say for 100% sure without examining their exact problem, but I would bet that your devs aren't very good and are trying to blame the tool rather than the craftsman. At least, I've never had problems solving similar problems with.NET. (Or Java or anything else, for that matter.)

I mean seriously, it's not like there are no actual problems to criticize MS for, but if you have to use lies and bullshit to do it, it's not going to help your case against them. If they're evil, then point out why they're evil. If it's true, you shouldn't have to make up bullshit about them.

They're trying to fix the anchor babies [wikipedia.org] problem. Except that it's a big problem in their head and not that much an issue in the real world. They haven't realized yet that their medicine will be worse than the problem they're trying to solve, and if the immigration issue was fixed one way or another, than the anchor baby problem will greatly diminish.