Hacker News new | past | comments | ask | show | jobs | submit login
Codify: native coding environment for iPad (twolivesleft.com)
545 points by fdb on Oct 26, 2011 | hide | past | web | favorite | 163 comments

This could effectively be a programming sketchbook - which is not a new idea (see the Processing IDE), but this integrates within a device that's basically the digital equivalent of a notebook. This is such an amazing and beautiful concept.

Say hello to the future. We don't have hoverboards, but we have codebooks - where sketches come to interactive life within its pages!

yes yes, a thousand times yes. There is some serious misinformation in this thread though. Apple has allow interpreters on the phone for a while, and the remaining restriction is that you can't download code or bring code in through the app document directory. This app breaks neither of these restrictions. In fact, there have been other lua interpreters running on the ios for a while now, see: http://www.mobileappsystems.com/products/iluabox

The difference with this app is that the ide is really a labor of love, and it is super fun to code in. Not that iLuaBox isn't, but all of the little features for tweaking colors and editing sprites are brilliant. The graphics and audio engine don't hurt either.

For those complaining that there isn't a companion engine that you can take the code out of codify and release actual games, you should take a look a corona. The api in codify is not so big that you wouldn't be able to clone anything that you made in it to another platform relatively easily. I do agree that there should be more lua based gl engines for iphone though. I am working on one, but as of yet it is totally for my own use, but only by virtue of the fact that it doesn't come with nice build scripts.

The other thing that some commenters miss is that you can use copy and paste in this app. That will open the gates to sharing code, it is as easy as: select all, copy, switch to safari, go to pastebin, send link to someone else. I suspect that some of the time the app spent in approval was them thinking about that.

-- edit for not being a jerk to iluabox

"3.3.2 An Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded. The only exception to the foregoing is scripts and code downloaded and run by Apple's built-in WebKit framework, provided that such scripts and code do not change the primary purpose of the Application by providing features or functionality that are inconsistent with the intended and advertised purpose of the Application as submitted to the App Store."

There NO EXCEPTIONS for scripts typed in by users period.

Both iLuaBox and Codify are breaking this rule. Of course Apple has a history of ambiguously enforcing their rules.

For those thinking that Apple relaxed the rules the rule above is the current license dated 10/4/2011. Apple had a more strict rule at one point that said that apps themselves could only be written in C/C++/ObjC/JavaScript. That rule was relaxed.

The last sentence makes it clear that the intent behind this rule is to prevent circumvention of the App Store approval process, not to ban executable code itself.

The rule can be read as ambiguous when it comes to executable content that is not part of an app, just the document type that an app edits and displays. For example - you could think of calculating a formula in a spreadsheet as an example of interpreted code. Apple has no reasonable interest in preventing such apps.

When the documents that an app handles become more app-like, such as games, then Apple might decide to step in. They have left themselves enough slack in the wording of the rule to allow that.

I hope that they make the rule more explicit in a future version of the agreement.

I am not sure if I got what you are suggesting here. Codify is in no way breaking this rule, the author had to modify and resubmit the binaries a couple of time as Apple refused sharing the code using iTunes Sharing. So we have the sandbox in codify, however one can always copy paste the code from emails, web sites, etc (inputs) but there is no way to compile or use it further (outputs) at this stage.

I wonder if someone could get around this distribution problem by making a Codify-like app that uses HTML5 tech instead of Lua. There are a bunch of rapidly-maturing JS game frameworks that seem like they'd be up to the task, especially given the ever-improving Nitro performance in iOS.

Minor sidenote: The Corona SDK [1] is quite expensive: $350 per year to create both Android and iOS apps. There is a free, open-source alternative which is trying to do the same: Moai [2]. Also using Lua to write the game, then using wrappers for various platforms (iOS, Android, OSX, Windows).

[1] http://www.anscamobile.com/corona/

[2] http://getmoai.com/

For anyone approaching iOS development as more than a hobby $350 is a bargain considering how much time it would take you to develop something similar on your own.

That is, of course, assuming that Corona is a good fit for the kinds of apps you want to write.

Wow, Crimson Steam Pirates is an INCREDIBLE game, that is quite the poster child for Moai, which I also had never heard of before.

I've been evaluating moai for a few weeks now and I have to say that it is a bloody brilliant bit of software engineering .. not only does it run smoothly, but its just such a pleasant set of paradigms to learn to build games - no longer do I need to sort my objects or do other things for performance, the moai runtime and object model is designed from the get-go to make it easier for the engine itself to do the optimization while the programmer fills in the content pipeline. I'm very impressed personally, and will be using it for my next game projects to release on Android, Chrome, and iOS simultaneously ..

yeah, thanks for the response. I was not aware of moai, but it looks brilliant. I also love the fact that it is open source. That is the main reason that I am rolling my own rather that using corona. Corona's lack of support for extending through c code is really a pain.

> That will open the gates to sharing code, it is as easy as: select all, copy, switch to safari, go to pastebin, send link to someone else.

I don't know why but this reminds me of my Amstrad CPC days where you mostly shared code by retyping it (notably from magazines and books).

I find it interesting also in that it makes the code as the thing shared, not the resulting blob.

I like that comparison, yes it is like the old Z80 computer programs, where if you did not save the code on to a cassette you lost it. So the other way was typing lines of code from magazines with checksums to make sure that the code was perfectly fine and one did not miss any thing.

Codify is at this moment similar to those 8-bit computers... I had a ZX Spectrum 48K

yeah, it is quite a bit roundabout, and it gets tricky when you start organizing your code into separate files. But it is way easier than retyping. That might be a downside for eduction, but I don't think it is a terrible tradeoff compared to the retyping that you point out.

I am so pumped that it reminds you of homecomputers though, that is the way the ipad should be, not a closed box that you can only play games on.

Does the iOS agreement spell out the "Documents" vector ? It only appears to mention that all code should be included with the application and not downloaded.

It seems that a word processor that allows macros in the documents would be a litmus test for this policy.

this would be great stuff indeed, but the restrictions you mention seem like a killer to me: you basically can't share any program that was written on this app. so how can this ever be more than a toy?

I think it's great if it remains just a "toy". Kids could use it to get started with programming.

The previous generation had Amigas or whatever that was (sorry) they used to hack on. My generation had the early days of the web. This (and others like it) could be the next generation's hacking toy.

My thoughts exactly. This is perfect to get little ones excited about coding.

I feel like you didn't read my comment. You can share by copying and pasting your code to a pastebin. Does that not apply?

yes, but you have to agree this is really awkward, beyond sharing with fellow hackers. most casual users would never go to the trouble just to try your app.

my point was that the technology exists to make sharing apps easier, but apps like this are artificially crippled by apple's app store policies, because they want to control everything.

This app goes against the iOS Devloper Program License Terms.

They specifically state no code or scripts may be executed period unless (a) they bundled in the application's package or (b) use WebKit and WebKit's JavaScript

If Apple is relaxing their policies it would be good to know. Lots of others would like to write apps like this but were told they would be banned.

Maybe they are getting around it by running Lua in JavaScript in WebKit?

There are already sandboxed Lua, Python, and Scheme implementations on iOS, and have been for some time. The strict "no interpreters" rule seems to have quietly fallen by the wayside a while ago, to be replaced by selective enforcement. (Presumably based on something non-obvious, like: does the implementation offer a way to break out of the app sandbox?)

"We have listened to our developers and taken much of their feedback to heart. Based on their input, today we are making some important changes to our iOS Developer Program license in sections 3.3.1, 3.3.2 and 3.3.9 to relax some restrictions we put in place earlier this year.

In particular, we are relaxing all restrictions on the development tools used to create iOS apps, as long as the resulting apps do not download any code. This should give developers the flexibility they want, while preserving the security we need.

In addition, for the first time we are publishing the App Store Review Guidelines to help developers understand how we review submitted apps. We hope it will make us more transparent and help our developers create even more successful apps for the App Store."


> "as long as the resulting apps do not download any code"

Does that include using the App Documents mechanism?

Rewards go to those who take the risks.

