The Right to Hack, not to Flash

May 7, 2010 at 9:14 am 15 comments

Ian Bogost wrote a really interesting blog piece about the whining of developers over the loss of Flash on the iPhone/iPad platform.  Most of the respondents are going on and on about how Ian got it wrong and Apple is evil.  That’s entirely separate from Ian’s real point which is that complaining about Flash in indicative of the state of computational literacy today — learn a new platform!

But what does it say about the state of programming practice writ large when so many developers believe that their “rights” are trampled because they cannot write programs for a particular device in a particular language? Or that their “freedom” as creators is squelched for the same reason?

I wonder if it doesn’t amount to an indictment of the state of computational literacy.

via Ian Bogost – Flash is not a Right.

Developers today can only work in Flash?  They can’t learn Objective-C?  Nobody can build tools that compile to Objective-C, so that the developer has powerful tools but the app is built to Apple’s specs? I thought that good programmers built tools and learned new languages and platforms.

Programmers have a right to program, to “hack.”  As Ian points out, they don’t have a right to Flash.  More to Ian’s point, good programmers are flexible, can learn new tools, and when necessary, build new tools.

Apple may be making a big mistake here, and may be in the wrong.  I really don’t understand those issues well enough.  I do recognize Ian’s point, which is really about computing education: Stop whining and learn another way!

Entry filed under: Uncategorized. Tags: , , .

Science for Non-Scientists: The “Two Cultures” debate continues Seeking National Lab Day Volunteers

