Hacker News new | past | comments | ask | show | jobs | submit login
Apple: iPad and Emacs (jjinux.blogspot.com)
57 points by mnemonik on May 18, 2010 | hide | past | favorite | 78 comments



"Emacs was written by Richard Stallman, and it practically defines the Free Software movement (in a manner of speaking at least). Stallman's vision for the future of computing is very open, and Apple's vision for the future of computing is very closed. Hence, it's ironic that Emacs, which is such a profound part of Free Software history, can't ever run on the iPad."

I fail to see the irony.


You know... it's ironic in the Alanis Morissette sense. As in, it's not.


Heh. Reminded me of this - http://www.youtube.com/watch?v=nT1TVSTkAXg (Comedian Ed Byrne picking apart the song)


Irony can be construed pretty broadly, although I agree that she's beyond the pale at times.


Maybe he can try ymacs -- an emacs like editor that runs in your browser.

http://www.ymacs.org/

Quick link to demo:

http://www.ymacs.org/demo/


ymacs is emacs in a browser.

emacs-w3m is a browser inside emacs

I just tried to run ymacs in a emacs-w3m, but it didn't work.

that woulda been cool though, emacs in a browser running inside a browser which is inside emacs.


<iframe src=...


Hmmm... An Emacs front-end to a cloud-based file-system.

That could be the basis of a very, very nerdy startup ;-)


That's incredible. I've wanted something like that for a while now. Thanks for pointing it out. Are you aware of a vim oriented one anywhere? (I switch back and forth on which I prefer given the time of year / language of the hour)



Nice. Thanks!


Are you sure that this will work on an iPad? Just because it's available in the browser doesn't mean it can be used. Take Google docs as an example.


Ooh, my dream is alive! I'll try it out.


No ctrl or meta keys on the iPad keyboard might make that tricky. (ymacs is amazing, though)


Of course, you can get an external keyboard for the iPad, and that comes with Ctrl and Meta keys.

It's a fair point, though.


The point of Emacs is that you can write code to solve immediate problems. The point of the iPad is that you can't run your own code on it.

Problem.

But what's great is that you can just buy yourself a $300 netbook that will run Emacs just great, and you have plenty of money left over to donate to the FSF.


We're unlikely to see emacs on the iPad, but it raises an interesting question in my mind. On the virtual keyboard, since we're not limited to pressing keys, might there be UI alternatives to the whole escape-meta-alt-control-shift behavior we're limited to today? control-x could be a swipe, for instance, or perhaps a larger area of the display could function as various temporary mode-specific functions. Dunno, just a thought.


FWIW, the iPhone Terminal app for jailbroken users has similar gestures like this for the common control sequences.

They work pretty well, it just takes a while to remember which one is which (early on, trying to guess the Ctrl-C swipe can take quite a while.)


Good point. The whole reason for using the keyboard is to avoid the 'cache miss' of moving your hand to the mouse. But on the ipad, the keyboard and screen are all the same, so it might actually be more efficient to use gestures


Would ssh-ing into another machine count?


No.

When you give control over YOUR computer to some third party, you are giving up you freedom. Apple insists on having that kind of control over iPad purchasers.

I can't speak for the FSF but I think it is a safe prediction that there will be no support port of GNU Emacs to iPad unless Apple changes its tune.


Say it with me:

The iPad is not a computer.

It's a web browsing appliance. Hackers want computers, full computers. And plenty of vendors (including apple) sell them in many different configurations, styles, and prices. Many other people do not want full computers -- they're a pain to manage and maintain, and their interfaces are too general-purpose and get in the way.

Complaining about the freedom about an iPad is like complaining about the freedom in your TV's firmware or (fairly-advanced) toaster.


I've heard this line of reasoning many times, and I've just figured out what I dislike about it.

The iPad is a computer. It has a general-purpose operating system, and a very general-purpose input method.

The reason that people like me are irritated is that the limitations that lead to you saying "[it] is not a computer" are business/social reasons, not technical. Given that a lot of the people here are technical-minded, it's reasonable to complain that the iPad is artifically restricted.


Any line between embedded and "full" computers isn't technical, without choosing fairly arbitrary criteria. A palm pre runs linux, and has a keyboard, it's SDK is HTML/JS. Why aren't people complaining about that? I believe that it's b/c they already knew what a phone was, and that they were happy that they got some power to hack phones when the smarter ones came out.

The iPad went the other direction. The endpoint's the same -- a specialized device for a specific set of activities -- but now developers feel that things have been taken away instead of added. A social reason if I ever heard one.

We're only going to see more specialized devices -- embedded systems are getting enough power to get really interesting -- so it's best that us hackers get used to it now.


