Hacker News new | past | comments | ask | show | jobs | submit login

Sure I've had my moments of App Store frustration, but all in all, I haven't been as offended by it as a lot of folks. I think that's because I felt that Apple was giving me something that I couldn't easily find elsewhere (single point of distribution that everyone knows about, very few taps for users to install my apps, the ability to easily charge for apps), so I was okay if they were a little particular about the terms.

But this is different. Apple telling us programmers not to write source to source compilers, is telling us to ignore a totally fundamental technique in computer science. They're telling us not to be too clever, which us programmers don't take kindly to.




I'm puzzled, since Apple has been shutting off fundamental techniques in computer science since day one. Today it's Flash compilers. Yesterday it was access to the filesystem, things that run in the background, etc.


I half agree. The filesystem is just a device. No running in the background is kinda icky, but that doesn't seem like a computer science kinda thing. (not that multitasking isn't hard, it's just not the first thing that jumps to mind when thinking of simulating things on a turing machine)

Language to language translation, that's core. that's fundamental to CS.

The most popular virtual machine ever is the regular expression interpreter. It's such a, fundamental thing. Nothing to do with a particular set of hardware or instructions, just the concept of interpreting match, split, jmp, and char.

I'm having a real hard time understanding how to write C without unions of tagged structs... Maybe that's allowed? I just don't get where one language ends and another begins. how much can i abuse the macro preprocessor? have you ever seen the bash source with BEGIN END blocks? it's sick.

Of course #define is nothing compared to c++ templates. If i just write scheme as partially applied templates, am i cheating?

it's pretty nucking futz.


I agree. Nucking futz. This is much crazier than anything Microsoft has done in recent memory.


By the way, the sh source were written like that because the original author missed algol, iirc.


Yes, denying filesystem access (well, raw filesystem access--Apple gives you access to the "Documents" directory, etc), may be offensive to some, but for me this falls under the category of "sure, it'd be nice if it did more, but I'm not gonna be mad about it." The TI-82 programmable calculator didn't allow me to reprogram my keys or to redefine the built-in math operations, but that didn't make me love that device any less.

The "originally written" requirement is different because it's not something that Apple could restrict by means other than by telling us, "you can't do that." It's kind of like saying, "Don't program in a functional style", or "Use a model view controller architecture." Uhm, excuse me? I'll decide that for myself, thank you very much!


  It's kind of like saying, "Don't program in a
  functional style", or "Use a model view controller
  architecture." Uhm, excuse me? I'll decide that for
  myself, thank you very much!
I have some more examples, it is also like saying:

  The easiest thing to do, is to simply refuse to
  open any documents created with Microsoft Office
  and Apple iWork, and then to send a short, friendly
  email to whoever sent you the document, asking them
  to send it again in OpenDocument format
Source: http://www.fsf.org/news/campaigns/opendocument/reject


I'm guessing you don't know about http://www.ticalc.org/


Sandboxing an application is a bit different than mandating that the code be originally written in a certain way, regardless of what they compile to.


But the mandate only applies if you want to sell the app in their store.

Steve's not telling you how to write your code. He's telling you how to write code if you want him to sell it for you to his customers.


His customers?

I think application developers are most used to thinking of users as _their_ customers. But you're right, that is clearly not what Steve is thinking.


The disconnect between the developer and customer is huge in the app store. Everything is skewed towards the customer having no relationship except with Apple. The deployment model, the communication channel, updates, everything goes through Apple. There have been a lot of blog posts (not sure of other sources) written about how to bridge this gap and connect with customers. I think in a lot of ways this is the same battle the TV networks are having with Hulu. Just like Hulu wants to be The Channel, Apple wants to be your one stop media and entertainment stop, and content producers are just anonymous and a dime a dozen.


True. That would be like Singapore telling us how to build a widget if we want to be able to ship it through their harbors and sell it on their territory.

/me wonders about Squeak on the iPad.

Found it: http://isqueak.org/HomePage Developer signed goodness!


But if you don't want to jailbreak your phone there aren't many other stores to choose from for the iPhone, are there?


Why does that really matter? If I sold chocolate covered bagels, and I was the only chocolate covered bagel store in town, do I have to serve you?

Or, if you wanted to open your own chocolate covered bagel store in the only mall within 30 miles, does the mall operator have to lease you space?

As a developer, I find the situation painful, but I think Apple views the appstore as their mall, and they want to control the image of their mall by holding the store keepers to a certain standard in order to promote a certain customer experience.


Depending on the country your store is in: yes, you would have to serve me unless you have a very good reason not to (like I'm a returning thief or troublemaker).


Sure they can do what they like on the iPhone (within the grounds of the law) but we don't have to like it.

And how does this change have anything to do with customer experience when they already vet customer experience when the app is submitted?


> but we don't have to like it.

developers for the iPhone are a dime a dozen. But there is only one Appstore for the iPhone.


It's their sandbox, they can do what they want. Just like you can choose whether to play in it or not.


Keep in mind tha the grand joke is that Adobe's Flash compiler is based on LLVM -a project that is heavily sponsored by Apple.


  Yesterday it was access to the filesystem,
  things that run in the background, etc.
No, yesterday they did add the things that run in background. Flash compiler being a fundamental technique in computer science? Please…


Ok, correction: yesterday they introduced iPhone OS 4 with background services. How Flash is fundamental in CS is still a mystery to me.


You misread. The point is that compilers are fundamental to CS, and barring things like a Flash compiler is vile.


Ok, compilers are fundamental to CS. Have you heard about Clang and LLVM? Do you know who is behind that project?


Not Apple's iPhone team.

Clang is some crazy engineers at Apple. Apple's new policies are straight from the top.


The parent talked about Apple. So did I. By the way, what are your sources? You look so damn well informed about what's going on at Apple.


Have you read the damn article at all? Source to source compilers are now against the TOS. Sure you can do it and how would Apple know - but commercially you can't advertise a tool that does it. Forget what's going on INSIDE Apple, people are pissed off about what Apple is trying to do to those on the outside.


Pardon me? I was not commenting on the article, I was commenting on the comment which outrageously claims pure bullshit that:

  … Apple has been shutting off fundamental techniques
  in computer science since day one.
And it does not name "iPhone team", it says Apple. What I say is that the work Apple is doing on LLVM, Clang, GCD, OpenCL, Webkit, etc. proves otherwise. I would gladly forget what's going on inside Apple, but first, I don't know, and second, this was addressed to some commenter talking like as if he knows (which he don't). So, thanks's for advice, but be advised to read the thread before commenting.


It's not necessarily Flash that's fundamental in computer science. It's compiler technology that's the computer science part.


And apple is doing a lot in that field: Clang, LLVM, Grand Central Dispatch, OpenCL. Amazing how many fail to see the forest behind the tree. Apple releases iPad and that's the end of computers, Apple bans Flash, and suddenly it's shutting down CS.


General Motors did some cool research projects with fuel cell cars, their core products are still gas guzzling trucks.

When you say Apple which comes up in people's mind first, the iPhone, or Clang? Seriously.


I don't know about GM, but I have clang on my OS X right now and I can tell Xcode to use it.

When you say "compiler" which comes up in people's mind first? I'd bet it's "WTF?".


What come's up in developers mind first?

If you say Apple, even developers are going to talk about the iPhone, iPad or Macbook Pro before they get to any of that stuff.

If you say compilers and they somehow get to LLVM, how is it an Apple project? Because they hired some devs? That started years before Apple got involved. Is RoR an EngineYard project because some guys at EY worked on it? Is linux a google project because they hired some guys to work on it? And I highly doubt people are going to get all the way down to clang.

If people mention Webkit, few forget it is a fork of KHTML first.

If developers talk about the Mac OS X kernel they're going to at some point bring up BSD.

Apple is for open development only when it benefits them. And they are bad partners in it. They write bad software in general for other platforms.

We're not losing the forest because of the tree. It is a forest of trees that piss people off, and this just lit a match to the whole thing. If you found a couple flowers in there you like, it doesn't exonerate the forest. And frankly most of your examples are reasons to DISLIKE apple. Did you read Webkit's last release?


Where would be all these projects without Apple's involvement?

Why should I care, who started what?

In that case Adobe should be forever grateful to Jobs and Apple, because they helped them at the start, by suggesting business models and investing heavily while working on the project for LaserWriter and then creating the whole desktop publishing thing. Adobe's Illustrator has its root in the work on Postscript, which was initially developed for Apple's LaserWriter. Photoshop started as exclusively Mac product. Adobe's (originally Aldus') Pagemaker at the start also was developed with Postscript and Apple's Laserwriter in mind. By the same logic how is Flash a Adobe's product? Because they bought Macromedia?

  And I highly doubt people are going to get all the way down to clang.
What do you mean? It's open source: http://clang.llvm.org/

  They write bad software in general for other platforms.
Just like Flash player performs wonders on OS X and Linux, and Photoshop for OS X has very consistent UI with native controls.

  Did you read Webkit's last release?
What's about it?


I think most people are missing the point. Of course this restriction is stupid. But in itself it's just that. Stupid.

But what is really incredible is the fact that apple enforces that at a moment where a whole lot of people's businesses depends on the features they just forbid. Every app developped with some sort of language layer is concerned, and there is a lot of them.

This is basically saying to every people doing business WITH them, we don't care about you, you're expendable. We don't care about your business and if something bothers us in the slightest fashion and you're in the way, we will drop you out.

I never developped for the iPhone. Thought about it sometimes. Unless things change, i never will.


  Apple telling us programmers not to write source to source
  compilers
Nice spin. But in reality Apple is telling that you cannot use such compilers to make iPhone apps. You are still free to write and use them elsewhere.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: