License Details Hint MS Undecided On Suing Users of Its Open Source Net Runtime
ciaran2014 writes With Microsoft proudly declaring its .NET runtime open source, a colleague and I decided to look at the licensing aspects. One part, the MIT licence, is straightforward, but there's also a patent promise. The first two-thirds of the first sentence seems to announce good news about Microsoft not suing people. Then the conditions begin. It seems Microsoft can't yet bring itself to release something as free software without retaining a patent threat to limit how those freedoms can be exercised. Overall, we found 4 Shifty Details About Microsoft's "Open Source" .NET.
So just like Mono, then?
Why do people want to take proprietary languages and libraries and use them on open source projects?
.net and mono and other Microsoft-derived stuff in Linux a long time ago. Why is there this interest in commingling the Microsoft way with the POSIX way when there are so many POSIX tools already available? I don't understand this choice. It's literally giving ammunition to the party that at one point had a declared interest in trying to replace all UNIX and UNIX-like OSes with its own commercial platforms. Why make it easier for that to happen by developing with their technologies?
I remember some interest in
Do not look into laser with remaining eye.
Open Source Software by Facebook like React also includes some pretty weird PATENTS clauses.
Everyone did.
There are two types of people in the world: Those who crave closure
Right because using a scripting language is the best solution for everything. Python is the second coming of VBScript, you're only fooling yourself.
Some devices require all third-party applications to be verifiably type-safe CIL compatible with the .NET Compact Framework. This means you won't be able to use IronPython because it and other DLR languages rely on Reflection.Emit, which was omitted from the Compact Framework. Nor will you be able to use CPython because standard C is not verifiably type-safe. Windows Phone 7 and Xbox 360 XNA come to mind as examples of such platforms.
Python came out in 1991. VBScript came out in 1996. If anything, VBScript is the second coming of Python.
Do not look into laser with remaining eye.
And Python's advantages over C# and F# are what exactly?
I don't mean to start a religious war, but this one of the key reasons that not all open source software is free(libre) software. Sure you can see the code, you can even run the code, but MS isn't promising you a license to use their patents.
Oh, wait - it's about .NET. Sorry, false alarm. Nothing to see here.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
Despite the fact that every other big software company is doing the same or worse. If you take a whizbang feature from Java and use it in Python, you're more likely to be sued by Oracle than doing the equivalent getting you sued by Microsoft. Seriously people, the level of chickenshit that formed the foundation of the Oracle-Google lawsuit would make a chicken house unusable for 5 generations and you don't see the level of "ZOMG TEH JAVA IZ RADIOACTIVE" from the people criticizing Microsoft.
The Gates/Ballmer era is over. Get over it. The petty bullshit about Microsoft makes you sound like someone who is still fighting the PPC/x86 fight.
Specially when there is no shortage of high quality languages and run-times to chose from that do not come with a loaded gun pointing at your forehead.
On some platforms there is in fact such a "shortage of high quality languages and run-times". Which other languages that you mention worked on Xbox 360 and Windows Phone 7 back when those were current? A few years ago, before Windows 8, Windows Phone 8, and Xbox One came out, people were demanding ports of phone apps to Windows Phone 7 and ports of games to Xbox 360. All XNA games for Xbox 360 and all third-party apps for Windows Phone 7 were required to use .NET.
Yeah, MS spent a copious amount of dollars developing a clean, efficient, and practical framework. They're being generous by not only continuing to develop it with all sorts of modules and internal testing, but expand it to other platforms.
And here you are whining that they won't let you butcher the code they wrote and reuse it for your own purposes like it was your own stuff?
You need to get your head out of your ass. Seriously, I've never heard anything so self-entitled in my life.
It's cool, and tabs are important. Like it's 1960.
tons more developers
If you can call an amateur with a point-and-shoot camera a "photographer", and use that as a metric for valuation, then the Nikon CoolPix is clearly the best camera on the market.
.NET will run most places now (except mobile platforms), the TIOBE index puts C# above Python, the number of libraries don't matter; it's quality that does, and C# runs on Linux.
All Open Source licenses come with an implicit patent grant, it's an exhaustion doctrine in equitable law.
The problem is not patent holders who contribute to the code, you're protected from them. It's trolls who make no contribution and then sue.
Of course these same trolls sue regarding proprietary code as well.
Bruce Perens.
You won't get sued for using C#. You may get sued for stealing their work and pretending it's yours, though.
We all know it's a trap.
I think you'll see the browser based languages such as Javascript finally crack this nut [of a cross-platform application environment].
Not from what I hear from some Slashdot users, who are opposed to the concept of JavaScript in general. They believe that HTML should be static and anything with "behavior" should be native. See previous anti-JavaScript sentiments by CastrTroy, epyT-R, and Anonymous Coward.
Microsoft is the antonym of open source.
Most [non-CLR] languages have very little support for decimal data types, which is essential when making applications that deal with money.
Of course there's a money data type in Java. It's called multiplying all your dollar/euro/pound amounts by 100 and using int (or long for big B2B transactions over 10 million dollars or so) to count cents.
Lack of unicode support is rampant.
The native string type in Python 3 and Java is a UTF-16 Unicode. And PHP ships with libraries perfectly capable of UTF-8 Unicode.
Yes, there is a difference between open source and free.
Not as Debian and Open Source Initiative define the terms. The Open Source Definition published by OSI is almost word for word the same as the Debian Free Software Guidelines.
To provide you some more anecdotal evidence:
I have noticed that BSD lacks diversity and numerous solutions that Linux provides, which makes it far more useful than BSD in numerous circumstances.
The advertising clause actually is confusing when it comes to software implementations, particularly where headless software is used. Of course, you're likely referring to the newer BSD derived licenses, which place exceptions, but are not the BSD license.
Change is certain; progress is not obligatory.
As opposed to open source stuff which is just abandoned. You could pick it up yourself but the risk is just different not non-existent. Microsoft may well try to bully people who create new versions of ASP.NET but they're not going to kill their dev tools business any time soon.
What is a professional developer to you then? Someone who refuses to let the computer do the repetitive stuff for you?
section 10 that "No provision of the license may be predicated on any individual technology or style of interface."
They should look at the annotated definition.
10. License Must Be Technology-Neutral
No provision of the license may be predicated on any individual technology or style of interface.
Rationale: This provision is aimed specifically at licenses which require an explicit gesture of assent in order to establish a contract between licensor and licensee. Provisions mandating so-called "click-wrap" may conflict with important methods of software distribution such as FTP download, CD-ROM anthologies, and web mirroring; such provisions may also hinder code re-use. Conformant licenses must allow for the possibility that (a) redistribution of the software will take place over non-Web channels that do not support click-wrapping of the download, and that (b) the covered code (or re-used portions of covered code) may run in a non-GUI environment that cannot support popup dialogues.
Section 10 deals with how the license is signed and not the technology used in the code.
Not to digress, but of late (last ten years), I have noticed the quality of Linux is not near the BSDs. Not knocking any programmers out there, but in general BSD tends to be better developed than Linux. Linux seems to be chaotic and many things seem like afterthoughts or ill-conceived notions and some are broken, yet ship anyway. I've not noticed this in the BSDs. The Free and OpenBSD boxes I've worked on and with have, short of HW failures, been almost perfect.
That matches my experience.
Popular computing languages do not in general have only one Open Source implementation, and do not get abandoned.
Bruce Perens.
Hi, one of the authors here.
We spent _hours_ reading the OSD and its annotations. I can tell you, it's an awful document to have to work with. Lots of ambiguity, some parts are incoherent/inconsistent, and the annotations are certainly no better.
Nothing in the OSD is clearly stated. The gist of it is spread across all the sections. If we hadn't used sections 3 and 10, we would have used 1, 6, and 7, or we could have used all five of those but we decided two sections were sufficient to make the point that the OSD isn't supposed to approve of suing people who reuse your code. I think we all agree on that much.
At the end of the day, Microsoft point to the unannotated version. Those are the standards they claim to be living by, so those are the standards we judged their licensing on.
Help build the anti-software-patent wiki
Sounds like the same reason G+ asks for copyright permissions. My guess is MS doesn't freely hand out the patents because they don't want Java whole-sale ripping out chunks of code and dropping it in their product. I assume if you continue to use everything as .Net, you should be fine, but don't try taking MS code and using it for non-.Net related projects.
You've got a problem with properly indented code? Do you prefer every line of code to be left aligned?
That's a weak defense of an old-fashioned workaround for ambiguous closure.
That's a non sequitur. I comment only that the large pool of hobbyists who dabble in Python are not a qualification of the language's acceptability to a professional developer.
... if you want to do business with the likes of MS and Oracle.
If you're small, it's safer to just stay away.
I apologize for the lack of a signature.
Breakthrough? I remember using various commercial software that implemented python based scripting tools going back to the early-mid 90's.
Someone flopped a steamer in the gene pool.
I wouldn't bet the farm on specialized Microsoft libraries, but .NET itself is 15 years old now, and has a track record of its own apart form other failed or mothballed MS initiatives.
The first version of either C or C++ I worked with used a Borland development environment. It doesn't matter that Borland is long gone, I suspect that anything I wrote back then would compile either without issue or with only minor correction on a modern compiler. Admittedly my stuff was very simple as it was student code, but I expect that many of the libraries available from Borland had equivalents from other developers.
Do not look into laser with remaining eye.
Yeah, because that program compiled for pre-Win32 doesn't run on the current version of Windows anymore... Oh, wait... It does, you just have to have a 32-bit OS in a VM for it and use compatibility mode, and both of those are included with a new Windows license. And that says nothing about the fact that Win32 is a 20 year old API, and you probably should have brought your code up to date by now (and not with a complete rewrite, unless you're a bloody idiot).
And before you trot out "the old ways", keep in mind that a brand, spankin' new IBM mainframe doesn't natively run OS/360 machine code, it emulates it in something akin to a VM with compatibility modes, and that's included with the new mainframe's licensing. And a brand, spankin' new server with some truly POSIX-compliant (a.k.a. not Windows, I don't smoke the kool-aid) operating system on it is going to be able to run ancient AT&T-era Unix code only through some sort of emulation/VM layer as well.
I'm currently maintaining a few Windows Mobile apps for an enterprise solution, and it doesn't magically go "poof" when Microsoft stops making new stuff for it.
Just because there are new shinies doesn't mean your old shiny isn't still capable of shining. Don't be wasteful.
That falls under the "complainer is a dumbass who has idiotic indentation practices" case. Using a bad text editor that can't indent properly is a dumb thing to be doing.
I am getting the impression that you have not done a lot of programming.
They promise not to sue you for using/distributing the .Net Runtime.
For example, if you write and distribute a .Net application they will not sue you for infringing their .Net patents. But you may get sued if your .Net application infringes on their other patents -- such as search engine patents, and so on.
Yes. The last stuff I wrote that I couldn't compile today was in "Promal" or "Paradox". My C and C++ code from 1980 still builds and runs.
All of my web development is on Ruby on Rails. That environment has had a lot of development and I've had to port to new versions. So old code for RoR would not quite run out of the box, but it's close.
Bruce Perens.
YMMV, of course, but a while back I had to compile some software written in the 90s in c++ for whatever the STL target for linux was back then, on a modern linux machine.
The corrections needed to compile with today's STL were far from minor.
To me it seems very simple, don't use .net. c++ have evolved into a very powerful and easy to use language since the last round of standards updates, and there are already two shipping compilers with 99% complete implementations of that standard, and the massive amount of libraries that are compatible with c/c++ make it a great choice for development. Not to mention, many of those libraries and frameworks are free and open source.
Combine that with the weakening stronghold MS has on the consumer device market, with the laughable market share in tablet and phones, and growing competition and acceptance from alternatives, Mac and Chrome among others.
Also, with the growing number of very good tools for multi-platform development that beat anything MS has for "multi-platform" development, that there isn't only no good reason to use .net, but there are a long list of reasons instead look elsewhere.
Well, I use Python on a regular basis, I'm well-known in my circles as the guy who exploited vulnerabilities in the radio software and bootloaders of 4 Android phones, and broke the RSA protection on the RAZR V3. I also worked on the early iPhones and developed a way to dump and decrypt bootloader blocks by manipulating the kernel page tables once we had temporary root.
https://web.nvd.nist.gov/view/... references my code and an exploit I discovered and was also widely used.
I've been mentioned in a book, invited to security conferences, and written piles of kernel-level and below code. I wouldn't call myself a dumbass, and I don't know many who would. Python's indentation still sucks my ass. Maybe my brain is just programmed to want structure in a way that's more flexible, I don't know. But I fucking hate it. I stumble across it frequently and get highly annoyed with its constraints. I think those are definitely valid complaints, even if they may only apply to me. Flexibility wins.
You're also a closed-minded dick.
The STL was a special case. I will never understand why it took so long for the big vendors to stop using wonky, novel, non-compliant implementations of the STL. The worst offenders where VC++ and IBM's VisualAge, neither of which even bothered to get the string class right. The closest I could get to compliance before I started Linux development was using SGI's implementation on a Borland compiler.
In all my years as a Windows C++ dev, I was never allowed to use the STL because the chances of hidden library changes affecting otherwise dormant code was too great. Old code should be low-risk, and you have to choose your libraries accordingly.
IIUC, TIOBE measures amount of discussion rather than use, applications, or anything objectively useful. So, OK, I can agree that a lot of people are talking about .NET. I'm talking about it, and I have ZERO interest in using it until it's included in the Debian package repository (which will mean I'm willing to trust its license). OTOH, I actively develop in 3-4 languaes, not all of which are from the Debian repository, but all of which I have reasonable trust in. And I occasionally dip my fingers in 3-4 more languages, which means I am willing to install them. Because they have licenses that I have reason to trust. (I'm not saying a reasonable license is the only requirement, but it's one of the set of minimal features before I'll even look at it.)
FWIW, my top 3 languages are D, Python, and Java. Ruby is in 4th place. I also occasionally look at Fortran, Haxe, Eiffel, Racket Scheme, SBCL, Squeak, etc. So my not being willing to look at C# is a strong indictment of the license. This doesn't mean my assessment is correct, but if MS issues a license that has ANY uncertain questions about it, I won't trust the license. Twice bitten, thrice shy.
I think we've pushed this "anyone can grow up to be president" thing too far.
Sounds a lot like the Java licensing terms that Microsoft were sued for violating earlier this century. Ironic on both fronts, really.
Being a professional doesn't mean you're good, it just means you got paid...
You assume that someone, somewhere, isn't holding a patent that Python infringes upon. That's a pretty big assumption, given the sheer number of software patents issued.
That's kind of one of the obvious things that people are missing about all this... a patent promise, even a meager one, is better than no promise at all, which is what you get with most software these days.
What happens when it's no longer popular and the devs lose interest. Microsoft are highly unlikely to kill one of their very profitable areas especially now that the ability to leave them has never been easier.
.NET 1.0 stuff will not run on the 4.5 run time without changes. Does that mean .NET has been abandoned? Was there no migration path to win32 for win16? OSS has a long history of dead projects too.
Barring that, if the choice is between the badly designed language that slows down my computer by a decade and having more static HTML pages, I'll gladly take the static pages (and thus noscript is born).
So if you're collapsing a comment thread in a 200+ comment page, would you prefer to have to spend some of your data allowance on resending all 190 comments that aren't being collapsed? And if all applications that cannot be efficiently implemented as static HTML with link and form navigation ought to be native, how do you plan to use applications developed by someone who uses an operating system other than the one you use?
The abandonment of VB6 left some people very nervous. VB.NET was not necessarily a satisfactory replacement.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
Such as? Have you specifically come across something that didn't work?
Karma: Poor (Mostly affected by lame karma-joke sigs)
You've got a problem with properly indented code?
Some people who don't like Python have a problem with having to copy and paste code through channels that apply lstrip() to every line of text, such as some forums.