

Hey Apple, Please Be Nice and Share MacRuby - petercooper
http://merbist.com/2011/03/07/hey-apple-please-be-nice-and-share/

======
thought_alarm
These things typically start out as a private framework for an iteration of
the OS. My guess is that MacRuby will need to hit a nice and stable 1.0 before
Apple commits to maintaining it as a built-in public OS X framework. I think
it'll happen eventually, though.

~~~
mattetti
But at the same time they use it in their new OS, isn't that a double
standard?

~~~
tptacek
Yes. If it's their code, they're not obligated to be equitable.

~~~
mapgrep
They're under certain obligations of the Ruby license, no? Wikipedia claims
MacRuby is "based on Ruby 1.9." Ruby 1.9 is distributed under GPL and the Ruby
License, which states:

    
    
      2. You may modify your copy of the software in any way, provided that
         you do at least ONE of the following:
    
           a) place your modifications in the Public Domain or otherwise
              make them Freely Available, such as by posting said
    	  modifications to Usenet or an equivalent medium, or by allowing
    	  the author to include your modifications in the software.
    
           b) use the modified software only within your corporation or
              organization.
    
           c) rename any non-standard executables so the names do not conflict
    	  with standard executables, which must also be provided.
    
           d) make other distribution arrangements with the author.
    
    

<http://www.ruby-lang.org/en/LICENSE.txt>

Not sure how this is compatible with "Apple apparently decided to not share
MacRuby with other OS X developers" but I do not know much of MacRuby, maybe
someone else can weigh in.

~~~
kgo
This guy isn't complaining about source code or licensing issues.

He's complaining that MacRuby isn't in a shared location, like say libc or
some other standard library. He wants to just be able to type 'macruby foo.rb'
(or whatever) and have it work an any Apple anywhere, so he doesn't need to
distribute his own versions of the library.

Hardly the end of the world. And if apple did include it, then people would
just complain that they only had 0.9 instead of 1.1 or whatever.

Anyone who remembers the days of redhat being stuck on a particular python
version because all the internal tools used 1.5 might even think it's a good
idea to make the system copy private.

If they're using an unmodified copy, then section 3 applies, which means they
basically only need to the macruby site somewhere in the docs:

    
    
      3. You may distribute the software in object code or executable
         form, provided that you do at least ONE of the following:
    
           a) distribute the executables and library files of the software,
    	  together with instructions (in the manual page or equivalent)
    	  on where to get the original distribution.
    
           b) accompany the distribution with the machine-readable source of
    	  the software.
    
           c) give non-standard executables non-standard names, with
              instructions on where to get the original software distribution.
    
           d) make other distribution arrangements with the author.

------
spullara
They would be better off shipping MacRuby with their application which is
probably why Apple made it private. Now that disk space and bandwidth at this
scale is essentially free you are better off testing with the exact bits that
will be present at runtime.

------
twiedenbein
What is with people and continually violating the NDA? Especially when they
aren't anonymous?

I've seen so many messages from people on Twitter that I follow about what
Lion contains, and what it does not. There is a pretty strict NDA in place
covering the prerelease software, and there's exactly one forum (well, two, if
you count Radar) where you can voice your concerns.

It's a sad state of affairs when people do not care about the contracts that
they sign. It'll lead to further secrecy in the future, and it's just
disgusting how lax some people are being re: the new OS.

~~~
chc
People's laxity towards Apple's NDAs more or less reflects Apple's laxity in
deciding whether to declare a piece of software is under NDA. I mean, the
iPhone SDK was under one for _months_ after it was released to the public. As
one developer put it, "I'm sitting in a public conference session hearing
about the iPhone SDK that anyone can view on Apple's website, but I can't talk
about what I'm hearing to the guy next to me."

Apple isn't remotely selective in applying NDAs. When anyone can get at the
information, there's nothing actually private about it. If there were any kind
of secrecy to begin with, people would be more concerned about preserving it.

It's like when folks post to mailing lists with signatures reading "THIS
MESSAGE IS CONFIDENTIAL AND ONLY MEANT FOR THE NAMED RECIPIENT." People start
to take it less seriously.

~~~
reemrevnivek
> It's like when folks post to mailing lists with signatures reading "THIS
> MESSAGE IS CONFIDENTIAL AND ONLY MEANT FOR THE NAMED RECIPIENT." People
> start to take it less seriously.

A perfect analog to the grandparent's point.

What is it with people being lax towards confidentiality notices, especially
when they aren't anonymous?

I've seen so many messages from people on mailing lists reading and replying
to mail with confidentiality notices. There is pretty strict language covering
these confidentiality notices; they often consist of five or more lines of ALL
CAPS text that's hard to miss!

It's a sad state of affairs when people do not care about the contracts that
they read. It'll lead to further secrecy in the future, and it's just
disgusting how lax some people are being re: confidentiality signatures.

~~~
Terretta
> _It's a sad state of affairs when people do not care about the contracts
> that they read._

