Love that Apple is going open-source, and hopefully they do this for more of their code (pssssttt...Swift)
Apple has a fairly decent Open Source history.
There is things to complain about but there are more I am concerned with in regards to Open Source (Oracle).
EDIT: I don't like Apple's products or the way the conduct business BUT I think they have done more good for Open Source than bad.
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).
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.
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.
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.
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.
Disclaimer: I'm on the Ksplice team.
If you remove what they got from Sun, what reminds?
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.
Looks like to me, like it is far from a corpse:
I agree with you on both PostgreSQL and MongoDB, but saying MariaDB is a corpse is ignorant at best.
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. 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.
As of July 2011, Oracle's list price for non-copyleft Berkeley DB licenses varies between 900 and 13,800 USD per processor.
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 ;-)
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.
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.
"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."
> Just because Sun didn't have patent suits in our genetic code doesn't mean we didn't feel wronged
implies just the opposite.
The rest of your post has nothing to do with whether APIs should be copyrightable or not.
Trust them to do the right thing at your peril.
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.
Not all is gold, but that's certainly more than "complying with copyright".
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?
Nevertheless, they are doing so.
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.
His points are valid. Apple's business models are hostile towards open source software in most cases.
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
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.
 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.
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.
"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.
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.
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
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
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.
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)
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.
The flow is consistent, step 1, step 2, etc.
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!
My interpretation of it is that it allows people to make proprietary printer drivers for OS X, making them useless on Linux.
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.
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."
IRB = institutional review board, which commonly also includes ethics committees
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.
> It was developed by Microsoft within its .NET initiative and later approved as a standard by Ecma (ECMA-334) and ISO (ISO/IEC 23270:2006).
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”.
(is the first one that I recall seeing)
Surprising some of their best practices aren't followed, such as hard-coding English strings instead of using something like NSLocalizedString()
After learning of apple's goto bug, I'm never surprised to read about apple's failure to follow best practices.
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).
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.
E.g. build a system with RFID cards that uses sensors to automatically measure blood pressure, etc and keep history.
ps. Too many interesting possibilities out there and too little time to pursue them!
(Edit: added emoticon for joke emphasis)
Should be fixed by now :)
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.
Research Kit was announced 6 months after Swift. Seems like a bit of a stretch...