The app did sit in review for quite some time, according to a quick look at their blog. Either the interpreter is implemented entirely in JavaScript and Webkit (it's not terribly speedy), or Apple is now comfortable enough with Lua to let something like this fly.

Either way, it's really great that there's an app like this for the iPad.

Edit: After poking around the app package, it looks like a real Lua interpreter rendered inside a EAGLView, and not some WebKit/Javascript hack.

I heard from the guys that work for Apple that Apple has accepted Lua as a language for many of the apps and realise that it can be sandboxed, so do expect that before approving it. Yes Apple is comfortable with Lua.

> real Lua interpreter rendered inside a EAGLView, and not some WebKit/Javascript hack

Just like moai, so I guess I'm off to write that moai-dev environment!

The license terms were indeed relaxed last year. Quite a few apps use scripting languages generally, and Lua specifically, including a little game you may have heard of named Angry Birds.

I really wish this butt-hurt comment wasn't at the top. It's a beautiful app.

Why not, though? The point is that this kind of app should be allowed, and many people thought about doing stuff like that before, but were told no, so it's a valid question.

Uh, it's the truth? No matter how beautiful, it will probably be removed from the app store and the development effort will have been wasted.

No, it's no the truth. From what I understand they just won't allow apps to execute assets downloaded from somewhere else. As long as there is no sharing of code it should be fine (yeah, that's a shame).

It's not the truth. Apple has no rules against Lua these days. The problem isn't with using scripts in your app, it's with downloading scripts.

Lua ok,

User scripts not ok.

Doesn't matter if they are download. The license says no scripts that are not part of the app's package period except WebKit JavaScript scripts

I didn't know that the app won't allow sharing of the creations. Maybe they can get by with that (no guarantees on the app store).

I may be wrong but I seem to remember Apple relaxing their rules sometimes last year.

I think they allow you to write your app in different programming languages now. But I can't imagine that they allow you to execute downloadable scripts, which would make it possible to circumvent the app store.

Downvoted why?

I thought Apple would never approve any type of simulator, virtual machine, or app creation platform for iOS itself, since it could be used to generate apps that might not conform with their guidelines. How did they get around this?

Lua is pretty popular in graphics. When Apple tightened restrictions on APIs and programming languages that developers were allowed to use in the app store, one that got a pass was Lua. It's used in most games, so companies like EA would have immediately been pushed out of the app store and forced to refactor all their code sans Lua. This app is just allowing users to write Lua that interfaces with a rendering engine they've written, that's included with the app. So I doubt that projects are very portable. That's not to say that they couldn't be made more portable, but as of right now this isn't a publishing platform, just a neat tool.

Sharing games with others would be the problem, as acknowledged by the creator - http://twitter.com/#!/TwoLivesLeft/status/129304975623995395

Understandable too. I don't want code that hasn't been curated breaking my ipad...

Apple relaxed their restrictions 5 months after announcing them: http://daringfireball.net/linked/2010/09/09/app-store-statem...

They don't explicitly mention this in the video, but perhaps the games cannot be exported? So they only work within the simulated environment.

Also it looks to be just for games.

I think if there's no way to grab the code off a website (or whatever) then it might be OK. I don't think that you'd be precluded from exporting the project and turning it into a standalone.

However, you don't appear to be able to do much (not even run full screen) so it's a neat program but probably more for introducing children to coding than doing anything serious.

It's great to see tools like this start to emerge on iOS but the new 11" MBA is only slightly more trouble to lug around but is infinitely more useful as a development tool than I suspect a tablet will ever be.

I bought the iPad 2 the day it came out and was thrilled to use it for about two months.

But over the last four, I've realized: the reason I keep coming back to computers is that I enjoy computers. Learning more about their internals, harnessing that for my own ends, creating solutions to real problems I have, without frameworks or IDEs or buzzwords. I don't so much care for anything about the iPad but iBooks.

I bought the Macbook Air when Apple upgraded it, and now I carry it with me everywhere. There's plenty I can do on it, even without a network connection (i.e., all my coding), and I really feel attached to my featherweight computer.

Mobile coding is really fulfilling, yes. But I will never want to code by touch typing. Since buying the MBA, I haven't once thought about touching the iPad. And I don't see that changing.

Good for your adult self. If I was an upper-middle-class 10 year old kid who couldn't afford a nice computer, but could coax my parents into buying an iPad over a game console, I'd be so thrilled to have something that guided me into developing fun little games.

When I was 10-12, I had a freaking AIX PowerPC machine because my dad could get one easily. Did I learn programming with such a fancy machine? absolutely not, I ended up just installing windows NT on it so I could record and play with sounds.

A very good point, and I don't disagree with you. I used RPGEditor and GameEditor when I was a kid and couldn't figure out how to use plain C++ to build a game.

The authors of this software have done a really amazing job, that's undeniable.

But I'm thinking here about two things:

- There is a notion that the only thing stopping tablets from overtaking computers is the fact that you can't develop software on tablets. Under that model of the world, this is a major breakthrough for tablets. But I'm not sure it actually solves the problem of high-quality development.

- There is also a notion that the iPad is a distillation of the best parts of a computer, the things that give people joy, and it removes "cruft" that people don't want to think about: filesystems, command line access, and the like. I wanted to take this opportunity to say that this isn't the case for a lot of people and that the ability to code on an iPad doesn't mean the iPad can give as much joy to a developer as a real computer can.

My comment was less manifesto, more musing about why I can't get rid of real computers.

true. I haven't bought a tablet yet, but the two main uses I as an adult have when I get one will be :

1) let me read books (i've been getting rid of most/all the physical books i own because of tablets, and reading them on a laptop doesn't feel the same). 2) act as a second 'travel' monitor for my laptop.