15 Comments Add your own

  • 1. Alfred Thompson  |  May 7, 2010 at 10:51 am

    I found a lot to agree with in Ian’s post. Learning new tools and programming languages should not be a scary thing for a good developer. In my first job out of college my boss once handed me two things – a functional specification of some software to develop and a language reference manual for the programming language that was required by the platform I was to write for. It seemed really the most natural thing in the world to me.

    I think what we are seeing with the Apple fuss is the “write once debug everywhere” idea promoted with Java taken to its logical extreme. There has always been a trade off between writing an idiomatic version for a specific platform and writing a generic application that works (to some middle ground) on multiple platforms. In many cases we (industry as well as some academics) have bought off on the idea that any software should run on any platform. Steve Jobs has been the one to stand up and say “not so fast.”

    Now I believe that virtual machines (be they the JVM or the .NET) can be done well and performance can be more than adequate for most applications. Writing once for production on multiple platforms can be great. but there are always going to be cases where things do not translate that easily and a well educated computer professional should be able to adapt without whining.

    • 2. Ian Bogost  |  May 7, 2010 at 12:11 pm

      Even if one disagrees with Jobs, it’s always worth stopping to think about the spirit of his directives. They are challenging, in a good way, even if they are also possibly despicable.

  • 3. Hélène Martin  |  May 7, 2010 at 6:32 pm

    Thanks for sharing Ian’s post. Lots of good points there I hadn’t really thought of!

  • 4. Epimetheus  |  May 7, 2010 at 11:00 pm

    It’s not that I have a right to /flash/ specifically, it’s that I have the right to use /any/ tool of my choosing, and distribute my own creation to anyone of my choosing, without the interference of third parties. /That/ is diversity in computing, not a locked-out platform that only admits four programming languages.

    Computing is so essential to our everyday lives that the right to use one’s own computing equipment however one wishes should be understood as a fundamental human right of the 21st century.

    If we want to talk about diversity in computation, that’s wonderful! But we don’t get to use that issue to derail the discussion about the serious violation of public trust that Apple’s decision represents.

  • 5. Aaron Lanterman  |  May 8, 2010 at 12:55 am

    So you’re saying is that “all” the Scratch developers need to do is write a compiler that compiles Scratch code into Objective-C code?

    • 6. Ian Bogost  |  May 8, 2010 at 1:15 am

      Better: into 6502 assembly.

  • 7. Alan Kay  |  May 8, 2010 at 8:11 am

    Here’s what I see as the real (and huge) problem.

    Lets say we do a great new version of Etoys that will run on every platform and we simply want to make it available via the web.

    But most school districts’ SysAdmins will not allow the download because of “possible dangerous executable” or because of “unknown maintenance problems” or any number of other reasons (for example possible legal ones).

    Result is that the kids and teachers cannot get to stuff that might help them.

    Why? Because the OSs (MS’s especially) are full of flaws which allow executables to create potential havoc both within and without the infected computer.

    A workaround is to use either JS in the browser, or Flash (not for any wonderful properties it has, but just because it is already trusted enough to be on most machines, and because major updates get adopted within about a year by most of the users).

    But this doesn’t work for a redo of Etoys. To pick one of many reasons, Etoys has an efficient particle system that requires some really low-level optimizations. These are easy enough to do in an executable, but neither JS or Flash allows this kind of programming to be added, in spite of the fact that the code can be run completely safely in an address space.

    Another example is Dan Ingalls’ “Lively Kernel” which is essentially a complete demo of how to do a complete live Smalltalk like system completely in JS in the browser. But wait! It doesn’t run fast enough to be useful! Even though such an architecture runs perfectly well outside the browser implemented in a different way.

    So the Catch-22 here is that for many important cases — especially where you’d like to deliver something via the web, and you have the programming knowhow to just do everything from scratch if needed — you have been unnecessarily excluded from the computing power that is there.

    Why is this? This is “OS 101” and was part of the great OS design reforms led by people like Butler Lampson ca 1965. Well, the browser people were complete amateurs and it is just dawning on them now that a browser is much better set up as an OS than as an app. And the same can be said for the Flash folks.

    So we’ve got a situation today that is astoundingly worse in its point of view and actuality than more than 30 years ago. Even though the (poorly designed) CPUs have mechanisms for safe confinement, the software people for expedient reasons have violated these so that OS level stuff can’t be trusted, and the overreaction to this in JS and Flash have instituted their own version of “no executables”.

    This is why old fogies like me are “astonished to sickened” about many things in computing today. The inmates have been running the asylum for many years now and they are not good at it.



  • 8. Jody  |  May 8, 2010 at 3:57 pm

    Article “written” by Steve Jobs makes coherent and informative points about Apple’s decision.

  • […] This post was mentioned on Twitter by Milton Ramirez. Milton Ramirez said: The Right to Hack, not to Flash […]

  • 10. Susan L. Gerhart  |  May 10, 2010 at 1:36 pm

    Consider a broader context. Is Flash even a good technology for users? A Flash something isn’t an end in itself but rather is a means of communicating. Adobe tries hard to make Flash, also PDF, accessible to all web users, but is fighting a developer education battle.

    . I’m wondering how CS ed fits with the movement on Web Education.

    Podcast from SXSW panel led by Glenda Sims from Utexas “Web Education Rocks!”

    Web education INTERACT curriculum

    Is this movement setting up competitive curricula and degrees for students who seek technical or artistic career paths not currently encompassed in CS? Will employers prefer students with these backgrounds for significant jobs? Will high school courses following this curriculum lead into CS or different degree programs in community, continuing, and traditional education? Will these bodies of knowledge (INTERACT and CS) intersect productively?

    Speaking from a disability perspective, the WE movement is populated with passionate consultants, educators, and advocates who have a message for CS disciplines. Fundamentally, accessibility is well understood, with validated design practices, measurement tools, and cost tradeoff analyses. At the very least, CS educators should be adopters on their own websites, research products, and documents. Moreover, a better understanding of how disabled people use the web could increase the diversity of the profession and expose students to a wider range of technologies. On the contentious side, universities are gaining attention for disability practices, e.g. NFB (National federation of Blind) lawsuits on the Amazon Kindle and Law exam application process. It’s always better to understand the issues and be on the right side of the A.D.A.

    Relevant tags for the accessibility community on Twitter are: #accessibility, #a11y, and #accessu10 (Access U in Austin week of May 10)

    Susan L. gerhart

  • 11. Barry Brown  |  May 11, 2010 at 2:01 pm

    The greater fear that I have is that the walls around the garden, so to speak, may soon start to enclose the Mac, too. Although Mac users have since the platform’s inception enjoyed a wide variety of development tools, might we start to see the end of that? Try as I might, I’m having a hard time seeing Apple simultaneously supporting an open platform (Mac) and closed platforms (iPhone / iPad / iPod). With the “i” products vastly outselling the Mac, could the Mac become the black sheep of their product lineup?

    If so, where does that leave cross-platform languages implementations such as Ruby, Python, Scheme, and Java? These languages are chosen by educators specifically because they are cross-platform and can reach the widest audience of students possible. I’m left wondering where Apple expects the developers of tomorrow to come from if they have to use beginner-unfriendly languages such as C++.

    • 12. Alfred Thompson  |  May 13, 2010 at 10:28 am

      In general I’m not that sure that most platform companies are all that thrilled with the idea of cross-platform languages. Well at least not outside their own platforms. In some realy ways cross-platform is against their own interests.
      Now education is a special beast of course. Cross-platform is just about all positive for education. It makes so much easier for educators as it lets them teach once for many platforms, give students more options, and of course lets them play platform vendors off against each other on price.
      Jobs has taken the position that platform specific development is better for consumers as well as for Apple. That is debatable of course but I think he has a point worth taking into account. (Not often I agree with him BTW)
      I also believe that Jobs probably doesn’t care about student learning on his platform and writing student quality apps. He is probably happy with them learning on other platforms, creating crap for other platforms and then moving to his platforms once he develop into quality developers. As long as there are other platforms for students to learn on he’s fine. In theory anyway.
      many of use remember the Apple IIe days when everyone who bought a computer wrote their own applications. Having BASIC (developed by a new company called Microsoft) was a selling point. IT got people hooked. Since the advent of super apps like spreadsheets and word processing software and now webapps not as many people write their own code. They don’t buy a computer because it comes with compilers (though Windows comes with several comand line compilers including C++. C# and VB). Today is is all about what apps run. So if you are a platform vendor like Apple you probably don’t care about students developing but rather what great apps people can buy for your platform.

  • 13. Alfred Thompson  |  May 13, 2010 at 10:29 am

    Dang sorry about all the typos in that last reply. Trying to sneak it in betwen real work.

  • 14. Mark Miller  |  May 13, 2010 at 11:25 pm

    I think Ian and Mark are missing the point of the arguments made by developers, though I don’t think the point that these developers are making is necessarily valid, either. I understand that what I’m going to say doesn’t get to the issues that CS educators need to deal with, but I thought I’d provide some cross-over between the academic notions of computing and the industry notions, where the controversy is coming from.

    What developers have been saying about “rights” is not about their ability to write programs in some particular language because they’re unable to write in anything else. What I’ve been seeing smacks of the rhetoric I’ve heard in the past that “open source is about free speech”. I’ve seen with some developers that they care a lot about “choice”: Choice in the language they use, what tools they use, and their target platform. They are keenly aware of group dynamics, so they care about what “degrees of freedom” they have “within a community”. What “community” they’re a part of is largely dictated by what platform(s) they develop for, what language they use, what tools, etc.

    I get a sense that in this case the blind are leading the blind. Many developers have a sense of loyalty, whether it be to a platform, a toolset, a language, and/or a community of developers and vendors. It’s often tied in to a sense of community with other developers who work with the same stuff, and it’s very strong. Some of them will expend a lot of time arguing over their relationship to one thing or the other, and it’s often based on just their personal likes and dislikes, not over much of merit, though they’ll certainly try to find ways to make their decisions sound like they have merit. Breaking that loyalty is rather like ending a relationship. I know this, because in my past I engaged in this, and I saw many others do so as well.

    Giles Bowkett, a pioneer in the field of web development from what I hear, wrote a post recently basically saying, “The iPhone is Apple’s platform. They created it. They have the right to give terms for its use, and for what goes on it. If you don’t like it, don’t use it, don’t develop for it. That’s your choice.” Given our current law, and Apple’s licensing terms, I think this is a good interpretation of what the reality is as far as what Apple is allowed to do, though I heard just in the last week that regulators are looking into whether the new license violates antitrust law.

    It surprised me that Steve Jobs brought up stability as a reason for the decision. It’s possible to write stable, secure code in C and C++, two of the allowed languages under the license, but if developers are writing code in them, they put a lot of responsibility on programmers to carefully consider how they write their own code, how library calls work internally, and to not overwrite critical information via. their own code. They are akin to assembly languages in the sense that they will let you get away with a lot, making it possible to take actions that will corrupt and kill your own program.

    I’d like to answer one of Mark’s points, because I had the same idea, but I think it’s mistaken. He said, “Nobody can build tools that compile to Objective-C, so that the developer has powerful tools but the app is built to Apple’s specs?”

    This gets to what got me interested in this issue in the first place. I don’t have a dog in this fight, since I’m not interested in developing iPhone/iPad apps. at this point. According to the license terms, any application Apple accepts has to be originally written in any of the allowed languages. Now, how Apple would enforce this is a good question. If someone came up with a tool that took Language A and translated it into one of the allowed languages, comments and all, who’s to know? And really, who cares? A programming language is just a representation of a modeling system. It seems to me what Apple is concerned about, at root, is the modeling system, but they confuse that with its representation. Maybe it was done for logistical simplicity. Rather than allowing flexibility, saying, “Anyone who wants to create a development language for our platform has to meet these specs., which will allow the programmer access to platform facilities,” which would thereby require Apple to have an evolving approved list of compilers, libraries, and interpreters, they’ve said, “Let’s make this simple. Just use what we provide.” It sounds a lot like Apple’s approach for its products to end users.

    • 15. Mark Guzdial  |  May 14, 2010 at 9:21 am

      I do see your point, Mark — thanks!

      The iPhone is a computer. Once you buy your computer, you can do anything you want with it. Hack it, figure out its serial port, get your software on there, play with it all you want. The only “official” way of getting software on there is through the App Store, right? If you want to be “official,” then you have to play by the “official’s” rules.

      What developers are complaining about is getting their software, developed their way in their language of choice, onto Apple’s App Store. There is no right there. Apple doesn’t have to market something that they don’t want to market.

      I do agree with Blair MacIntyre who commented over on the Facebook side of this blog that it’s great that we’re at the point that creative people, who only know one tool (Flash), are demanding their right to program. That’s really about how broad and accessible computing has become. That’s terrific, and yes, they have the right to program anything they want in the language that they want. Apple doesn’t have to sell it.

      Developers can still develop in Flash for the iPhone. Hack it. Find a way in. You have a right to play with your own computer and develop for it. You don’t have a right to Apple’s store.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 9,052 other followers


Recent Posts

Blog Stats

  • 2,030,405 hits
May 2010

CS Teaching Tips

%d bloggers like this: