-
Website
http://tirania.org/blog -
Original page
http://tirania.org/blog/archive/2009/Jul-06.html -
Subscribe
All Comments -
Community
-
Top Commenters
-
Max "WorldMaker" Battcher
7 comments · 1 points
-
psantosl
18 comments · 1 points
-
whitemice
8 comments · 1 points
-
barrkel
6 comments · 3 points
-
Ed Ropple
27 comments · 13 points
-
-
Popular Threads
-
C# Support for Tuples - Miguel de Icaza
1 day ago · 27 comments
-
C# String Interpolation - Miguel de Icaza
4 days ago · 62 comments
-
Nine Months Later: Mono 2.6 and MonoDevelop 2.2 - Miguel de Icaza
1 week ago · 46 comments
-
Releasing Moonlight 2, Roadmap to Moonlight 3 and 4 - Miguel de Icaza
1 week ago · 31 comments
-
New Moonlight Covenant has been posted - Miguel de Icaza
2 days ago · 6 comments
-
C# Support for Tuples - Miguel de Icaza
I can hardly wait reading Boycott Novell the next days ...
Congratulations to all of the mono team. This is a great day. March ever on ...
*UPDATED*
After reading both Boycott Novell and slashdot takes on this i found myself baffled....you were 100% right Miguel..
Excellent to see. Now the wars should finally end.
In my Lang.Net 2009 talk in April: http://keithcu.com/wordpress/?p=135
I spent a lot of time talking about the FUD around Mono, and how it hurt Microsoft: many customers want the option of writing cross-platform code, and so they were choosing languages other than C# because of the Mono patent risk. (A risk that other platforms like Java do not have.)
Glad to see they have fixed it -- presuming that they have.
So does IBM and you people say nothing about it.
If you wear a tinfoil hat, you are too insane to be posting comments on websites.
Microsoft is not the big evil company you think it is. It is filled with smart people who go to work every day simply trying to make software better. It wouldn't have succeeded otherwise.
There are multiple reasons for them not to sue; I already mentioned a reason below: it helps adoption of C# in general.
Actually it's also filled with smart people who know how to screw others without breaking the law (too much). That's a pretty good recipe for success.
The problem is the age of the codebases, the mess of C++, backward compatibility constraints, the lack of technical leadership anymore, etc. Microsoft has huge challenges, but they have smart coders.
If you want to understand things in more detail, check out my book.
http://www.microsoft.com/interop/cp/default.mspx
From the document:
Q: Is this Community Promise legally binding on Microsoft and will it be available in the future to me and to others?
A: Yes, the CP is legally binding upon Microsoft. The CP is a unilateral promise from Microsoft and in these circumstances unilateral promises may be enforced against the party making such a promise. Because the CP states that the promise is irrevocable, it may not be withdrawn by Microsoft. The CP is, and will be, available to everyone now and in the future for the specifications to which it applies. As stated in the CP, the only time Microsoft can withdraw its promise against a specific person or company for a specific Covered Specification is if that person or company brings (or voluntarily participates in) a patent infringement lawsuit against Microsoft regarding Microsoft’s implementation of the same Covered Specification. This type of “suspension” clause is common industry practice.
This? This is funny. :D
Seriously though, this is awesome news.
Even if I don't like Novell's agreement with Microsoft too much, I still like Mono!
I wish people were more forward looking and looked at opportunities instead of dwelling on the past.
The quote below is an example that makes me slightly concerned, and aware of my ignorance of software law.
"Q: What if I don’t implement the entire specification? Will I still get the protections under the CP?
A: The CP applies only if the implementation conforms fully to required portions of the specification. Partial implementations are not covered."
My concern is, in the patent license, what is the actual legal definition of "implementation conforms fully". I assume that there are no loopholes, that would let Mono be labelled a non-conformant implementation.
Anyways, I'm happy to leave the legalese to the experts, so that us software developers can get back to coding. Great to see that a resolution is close.
You and your team's work is truly inspiring - keep it up...
A: The CP applies only if the implementation conforms fully to required portions of the specification. Partial implementations are not covered."
It means what is says. An implementation needs to fully comply to the required portions of the specification. It needs to implement what is required in the specs - functionality, behavior, semantics. The later two (behavior and semantics) are the most important ones. That is, you cannot deviate from behavior and semantics that are deemed required by the specs.
Congrats to all the people who made this possible :)
And how can we be supporters of Microsoft, when we support a product that actually helps Linux programmers and even slightly undermines Microsoft? The fact we are happy that MS has done something good for free software makes us Microsoft astroturfers? You have poop for brains.
The code is licensed under the terms of the OSI approved, FSF-approved Microsoft Permissive License.
Glad to hear a win for Mono. Keep up (to all) the good work. However, I'm a C++ kind of guy so I did want to comment that I'm sorry to hear that you feel C++ is LESS better than Mono. I think runtimes are great and all but I'm a 'working with the little fiddley-bits of a system' type programmer. Runtimes seem to abstract way too much at times and at other times it seems not to go far enough. I understand that one can use P/Invoke (?) for Mono. I that's great, but then in the end what's the point of going higher (in abstraction), if you're going to be doing a lot of low level stuff too.
Don't get me wrong, I think runtimes have a great advantage of being able to do GUIs and interactions with the user in high level and working with C/C++ in low level; sort of like a bridge between the gaps. I'm sure for a lot of people this is common use case.
But I guess to each his own. Again congrats to all!
PS: Curious where is Lambda expressions and LINQ as far as community use goes? I don't see either in the ECMA PDFs. Are they moving to the non-ECMA package?
Step 1) Remove head from ass.
I really can't see how you can just come and throw such a sentence like that, here, we are being *serious*. And also, probably you should go and read the actual facts, and post your paranoia in other place.
I would like to see the ip address of this funny guy ;-)
If they are not careful, doing things like can break their cross-platform .Net and Silverlight strategy. Having a cross-platform runtime provides them something important to compete with Java.
Mono is already implementing .Net 4.0 features, so the problem you are talking about is only theoretical and very far down the road. At some point it won't even matter if they were to do that because the core of the runtime becomes mature.
Mono runs on Windows, so it doesn't matter to Linux programmers what the MS runtime does. Sure it is convenient to run Tomboy on the MS runtime, but that isn't necessary.
MS's tools division is the best group wrt to free software. MS is a big company and it is not smart to think of it as one "mono"-lithic entity. And they haven't done this junk so far, so maybe you ought to give them the benefit of the doubt?
I think software patents will be killed, and if MS were to sue, we should fight it out with them in court and beat them. But for those paranoid people, we've now got official statements. The fact that MS might sue other people for other supposed infringements is a completely different issue.
Microsoft is a company with 90,000 people. Please remember that.
I can totally understand pasionate tones in many responses on this blogpost, many people threw their lot with C# and they are afraid they'll get screwed up. I am very happy that I can stand away from this mess—Python works just fine for me, thank you. Yes, I am OK with interpreted languages.
I've never been afraid for Mono. But paranoia is an integral part of the free software community. I do worry whether it will ever defeat proprietary software when there are so many crazies!
Python is a fine language as well. But why are you trolling here then?
And one clarification on my side probably *is* due ... is the situation better than before this MS statement? Yes, definitively! Congratulations to Miguel, RMS, scores of nameless C# programmers, or whoever else, who made this possible!
I feel so much paranoia in so many people. As I've said in other comments already: it all boild down to IS MS. This is no argument, this is just FUD. After that being said, you can come and tell us some 3 zillion of imaginary scenarios, but the facts are, the specs are under a standard, and now are under a community promise, which is a totally serious thing.
Also, I must say we are not afraid we are going to get screwed up, because in the first place we don't think we are going to be sued, nor we think MS is the devil and will destroy us, or is after us.
Finally, if you are very happy about Python, I don't know why you are still here. I think there are so many guys who like Delphi, Php (as the technology, not the language itself), or Ada, or Fortran, or LISP, but we don't need to read comments from them saying: "I'm very happy I use my X language, and yes, I'm OK with functional/interpreted/low level/high level languages". You should tell yourself that and stop putting Stop energy on us.
The only covered specifications that I can see are "HealthVault Service Specification", "UI Automation v1.0", "XPS Specification v1.0" and "VBA Language Specification". The only way that I can see that C# is covered is possibly by this statement "...this Promise also applies to the required elements of optional portions of such specifications."
SUSE Linux comes with the whole Mono stack covered by the Microsoft/Novell patent cross licensing.
I'd love to see the same promise, without the requirement that implementations must conform to the ECMA standard. Until then, free and open source software programmers should avoid C# and the CLI, lest the community be trapped into using software they are not free to modify and distribute as they wish.
Of course, if he signed a legally binding OSP agreement promising not to sue you, well, then he just can't do that. You won't be assured because you don't want to be assured. There is precious little extra that can possibly be done to assure you if this doesn't.
This is very much like a clause with Java. This allows them to protect what .NET stands for. Basically, if you implement a VM and call it .NET, then it needs to actually run .NET stuff. If your VM runs foobar machine instructions then you shouldn't be able to label it as .NET because foobar VM has nothing to do with .NET VM.
That's an extremely rough explanation so just take it with a grain of salt. Anyone else care to chime in to clear it up?
This promise is a good first step (I am not a fan of C#), but it still left a lot of valid Mono use cases in legal limbo, like the ones used to build applications for the iPhone, or the recently announced by Miguel about the PlayStation 3 support. Those implementations are partial, not complete CLR runtime environments (static compilation) so using this "promise" they are not covered
In the case of Java (OpenJDK), you can strip anything from it, port, add/remove language features, the license allows it, but you must respect the Java trademark, the same way those stripped Mono runtimes can not be called .Net
The kernel profile can be implemented as a static compiler or an interpreter, so both are covered.
But it is irrelevant to Mono on PlayStation and Mono on the iPhone products, as they are both Novell commercial products and they fall under the Novell/Microsoft agreement.
What is relevant is that this promise allows you to use/redistribute Mono, but trying to create new things with it is not always allowed, so many great ideas crashing with a patent wall.
In my opinion this "promise" does not change my ideas about Mono, Java for me is a better option even for GNOME using java-gnome bindings
If, say, an impl doesn't fit the promise, so it's just not *covered* by the promise, but it's not a *proof* you are going to be sued, nor you are in a infringement or property or the same.
Dude, as I have already said to other guys who like Python the best: if you like your language more, go out and do some actual work on that front, instead of giving us only Stop Energy.
"It's clear that this is subject to the same terms as all the other Community Promises: namely, that any implementation that does not conform strictly to the ECMA standards is fair game to be sued. This is incompatible with free and open source software. It's not free or open source if you can't make arbitrary modifications and distribute them legally!"
Please note that the wording is more or less a standard way of phrasing it. IBM uses the same terms in their "
Interoperability Specifications Pledge" (ISP) at http://www-03.ibm.com/linux/ossstds/isplist.html .
They state:
"Therefore, IBM irrevocably covenants to you that it will not assert any Necessary Claims1 against you for your making, using, importing, selling, or offering for sale Covered Implementations"
and explain what "Covered Implementations" mean with:
""Covered Implementations" are those specific portions of a product (hardware, software, services or combinations thereof) that implement and comply with a Covered Specification and are included in a fully compliant implementation of that Covered Specification."
The IBM ISP covers, amongst others, the patents held by IBM covering OpenDocument Format (ODF).
So to you, the IBM patents (and ISP) covering ODF are incompatible with free and open source software?
I hope that Mono situation may be more clear in future (normallly: announcement from people who have a *Separate deal* with MS to cover every risk won't cont much for me...) and that such a powerful tools may be use freely, but as for today, i won't touch it with a ten foot pole (c), and hope i will *not* distributed in a way such that removing it would cause severe harm to Linux distribution.
Any more question: since Copyright laws in US is a fairly complex matter (especially for us at the other side of the ocean..), does anyone may give a revision of the MCP?? i checked it in FSF page, but cannot find (at least, not under that name). i notice, however, that no MS license are 'suggested', so i wonder how save this can be.
(From the FAQ)
----
Q: What if I don’t implement the entire specification? Will I still get the protections under the CP?
A: The CP applies only if the implementation conforms fully to required portions of the specification. Partial implementations are not covered.
----
Does mono implement absolutely 100% of the specification without bugs? Because if not, we got a problem...
uh? Did this really say it is not a legal opinion about whether it is compatible with the GPL? If the holder of the 'rights' cannot say if they give permission - just who on earth can? <confused>
Here's why: Microsoft is not the holder of the relevant rights. If I have a GPL'ed product, and you use it as part of a program covered under this patent license, Microsoft has said _they_ are perfectly happy with that. What Microsoft is refusing to say is whether _I_ will be happy with it -- and that's a perfectly reasonable think for them to refuse to say.
I hope once the FSF lawyers gave MSes promise for ECMA 334 and ECMA 335 their blessing, developers will start using what is covered by these two standards, or even evolve these.
While I'm happy with C++ and python right now, I look forward to the CLR thingy being the next big thing for the integration of Programming languages, especially for tasks like scheduling on N-Core machines. Right now, they are IMO not ready. Tricky integration with C libraries, automatic memory management is enforced (at least this is my impression).
Thanks for your efforts,
-- Maik
[1] http://docs.msdnaa.net.nyud.net/ark_new/Webfile...
The new bytecodes:
[..]
call, callvirt, ldfld, stfld, newobj, modified to accept type instantiations in ad
newarr dition to their other parameters
ldelem.any, stelem.any size-polymorphic array access
castclass, isinst implementing exact runtime type semantics.
.classunion
newdata,
lddata,
stdata,
castdata,
isdata,
switchdata,
castclo
It's the same feeling of paranoia of all the times.
Maybe it is just a stronger statement because the Mono FUD still exists?
Exactly, this basically is just an easy way to comply with the ECMA standards RAND requirements. Now MS doesn't have to deal with RAND licensing request . . .
We are currently in session to come up with the 5th edition of ECMA.
But those that do not live in fear of crossing the street, or suffer from acute signs of paranoia, merely see this as another checkbox in a long list of items for the next edition of ECMA, not as a mountain too big to be climbed.
I love that - the one sentence (in fact, one word) that is enough to dispel this paranoia and nit-picking.
"There are people out that (like Icaza) that wants fundamental softwares, like Gnome, to be created with C#/Mono. Right now we have mono installed on some Linux machines by default. Thats great for MS. Once linux/BSD (user-land) is too dependent under Mono, they could just shut it down... How? They will find a way :-)"
I hope you die in a crash, you lil MS shill
[Post from IP 78.23.98.192 78-23-98-192.access.telenet.be. ]
Saying that they _will never_ come after us and everyone who disagrees is a hater and makes things up is nuts as well.
Come on guys, Mono _and_ this discussion about it will continue. Get along with it and keep it mature.
-- Maik
I missed this statement, men I shouldn't have replied to this post.
The interesting thing about the anti-mono trolls is that they are persistent and rude, but not very smart. That combination makes things tedious.
> not very smart. That combination makes things tedious.
This statement is like: Swearing f***ing sucks!
Now, would it be possible to implement the internal parts of the BCL in managed code and use that to binary rewrite windows specific assemblies like WPF for Mono? It would be slow, but it would be portable...
You will find a lot more on these pages:
http://yosefk.com/c++fqa/defective.html
http://events.ccc.de/camp/2007/Fahrplan/events/...
http://esr.ibiblio.org/?p=532
The sad thing still is that there is nearly no replacement for c++ regarding high - performance computations except maybe the d programming language which still has it's own problems.
I would comment further but it seems that moderation would prevent such a response.
With that, I guess I'll just keep all post to the topic at hand and forgo any discussion about C++.
Be sure that as a long time C++ programmer myself (and still being but also using c# / boo / nemerle / mono, python, java, delphi, D, ...) i don't want to start a flame war. Every language out there has it's usage, it's advantages, disadvantages and it's prefered domain and so does C++. There is no single best language out there for every purpose and despite all rational considerations it will always be a matter of taste which language / framework a programmer uses for a specific task.
And for a lot of people here in the forum the mono framework and c# are their prefered development tools. So this is a great day for the world of free software. At the end it is all about having the choice.
I wish you the very best in developing your software in C++ or in any language you want to and all the others who want to develop their free open source software in C# with mono. It is sad that there is so much hatred, ignorance and fear in the free software world and no attempts to try to solve problems together but to be at war with one another since we all should be working towards a common goal.
Honestly, this is the great thing here. Since this discussion is all about having the freedom to choose in which language, framework, toolkit, api, ide, etc. you can develop things. It's not about forcing somebody to use mono but giving the freedom to those who want to use it for their own projects because it is the best available solution for them. Freedom of choice is the great strength of free open source software and it is sad that there has to be so much discussion about it.
http://www.softwarefreedom.org/podcast/2009/jul...
They say: Its good to have an free C#/.NET implementation, but new code shouldn't be written
using it, because MS has made clear in the past that they are after free software.
It was recorded a week ago, so no comments on the news of today :D
-- Maik
PS: I can fell for those how know C# and like to contribute to FOSS. IMHO they should go with mono rather than do nothing. I will wait until the Software Freedom Law Center blesses C# and for the tools (MonoDevelop, mdb, emacs mdb integration) to mature before I consider C# seriously.
It all boild down to ITS MICROSOFT. Fear, paranoia.
People have told us that from the beginning. It takes time to approach MS to get this things, you know? Previous developer time, but in the end, of boild down to a post of the FSF from last week.
As I said, its recorded a week ago. No community promise back then.
> It all boild down to ITS MICROSOFT. Fear, paranoia.
Please listen to the podcast, Java and Oracle are mentioned as well.
> People have told us that from the beginning. It takes time to approach MS to get this things, you know?
I see that its not the MS compiler/language division's fault that MS has such a bad reputation. As a C++ coder I highly respect their work, since their C++ implementation is considered the best around! I'm sure they just want to do a good job and are happy that their work is well received outside the windows platform as well.
But, given that MS is serious about this, it will take time to for the FOSS community take build trust towards MS as well. The FAT case did help, thats for sure.
Now I can use Mono without getting all uptight and worried. Oh hang on, I already did! ;-)
But I will be on the lookout for continuing steps in a positive direction. They may one day begin to earn back a little positive cred with some of us veterans. I will fall back on the wisdom of Ronald Reagan when he said of the Soviet Union and arms control treaties "Trust everyone, but cut the deck yourself."
It appears (at least to me) that Microsoft is slowly coming along about Open Source. As time progresses, I think that they'll come around - as the "older generation" moves on. The next generation should be more accepting, because open source won't be a new concept that is against what they've done for their whole lives.
Sorry if this sounds too fanboy-ish for some out there, but I'm very tired of all the bickering about companies (or licenses) not being opensource enough to be cool - or whatever. Its sooo high school. Or am I just old and getting cranky?
MikeD
Is the Community Promise compatible with the GPL? I don't see that one can grant a recipient of e.g. Mono the right to modify it, which is part of two of the four freedoms.
Best regards,
Eugen
But we will likely add at least a raw API for Sqlite, and expose the Tds protocol raw as well for SQL server for those that are loosing sleep over it.
http://www.redhat.com/legal/patent_policy.html
(and yes, mandatory disclaimer, I do work for Red Hat)
The VFAT patent that everyone is talking about is from 1995 or soand it took 14 years for it to be used.
Just hope this means that finally c#/.net can get a better reputation in the gnu/fsf community.
Of course, I'm not a lawyer, so I can be mistaken. Can you clarify this to me? Where can I find the full BCL description and the legal conditions to use it?
Thanks in advance.
That being said, I love the open source concept as well. I am a contributor in two projets, and think RMS is right on some points.
Now, I have quite some difficulty understanding his recent comments on C#. He tells us it is bad to program in C#. I could argue it is one of the most productive language there is, but that is another debate. The real question is : what should we use, then ?
If we are talking about Java, I do not see much difference :
- Sun's JDK has been closed source for quite long, just like MS CLR is
- There are open source implementations of Java (OpenJDK,...) : there is Mono for .NET
- Microsoft is "evil" (means "a private company", in RMS language) : Oracle bought Sun, and I do not think they are any less of a profit-driven company than MS
- The libraries of .NET are not covered by the open licence. Same thing for the new Garbage Collector in Java : Oracle is going to sell it, as far as I know.
Really, I am being honest : I do not see any difference. Maybe there is something I have not understood in the licences, and in this case, I would very much like to know...
As for the language other than C# : if not Java, which ? After five years of C#, my boss would have to threaten me with a knife to make me go back to C++. And no other language seems as rich as .NET, today... What other language today proposes innovations like Linq, F#, Parallel Linq ???
Microsoft can't legally protect its API (and really, C# as a language wasn't protectable - languages, including computer languages, aren't copyrightable), so they had to rely on patents to do it.
It's good that the core architecture and any patents required to implement this has finally been resolved in favour of the open community. That I wholeheartedly applaud, but it would be SO much better if Microsoft *got* why Mono is actually very, very important and valuable to them, and why supporting it - if in no other than than to work with the Mono group to warn them of potential patent issues in a non-confrontational way (ie: not to block Mono, but to find ways to get around them), would actually make .Net more successful, not less.
One question though, does this mean that the 'must never have seen Microsoft source' no longer applies to the ECMA compliant components? I've worked on Microsoft's code and so can't contribute, which is very frustrating.
Actually, I'm also wondering how the MacOS version is managed. I'd really like to see a native UI version. I know they're working on it, but I thought the target was 2.4 for first release and it's still not here.