Court: Oracle Entitled To Copyright Protection Over Some Parts of Java
An anonymous reader writes "Remember the court battle between Google and Oracle? It's the one where Oracle claimed Android violated Oracle's patents and copyright related to Java. Oracle thought they deserved $6 billion in compensation, but ended up getting nothing. Well, it's still going, and the tide is turning somewhat in Oracle's favor. An appeals court decided that Oracle can claim copyright over some parts of Java. It's a complicated ruling (PDF) — parts of it went Google's way and parts of it went Oracle's way — but here's the most important line: '[T]he declaring code and the structure, sequence, and organization of the 37 Java API packages at issue are entitled to copyright protection.' A jury's earlier finding of infringement has been reinstated, and now it's up to Google to justify its actions under fair use."
There is a lesson to be learnt here: Never depend on programming language, which is not under appropriate free license.
Apache Foundation, do you hear me?
If ever there was a time we needed you... :(
Wow. If Java's API is copyrighted we've gone so far around the bend with copyright protection we've enterted the Twilight Zone. Is there an end to this insanity?
and it will go to the supreme court, who will also get it wrong.
Extortion fees for everyone!
Ok this ruling would seem to invalidate any ability to reproduce any interface.
This needs a coder boycott of anything Oracle until Oracle stands up and pubclically disavows this ruling and claims the court was wrong.
Sure, if your entire userbase is on Windows.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
They will keep trying until they get a judge that is politically motivated to rule in their favor.
Do you have any questions which political party is more motivated towards this type of 'patent-prohibitive-rulings'?
Thank you SoulSkill for bringing this to our attention, Oracle's stock has risen on the news as you would expect.
When I read the ruling before, I agreed that Oracle did not have a leg to stand on. Did not see anything wrong with the other court's ruling. Its disappointing to see this type of patent-FUD working.
People this is why politics matter, the wrong party, motivated by their own greed to re-distribute wealth to corporations and put laws on the books promoting oligopolies while limiting competition are not good for citizens, ever. It depresses wages, reduces the number of jobs, prevent small businesses from creating jobs, redistributes wealth to a very small number of individuals vs the majority of Americans. It prevents the free market from working correctly.
Some patents are too vague and should never be granted.
There was a time when to patent something, hardware needed to be involved, in the last decade they gave software patents, which is not the way the system was designed. Software was never meant to rise above the level of copyright for legal protections.
To add insult to injury, the businesses that exist only to push patent lawsuits, that don't create anything (esp not jobs) are pushing laws to lengthen the period with which patents can be legally enforced.
Nothing good ever comes of this. Just sad all the way around.
Mono is a thing you know. A thing not being sued by Microsoft.
API calls.... their "structure, sequence, and organization" are copyrightable? API calls... really?
So I have a door, it has a door bell. It follows a nice standard that if someone wants to get my attention at my door, they ring the doorbell. If they want to leave a message, they put a note in my mailbox. That's a rough equivalent for my house's API. I can copyright that (baring prior art and fair use)?
The contents of my house are my own of course, but the procedure I ask everyone to follow when coming into my house? I also own that?
Really guys?
Federal Circuit Judge Kathleen O'Malley wrote. "On this record, however, we find that the district court failed to distinguish between the threshold question of what is copyrightable — which presents a low bar — and the scope of conduct that constitutes infringing activity."
Does this mean that even though Oracle can copyright something (not sure what), Google might still be able to use it without infringing? That's what it sounds like to me. And it took a whole lot of wasted money for Oracle to barely make it over the "low bar".
In the original trial, the jury found that Google had infringed on the Java API (37 API packages including the declaring code and the structure, sequence, and organization). Shortly thereafter, the judge ruled that those things were not copyrightable, thus Google didn't need to pay.
Now, the appeals court has reversed that, and said that those things are copyrightable.
Because the original jury was deadlocked on the question of whether Google's copying was fair use, it needs to go back to trial. But only the fair use will be considered in that trial, not copyrightability.
"First they came for the slanderers and i said nothing."
So at this rate I assume we'll get an appeal to the technologically illiterate supreme court and virtually all code written will violate someone else's copyright.
The sooner the better IMHO.
And the implementation is 100%? Nope. With Java, though, I get everything Java has to offer, anywhere Java is available. Maybe platform consistency isn't important to you, but it matters to some people.
From a purely logical standpoint, Java wins if you don't want to have to double-check whether each of the APIs you're about to use is actually implemented on all of your target platforms. From an idealistic standpoint, yes, I can see why someone would avoid Java (and, in fact, I have managed to do so for the entirety of my career, thus far), which is why the Mono projects exists, and why it is important. However, it's just not there yet, from a logical perspective.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
Yet.
I don't know anybody who voluntarily uses Oracle products. The company is hated, and many of their products are mediocre. Oracle has done an amazing job of locking in their customers. Microsoft could only dream of having as much power. Part of the problem is that Oracle was allowed to buy up most of their rivals. Many customers who tried to escape ended up back in Oracle's clutches. How do you think those negotiations went when it came time to renew support contracts?
Umm if you actually check mono's compatibility notes, it has ridiculous good compatibility distinguished between the various versions of .NET. While there will always be a lag, if you develop with Mono, you know what works and what doesn't. .Net 3.0 and 3.5 are pretty mainstream and 4.0 is pretty much good to go for a broad set of use cases.
No, instead you get to find out that that *some* of the APIs you used behave *slightly* differently on *some* of your target platforms.
At runtime.
"Write once, debug everywhere" didn't pop out of thin air.
Yaaay down with the steeling Google!!!! Hang them!!!
This is about copyright, not patents
There's a gap between "ridiculous good" and "perfect" that's simply too big, just by the way of its existence. Add to that, most consumer users will have Java installed already; how many will have Mono? Not such an issue if you're talking about Windows users, as they'll likely have the .Net libs installed already, and the smallest subset of desktop users, desktop Linux users, will be able to fetch Mono from their distro's repository (and hopefully it's a recent version), so the #1 and #3 groups are covered. The #2 group, however... You don't expect the average Mac user to track down the Mac port of Mono, do you? And I'm asking this as a Mac user.
Until it's there by default, It's simply unacceptable for consumer software.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
http://www.javaworld.com/artic...
I really wish someone would bring this up with more serious force behind it. Sun released Java SE under GPLv2.
Also, going out on a limb, I'd guess that the "37 APIs" aren't part of something outside the core stuff - I'm guessing Sun left out J2EE when open sourcing since I see no note about it.
I don't get why Oracle bothered to buy Sun since they seem to be systematically destroying the value of everything they got from the purchase.
So how do you avoid infringement between the moment when your implementation is a blank slate and the moment it first passes all tests?
"This new Microsoft has not only removed the problematic restrictions on its licenses, but also worked with Xamarin to solicit design feedback, and published documentation under a Creative Commons license so that it can be redistributed."
http://arstechnica.com/informa...
Do you have any questions which political party
Both major U.S. political parties have shown themselves to favor expansion of the exclusive rights of copyright owners. See the No Electronic Theft Act, the Copyright Term Extension Act, and the Digital Millennium Copyright Act.
Good idea.
Now come up with a language and not a toolkit, then maybe someone will listen.
How 'bout a completely open-source fork?
There are three issues I can see that would be helpful to distinguish:
1. This ruling has impact on Android, how severe is TBD.
2. This ruling has a broader impact on the Java community outside of mobility.
3. This ruling has some impact, but not clearly, on the server-side front.
For issues 1 and 3, your points don't really hold IMO because the devs will almost always have perfect knowledge of the target device or platform. You issue seems to be (I could be wrong) more relevant to the desktop or client-side where I would argue Java is at a distinct disadvantage compared to .Net/Mono. You just have to look at the windows install base. As for other platforms I don't really see the issue especially of apps can bundle the Mono framework with application installations.
If one examines the community response using consistency and trust as values, the ultimate question in my mind is, "who does the community trust more, Oracle or Microsoft?"
I'm biased but but I think Microsoft / Mono is a no-brainer.
Perhaps the issue is how much power Microsoft will have to shut down Mono.
A thing not being sued by Microsoft.
Not yet.
If you want to be safe, you have to avoid proprietary vendor-owned platforms and languages altogether.
This is a very bad decision and is only going to harm the software industry. This is Google's fault for using the wrong arguments. APIs are digital forms. You fill one in and give it to a worker, it does what you asked (possibly with side effects) and returns results. This is not an analogy, it is a fact. Forms are not copyrightable, for good reason. Imagine if every bank had to make up a new name for a 'deposit slip', and someone could copyright "First Name, Last Name" on a form! Google copied Java's API, the same as businesses have been copying each others forms since the dawn of time, and for the same reason: its easier to present a known interface to customers.
Regards,
-Jeremy
JAVA isn't consistent from one EJB server to another, let alone from one version to another. Anyone who has ever dealt with non-trivial sized java projects knows this and isn't going to complain about the slight implementation variances in any other language runtime.
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
Oracle publishes a copylefted version of Java, but copyleft licenses aren't necessarily compatible with the non-free drivers needed to get a mass-market mobile computer booting.
Qt has a languange: C++ (or at least a certain subset of it). The OP is obviously implying that Google should switch to C++/Qt. He could also mean Python since there's Qt bindings for that, but generally "Qt" implies C++.
You wouldn't steal a car, snatch a purse, etc. So why would you reproduce the sequence and structure of an API !? !
My turnips listen for the soft cry of your love
People are still doing EJB?
Ditch the EJBs and use Spring.
Share on all media sources.
Of course stop using any part of Java that Oracle is claiming a copyright on. Heck I thought it was 9 lines of code, now it might be 37 APIs, come on now...enough already.
If this really pisses you off, especially if you are in a decision making position for IT in your company, seriously look at mariaDB and if possible switch out Oracle's SQL database for mariaDB. If you are considering Atlassian (JIRA, Confluence, Fisheye, Crucible, Bamboo) than use MariaDB instead. The first thing they did when they wrote MariaDB is get rid of all the things wrong with MySQL.
Many Linux distros have finally begun moving away from MySQL and to MariaDB for LAMP. Redhat recently started shipping their Enterprise version with MariaDB over MySQL
If you are the CEO of a company, did your VP of IT even consider the savings to the company that maridb would mean vs Oracle's SQL database solution? If not, perhaps its time to find a VP of IT that will put your company first.
Do you buy stock in companies? Do they use SQL databases? Do they use Oracle? Perhaps its not the best solution. Any company that does not control its cost effectively will take a hit one day, not a matter of if, only when.
Java is a PITA for overhead anyway, ask yourself, can I accomplish my goal without Java when developing applications...you might be surprised at how much faster and customer responsive your app is if you can 86 Java.
If its the entire API and not just 9 lines of code, everyone needs to re-evaluate their use of Java in development and especially in Cloud applications. No more Service As A Dis-service (SAAD vs SAAS)!
If you are reading this, you are a developer, time to think outside the Java / Oracle box!
Mono is a thing you know. A thing not being sued by Microsoft.
When there is money to be had, you can be sure Microsoft will sue.
"First they came for the slanderers and i said nothing."
And the implementation is 100%? Nope. With Java, though, I get everything Java has to offer, anywhere Java is available. Maybe platform consistency isn't important to you, but it matters to some people.
Google's implementation of Java is not 100% java either.
You just have to look at the windows install base.
As cross-platform development was the crux of my argument, no, I don't have to look at the windows install base; I'm considering Linux and OSX users, here.
As for other platforms I don't really see the issue especially of apps can bundle the Mono framework with application installations.
That's par for the course in Window-land, but nowhere else.
No argument re: trust and values, but that's the idealistic viewpoint I already said I agreed with, not the logical viewpoint nobody seems to be able to poke any holes in.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
.Net isn't consistent from one version to another, either, so I might be missing your point. You target a version of the Java API just like you target a version of the .Net API; the difference being that you can trust the implementation of a given version of the Java API to remain consistent across platforms, whereas on non-Windows platforms, how consistently a given version of the .Net API will be implemented depends on which version of Mono the user has installed.
I'm sorry, but I prefer to be able to debug my application against a known system, rather than an array of unknowns.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
We're not talking about Dalvik, we're talking about Java. If I code against JDK 1.7, I know that anyone with Java 7 installed will have the same experience. I also know it won't run on Android, and I don't care; and if I so, I'll port to Dalvik.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
Name a platform that is end-to-end not proprietary in any way shape or form?
How far does this copyrightability of APIs go? If I write a program in Java, am I infringing?
Collections.unmodifiableList( Collections.sort( new ArrayList(){{add(String.valueOf(Math.pow(3,9)));add(String.valueOf(Math.pow(3,6)));}}));
Is that enough copying of their API to trigger copyright? If it is, then this ruling means we have to stop all software development, sort this out, then start again once we understand the license terms of every language. If this duplication of their API is not potentially infringing, then how can a copy of the API in a slightly different form (as the signatures of an implementation) be infringing?
The only rational conclusion is that the API are uncopyrightable facts, not copyrightable artistic expression. Anything else makes programming itself infringement.
Stop-Prism.org: Opt Out of Surveillance
Oh my gosh, mono doesn't support Windows only features that have no equivalent on Linux?! Say it isn't so!
Nope.
Until it's there by default, It's simply unacceptable for consumer software.
Just bundle Mono and be done. Problem solved.
In my opinion, the 'culture' of not bundling virtual machine software is a real problem. If your Windows program uses Java, why not just bundle it? You avoid version compatibility issues, and you avoid installing an enabled-by-default blight on web security (Java applets). Everyone wins. (Some programs do this today, but not many. The indie game Blocks That Matter is one such.)
Well, the numbering system should be obvious. Windows, #1, has the largest userbase, Mac, #2, has the 2nd largest, and Linux, #3, is, well, #3 in that regard. Follow? Anyone who is writing an app with cross-platform support surely cares about the largest and smallest of those groups and, likely, also cares aboiut the groups in-between therefore, they care about Mac users, as well.
But, I see that you're just another AC troll. Carry on, good sir.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
What else is there by default? Java certainly is NOT there by default on windows machines, nor is it there on a very large percentage of them. According to *MY* statistics, and my target client base, java support is at 65.6%. A far smaller number than .NET/mono which sits at 85.43% (Windows) + 0.9% (Linux).
Everyone wins.
The user, who ends up with several hundred megabytes of libraries for *each* of those installed versions, and likely multiple identical versions (e.g. wasted space) certainly doesn't win in this scenario. Just sayin'
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
Java is a legal mine field which is why developers and companies should stay far away from its use.
Of course you know a Windows-specific feature isn't going to be there. What you don't know is how differently (and how subtly different and, thus, difficult or impossible to track down) the parts that *are* implemented will be. You must develop for cross-platform projects, my friend.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
(I actually read the court ruling before posting this)
tl;dr version: The results will likely be awful, but the decision appears legally correct.
Google won at trial because the judge decided that the Java API was not copyrightable. I absolutely believe that API's should not be copyrightable, but that isn't what the law says. Copyrightability has a very low threshold. The trial judge screwed up by applying legal standards related to fair use to the question of copyrightability. The appeals court was correct to reverse.
The case now goes back to the district court. There will be a new trail with a new jury, but the only issue will be whether Googe's copying of the Java API is fair use. The original jury deadlocked on this question. Fair use decisions are very subjective, so it's hard to predict how this will turn out. All I can say is that I hope Google wins.
P.S. None of this decision was related to patents. Oracle lost on their patent claims at trial, and that stands.
The key sequence to access my Slashdot bookmark in Firefox is Alt-B-S. I don't believe this is a coincidence.
If this ruling doesn't get struck on appeal, IBM's lawyers should be drooling oceans as they warm up to sue Oracle for copyright infringement on SQL. Oracle owes IBM many billions of dollars in infringement, by Oracle's own logic.
This is yet another judge that is completely incompetent for the job.
Will it run on my Android phone? If not, what's the point?
A crap company claiming parts of a crap programming language. The irony is palpable. OK, Oracle, go for it!
Well, that means that Oracles business was 100% based on stolen code.
They ripped off IBM's database all source code, apis, etc to make their first Oracle Database - so that means it's all a sham and Oracle shouldn't exist.
So IBM, dust off your source history, with this ruling it's time to dissolve Oracle Corporation.
If you're targeting the "non-windows, non-mobile Linux home PC user consumer", then, yeah, Mono sucks for that user base (both guys!).
But for the interesting consumer Linux market, which is to say Android, Xamarin has it sorted. I was skeptical of that dev environment for a long time, as the legal situation with Mono seemed unclear to me (even though they're in the right, MS could still sue to be a nuisance). But all that recently changed with an official MS-Xamarin partnership.
C# is a joy to work in compared to Java (and I've spent years writing in each professionally), and now the legal issues flow the other way - MS is partnering while Oracle is suing.
Socialism: a lie told by totalitarians and believed by fools.
This isn't the 1980's or 1990's anymore, 512gb Hard drives is the norm these days so those multiple identical libraries taking space is not a problem. I have 346 space left out of my 512gb.
Make the rules.
Thankfully both of these companies have lots of it, so it should continue to be an interesting ( and scary, due to its far reaching ramifications ) battle.
---- Booth was a patriot ----
Writing C applications on Linux (or *BSD) has no connections to anything proprietary. You can also do C++, though there you might have to be careful about some toolkits (e.g., you can use Qt, but only if your application is GPL, otherwise you need to buy a license. BSD-licensed toolkits won't have this problem.). I believe Python is also safe for avoiding anything proprietary.
Shhh... don't shatter his opinion with pesky things call facts and truth.
Just let him believe the Big Bad Micro$oft is bringing a dingo to eat his babies.
Yeah, 'cause a corporation has never reneged on something it said/did.
You know in the 80s and early 90s Microsoft was rabidly anti software patent. Then guess what happened ? Those assholes in the courts came up with idiotic decisions that changed the software landscape in worse. And Microsoft from anti software patent started becoming one of the biggest corporations patenting software. And today it has no problems at all sueing left and right even for debatable patents. So you can keep your rose tingled opinion about Microsoft. Corporations smell the coffee and act accordingly. If this ruling is upheld Microsoft will be handed an enormous stick with which to beat down big competition let alone small fish like xamarin.
They should have known better than to sell to Oracle. Also with the crappy license for their "compatibility test suite"
We should be saying bye-bye copyright, especially since Oracle did not create this. Why we allow copyrights and patents to be sold and traded I'll never know. It's speculation and thievery at its worst.
The .NET CLR is also inconsistent between Windows platforms (e.g. Framework 4.0 on XP does not exhibit identical behavior to Framework 4.0 on Windows 7; this is without Framework 4.5 on the Windows 7 system, which would only muddle the comparison). The only place I can recall encountering this was with WPF's visual tree where on a couple occasions I've had to rearrange XAML in order for it to not cause XP to crash when loading it.
If anything, Google would (should?) most likely switch to Go. And it would be a tremendously good riddance, to get rid of Java in Android!
Ezekiel 23:20
and you shouldn't fucking copyright language.
java was never about openness, it was about portability. the open flavors of the JDK came very late in the game. openness was never a core philosophy behind java.
K. S. Kyosuke: You've been called out (for tossing names) & you ran "forrest" from a fair challenge http://slashdot.org/comments.p...
K. S. Kyosuke: You've been called out (for tossing names) & you ran "forrest" from a fair challenge http://slashdot.org/comments.p...
And Microsoft would never fund an operation that claimed to own the property rights to all Unix derivatives
Perhaps the issue is how much power Microsoft will have to shut down Mono.
None. Zero. Zilch.
Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
Java was always about ruling the universe in every possible way, embedded devices were just a way to get a foot in the door. As it turned out, Java is a horrible waste of hardware resources and so ended up mainly as an enabler for mediocre programmers, and a poster child for everything that is wrong with proprietary control of a common resource.
Larry Page getting fixated on Java was a blunder, pure and simple. Only ego stands in the way of backing down from that and shifting the core of Android C++. I do not doubt that the Java strategy will be made to work even with Oracle's bad acting, but not putting plan B into effect is just dumb.
When all you have is a hammer, every problem starts to look like a thumb.
Mono is certainly interesting for the mobile market; especially given that you can target the two big platforms, Android and iOS, and be relatively sure everything will work more or less consistently, given that you're using Mono in both places; if anything, you'd have to make accommodating changes for Windows Phone, to account for subtle differences between Mono and native .Net. Assuming you target the major platforms first, that is.
.Net, which means portability is likely an afterthought, if it's a thought at all. On top of that, your choices are more or less to bundle the runtime or hope the end user has the correct version installed; less than ideal in most consumer use cases. With Java, you can be fairly certain that at least JDK 6 is available (currently supported versions of OSX ship with Java 1.6 installed by default, for example) and a newer release of Java will maintain the correct behavior (save for cosmetic things, like better font rendering in 1.7) for the JDK requested.
For the desktop market, you're likely targeting Windows first if you're going
I think we might be on the same page, overall.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
Name a platform that is end-to-end not proprietary in any way shape or form?
Even if such a platform exists, how does that preclude Microsoft from suing? Remember that the thesis here is that Microsoft would disregard the licenses already granted for C#, .NET Framework, compilers etc and just sue to exhaust your funds. Why couldn't they claim that you infringed an algorithm (or whatever) even if you were using Java or Python? After all, they have no legal standing but are considered *so* malicious that they will sue even when they have no legal standing.
The whole "Microsoft will sue!" is nothing but FUD.
In reality - because of the promissory estoppel of the community promise - users of .NET and any other technology under the community promise is much better protected than when using alternatives. This is because the promissory estoppel can be used to dismiss a lawsuit outright.
Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
It's true that applications aren't as compact as they might be in a perfect highly-optimised world, but a JVM isn't that big a dependency. I don't have numbers to hand, but iirc it's not all that much bigger than Qt.
If you really wanted to, you could have an install-time option to use an already-installed JVM instead of unpacking one. You'd open yourself up to version incompatibilities though.
Or, you know, don't develop against the bleeding-edge newest version if you don't have full control over the environment. Pick a version that's a generation or two old and you're most likely not going to have problems. If your end user happens to have a newer JVM installed, it will behave appropriately based on the JDK you developed against.
I know I said, earlier, that I've thus far avoided developing in Java, but that doesn't mean I'm completely unfamiliar with how it works; I might not develop in it, but I do use it. A lot.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
MySQL develops a new API, for proprietary customers only (they can).
MariaDB copies said interface.
Oracle take them to court.
You understand this isn't about Java. It is about 'the cloud', yes, but it's about the entire future of the computing world.
"Java" on Android (Google) is not Java.
It is only a programming language that 'looks like Java', where the _core libraries_ have the same API. In other words: there is no Swing or other javax language features.
As far as I know Google does not even call it Java(TM).
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Care to give an example? ... 1995 or so.
I never had any issue regarding Java compatibility from platform to platform or version to version and especially not from EJB server to another one since
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Right, they call it Dalvik, because it's not Java. Since it's not Java, it's probably not what I was talking about. Thanks for pointing that out, though, for those who may not have otherwise been able to follow along (or use Google)...
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
Every second sentence of yours contains 'Java', so about what are you actually talking then?
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Java. Oracle's implementation. Not Google's implementation, which you're referring to, which is called Dalvik. I apologize if you're having trouble keeping up, but I'm not sure how to make it any more clear that, when I say Java, I'm talking about Java, not Dalvik (which is what Google's incompatible implementation is called).
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
[nt]
File under 'M' for 'Manic ranting'
Only ego stands in the way of backing down from that and shifting the core of Android C++.
Depends. Who owns the C API?
> Mono is a thing you know. A thing not being sued by Microsoft.
Not right now. You realize that this ruling, if it stands, applies equally as well to Mono's implementation of the .NET API?
Or Linux (and the BSDs)'s implementation of the UNIX API?
The Register notes
Google had also submitted expert testimony to the effect that copyright is the wrong legal standard by which to judge software code, and that software should be patentable but not copyrightable. Here, however, the Appeals Court found that it was not within its authority to decide such matters.
This seems like a very bad idea on Google's part.
Your Mom.
Mono is just a joke as the name implies. With Java, one can get cutting edge features from the language designers on the operating system of his choice, because the reference implementation JVM is actually made by Oracle. I'm already using lambdas and the new stream API from Java 8 in Linux. Imagine that with mono? You'd have to wait years until some hobbyist programmer implements them (or tries to).
they only interpret them.
If the law was written such that APIs can be copyrighted, there's nothing the judge can do about that.
If an API is copyrightable, then Linux is illegal. It is just an implementation of the Unix API. This has HUGE implications.
Qt's "open source" version, cost $0, has included the option of LGPL licensing for quite some time now.
Comment removed based on user account deletion
20-30MB is larger than the deployment for enterprise applications I've written / worked on and would describe as "sprawling", but which also helpfully include substantial functionality and do useful work.
Adding that to every application download, and installing dozens of "WORA" libraries on every machine is way beyond being a little suboptimal (it's a nice demonstration of Java having completely failed to deliver on its original goals though).
> With Java, one can get cutting edge features from the language designers on the operating system of his choice,
Yep, that's what we want. A WORA language that was badly designed in the first place, that is now
adding half-assed shit that will take 5+ years to percolate through to end-user systems.
> the reference implementation JVM is actually made by Oracle.
You say that like it's a good thing, as if Oracle could even produce an installer that works correctly and reliably.
Hint: EJBs aren't what they were...
That's not true (at least, it's no longer true). Qt has an LGPL license in addition to the commercial and GPL licenses.
Yes, I consider that a good thing because the language creator is making the actual tools you use in every operating system. So those incompatibilities which exist with mono are not a problem in Java.
Another different thing is the quality of the tools produced by Oracle. Although I've never had any trouble installing Java on my computers so far.
See the benchmarks: .NET a hard sell to informed customers (if they need large fast stuff). And then there is vendor lock-in and available hardware (need a 1024 core machine for your solution, good luck if it is on Windows).
:-*
- Minimum latency for each framework (1.2 ms vs much more)
- Throughput (200k vs at most half that), requirements...
- Alone this two points make
Note: mono numbers are even much worse, so no option for anything serious.
Note: MS shills are going to hate this post, please help to save it, thanks
There is a newer benchmark round 9 with "real" servers (Dell R720xd dual-Xeon E5 v2 + 10 GbE instead of I7 + 1 GbE). This did not go well for .NET and Windows:
.NET (108k for pure .NET listener) .NET listener 10.1ms, so better hardware does not help you here either.
.NET and Java do not play in the same league, not even the same game if it is about large fast stuff.
Benchmark with "real" servers:
- Throughput for Java went from 200k responses per second to over 800k (even 915k for gemini), it stayed more or less the same with
- Minimum latency Java went from 1.2ms to 0.3-0.4ms. For pure
As you see,
Note: standard IIS and ASP are not longer tested. It would look too sad for them...
Note: yes you will cry "fan boy" again, but these are the hard facts, learn to live with it.
Oh really? Sorry, I didn't realize that that was now the case. Thanks!
FWIW, in the late 1960s and early 1970s is was common to replicate some of IBM's APIs in its DOS and OS operating systems. That was a standard for modifying system behavior. A simple example that I remember was writing renaming IBMs main job control routine JOBCTRLA to something like JOBCTLA2 and writing your own JOBCTRLA which would usually call JOBCTLA2 after it was done with its additional processing but might not. This was how job accounting was first implemented, i.e., reading additional info off job cards to determine who was to be charged for the job.
I would disagree on this. Interface design often is as important as the implementation. It can take a good deal of effort to design and test a *good* interface. it often requires just as much engineering as an implementation.
.net, etc). All those extra CPU cycles to interpret code using up power..... sigh.
That being said, I don't think there is anything remarkable about Java. In some ways this decision is a good thing.
1.) it may turn off enough people to never use java (which is a good thing). It was a horrible idea and runs like dog crap on *everything*
2.) Google should be punished for using such a system on an embedded platform. The whole idea of an interpreted code language on a high performance embedded device is dumb. This is why Android phones:
a.) crash
b.) run like crap
c.) have horrible memory/system requirements.
And if you are concerned about the environment, think of the carbon footprint of these types of systems (Java,
Yeah, Mono...
If you don't mind being stuck at .NET 3.5, and don't care about WPF support. No thanks. Mono is a joke.
Under capitalism man exploits man. Under communism it's the other way around.
... and good riddance to bad rubbish, say I.
Marked as flamebait...
However... One implication here is that Java has been deployed on
a bazillion devices and permissively marketed.
Now I see an attempt get that JavaHorse back into the barn... But wait
that stallion has made my mare pregnant without my
permission and Oracle now wishes to claim ownership of the colt
but dismissed responsibility for the foal.
To call it Java requires testing the virtual machine. My guess
is none of the licensed Java ports identified these libraries as special
copyright material and simply permitted them to be included.
i.e. there have been lapses at Sun and Oracle over time where this
can be demonstrated. Most importantly any of the products that
depend on the big pile of java poo in question directly or indirectly
are in violation and failure to protect "Java" in these cases keeps
the horse out of the barn. Oracle needs to litigate many many more....
If there are contracts out there that notice libraries and make
no distinction and include them all then it can quickly become
an all or nothing game. i.e. if they claim all but only own a little
bit then no organization could discover the truth in this big
pile of poo.
One subtle turn is the tiered hardware and use layers to all this. Java had
no restriction on many classes of biger machines. Later the mobile
thing was introduced but mobile devices today have more
power than "non-mobile" machines. Mobility is slippery too.
The older mobile phones were bigger and heavier than many desktop
devices (look at the Apple Mac Mini). If I can run java on
it then phones are little different. Mobility of many Solaris
machines in ships and aircraft come to mind.
Next is the way java is installed. If the installer uses Java
before the EULA then where does the EULA live in the sequence
of gates, Oh wait it is out of the barn.
Truth is stranger than fiction, but it is because Fiction is obliged to stick to possibilities; Truth isn't. Mark Twain.
Let that dumb language die. It's useless in every way except as a tool to learn coding in a simpler way.
Sadly, a Libertarian cannot force his views on another, and freedom cannot spread as does the cancer known as religion.
Finally, who gives a shit about Mac users?
People who make business decisions based on dollars spent. Mac users buy stuff besides expensive Apple products. If you want to sell your product, they are a viable target audience. Even for software.
--- Say something clever. Pretend it was me. Thanks.
I think your lack of understanding of Windows / .NET is beginning to show at this point. Saying you have to bundle the .NET run time or hope that the user has the correct version install, but that you can count on JDK 6 is complete nonsense.
Far more Windows users have uptodate .NET installations than Java, and each version automatically contains support for the older versions.
This is even more the case since the countless recent Java vulnerabilities that have had people uninstalling it in droves.
Whether a user has .NET install on a Windows system is a complete non-issue nearly all the time. Unless you want to do something obscure like target ancient Windows 2000 PCs or something then you really don't need to worry. .NET 4 is more than sufficient and available as an automatic update for every version of Windows that matters.
Mono. I'm talking about Mono. This whole discussion was about Mono. This should be obvious, if you've been reading the thread and not just cherry-picking comments, as the post to which I was replying mentioned "non-windows, non-mobile Linux home PC user consumer", the post before that (written by me) specifically mentions Mac, Linux (though not explicitly by name), and Mono, and the 3 posts leading up to that post all mention Mono, immediately following my post slyly pointing out that there are platforms other than Windows and that people do use them.
.Net installation is the end-all-be-all of being able to run any .Net application, is seriously flawed; a .Net application written against version 4.0 of the API will refuse to run if you only have version 4.5 installed, even though 4.5 is newer. Why? Because 4.5 isn't just newer, it's different. It is common to see Windwos systems with 4 or more versions of the .Net libraries installed, for this very reason; in fact, the "Turn Windows features on or off" pane in Win7 lists only .NET Framework 3.5.1, while I also have 4.0 installed, and on my Win8 instance, I have both 4.5 and 4.5.2 installed for various applications that rely on the subtle implementation differences therein.
I think your lack of understanding of what you are currently trying to comment on is beginning to show at this point. We're not talking about Windows users being up to date, either; and your understanding, thinking that an up to date
As a recent Mac convert, who cut his teeth on WFW 3.11 at age 5 and has worked with and developed for every version of windows from then to now, I don't think my understanding of Windows is reasonably in question, here. I use all three major platforms on a daily basis, so it is important that I keep up; and so, I do.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
This. I've written more software for Windows; I've sold more for Mac. Likewise, I've bought more for my Mac in the year I've owned it than in 27 years as a Windows user.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
"Mono. I'm talking about Mono. This whole discussion was about Mono."
Then don't mix and match terminology, because in that case your argument makes even less sense. Why would Windows users even have mono? Because you were talking about Windows.
"a .Net application written against version 4.0 of the API will refuse to run if you only have version 4.5 installed, even though 4.5 is newer. Why? Because 4.5 isn't just newer, it's different."
This is just out and out false. 4.5 is based on 4.0, it's just an in place upgrade for it. 3.5 and 3.0 are based on the 2.0 runtime, so you generally have both runtimes, and then the subsequent API versions.
Honestly, I was just making an observation, but now you're just digging deeper and confirming that you really are out of your depth.
it's a nice demonstration of Java having completely failed to deliver on its original goals though
And .NET picking up that torch and running with it. Java 8 will happily run applications written against the 1.8, 1.7, and 1.6 APIs, whereas you need to have .Net 4.5.0 installed alongside 4.5.2 if your application was written against 4.5.0; there is no backwards-compatibility there. Now, I don't fault Microsoft for this; trying to maintain perfect backwards compatibility is what made Windows a pile of shit in the first place, and it's gotten a lot better since they stopped.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
Java may be a horrid language (as I stated elsewhere in the thread, I've been lucky enough to have avoided writing anything in it thus far in my career, so no argument there), but it does work as advertized. Even their installer.
The only time I've had issues with Java, it's been with IcedTea on Linux, or the 1.6 JVM that Apple bundles with OSX. Oracle's Java, on the other hand, has never caused my any headaches. While I despise them as a company, I'm going to take whatever I can get from them without giving them a single penny and use it as long as it works better than the alternatives.
With that in mind, is there a better administration tool for mySQL than Oracle's mySQL Workbench? It has its quirks, but I've found nothing better, thus far.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
Because you were talking about Windows.
Or, really now?
you're likely targeting Windows first if you're going .Net, which means portability is likely an afterthought
So it means nothing that the entire thread has been about cross-platform development and I explicitly mention portability in the very sentence you're referring to. I talk about .Net in the post because, well, Mono is a cross-platform .Net implementation. You won't code in Mono, you code in .Net (e.g. C#), and I would have sounded like an idiot implying otherwise, which is what you seem to be doing right now.
This is just out and out false. 4.5 is based on 4.0, it's just an in place upgrade for it. 3.5 and 3.0 are based on the 2.0 runtime, so you generally have both runtimes, and then the subsequent API versions.
So, then, it stands to reason that 4.5 should supersede 4.0; in fact, by the same logic, 4.5 and 4.5.2 shouldn't coexist on the same system, either. Yet here I am, looking at it on two different Windows installations, one Win7 and one Win8.
Honestly, I'm just stating facts, but you seem to think you're important enough that your opinion of me can change those.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
are you anything to do with the B-Con who published the crypt library on github? if so kudos.
"Or, really now?"
Yes, when you say "For the desktop market, you're likely targeting Windows first if you're going .Net" it means you're talking about Windows. I probably shouldn't have to explain basic English from your own hand to yourself, but it seems I apparently do.
"You won't code in Mono, you code in .Net (e.g. C#), and I would have sounded like an idiot implying otherwise, which is what you seem to be doing right now." .NET and C# are different things. You don't seem to grasp that. It's not my fault if you don't even grasp the basic terminology of what you're discussing.
"So, then, it stands to reason that 4.5 should supersede 4.0; in fact, by the same logic, 4.5 and 4.5.2 shouldn't coexist on the same system, either. Yet here I am, looking at it on two different Windows installations, one Win7 and one Win8."
Look, you don't grasp the basic facts about how the .NET framework is packaged and deployed. The .NET framework is the set of libraries that are used to build applications, each framework version requires a runtime to execute. Versions 2.0, 3.0, and 3.5 are framework versions that run on the 2.0 runtime, and 4.0 and 4.5 run on the 4.0 runtime. Saying 4.0 applications wont run if you have 4.5 installed is a complete nonsense, because 4.5 is based on 4.0 so you can't have 4.5 without having 4.0 and if you have 4.0 then of course you can run 4.0 applications. When you see 4.5 and 4.5.2 on the same system it simply means you have the libraries that correspond to those versions on the system, but the runtime is still the same for both of them (and 4.5.1 and 4.0). Of course they co-exist because you have installed the different library versions, but you still only have one runtime which supports all those framework versions equally, there were only a handful of fixes between these versions, most were outright improvements such as implementation of PLINQ style queries as standard where possible.
"Honestly, I'm just stating facts, but you seem to think you're important enough that your opinion of me can change those."
You're not because you have no idea what you're talking about. Your "I've been programming Windows since WFW 3.11 when I was 5" or whatever means jack shit if you're still completely clueless about .NET, which you really are. You can't even get basic terminology right for crying out loud. Stop pretending you know what you're on about and stick to what you do know, because this is very obviously something you don't. Christ, if you were doing WFW programming when you were 5 then you're at most what, 27 years old? You're still an inexperienced kid for crying out loud. You couldn't have fit as many years in if you tried - you weren't even of legal full time employment age when .NET came out which in itself makes a farce of the idea that you think you're a .NET know it all when you're obviously not.
But I'll give you some advice kid, you'll ignore it, because you're obviously stubborn, but it's worth a try as it's the one thing that separates the wheat from the chaff. You want to know what makes a great programmer? Humility. Knowing when you know you don't know. If you're not capable of introspection then you'll never be particularly great, you have to know when you're out of your depth and saying things that come across like "BUT .NET MONO SHARP 7 ISN'T COMPATIBLE WITH 4.0.012.5!!!!111" shows you don't have this quality, you'd rather talk nonsense and not even get basic terminology right than actually stop and try and learn something. It's not like I was even having a go at or arguing with you originally, just pointing out a slight inaccuracy in what you said and what? you then jump straight into a full fledged argument rather than do the rational thing of stopping and accepting that maybe there is actually someone that knows more than you about a particular topic.
Yes, when you say "For the desktop market, you're likely targeting Windows first if you're going .Net" it means you're talking about Windows. I probably shouldn't have to explain basic English from your own hand to yourself, but it seems I apparently do.
Well, yes, you're 100% correct; assuming there's not other context, that is. The fact is, that was said in the context of comparing ".Net/Mono as a library for cross-platform mobile development" to ".Net/Mono as a library for cross-platform desktop development". Read it again now that you have the missing pieces (or just go back and read the whole post as a unit, instead of fixating on that one sentence -- the pieces aren't missing, you just missed them).
Look, you don't grasp the basic facts about how the .NET framework is packaged and deployed.
Of course I do. What good is the runtime without the corresponding library? Follow?
Christ, if you were doing WFW programming when you were 5 then you're at most what, 27 years old?
My bad. I was 5, you don't actually expect me to remember in that level of detail, do you? I would have been 11 when I started using a PC; I cut my teeth on an old TI and various Atari machines, my favorite being the 1040ST. Good job estimating my age based on my misquoting, though.
Thank you for the advice, I appreciate the time you took to write all of that. Thus far, you haven't shown me that I don't know anything; I never claimed to know everything about .Net (in fact, I'm so far from being a .Net guy it's not even funny), but you're trying to cram the "4.5 is 4.0" crap down my throat, then in the same breath mentioning that they're only the same runtime, but the libraries are different. I'll admit that was one piece of information I didn't actually know if you'll concede that the runtime is useless without the libraries. Then, you taught me something, and I wasn't completely off-base with both my observations and assumptions; it's a win-win.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
Wow... misspoke... In the last paragraph, I meant to say "Thus far, you haven't shown me that I don't know anything I actually claimed to know".
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
All I ever really took issue with was your suggestion that 4.0 applications don't work with 4.5 and the implication that you could run into problems with compatibility issues. I was merely pointing out that they share the same runtime anyway, and it's merely the library versions that differ.
I think if there's one thing .NET handles well it's versioning, much of that is because it was built from the outset with the issues of the earlier DLL hell problems that plagued many older Windows technologies. The framework was design from the outset to cope with this and that's why I took issue with the suggestions that it has versioning problems.
I agree things get more complicated with mono, but it's quite hard to break things on Windows unless you specifically go out to do so and as a primarily Java/C++/.NET developer I've actually seen more compatibility issues (though still rare in the grand scheme of things of course) with Java over the years, with C++ obviously being the worst out the lot for the simple reason you have to do pretty much everything yourself.
The biggest changes with 4.5 were simply additions, and the things that actually changed tended to be parallel implementations of some LINQ tasks - so for example, if you execute a lambda against every entry in a collection with 1000 elements using a LINQ method it used to just do them sequentially, now it'll automatically parallelise it if the collection is big enough. This is why the 4.5 libraries can retain backwards compatibility with 4.0 - the changes, rather than additions simply optimise what is already there, rather than change it and this is why you shouldn't really see any incompatibility issues between 4.5 and 4.0. The only exception would be if you wrote some 4.0 code that required something broken in 4.0 to be broken that was then fixed in 4.5 but that's bad practice anyway, and it's something Java has suffered in the past too (well, I'd be surprised if there's a major language framework out there that hasn't suffered this at some point).
I wont lie, I do like .NET a lot, but I wasn't having a pop at Java, I have a lot of respect for Java and it's my go to choice for cross-platform projects. I've never used Mono precisely for the reason that I figure if you're going cross platform then you should probably have just used Java (or gone native with C++) in the first place. But if you're using just Windows with no requirement for portability then I think .NET is unquestionably a superior option - you can get more done in less time and better.
I hope that clears up what I was getting at and where I was coming from, as I say I really wasn't gunning for an argument.
It wasn't until your last post that you mentioned that they shared a runtime, a fact which I was truly unaware of. And take all the pops you want at Java (I realize you weren't), I'm not a Java guy, either. Glad to see, at the end of this, we're actually on the same page; that also explains why you didn't read my post in the context of cross-platform development. I definitely agree re: Windows-only development and .Net, though; I was at the Win7 launch event and actually got excited about Metro (which is what they were calling the .Net version that shipped with Win7 before they decided they wanted to use that name for the Win8 interface), I just never had a use case for it. Years later, here I am still having never used .Net and with minimal interaction with Java, though one of those is going to change in the very near future; and as someone who uses Windows, Linux, and OSX side-by-side, it's not looking good for .Net.
.Net/Mono as a platform for mobile development, though; I think my reasoning is sound. I know you were never arguing for or against that, but now I'm curious, do you have any thoughts on that? It makes sense to me, if you're developing a cross-platform mobile application, you're likely to target the most popular platforms first, which means iOS and Android, which would mean Mono; at that point, you're developing against the capabilities of Mono and just have to make any required fixes for one platform, Windows Mobile (or Win RT), if you choose to release on that platform. Java is not an option on iOS or, as far as I'm aware, Windows Mobile, and Dalvik isn't real Java anyway; and the other available cross-platform libraries are all basically wrappers for HTML and javascript, so they're not viable for any processing-intensive tasks, or where you give a damn about performance, which really just leaves Mono. This is quite opposite the likely situation for cross-platform desktop development (and this is, I think, what got you thinking I was talking about .Net in terms of Windows-only development), where a .Net developer would likely target Windows first, then have to fix Mono quirks on the various other platforms they were targeting; and there are other, better, options available for cross-platform desktop development, but we're already in agreement on that, I think.
I still stand by my assessment of
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
If I'm honest I've really tried to avoid mobile development. I worked at a company for a while that did a lot of it and the bandwagon jumping hipster types on that side of the industry just drove me mad. It's a section of the development world that is still undergoing a lot of upheaval even now in terms of toolchains and so forth and there's a lot of fly-by-night types who have no idea what they're doing making a mess of things. I suspect it'll calm down eventually, but honestly I've never been too hung up on insisting on a one solution fits all type scenario unless the offerings are really really good. Maybe Mono is a decent option for mobile now, I've not been following it, but without evaluating it going on my now a couple of years out of date knowledge of the mobile world I'd probably just be inclined to write portable C/C++ libraries with the shared functionality it and then write a specific UI to consume that for each device. I've just not seen many successful toolchains that manage to pull off writing cross platform UIs particularly well, especially when the standard UI varies so much.
Swing and JavaFX and so forth vs. WPF comes to mind for example. As great as cross platform Java is, it just can't compete with writing a native Windows UI using WPF for example. I believe Qt is a counter-example of this sort of thing though that is actually pretty decent, but it's been many years since I touched it. In fact, it looks like Qt has a specific mobile version also, so maybe C++ with Qt would be an equally good or better answer to Mono on mobile? I don't know, I'm out of my depth without further research :)
I'll be honest and say I'm not sure about C/C++ on any of the mobile platforms. I know Palm started allowing native code on WebOS shortly before HP bought and killed that platform, and I'd be surprised to learn that it wasn't an option on Windows Mobile, Apple used to be very strict about all iOS apps being written in Objective C, but apparently they've relaxed quite a bit, and Google seems to actively discourage using their native C/C++ interfaces in most cases. I know BlackBerry is all Java, unless BBOS 10 changed that, so C/C++ doesn't seem a viable option if you want to target BlackBerry; but, then, Xamarin (the for-mobile release of Mono) doesn't seem to support BlackBerry, either.
.Net libs. On one hand, bundling alleviates any platform differences, as far as program logic is concerned; on the other, using the native libs makes for a smaller package.
.Net guy, though, Xamarin might be something for you to look into if you ever need to do anything mobile.
I do know that Microsoft was involved with Xamarin, which actually has me wondering whether Windows Phone apps using Xamarin bundle the Xamarin libraries like they do on other platforms, or if they just use the native
If you have the time to write your own libraries for each platform you're targeting, by all means, that's probably the best way to go, as you'll end up with the smallest footprint and the ability to optimize each platform's version of the library, as well as the library codebase as a whole, leaving out code that doesn't get used. Since you're a
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
To be clear, I'm out of my depth on this, as well. By quite a bit, actually.
I'm just posting what seems logical at this point and hoping that someone will swoop in and point me in the right direction. I'm actually about to start development on a small mobile app for a client who doesn't have the budget to pay for custom libraries for each platform, so this is useful discussion at this point. There's plenty of budget going forward, for building the application incrementally; just no real immediate budget and the requirement to have it run on iOS, Android, and Windows.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
I'd mod you up multiple times if I could!
You're 100% right. Java is the worst, convoluted, bloated, bulky programming contrivance that has ever been!
Umm if you actually check mono's compatibility notes, it has ridiculous good compatibility distinguished between the various versions of .NET. While there will always be a lag, if you develop with Mono, you know what works and what doesn't. .Net 3.0 and 3.5 are pretty mainstream and 4.0 is pretty much good to go for a broad set of use cases.
It may be compatible, but it is not as feature rich. Mono only implements the parts of the spec that Microsoft put out in the open, which consists of may be 30% of the all the APIs really needed to do .NET development. You cannot develop an application on Windows using Microsoft's tools without paying attention to which APIs are used - even the Window Forms - and expect the application to work under Mono - chances are it won't.
That is, however, the case with Java.
Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
Perhaps the issue is how much power Microsoft will have to shut down Mono.
None. Zero. Zilch.
Actually they have quite a bit if they chose to exercise it. If mono develops outside the small framework that Microsoft blessed as being "open" in their C# specification, then it is ripe for Microsoft to shut down. Even if they stick inside that framework, there is nothing saying Microsoft won't try to charge for it - even at a F/RAND rate, which would effectively shut it down.
Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
If I'm getting you correctly you seem to be implying that mono should be used as a compatibility framework to enable windows .net apps onto other platforms. This is absolutely not the use case for mono. The Point of mono is that if you start with it, it will work everywhere, even on windows because it's basically a subset of .Net
If I'm getting you correctly you seem to be implying that mono should be used as a compatibility framework to enable windows .net apps onto other platforms. This is absolutely not the use case for mono. The Point of mono is that if you start with it, it will work everywhere, even on windows because it's basically a subset of .Net
No. I'm saying Mono is far from being a complete .NET implementation, which many of the most important parts missing - especially if you are using it as a cross-platform framework.
.NET they can; the fact they haven't just means Mono isn't a big enough target (yet) for them to consider a threat worth suing over.
And there's also the legal quagmire that it is in. Microsoft gave a 5 year promise to Novell/SuSE not to use Novell/SuSE's users over use of Mono in a limited context - that being what they submitted to the commit for the C# standard. If you're not a Novell/SuSE user, you're screwed - you're not covered; That 5 year period is also over and they didn't renew the agreement - so you're still screwed - especially if you started development after that agreement expired as you could not "reasonably rely on that agreement". The standard body Microsoft (ECMA, which is basically a standards stamping organization for companies like Microsoft, IBM, and others that want a quick standard without the ISO process) used doesn't forbid them from requiring licensing fees, nor did they submit it under a given fee structure or fee structure promise (f.e F/RAND). So in the end, if Microsoft wants to sue you for using Mono instead of
Now the new CEO may change the policy and attitude so that this is all moot; but that's yet to be seen - and he'd still have quite a bit of challenge within Microsoft to keep it from rearing its head again.
Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
The question whether copyright existed to protect the "look and feel" of an application was open until the Supreme Court affirmed (4-4 en banc without opinion) the First Circuit decision in Lotus v. Borland. That case took decades to litigate, but addressed whether Borland was permitted in Quattro to execute Lotus 1-2-3 macros (the damned "/" tree of letter commands), even though the macro language was not aptentable. The mere "embodiment" of the "/" tree was deemed by Lotus to be protectible copyright. (In my view, Kapor should have been made a pariah for this assertion, but hey, its just me.)
The First Circuit held that when expression (if you can call the letter tree expression) equates to funtionality, it has merged with the unprotectible functionality. That has been the basis of almost all Copyright law since that time regarding reverse engineering and competition in the software industry. Any other rule would yield considerable chill to adopting new technologies, and in implementing imrpovements. The Internet itself might not have evolved as it did.
The most significant example was the Phoenix BIOS, a reverse-engineered implementation of the BIOS for the IBM PC that made clones possible. Under the Federal Circuit rule in Oracle, the Phoenix (and its progeny) would have been infringing, and we would live in a very different world than we do today.
I am cautiously optimistic that the Federal Circuit will take this matter up en banc and reverse, or perhaps SCOTUS will set it right. Until then, the conflict between Oracle and Borland cases will create a chilling uncertainty in the industry that will educate my granchildren's education, but serve little other good purpose.
In my view, an API merges with its functionality and should be unprotectable. That was the law everywhere in the United States, until today.