When Apple stops releasing things on that website for iOS and Xcode (and yes: they do still have some things that are at least LGPL in those distributions, and no: it is not sufficient to give me very-similar-but-slightly-different code from OS X) only when I get around to making a public statement (which I absolutely hate doing) over things they don't send me when I request them via email, maybe they will have some right to getting the praise you are deciding to lavish. (Speaking of which, I have given them months to respond to my most recent requests for a bunch of things; I have gotten so used to Apple giving open source the finger, and thereby have backup plans involving disassembles for most of the things I care about at this point, I had forgotten to even follow up on them failing to release anything :/.) (As for Oracle, I think Apple is much more harmful, as at least Oracle is upfront about where you stand, so the greater community knows to handle them with care and avoid putting them in the center of something they will later come to regret.)
Oracle is one of the major contributor to open source, see the lineup here, chances are you're using some of them: https://oss.oracle.com/ starts with Java
Effectively all of Oracle's "open source" things come from Sun Microsystems, upon which Oracle happily latched onto and sucked dry.
Oracle has what's called the "sidaM Touch". It's like the Midas Touch, but instead of gold, everything Oracle touches turns to shit:
Java -> shit (though maybe slightly less so now).
Solaris -> shit. OpenSolaris -> shit, now dead (thank the Lord for illumos).
OpenOffice -> shit.
GridEngine -> shit. Lustre -> almost became shit and died; would have if it weren't for the Oracle-side devs jumping ship.
NetBeans -> in the process of becoming shit.
MySQL -> shit (though it pretty much already was; somehow, though, Oracle managed to make that worse and prompt the existence of MariaDB); I realize this wasn't Sun's, but it's still an open-source project that Oracle assaulted, robbed, and left to die on the cold streets by the dock where Larry Ellison's (admittedly pretty badass) sailboat is docked.
OpenDS -> dead (though it was mercifully forked into OpenDJ).
Project Wonderland -> now limping around as "Open Wonderland" after Oracle forcibly amputated its leg.
By some miracle, the only things that haven't completely turned to shit or died (or both) yet are Virtualbox and SPARC (though OpenSPARC is effectively dead since Oracle didn't continue it).
Yes. I'm honestly baffled that anyone thinks that Oracle has a admirable history of contributions to open source. When a software company is so large (and especially when they buy a company like Sun) one can always cherry pick examples in oracles favor, but on the whole, I see oracle trying to exploit open source software, and they don't seem to play nice with others.
I can't even find a single example from Oracle that would be cherry-pickable as evidence for their supposed open-source-friendliness. Literally every open-source project that Oracle owns has stagnated at best (aside from maybe Java; while I'm personally unimpressed by Java 8, I know there are a few people who would disagree with me), and at worse has significantly deteriorated, died entirely, been shoved off onto some other organization, or resulted in a fork, and sometimes all of the above has happened (see also: OpenOffice).
Like, I'm a pretty well-natured person in general and am happy to give even some of the most despicable companies the benefit of the doubt on occasion, but I seriously can't find a single reason to do so for Oracle. They're just that fucking irredeemable.
JVM (not Java) gained invokedynamic, which is an amazing work. invokedynamic work was paid for by Oracle, so at least I am thankful to Oracle for advancing the open source there.
MySQL wasn't acquired by Sun; that was a direct acquisition by Oracle in order to snuff out the most significant player in the realm of open-source SQL databases (and thus snuff out one of the most significant competitors to Oracle's flagship, Oracle DB).
As a result, MySQL is effectively dead outside of legacy deployments that haven't migrated to PostgreSQL, MariaDB, or one of the NoSQL monstrosities like MongoDB.
Even InnoDB was eventually forked; MariaDB and Percona both use XtraDB nowadays, probably because they didn't feel like being tied to something that - like every other open-source project Oracle has owned - would be fated to eventually wither and die.
What do you mean MySQL was not aquired by Sun? I was among ~400 MySQL employees in Orlando when the deal was announced. Yes, Sun was later bought by Oracle.
Huh. I always thought that Oracle acquired MySQL directly, but it turns out I was wrong (Sun did so in 2008). I guess you learn something new every day.
Maybe I was thinking of InnoDB or BerkeleyDB or somesuch and just conflated them all together...
Use to be a System Librarian and had to run Oracle DB.
Issues:
1. OpenOffice gave it to Apache Foundation and not LibreOffice
2. MySQL is abandoned by many major users but we have MariaDB
3. Java suite against Google to make API Copyright-able
4. Oracle's White Paper stating that Open Source cost more and is less reliable.
5. Oracle Linux (Just a rip off of Red Hat)
6. KSplice bought by Oracle none of us gets to use re-bootless kernel patches with that technology since it has no development after it was bought 3 years ago. EDIT (FALSER: Was going off the top of my head) It is available to people who purchase support convert to Oracle Linux and they are making updates to legacy customers (Which is good to know)) corrected bellow.
I could go on about Oracle :)
So yes a bias against Oracle's Open Source stances and activities.
Just to clarify, legacy Ksplice customers are still supported under their original contracts, Ksplice is available to new customers with Oracle Premier Support, and finally, Ksplice updates are still being provided for free for all current Ubuntu and Fedora distros.
MySQL, which - as one of the worst victims of Oracle's sidaM Touch - ended up being forked into MariaDB, and is now effectively irrelevant outside of legacy deployments since anyone who knows what they're doing has switched to PostgreSQL and anyone who doesn't know what they're doing has switched to MongoDB.
MySQL as packaged by Oracle is quite literally a corpse. MariaDB is a reanimated corpse.
And such is the tale of an open-source product acquired by a multi-billion-dollar company who made those multiple billions of dollars entirely on selling a commercial product against which the open-source product competed. Competition-elimination-by-acquisition at its finest.
That would be the "reanimated" part of "reanimated corpse"; I think you've significantly misinterpreted my point there. MariaDB is not dead; it's undead. A zombie. Or perhaps resurrected and now serving as a database messiah. Whatever the case, it's the end-result of something that's dead (MySQL) no longer being dead.
That is a different topic altogether. I'm referring to Open JDK.
Ever heard of the fasted embedded database engine called Berkeley DB. Doesn't matter came from where, Sun or what ever is still being developed and contributed in the open source environment.
Oracle Corporation makes versions 2.0 and higher of Berkeley DB available under a dual license.[15] The sleepycat license license is a 2-clause BSD license with an additional copyleft clause similar to the GNU GPL version 2's Section 3, requiring source code of an application using Berkeley DB to be made available for a nominal fee.
As of Berkeley DB release 6.0, the Oracle Corporation has relicensed Berkeley DB under the GNU AGPL v3.[16]
As of July 2011, Oracle's list price for non-copyleft Berkeley DB licenses varies between 900 and 13,800 USD per processor.
That's the AGPL, mind you. One of the most ridiculous and restrictive "open-source" licenses created; it's not really intended to be applied to libraries, and is incompatible with every other license in existence, including even the standard GPL. Applying it to a library makes the open-source version effectively unusable.
I disagree, it matters because acquiring a technology that has an existing open-source community (that can fork your codebase...) is not the same things as releasing your internally developed technology as open-source and build a community around.
Looking at OpenOffice or MySQL, it does not seem that Oracle had a great success with open-source communities.
And the Java topic is not different altogether, it is disturbing to claim to be "open-source friendly" when you release an open-source implementation for the JVM but sue on the basis that the API is copyrighted.
What is off-topic it talking about Oracle at all in this thread ;-)
Sun would have sued Google if they had the money for the lawyers[0].
Initially I was partnering with Google, but now I side with Oracle's decision, as it is now proven how Google just pulled a Microsoft and fragmented the Java eco-system.
Now we are stuck with partial Java 7 assuming 4.4 devices, good luck using try-with resources in lower versions and no plan for future versions as of the Android Developers Fireside at Google IO 2014.
The Android team seems more interested in porting the whole Eclipse/Ant infrastructure, building more Google APIs or making Android run everywhere instead of improving the language support.
> Initially I was partnering with Google, but now I side with Oracle's decision, as it is now proven how Google just pulled a Microsoft and fragmented the Java eco-system.
I'm not sure that's a good enough reason so say that it's "ok" to claim that an API is copyrightable. The idea that I might have to ask someone permission just to make API-compatible alternate implementation seems ridiculous.
If you have bothered to read what Gosling had to say about it:
"Google totally slimed Sun. We were all really disturbed, even Jonathan: he just decided to put on a happy face and tried to turn lemons into lemonade, which annoyed a lot of folks at Sun."
Publishing lots of code under an OS license does NOT make one a valued contributor to the open source world, especially when you have a history of anti-OS litigation.
It doesn't take anti-Oracle bias to reflect upon OpenSolaris and other direct assaults on open source undertaken by the company. Defend them all you want, you're still on the wrong side.
i can never forget the freetype hinting death trap... that thing persisted for too long, and was unreasonable to start with. i think i can forgive now that i have seen this. :)
EDIT: i take it back, i got the wrong end of the stick, it looks like they have open sourced important things, but actually its a list of nothing.
At least the first four in the OS X 10.10 tree are apple original software, not just source dumps of other people's OSS products. Ok, that's terrible statistics since the files are alphabetized and Apple comes early. But take a look through there at the copyright owners and you'll see lots of original software released as open source.
To me, this is like calling someone who occasionally eats a vegan diet a "Fairly decent Vegan". No, if you eat meat or cheese on a regular basis you're a terrible Vegan!
Just because Apple releases the source code as read-only doesn't really make them fairly decent with open source.
To me, if you're not willing to pull commits from outside your walled garden or allow external forks of your technologies, then you're terrible at open source. Sure, you technically checked off the very first checkbox ("make source available") but you stopped there. That's not a success, that's a stillborn effort...
Heck, when I look at the wikipedia entry for Open Source, the first line is: "In production and development, open source as a development model promotes a universal access via a free license to a product's design or blueprint, and universal redistribution of that design or blueprint, including subsequent improvements to it by anyone." Which I don't think Apple is really engaging with any of the OSS spirit on any level.
I mean is that what open source is now? As long as the source code is technically viewable, it's "open source software" now?
> To me, if you're not willing to pull commits from outside your walled garden or allow external forks of your technologies, then you're terrible at open source. Sure, you technically checked off the very first checkbox ("make source available") but you stopped there. That's not a success, that's a stillborn effort...
That's still significantly better than what a lot of big "open-source" companies do.
Not that I disagree with you. Just putting things into perspective.
While it's wonderful they did this, as a short rant:
I hate when companies just feel the urge to add a random sentence or two to an existing license, particularly in cases like these:
"3. Neither the name of the copyright holder(s) nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission. No license is granted to the trademarks of
the copyright holders even if such marks are included in this software."
The first sentence is BSD, they added the second sentence.
The problem with this is a few-fold.
Either this clause is needed for the entire world (since BSD is used for trademark'd software all the time), or it's not needed at all.
It turns out, in fact, arguments over trademark inclusion due to OSS licensing has been made before, and nobody has ever won on this before[1]
So other than some lawyer just "not being satisfied unless they added stuff to the license", all this does is make a gratuitously different license that
A. can't be merged with other licenses (since it requires you reproduce this condition text, and this condition text is not the same anymore as the other ones)
B. Isn't actually the BSD license, and was deliberately changed, so ends up worse in court since now the other side can reasonably argue that the same precedent should't apply.
C. Makes analyzing compatibility with other licenses more difficult and annoying.
[1] Since they are very clearly licenses about the software work, not trademarks, and you can't stop someone from saying "this uses apple's researchkit" regardless of what trademarks you have or what you write in this license, anyway.
> No license is granted to the trademarks of the copyright holders even if such marks are included in this software.
This line was probably required to get some manager at Apple to sign off on this. There are few companies as protective of their trademarks--their _name_--as Apple, and they probably wanted to make sure that an accidental commit from a developer that included an Apple logo or the word 'iPhone' didn't cause irreparable damage to their trademark.
Valid fear? That's debatable. But I'd rather have a company add _one line_ to an already minimal license than not open source at all out of this fear.
"This line was probably required to get some manager at Apple to sign off on this."
I agree here :)
"Apple logo or the word 'iPhone' didn't cause irreparable damage to their trademark."
As I said, this is a problem either no company who uses the BSD license has or all of them have it.
"But I'd rather have a company add _one line_ to an already minimal license than not open source at all out of this fear."
I don't agree here at all.
Because this is how we ended up with the mess that caused things like open source license certification by OSI to exist in the first place.
Random companies would add random one-liners to licenses, like "don't use in nuclear reactors", etc.
Down this path is madness, and it starts with good intentions.
It's probably a problem all of them have. Apple is just the only company that cares enough to make a big deal about it in advance, rather than imagining that they'll just let things slide for now and argue post-facto in some later court case that the license should be read as not granting trademarks.
In other words, this isn't like the nuclear reactors bit—this is something that could actually belong in the BSD license, and where when merging BSD-licensed software with Apple!BSD-licensed software, probably the Apple!BSD would keep winning, and the trait would end up at fixation, rather than "speciating" the license.
1. I strongly disagree with the idea that they are the only ones who would consider it a large deal enough to do something if it was a real fear. It's somewhat ridiculous to believe that, say, Google or Facebook, wouldn't do the same if they thought it was a concern.
2. The part about "having to argue post-facto" would be a valid line of argument if, as i pointed out, there wasn't already plenty of precedent that shows their fear is completely and utterly unwarranted.
In fact, i doubt they could even cite a single time a judge even considered this a non-crazy argument.
In other words, this in fact, is exactly like the nuclear reactors bit. It doesn't actually belong in the license, because if was a real concern:
A. There would be at least some case somewhere that concerneed folks.
B. After 20+ years of BSD licenses, it'd already be there
Unfortunately, that single line addition means that this code can't be used with other open source projects. It can't be combined with code released under the BSD, MIT, MPL, GPL or other OSI-certified open source licenses and kept under the same OSI license. This puts it more in the 'shared source' realm than the 'open source' realm.
The GPL forbids additional restrictions on code, so you can't legally combine something that is GPL with a restriction like this.
Adding something like this (that we'll call Apple BSD) to anything that is MIT/BSD would end up being Apple BSD, because you'd have to ensure this restriction is applied to the resulting product, over an above MIT/BSD.
As for the GPL, I think you missed section 7 - "Additional Terms":
Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks
It's incompatible with BSD/MIT in the sense that whatever you combine with this Apple-variant BSD becomes Apple-variant BSD and can't be straight BSD or MIT anymore. In that respect, GPL code is also compatible with BSD/MIT as it can legally be combined, it just becomes GPL and can't be licensed as BSD/MIT anymore either.
As for the GPL notice, I hadn't realized that was added in GPL3, so these additions by Apple would be allowable under GPL3. I don't use GPL3 so hadn't known about that, thanks for the heads up. They wouldn't be compatible with the more-popular GPL2 (Linux and everything else), though, which has no such allowances.
If anyone's wondering, the GPLv2 is slightly less explicit: it doesn't directly state that it's strictly a copyright license rather than involving trademarks, but it's strongly implied, and has been treated as such in court, e.g. this from Germany:
Correct, this is one of the few restrictions GPLv3 allowed.
But this text does not exist in GPLv2, so it may or may not be considered GPLv2 incompatible (I don't remember the FSF's last position on these clauses, because almost every other license that has them is gplv2 incompatible for other reasons)
While pointless (since it adds no additional protection), I don't think this avoids this code from being integrating into larges BSD codebases, since this restriction would only apply to this file, and not affect the rest of the codebase (nor would that code's it's license affect this code).
> Either this clause is needed for the entire world (since BSD is used for trademark'd software all the time), or it's not needed at all.
I'm not sure I follow your argument. Obviously, different individuals/organizations desire different licenses for the software they produce. If that wasn't the case, one could argue that only one software license should exist. Also, as we all know, software licenses are a fairly tricky legal matter. Perhaps Apple's lawyers just decided that adding that sentence is safer.
Whatever the motivation, this makes code released under Apple's custom BSD license incompatible with other open source licenses, so you can't use this code in other projects.
Something else that Apple makes I'm a fan of, CUPS Printing. It's also very professionally done. If we could only convince Apple to go Linux on everything!
I guess I was expressing that the stuff that Apple Open Sources seems genuine, legit, honest and I admire that. I guess as I get older I realize (sorry for all the I's) that maybe I should give Apple a second look, on all fronts.
Sure, that makes sense, I just don't quite understand the "convince Apple to go Linux on everything" bit??
In terms of userland tools, OS X has pretty good compatibility with an average Linux distro (yes there are obvious differences between *BSD and GNU implementations of various tools).
Personally I think you should give Apple a(nother) look in terms of a productive workstation machine, even if that's paired with/using services from/developing systems for Linux-based servers.
I for one appreciated all the "I"s! To me it shows that you understand that you are expressing a subjective opinion, not a fact in the world. I think too many people express opinions as facts with puffy language.
Compare yours to "Apple's admirable open source program is genuine and legit. If you've unfairly dismissed them in the past, give them a second look."
The other big issue I see is: if you try to do any kind of population or cohort study with this, how on earth do you correct for the bias that comes from only sampling iPhone users? It's borderline facetious to claim that there is no sampling bias, and it will be a nightmare to control for.
C# is 15 years old. F# is 10 years old. It's great that Microsoft is in the process of open sourcing their code. However, it gets a little old when they're held up as some example to follow. Objective C has been open source for a long time. How about, let's hope Apple open sources Swift like they did with Objective C.
How about, let's hope Apple open sources Swift like they did with Objective C
To be honest, don't hold your breath. If you research the history of Objective-C you'll realize that it was in fact the first GPL violator. It's only _because_ of the GPL that Apple was forced to open source it, not the other way around.
I don't see anything about async/await, extension methods, or lambdas. C# has quite a few additions since 2006. I would hate to go back to C# 2. C# 5 is the current and C# 6 coming very soon.
I often have to use C# 2.0 because that's the version that the SQL Server 2005 CLR understands. It turns out not to be so bad since you still have closures (in the form of anonymous delegates), generics, and user-defined operators.
Generics and user-defined conversion operators are powerful enough to nicely simulate Haskell's type classes (or Scala's traits), which, in my opinion, is a bigger deal than higher-order functions and 3.0+'s version of “type inferencing”.
Sure, but that was an isolated mistake, whereas using NSLocalizedString() just becomes habit after a while.
It's jarring when you see hard-coded English strings in any iOS code. Android does a much better job of pushing developers to localizing strings.
One big thing I don't like about iOS is even if you have a base language, you need to duplicate all strings in any subsequent languages. (I often have a "US English" and "Australian English", so trivial changes require changes in two files).
On Android, the language files extend the base file, so you can just override favourite/favorite labour/labor type strings without having to duplicate everything.
(Obviously you can script / auto-generate language files, but that's not the default position).
I agree with you what you are saying about string localization.
Separately, I find that people tend to assume (for some reason?) that big successful companies that write lots of software will also write quality software. They have the money for it!
But its often not the case. Look at Microsoft in the late 90s.
Look at Apple these past few years.
Maybe the people at the top sometimes feel they no longer _need_ to write quality software, because they are at the top?
The goto fail bug is a singular mistake, but I'm not convinced it was an isolated mistake. I've worked with teams of amateurs that had code quality practices sufficient to prevent such a bug; and yet apple included this in a product, and left it there for a long time before it was fixed. It suggests, to me, organizational issues.
Not really. One, I bet they've been working on it for a long while, and two, I bet it's a lot easier for them to generate Swift bindings for objective c than vice versa.
It's a start! There is big space for improvement in supporting the complexities of research studies, but this can definitely be a jumping-off and may well support broad consistencies in design and implementation.
There would still be a massive effort to implement most of the requirements of a research study. But, at least the iOS UI implementation and some on-ramps via ActiveSteps would be eased.
Love that Apple is going open-source, and hopefully they do this for more of their code (pssssttt...Swift)