the biggest issue with tablets is the lack of a compiler and the processing power. With cloud computing and technologies like dropbox, developers can queue their apps and get it to compile on machine with grunt, package it and upload it to testflight and then download it to the mobile devices again... and test it.

True development on a mobile platform.

I think the bigger issues are the coarse resolution of the touch interface and lack of usable keyboard. The former prevents the kind of dense, widget-rich UIs you need for a tool as complex as a real IDE. The latter can be ameliorated with an external keyboard but then you've got a combination that's actually more awkward and less portable than a laptop.

To try replace a laptop with a tablet (or vice-versa) is to misunderstand the strengths and limitations of each, IMO.

Hm, maybe if you are so poor, you should consider buying a 300$ netbook rather than an 500$ iPad? At least if you are interested in programming.

I jumped into iOS development earlier this year but I feel like a cheat when I almost always go back to my MBA to do anything other than read in Kindle/iBooks. To be honest I'd much rather be writing native Mac OS X apps but the bulk of new development work seems to be on iOS these days.

As the other responder said, Apple has kind of disrupted its own market by making such polished and portable laptops.

I'm sticking to my keyboard for near-future development as well, but I hope some more people explore in this direction. It'd be really cool to see this program or similar ones evolve. Maybe one day, I might be able to code high level programming structures with gestures.

There is more than portability to consider. I find the iPad is easier to use for programming in awkward places. But maybe I'm the only one that does crazy things like write code from the tractor while I'm out in the middle of a field.

It's all part of progress. Your MBA wasn't around too long ago.

I have big hopes for touch-enabled development on tablets. I see a world where we can use conventional dev tools with tablets that augment the experience.

I would love to just have the ability to navigate my project files with the codify-like nav and have my desktop IDE take notice.

I think tablets can be very useful as accessories. For instance, an iPad makes a great, general purpose MIDI controller for making music, but is currently a long, long way from threatening a laptop as a serious music production tool.

One iPad may be a long way from threatening a laptop for music-making, but 3 (or 4 ..) iPads goes a long way to absolutely annihilating laptops as a comfortable, enjoyable, extraordinarily creative way to make music.

I say this as I sit here with an iPhone4, an iPad, and an iPad2 right in front of me, each with their own amazing music-making software onboard, having a blast .. iMS20 on iPad, BeatMaker on iPad2, animoog on iPhone4. No laptop can give me such a pleasant experience, period.

What do you do for recording? The instant save & recall and trouble-free rendering of a laptop running Live is hard to beat. I haven't been rich enough to try a 4-iPad rig yet.

I do have one iPad synth on the app store though (GrainBender) and I'm working on a new music app for the iPad right now so I'm definitely invested in seeing this market develop.

I record directly into my Linux DAW (Ardour) through a Presonus Firepod. I don't do "recall and play", I do more "play and play" style music-making, for me the patch recall is not ever as useful as the dynamic process of building new stuff live, so it hasn't been an issue personally - but there is definitely technology in the iOS Music-making sphere that will make this brain-dead seamless and simple soon enough.

I will check out GrainBender - I've got a huge collection of these apps - and add it to the collection. I'm currently working on my own MIDI sequencing engine/workspace product for iPad too - definitely, its an exciting platform for which to be making music tools.

Just wanted to let you know I've checked out GrainBender, bought it, and will use it at my bands next Jam session for some inspiration and music love .. nice work, very well done!

Thanks! If you have any suggestions or ideas for the next version please send them my way.

For sure. It's going to take time. I'm more excited about the short term where we can actually use them as development accessories. For me, that'd be enough.

I've been developing full-time on my iPad for over a month now and am surprised at how pleasurable it is.

My MBP just rips DVDs and gathers dust these days.

My MBP replacement sits in a box still brand new, I do not use it as I work on the iMac or the iPad. Recently I had been carrying my iPad interstate, when I carried my MBP 15" again, it was almost like breaking my back with a sack full of rocks.

Classic sign of disruption. Feels like a toy, looks like a toy. Just not good enough.

Notably, this fits into YC's "Request for Startups #5: Development on Handlhelds":