Ok, so you see the iPad as a "a specialized device for a specific set of activities", whereas I and others see it as a general-purpose computer, that is artificially restricted. An iPad could technically run Emacs, but won't due to policy restrictions.

> it's best that us hackers get used to it now

I'd rather not, and I'd rather complain about companies that push computing in that direction. It seems to be a philosophical difference between us.


Personally I'm glad that Apple ignores people like you and hope the trend continues. Hackers (a kind of slang word for "producers") already have a capible device. It's called a desktop computer. Everyone else is mostly a consumer. Apple has given us the (almost) perfect consumer device. Finally a machine that can be with us literally all time.

We've tried the "I know! Make it a real computer!" route before. They were called tablets. Tablets failed for two reasons: horrible interface (stylus, yuck) and it was a real computer. Netbooks got closer by fixing the interface but they still suck because it's a whole computer. It took Apple figure out to forget the computer. Give a good interface in an instant-on device.


I'm not sure how any of your comment is relevant to this thread? I don't want technical changes, I think the iPhone is quite a fine feat of interface design and usability -- I haven't seen an iPad in person, but I assume it's just as good.

Being able to install non-app-store applications wouldn't technically impact in any way on your, or my, or any other person's use of the device. Does the ability to jailbreak an iPhone somehow make it less usable for people who don't jailbreak it?

Edit: discussion -> thread.


You're asking for it to just be a computer again with a different interface. We've known for a while that the next big thing in technology would be when we moved away from this model and started making appliances, etc.

There is no reason for the iPad to do everything. It should do the things it's good at and we should have other devices to do other things.

If your comment is no more complex than to just say "I want to install what ever I want!" then you're letting an idealogy blind you. I don't think Jobs is trying to take away anyone's freedoms. He just doesn't want to get a reputation for expensive devices that crash all the time. Much of the reason that windows has such a reputation for not being stable is that anyone could install anything they wanted. That does give them more flexibility for those who can use it, but it gives the opposite impression for the less tech savy (the bulk of Apples market, no?)


I'm not asking for anything. I'm saying that I think it is a flaw of the device that without paying $100/year, I can only install applications from the App Store. If you disagree, that's fine, but can you accept that my opinion is not as black-and-white as you make out?

> just say "I want to install what ever I want!" then you're letting an idealogy blind you

What ideology? I fail to see how it is ridiculous to say "I'd like the ability to install application X" when X isn't in the App Store. This doesn't imply that I think Steve Jobs must fall over his feet to make it so, it's just straightforward criticism of a flaw that I perceive in the platform.


You're welcome to your opinion. Just as, on a public forum, I'm welcome to critique it.

Do you see it as rediculous to say "I'd like the ability to install arbitrary things on my d-link router"? Of course you could say "I should be able to do that and just not get any support if I do". But what about reputation? How can e.g. Apple ensure that (a) just you can install things on the iPad (i.e. experienced people only) and (b) that you wont complain that their product sucks if the unsupported software you load causes your machine to become slow or unstable?


Actually I don't see it as ridiculous, and neither do a lot of people[1]. Recognising the technical features/limitations of the device, the kind of software that would be useful is obviously different to that of the iPad.

Your two reputation questions are good. How can Apple ensure that only I can install apps on my device and not others? I have some ideas, but as I'm not privy to the internals, I have no idea whether they are feasible or not. Perhaps an iTunes preference (plist-style would be fine, it doesn't have to be exposed in the interface) that allows unsigned applications to be added to the list of apps in iTunes? As for (b), I have no idea. Looking at the reputation of the Mac and OS X, I don't think it's that big an issue, but I can see the difference in reputation usability-wise of the desktop versus the Cocoa Touch products. I attribute this to the difference in interaction paradigms and the hard work that Apple put in to polishing the UI, rather than the business/legal restrictions.

[1] http://en.wikipedia.org/wiki/List_of_wireless_router_firmwar...


I didn't figure you would find it ridiculous, but I think looking at the expectations most people have of devices that are just as much computers but don't look as much like computers is instructive.

I'm sure (a) would be feasible in the way you describe, or some other. I see the problem as (b) and that would trump (a).

The place where I differ with all the people saying Apple is so evil/closed/whatever is that I've seen Apple, from the beginning as far as I can tell, be obsessive about their reputation. And it’s hurt them along the way. It may end up hurting them in the end. But I’ve also seen Windows get a bad rap for things that weren’t actually their fault. That’s the cost of being so open and unless Google does a lot of testing they are going to feel this pain on Android at some point (unless it just never gets enough users).