That's where your analogy fell off the rails. Signing an NDA is a binding
agreement, while reading an email footer places one under no obligation
whatsoever.

------
caiusdurling
Seems a pity to make developers bloat their app size by including the macruby
framework over and over in each one. Users suffer in the end—takes up more
disk space.

~~~
tptacek
That sounds like it could end up costing literally hundreds of pennies.

~~~
kevingadd
You're forgetting about the significant overhead imposed by every process
having its own copy of the necessary libraries loaded into memory, and having
to load those libraries from disk every time an app using those libraries is
started. If those apps were all using a version included with the OS, all
those pages could be shared between processes and only loaded once.

But maybe people don't care about apps starting fast on their macs anymore,
since a lot of them come with SSDs :)

~~~
xpaulbettsx
This is a deliberate design decision in OS X in general, it's been this way
for a very long time. OS X is not into the whole DLL Hell Thing.

~~~
kevingadd
I don't believe you. Apple includes OS standard versions of packages like
SQLite and Python, are you of the opinion that developers shouldn't use them?

~~~
sid0
I know Firefox bundles its own sqlite on OS X because the native sqlite is far
too buggy.

~~~
tptacek
For a long time (maybe even today), the system sqlite3 did a full filesystem
sync every time you did an UPDATE.

~~~
calloc
As is required to make sure that there is no data loss. Yes, it is a
performance loss as well, but it makes it much better with regard to possible
crash scenarios.

------
jallmann
What advantages does MacRuby offer over MRI/YARV or Rubinius?

~~~
chadcf
I haven't found much other than cocoa support. Which I can't get too excited
about, a simple macruby app that does nothing but open up one window takes
nearly 30 seconds to launch on my Core i5 macbook pro...

~~~
cubicle67
I'm using a 5 year old iMac here (running 10.6) and it's close to instant. no
discernible delay over opening any other app.

------
tewks
webkit2 is also a private framework in Lion, a la iOS...

------
xpaulbettsx
MacRuby being private doesn't matter if the code is still open-source - just
build your own version and ship it. You don't need to use Apple's builtin
version.

~~~
riffraff
i guess it matters if you are publishing an app of 100k but you have to
include 40MB of additional libraries that are _already_ in the os

~~~
rbanffy
... and that won't be updated when Apple issues their updates

Basically, you'll be maintaining and distributing your very own fork of
MacRuby.

~~~
bigiain
The flipside of that is actually pretty important too: Apple can rely on their
"private" version of Ruby not being randomly updated underneath them because
the user wanted to install cool-rails-app-de-jour.

This is pretty important if Apple are planning on using Ruby for important OS
tasks.

(and now I'm officially feeling old - who else remembers this exact same
argument from over a decade ago? Did the "private" Sun perl binaries catch
anyone else out? How many times did I cause myself trouble forgetting to type
#!/usr/local/bin/perl instead of #!/usr/bin/perl ?)

~~~
rbanffy
You shouldn't be able to update the system's MacRuby (or anything else, for
that matter). Doing this is pretty suicidal.

And your old Perl problem is a Python problem for me. Too many Red Hat servers
have 2.4 installed where Python is supposed to be. I have to build my own and
call it from the /usr/local tree

------
hopeless
"Hey Apple, please by nice..." is a sure path to disappointment

~~~
marshray
Since the release of the Mac, Apple has had its share of subservient fans. But
it really is sad how Apple has them begging and pleading at this point.

As other commenters have pointed out, somebody somewhere may been under an NDA
for this feature of Lion.

So Apple's response could very well be a DMCA takedown of this poor guy's
site. Or they may just send the police to his house and seize all his
computers like they did the guy from Gizmodo.

------
rbanffy
IIRC, Apple was never particularly friendly towards free software. They abide
by their obligations under the licenses they have to comply with, but not much
more.

The only reason they rely and build upon free software is because it saves
them some work.

~~~
paxswill
Apple does contribute beyond what is required. They are not required to post
their updates to LLVM+clang, but they do. launchd was considered for Ubuntu
before they licensed it under Apache (it was under APSL at the time). They
didn't have to hire the CUPS dev to work on it. If you go through Apple's OSS
listing [1], if it has the APSL license, that's something they released
themselves.

[1] <http://opensource.apple.com/>

~~~
rbanffy
> They are not required to post their updates to LLVM+clang, but they do

You open-source the projects you don't consider strategic assets and/or
projects that would cost too much or take too long to develop internally.
Open-sourcing is a tool - a development model. That's also why NeXT based its
OS on Mach and BSD (and licensed Display PostScipt) - because that shortened
their time to market and allowed them to build a computer will a full
operating system with enough competitive differentiation to survive for some
time (and be resurrected later in the form of OSX)

NeXT was very reluctant in sharing their GCC front-end but was eventually
forced to comply with the GPL. Apple has no such obligations with LLVM-clang.