Honestly, having experimented with various devices, I'm not sure there's a productive development environment out there with a keyboard. A tablet in a keyboard dock may well do the job, but if the keyboard is required for useful work don't we then have a de facto netbook?

Which is what I use, incidentally. Currently 10" but has been 9" before. Running Visual Studio 2010 for the zoomable IDE, and I find it makes a very nice development platform. Highly recommended for such use.

Because the tablet is a variable geometry device. You can develop on the device with keyboard, take the device away without the keyboard and play your game. Then hit a bug and fix it on the spot with the OSK.

Besides developing NUI apps straight on the device is interesting, instead of developing on a machine then upload and test on a tethered device.

Only partially. This code isn't portable. This is more analogous to a game engine, it's a development engine. Along with not being portable, the code can't be distributed. If the developer offered some package with their rendering engine for purchase outside the app store, then other devs could publish games using this development engine.

It's pretty obvious that is the something that will come in another release.

Edit: Also, plenty of value is created by programs that had thick "runtimes". Think of anything from Visual Basic to Hypercard to things like Excel spreadsheets.

Only partially. This code isn't portable. This is more analogous to a game engine, it's a development engine.

The way you worded this reminds me of Gary Kitchen's Game Maker.


It looks like this is something that the developer is already thinking about. https://twitter.com/twolivesleft/status/129304975623995395

Oh no I am speaking of licensing the graphics engine underneath to devs so they can distribute their own standalone games in the app store, without users having to download this app.

It seems like it'd be pretty easy to have do "something" on a server, and then just mail you the package you need to submit to Apple, given a few extra bits of data.

To the point where I've been thinking about doing it for a long while, but clearly someone was way ahead of me. :)

Is there a particular reason why you think this won't happen at some point in the future, too?

Any particular reason? I'm not working on this particular project, I have no idea what the dev has planned. I like imagination, but I don't like speculation. So I'm just not in the mood to speculate on it.

Well there are ports of Squeak (Smalltalk) Cog VM on Android (CogDroid [1]), and to iOS (see e. g. [2]) which are capable of running recent Squeak and Pharo images and are development environments on their own. (Disclaimer: I am a co-developer of [1])

[1] http://code.google.com/p/squeakvm-tablet/

[2] http://news.squeak.org/2010/06/17/squeak-running-on-ipad/

I made a simple particle simulation in Codify in around 30 minutes: http://www.youtube.com/watch?v=QEqTvRd8qMM

That is, 30 minutes, plus few more minutes pouring over the examples learning LUA syntax (I've never worked in it before but it's basically Python but lazier and more forgiving)

At times it felt a bit frustrating, as some of the code, such as p[i].x = p[i].x + p[i].vx takes forever to write because of the brackets, which are 3 taps each. I think this can be improved upon in the future.

Many examples are provided which is very nice. The graphics is done using opengl-like stack with pops and pushes of transformations.

Overall, the app is very impressive and I'd love to see these kinds of apps used in education. Kids could use it to learn programming, without having to suffer the overhead of file system etc., as on a real computer. Excellent stuff with bright future.

Woah, I never expected you would be able to get that kind of performance out of an iPad (2?) with only 30 minutes' work.

Nice sound effects, too. :)

Some gorgeous work there on making a native code-structure editor rather than a text editor. But it's still text in the end. Baby steps!

Chill !!!

This is for FUN! You're not likely to write the next Microsoft Office with Codify, but a lot of kids are going to have heaps of fun! Anyone remember Alan Kay's vision for SketchBook? This has to be the closest yet to that vision.

I can hear a Keyboard in the background... So I guess is not that easy to type code on iPad soft keyboard. It's very interesting though.

Not at the speed you're seeing there. Also, obviously you're not seeing the keyboard come up blocking the environment :-)

Just downloaded it, and it's fine with the software keyboard (even has a row of custom keys at the top for it's code editor, so in context it's a more featured keyboard for this specific app).

Somebody forgot to tell these guys that iPads are for content consumption, not creation.

Apple doesn't think so.

Their own iPad apps - the iWork suite, iMovie and Garageband are very capable in producing some pretty neat content.

iWork and iMovie are available not just for the iPad but for the iPhone as well. I've found the iPhone version of iMovie to be very competent for casual movie editing - proving that content creation can be form-factor agnostic.

I'm just curious, do you feel like this was a meaningful contribution to this discussion? 0 added value, and virtually no insight in your post. Your post has nothing to do with what they've created.

It has a huge amount of insight.