> A palm pre runs linux, and has a keyboard, it's SDK is HTML/JS. Why aren't people complaining about that?

Because they do have a PDK so you can run native code... http://developer.palm.com/index.php?option=com_content&v...


Say it with Apple:

The iPad is not a web browsing appliance.

They are selling it as a computer, without mentioning the word "computer". Just look at the ad:

http://www.youtube.com/watch?v=fihOmQY-JxY

A device that can do all that has usually been called "computer".


My N800 manages to be an "Internet Tablet" and have XTerm installed by default. Using it isn't necessary but it's nice to be able to run command line programs when I want.


He is not complaining. He is explaining.


> Say it with me:

> The iPad is not a computer.

You and I both know that's a lie. And I don't utter lies, especially ones that only exist to serve big companies at the expense of ordinary people.


I disagree. Does it have, or potentially have a full OS? Sure. So do tons of embedded devices (e.g. home routers), but I bet many of those devices would void your support if you "jail broke" them.

It's meant to be a device, regardless of what you think it's capable of. There is a reason nerds/geeks are never consulted by sales. If you don't like the device then don't buy it. I'm sure plenty of nerds will be out there saying "but! Lets make it a whole computer! Then we'll kill apple!". Buy one of their devices to go with your Android phone. Don't mind all the people laughing as you trudge your way through using them.


I don't think the Author actually cares about emacs so much as what emacs stands for. Emacs represents the Free Software movement, and for it to be on the iPad would mean that Apple has changed their perspective on software development.


So, as an iPad owner who is wondering about emacs, this is one avenue I've considered.

A second: distribute emacs as source and let people who own the developer kit compile and install it. Given the rather large overlap between developers and emacs users, this might not be so bad. But it may be hard to envision anyone going through the effort.

I'd be very curious to see what kind of emacs-like editor could be written in Javascript. Or a hybrid, with a JS front end Ajaxing away to a back end.

And, of course, there's the obvious alternative of writing something that looks and works sort of like emacs but is written in Objective-C. If indeed there is sufficient interest in a serious text editor for the iPad, the BBedit and Textmate folks would appear to be sitting pretty.


I'm curious what a native port of Emacs on an iPad actually contributes over an Screen/SSH session on a "real" machine with "real" compilers and tool-chains.


I'm curious what a native port of Emacs on an iPad actually contributes over an Screen/SSH session on a "real" machine with "real" compilers and tool-chains.

To get it running, you'd need (a) the ability to modify, redistribute, compile, and install arbitrary code (including GPL'd code), and (b) the ability to run interpreters and virtual machines (emacs lisp).

So emacs itself is just a bellwether for the things he really wants in a computer.


I use emacs on my iPhone and plan to use it on an iPad if I get one. It isn't the official emacs, but is 'mg' the MicroGnuEmacs editor

http://en.wikipedia.org/wiki/Mg_%28editor%29

Jailbreak your iPhone/iPad and Cydia will allow you to install Vim or mg, plus Ruby, Python, etc. MG even supports LaTeX syntax highlighting, although of course the compilation must be done elsewhere.


How did you get mg to work on iphone? I try to open a file with mg on my iPod Touch and I get "bus error".


If you want to try and build a version of emacs for the iPad that would be a fun exercise. If you bought an iPad with intention of downloading and installing a version of emacs you're doing it wrong, regardless of how Apple chooses to manage its app store.

Anyway, Apple ships emacs with OS X, and I think they're one of the last *nix venders who still installs emacs by default.

How ironic?


It always surprised me that Apple still ships Emacs. It strikes me as just the sort of thing--bulky, unintuitive, feature-laden, slow--that Steve Jobs would have a personal vendetta against.


Well, the NeXT engineers were firmly in the emacs camp, and that heritage is still present in the Cocoa text system.

I don't know if the iPad text system also supports emacs shortcuts, but if it did I'd rush out and buy a Bluetooth keyboard just as a token of solidarity.


If you use a bluetooth keyboard, it does some basic stuff (c-f, c-b etc)


Ha! That's cool.

And I suppose the iPhone will also work with Bluetooth keyboards when OS 4 is released. I can't wait to tell my mom that her cellphone supports emacs keyboard shortcuts.


Let me guess, you still call it "eight megs and constantly swapping". 1980 was a fun year...


I can only assume it was, seeing as i was conceived around then.

A 3-second lag to start a program you use thousands of times a year adds up.


You reboot your computer thousands of times a year? You might want to have that checked out.


Zing!


You have a weird idea if fun, sir ;-)


Out of sight, out of mind. At least they include nano in the base system.


I was anticipating an explanation of multi-touch allows the iPad to become a productive coding platform. Typing would still be slow, but is efficient code manipulation with emacs + iPad feasible?


