[I originally sent a slightly different version of this message just to Lauren,
but Bob Frankston's thoughtful post made me reconsider and address this to a
broader audience.]
I have very mixed feeling about the whole business of locked up vs unlocked
systems (to coin some terminology, since closed and open have too many overlaid
meanings by now). On the one hand, hell, I'm a hacker; I want to know how
stuff works, I want to develop my own stuff, I don't want people telling me
what I can and can't have on my system. On the other … I used Windows, and felt
the incredible pain of trying to keep it working and reasonably secure. In
fact, when I finally bought a "PC" for the family - before that, I had VMS
Vaxes and a Unix box as my "home" machines - I got a Mac, entirely on the
theory that I really didn't want to be a Windows system manager at home.
Linux, or any other Unix, was just a non-starter. I have a Mac laptop and a
Linux desk side at work, and use both all the time. The Linux box has some of
the tools I need, but the Mac is a much more pleasant experience.
The only iOS device I have is an iTouch, and I also have had a couple of
Android phones. For all the noise about openness, in practical terms there is
little difference to me between the devices. I have exactly one app that, at
one time, existing on iOS but was then locked out (but still exists on Android)
- WiFi Scanner. It does annoy me that Apple chose to lock out a whole class of
useful applications, but having been on the other side, trying to keep some
control over what undocumented features customers (internal and external) were
tying themselves to and then insisting we continue to support forever, I can
well understand Apple's insistence that only documented, supported interfaces
be used. Hell, that's exactly what I told *my* customers. And there
definitely is a payoff in usability and general quality.
I have Zitrain's "The Future of the Internet and How To Stop It". It's on my
list to read fully, but his basic refrain is that iOS (which at the time he
wrote didn't even allow apps to be written) was indicative of a trend that was
killing the "generative" side of computers and the net. But … you need only
look at the app store to see just how much "generativity" iOS allows. Sure,
there's tons of repetitive crud - but there are also a whole bunch of really
clever, creative, useful apps. (Recent clever idea: An alarm clock that you
can set to wake you a bit earlier if it's snowed.)
So … what's really happening is that generativity isn't going away; rather,
it's moving elsewhere in the stack. Prior to the late 1970's, machines were
closed because they were too expensive to be anything else. We then went
through successive waves of "openness". First we had the hardware hackers.
But those faded as standardized architectures took over and also as more and
more stuff went on-chip and you really couldn't build anything competitively
interesting without a fab. Then we had creativity with low-level system
software - everyone wrote their own OS and compiler and tools. But those got
standardized, too - and the creativity moved to a higher level of abstraction.
This is a natural, inevitable process, and it just keeps happening. No one
will write the equivalent of sed or tar for Android, much less iOS - those are
tools at entirely the wrong level of abstraction. (Besides, if you *want* sed
or tar, they already exist.)
Software for iOS (or Android) is about interacting with people and the web and
the physical world around the user. Just think about that clever alarm clock
app! This kind of software is just not comparable to what we hacked together
to use from the command line on machines whose only tie to the real world was a
clock. (Hell, the first machine I programmed on - an IBM 1620 - didn't even
have a clock! It had no idea what the date or time was. It was years before
machines made the transition from needing you to tell them the date and time to
serving as your timekeepers.) For software at this level, the "openness" of
the underlying platform is so many levels of abstraction down that it really
makes no difference. What matters most is that there are effective, usable
API's for the kinds of things that make up such software: Displays, sounds,
user inputs like touch and soon speech, real-world inputs of many sorts. It's
at this level that Android - and iOS - are both wide open, with Android perhaps
a bit more so. (That wireless scanner: Apple refuses to allow it because they
haven't (yet?) published an API to get at the low-level "real world of visible
networks". In the Android world, you'd hack something together and people
would live with the fact that it might break if the API's it was (perhaps
improperly) were changed.)
The element that's new, and most worrying perhaps, is the limitations on the
App Store, iTunes, and so on. Winer talks about media, which are subject to
some limitations but, really, he's exaggerating when he compares it to
Disneyland. Books, movies, music - Apple sells stuff like that under pretty
much the same rules as a mainstream bookstore, DVD, or CD seller would have a
couple of years ago. Anything short of outright pornography - the kind "you
know when you see it" - is available. Besides, you can buy media from anywhere
- even iOS imposes no limitations on what media files you can import. The real
issue is apps.
It's one of the curiosities of this whole debate that Apple claims - and the
results prove - that they are providing what consumers want by limiting what
can go into the app store. This is the same claim made in response to claims
that newspapers deliver too many sensational crime and celebrity stories
instead of "hard news", that TV and movies are too full of sex and violence -
or even that food makers supply "junk food" full of fat and sugar and salt.
The fact is that we want the market to decide, but we're often uncomfortable
with the results. There are no easy answers.
For apps, one thing I've always been surprised no one picks up on is that
*anyone* can register as an Apple developer for $99/year. Then you can build
your own stuff and download it to your iOS devices. Of course, "your own
stuff" is anything you compile from source - which if you're into OSS, is a
pretty open-ended class. A bit less convenient that pre-compiled binaries -
but really not so bad. If you never try to get approval to ship a product, any
approval policies are just irrelevant. Doing this may or may not technically
be consistent with Apple's TOS, but I doubt they'd care. As a developer,
you've inherently bought in to the idea that you're running flakey
under-development software - you're not going to expect final finished Apple
(or good 3rd party) behavior.
If the complaint is that $99/year is too much - well, then as G.B. Shaw said,
we already know what you are - we're just haggling over price. (Personally,
I'd love to see Apple come up with a "hobbyist" registration: Allow everything
that a developer is able to do except submit stuff to the app store. It would
be reasonable to charge a small fee - say $10/year - to defray administrative
costs.)
In sum: It can be difficult to separate real issues from the complaints of us
old-timers who long for the time when writing some simple C command line
program was the height of hackerdom. That world is long gone….
-- Jerry
_______________________________________________
nnsquad mailing list
http://lists.nnsquad.org/mailman/listinfo/nnsquad