When the iPad came out it was (naively) decried as a device that segmented computing into "content consumption" and "content creation". Apps like this continue to prove that wrong.

Actually it's true. Apple removed Scratch from their app-store because "Apple wants to focus on consuming media using these devices, not producing media."[1]

[1] http://computinged.wordpress.com/2010/04/15/apple-removes-sc...

That's Scratch users speculating on the reason, not an Apple statement. At the time Apple policies were very restrictive about non-approved languages (Flash, etc), but they have since been relaxed.

Ironically I just posted asking if Apple would allow it now: http://news.ycombinator.com/item?id=3161245

also, it wasn't really scratch that they didn't approve, it was a scratch player. The player downloaded and played scratch programs from the website. This continues to be something that is not allowed. I would like to see apple reverse this decision though.

If Apple doesn't ban this app, it will be a dramatic about-face from the offensive "no code other than what we permit" policy they've held since day one. I don't think it's naïve to be surprised they might actually cave after so many years of criticism by makers went nowhere. Hell, if they're going to start treating me like a human being and actually mean it, I might even buy one.

It's meant as a humorous reference to all the content creation v. consumption talk when the iPad came out. http://allthingsd.com/20110302/so-tablets-arent-for-content-...

Not everything has to be serious.

And yours?

  "A lot of times, people don't know what 
   they want until you show it to them."

  - Steve Jobs

Take another look at the Music section of the Appstore. All-too-many content creation tools in there, you know ..

With more apps like this, hopefully that will change.

Until then, more angry birds!

Somebody forgot to tell you that the created content can only be used by you and not others. This is because the app is prohibited by Apple from downloading and running code. Want to run a cool program you wrote on your mom's iPad? Gotta type it all over again. This is because Apple prohibits apps from running downloaded code. How useful is that? Not to mention the banning of similar apps that don't use Lua or JS and even prototyping apps. This prototyping app was in limbo in the app store for 3 months before the developer just gave up in disgust. http://blog.robrhyne.com/post/1015614125/google-voice-says-h...


Now THAT is(or could've been) a useful content creation app, but you can't have it.

In contrast, even MS with a similarly closed ecosystem, provides a development system on Windows Phone with a tool from Microsoft Research that allows users to write, share and run code from the cloud directly on the phone. http://research.microsoft.com/en-us/projects/touchdevelop/

<aside> Diehard VI/Emacs fans are still getting over their aversion to IDEs - now you're going to make them TOUCH! That'll make their heads explode! </aside>

Emacs already supports touch gestures: https://github.com/greboide/emacs-gestures. As ever, we have it all ;)

While it's actually completely different from this, the way it worked on Emacs was neat too. Unfortunately, the video of somebody demonstrating the gestures seems to have been removed.

The one neat trick from there I remember is that you could touch a list function name, draw a question mark and get the documentation of the selected function. When I get a tablet (one of these days...) I'll have to try it out.

I'm a diehard vi fan and I loved what I saw. That IDE makes me want to get an iPad.

Don't. iPad is kinda useless gadget for developers, unless you develop for iPad and use it as test target.

Am getting back to my linux netbook.

That looks pretty cool. Real programs tend to require an awful lot of input and tweaking though. I wonder what the development cycle is like? How fast do things compile on an iPad?

I would assume compile is very quick, as the only thing happening is the Lua the user writes is being added to the game logic and interpreted. Everything else, the rendering engine and such, comes already done with the app. Lua has very fast execution.

I've been using moai recently, which is a cross-platform Lua-based environment for developing (mostly) 2D style games for Android and iOS, and just last night was talking to a co-developer buddy of mine about the very real possibility that we could use moai to build a moai development environment on the iPad .. and now: this.

So, it looks like this is very feasible, and I have to admit to instantly buying this application the moment I read this HN article .. but I haven't had any chance to grok it yet.

If it works out, this could be the start of a new era for iPad/iOS development - certainly my iPad is good enough for editing lua scripts, and with a delicious framework like moai around (I really, really like it) I think it would be very viable. What an exciting future we iOS developers have!

somehow my idea of the ultimate coding platform for touch interfaces would be more symbolic/graphical (eg a few of wouter's languages, see http://strlen.com/language-design-overview or scratch from MIT). I know there are many limitations in that approach, but nonetheless it would be neat to push (or nudge) the boundaries of the modern development style.

Definitely - Grasshopper (http://www.grasshopper3d.com/) has kind of taken over the architecture world for being graphical / patch based.

Even though, my introduction to programming was through vi and notepad, often I find that when I'm trying to teach kids how to program, they're turned off by the 'clunkiness' of IDEs and compiling.

Imagine how amazing of an introduction to the world of programming Codify would enable for kids. Teaching computer science in elementary schools will become so much easier and fun. This looks like something kids would love to use. And perhaps, it'll enable a new wave of young hacker/entrepreneurs who'll go on to make more awesome products.

I think this is exactly the idea behind projects like BYOB/Scratch (http://byob.berkeley.edu/). I think it's pretty successful at introducing people with no previous experience at all to programming at Berkeley, at the very least.

Coincidentally, making a Scratch app for tablets (I suspect Apple may not cooperate, but it could be for Android) would be really neat.

I wonder if Squeak will be allowed back in the AppStore now?

Could someone explain the downvotes?

Game dev is great, but I'd love to see tools like this that let do more advanced scripting in a visual fashion without the emphasis on the visual aspect, such as sprites or animation. Processing is great at displaying things, but not so great at, you know, processing.

Similarly, I long for an easy to use scripting language environment on the tablet itself that doesn't require one to know HTML, CSS, JQuery, etc. and is not so focused on visualization and sprites, but instead just lets you create a page or tabs, get some data, do something with the data, and display a result while impacting another service. This would empower people to create their own experiences on the tablet instead of hoping some developer hits on their exact combination of needs.

I know, all HN readers are super-programmers, but I think back to the old days when folks wrote simple basic programs on their C64/Atari/Apple/etc. to solve simple problems... and how that's so difficult today on PCs, but could be brought back to life in the consumer-friendly world of tablets...

Hypercard for iPad? Brilliant!

It's very sad that I wrote that entire comment and didn't think of Hypercard. I agree, it would be interesting to have Hypercard "The Next Gen" on iOS devices... it did have a very good approach to solving what I mentioned above.

Check out http://www.runrev.com, they have a product called LiveCode which is a modern day HyperCard. It can compile to iOS, Android, Windows, Macs and Linux.

Beautiful work. Seems like this would be great for teaching kids to program.

My thoughts exactly. I've been trying to figure out the best way to introduce my kid to programming, when it becomes relevant. Games are probably the most engaging type of software for children.

This app is just what I've been looking for. On a PC, even the best educational programming environment can't get rid of all the PC-related overhead. You can't beat an iPad for simplicity; no need to learn about filesystems, your app runs full screen by default so there are no distractions, etc. You can just pick it up, dive right in and make a game.

I think that touchdevelop on wp7 feels much more natural for coding on touchscreen. I hate to write on soft keyboards

Or use a bluetooth keyboard?

Bingo! Apple Wireless keyboard works wonderfully on iPad.

Just finished porting a javascript fractal tree generator, the javascript version is at


and the code to run in codify is in the textarea (small)

Brilliant! Nice work .. I like the fact that we've got 'typeins' for this already. Just like the good ol' days of waiting for 'new software' to arrive in the mail, in the form of a ZAP magazine or so ..

I was thinking before that something like this needs to come to Android, too. Instead of emulating ARM hardware on x86 chips, you could directly build your app on an ARM machine. I suppose you'd still have to emulate other ARM devices, but I think it will work a lot better than on x86 chips.

Maybe Google can work with Eclipse to port it over to ARM/Android. Developers could get hybrid devices like the Asus Transformer to code on them.

The moment that moai (http://getmoai.com) gets an onboard editor, this will be a reality. I give it a few weeks. :)

Wow, this looks pretty awesome. Nice job twolivesleft!


The color picker - IDE integration is really slick!

"Wouldn't it be nifty to have that color picker in Vim?" a friend posed the question after my showing him the video.

Maybe: http://www.supaspoida.com/2011/10/26/a-short-story-about-a-t...

(note: I didn't develop this, just sharing it with you all)

Codify's talks about import/export functionality via email coming in an update already submitted to Apple in this thread:


It will be interesting to see if Apple allows them to do this.

Reminds me of Klick & Play back in the early 90's: http://en.wikipedia.org/wiki/Klik

This app looks like the perfect thing for prospective obj-c devs to get that "I gotta make something cool now" monkey off my back.

As a side note. Is Lua as a language any good? Will it continue to be used in the future?

Yes, Lua is an excellent language and used very heavily in the games industry - a LOT of AAA games use Lua for scripting. I don't see it dying out in the foreseeable future.

Furthermore, on platforms where it is supported, LuaJIT provides a blazing fast implementation (and includes a very very simple to use FFI to make embedding in C even easier) which has shown to be competitive with C in some benchmarks.

Lua is pretty well established in the gaming world as a lightweight but fast scripting engine. It seems to be gaining some momentum in other domains lately too. It's somewhat similar to Python but without the extensive standard library.

It's not going away but it's hard to say how much bigger it will grow. It seems like a good fit for mobile devices. It's used in Corona, for example.

Edit: corrected Cocos2D -> Corona. Thanks!

I think you mean Corona, not Cocos2D. The last time I used cocos, it was strictly an objc library to make opengl dev easy.

I've dabbled in it. It's neat. In many ways a lot like Javascript but without some of the design errors (I'm sure some will argue that Lua has its own design errors).

For some more comparison I found this on SO: http://stackoverflow.com/questions/1022560/subtle-difference...

Have a look at moai: http://getmoai.com/

I've been using it the last few weeks and I think its a bloody brilliant approach to game development. I can't recommend it highly enough for those wanting to build a cross-platform (Android/iOS/Chrome) 2D game .. its already being used to make big pro games (see Crimson Tides for example) and I see it having a big future as it takes on more and more features..

Played around with it a bit, very cool.

I would love to see iCloud support and a desktop version. It would be awesome to have something like the Processing IDE with a sketchbook that automatically syncs between my devices (e.g. my iPad and MacBook).

this app also brought out some other options, check out paragraf where you can write glsl pixel code. http://itunes.apple.com/us/app/paragraf/id422685475?mt=8

It is the complete opposite in terms of ease of use, but it is still executing code. Also broken glsl code is way more likely to hard crash your phone than broken lua code.

There are some other options mentioned here: http://digitaltools.node3000.com/blog/3310-coding-ipad-coder...

This is fantastic. How lovely would it be if Apple bought this up for iOS Xcode. I have a feeling some day there will be a way to write iOS apps on iOS, provided by Apple.

I just bought the app and it is pretty simple and cool. My wish came true. I was wondering if I could script without going to learn c objective.

Why not go all the way and create a graphical programming environment? I've felt that this is long overdue.

The problem with graphical programming is that it is inefficient when it comes to using a large API. There are only so many icons and graphical objects you can fit on a screen, while still making it easy for users to find them.

That's why they are restrictive, they have to choose only a narrow set of methods to expose to the users. By narrowing their available functionality they also become useful for a smaller domain of problems.

Codify does not try to replace text-based programming, but instead to make it easier and sometimes more efficient for graphics-intensive programming. For example, the easy to reach color selector is much faster than having to use a separate tool to get the numbers for the color you want. Same thing for the image selector.

The Max/MSP environment gets around this problem by representing most of its rich library of objects as simple rectangles with descriptive names. People do manage to build some pretty sophisticated programs with it.


This was a popular trend in the 90s e.g. http://en.wikipedia.org/wiki/Prograph

Check out the Mactech articles in the references.

I even wrote a decent size app in prograph. While I really liked it a large code base was really hard to navigate and maintain. Also you couldn't email code snippets around easily.

I wonder if someone will make a Piet editor for iphone/ipad!


you might want to take a look at stencyl as well, it isn't for ipad, but it is a pretty fully featured game dev tool that uses the scratch style programming.

I've love to see http://moonscript.org support.

I'd love to see something like this for javascript

I can't see writing text-based Lua scripts on an iPad as anything other than an anachronism.

This looks fun. Would be great in schools, even entry level Computer Science classes in Uni.

Examples are good,would teach my 8 year old daughter to program in a fun way

One word, Impressed :)

Since it is about programming, I would love to have version control do that my kid starts using it as well.

How to share code ? Dropbox integration would be nice

Heroku style deploying the code in server would make it awesome

My #1 feature request- support sprite sheets for animated sprites!

Seems a smalltalk IDE-like intention. With fingers, though.

Beautifully simple single product page. I've recently become a convert to no gradients, flat buttons etc.

Great, now I need to do a bunch of screen touching along with my typing. What a waste of time.

would be cool if it had github support

Speaking as someone who's been around a few decades... Oh look, yet another way to create graphical games! I'll just add that to the list, near the end. It's a long list. :)

Purty looking, but color me not impressed. I already can sense what the constraints will be, and they aren't good. And I've gained really nothing new I couldn't already do before.

How long until Apple shuts it down for using a language other than Objective-C?

Apple already allows JS (and other) interpreters to be embedded as used in projects such as Titanium and Impact game engine.

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