In an all keyboard controlled app that relies haevily on chording, not a chance.


No. Fat-fingering is a real problem on the iPad. Small screen + big fingertips => large minimum size for any hitbox => bad for getting lots of code on the screen


If you have an app store account, you can port it, install on your iPad, and make the code freely available so others with app store accounts can also build & install on their devices.


Actually, from what the EFF is saying, you almost certainly may not port GNU Emacs to iPad or, for that matter, offer any derivative work of a GPL program in the app store.

If you agree to the terms of the App Store developer license, it appears that you would violate the GPL.

See: http://www.eff.org/deeplinks/2010/03/iphone-developer-progra...


App Store Only: Section 7.2 makes it clear that any applications developed using Apple's SDK may only be publicly distributed through the App Store,

I think this is the most relevant section. Any distribution mechanism that bypasses Apple's app store is strictly verboten.


The GPL requires that the source code be made available to people to whom you distribute the program. It does not require that it be publicly availble for everyone in the whole world. Therefore, I believe that bundling the source code with the application, such that they are both purchased at once, would suffice.


Not really, you're not distributing an app, you're distributing source code, which is not the same thing. Of course, IANAL...


So you can then still port it and install on your own device.


In your original comment:

make the code freely available so others with app store accounts can also build & install on their devices.

If you make the code freely available so others can install it on their devices, then you would have a distribution mechanism that bypasses the app store.

You can do it, however, it violates your agreement with apple.


Yes, I realized, after I writ my first comment, that sharing the source code would constitute an alternative distribution mechanism (if i just share with a couple of friends, does that constitute "public distribution"?). Hence, my comment to which you responded focused on the first part of my original comment, which pointed out that it is entirely possible for one, if one is so inclined, to port emacs and run on your device. Perhaps not practicable, but possible.

EDIT: actually, I'm thinking about this some more: are you saying that iPhone source code (for code modules, frameworks, etc) available online are violating the prohibition on alternative distribution?


hang on. Distributing an xcode project is not the same as distributing an app.


So all the open source iPhone code freely available online is in violation of the Apple agreement?


"open source" ordinarily refers to code licensed under any of the licenses that are "approved" by the self-appointed board of the "Open Source Initiative". The license terms of those vary wildly and most of them do not give strong protections to users.

What is more specifically at stake here is code licensed under one of the GNU free software licenses that may have wound up in iPhone apps. To my (non-lawyerly) eyes, any programs that include code derived from a third party's GPL or LGPL licensed code are likely being violated unlawfully.


My point was to challenge the assertion that making source code available for apps, libraries, frameworks, etc. that use the iPhone sdk, is in violation of the apple terms.

Regarding L/GPL, which part do you think would be violated if one incorporated such code in an iPhone/ipad app, assuming one makes the resulting source code available?

Lastly, my original comment pointed out that one can port emacs and run on your device. Nobody can stop you because nobody would know.


Other comments have pointed out some factors of the L/GPL problems but I'll point out some and repeat that have not been mentioned yet.

Apps in the App Store are encumbered by Apple's right to disable use of the app by users who have already downloaded it. This is in clear violation of both GPL and LGPL.

Apparently (again, per the EFF) an app sold through the App Store may not be free distributed by other means. Another clear violation.

Also, you may not modify the app running on your apple device unless (and even then, only perhaps if) you sign the app dev agreement. That restriction on modifications is again in violation of GPL and LGPL (to, again, my non-lawyerly eyes and this is lay commentary, not legal advice).

We shall see. I'm confident that as a matter of principle the FSF would not support or endorse ports to these devices but what the EFF's discoveries make me wonder about is the extent of app store programs that are currently being distributed in violation of some of the third party code they use.

Finally, yes, I suppose that one may port GNU Emacs for personal use but, at the same time, it appears to me that one can not share the results lawfully, even with their friends. Taken to the extreme, perhaps everyone interested in running GNU Emacs (or XEmacs) on the iPad can do their own private port after paying Apple some money.


That's not what I suggested. Read my comment again.


Ignoring that without an interpreted scripting language, you no longer really have emacs...


Huh?


80% of Emacs is written in Emacs Lisp. Most of the remaining 20% is the Lisp runtime.


Yes I know. I still don't see how this is relevant to my orignal comment. I never suggested trying to distribute a ported emacs on the app store or in binary form.


Well... It is a stretch calling Emacs Lisp an interpreted scripting language, but the idea remains - an Emacs that's not programmable is just a text editor with hard-to-learn keyboard defaults.


I know JJ - he is a die-hard Vim fan! :)




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

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

Search: