13 ms·
Codify: native coding environment for iPad
- bstar77 15y agoReminds me of Klick & Play back in the early 90's: http://en.wikipedia.org/wiki/Klik 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.
- pshc 15y agoSome 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!
- greatquux 15y agoI 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?
- Swizec 15y agoThey 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.
- podperson 15y agoI 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.
- nickmain 15y agoSharing games with others would be the problem, as acknowledged by the creator - http://twitter.com/#!/TwoLivesLeft/status/129304975623995395 http://twitter.com/#!/TwoLivesLeft/status/129304975623995395
- d5tryr 15y agoUnderstandable too. I don't want code that hasn't been curated breaking my ipad...
- alexhaefner 15y agoLua 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.
- hiraki9 15y agoApple relaxed their restrictions 5 months after announcing them: http://daringfireball.net/linked/2010/09/09/app-store-statement http://daringfireball.net/linked/2010/09/09/app-store-statem...
- softbuilder 15y agoThat 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?
- alexhaefner 15y agoI 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.
- thepumpkin1979 15y agoI 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.
- angelbob 15y agoNot at the speed you're seeing there. Also, obviously you're not seeing the keyboard come up blocking the environment :-)
- d5tryr 15y agoJust 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).
- socialist_coder 15y agoWow, this looks pretty awesome. Nice job twolivesleft!
- Michael_K 15y ago+1
- stephth 15y agoThis 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!
- bliss 15y agoWho doesn't have hoverboards?! http://www.smartplanet.com/blog/thinking-tech/a-hoverboard-powered-by-quantum-levitation-video/9065?tag=nl.e660 http://www.smartplanet.com/blog/thinking-tech/a-hoverboard-p...
- jbrennan 15y agoThis 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.
- psychotik 15y ago<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>
- satiani 15y agoI'm a diehard vi fan and I loved what I saw. That IDE makes me want to get an iPad.
- varjag 15y agoDon'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.
- tikhonj 15y agoEmacs already supports touch gestures: https://github.com/greboide/emacs-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.
- efnx 15y agoWhy not go all the way and create a graphical programming environment? I've felt that this is long overdue.
- mamp 15y agoThis was a popular trend in the 90s e.g. http://en.wikipedia.org/wiki/Prograph 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.
- satiani 15y agoThe 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.
- cageface 15y agoThe 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. http://www.cycling74.com http://www.cycling74.com
- minikomi 15y agoI wonder if someone will make a Piet editor for iphone/ipad! http://www.esolangs.org/wiki/Piet http://www.esolangs.org/wiki/Piet
- jonbro 15y ago
- aboodman 15y agoBeautiful work. Seems like this would be great for teaching kids to program.
- guygurari 15y agoMy 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.
- gojomo 15y agoNotably, this fits into YC's "Request for Startups #5: Development on Handlhelds": http://ycombinator.com/rfs5.html http://ycombinator.com/rfs5.html
- alexhaefner 15y agoOnly 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.
- nl 15y agoIt'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.
- tswicegood 15y agoIt looks like this is something that the developer is already thinking about. https://twitter.com/twolivesleft/status/129304975623995395 https://twitter.com/twolivesleft/status/129304975623995395
- alexhaefner 15y agoOh 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.
- nl 15y agoIs there a particular reason why you think this won't happen at some point in the future, too?
- leafo 15y agoI've love to see http://moonscript.org http://moonscript.org support.
- deleted 15y ago[deleted]
- reustle 15y agoI'd love to see something like this for javascript
- killion 15y agoSomebody forgot to tell these guys that iPads are for content consumption, not creation.
- alexhaefner 15y agoI'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.
- killion 15y agoIt'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-creation-huh-the-ipad-2-begs-to-differ/ http://allthingsd.com/20110302/so-tablets-arent-for-content-... Not everything has to be serious.
- nl 15y agoIt 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.
- prodigal_erik 15y agoIf 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.
- prayag 15y agoActually 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-scratch-from-ipadiphoneitouch/ http://computinged.wordpress.com/2010/04/15/apple-removes-sc...
- ddelony 15y agoHow long until Apple shuts it down for using a language other than Objective-C?
- XLcommerce 15y agoApple already allows JS (and other) interpreters to be embedded as used in projects such as Titanium and Impact game engine.
- socialist_coder 15y agoMy #1 feature request- support sprite sheets for animated sprites!
- jayfuerstenberg 15y agoThe color picker - IDE integration is really slick!
- dmix 15y agoAs a side note. Is Lua as a language any good? Will it continue to be used in the future?
- cageface 15y agoLua 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!
- catch23 15y agoI think you mean Corona, not Cocos2D. The last time I used cocos, it was strictly an objc library to make opengl dev easy.
- dkersten 15y agoYes, 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.
- seclorum 15y agoHave a look at moai: http://getmoai.com/ 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..
- ams6110 15y agoI'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-differences-between-javascript-and-lua/1022683#1022683 http://stackoverflow.com/questions/1022560/subtle-difference...
- nl 15y agoI wonder if Squeak will be allowed back in the AppStore now?
- nl 15y agoCould someone explain the downvotes?
- cageface 15y agoIt'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.
- deleted 15y ago[deleted]
- zackattack 15y agoClassic sign of disruption. Feels like a toy, looks like a toy. Just not good enough.
- djacobs 15y agoI 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.
- cageface 15y agoI 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.
- seltzered_ 15y agoGood 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.
- sidjha 15y agoEven 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.
- tikhonj 15y agoI think this is exactly the idea behind projects like BYOB/Scratch (http://byob.berkeley.edu/ 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.
- jshowa 15y agoGreat, now I need to do a bunch of screen touching along with my typing. What a waste of time.
- brianobush 15y agosomehow 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 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.
- shashashasha 15y agoDefinitely - Grasshopper (http://www.grasshopper3d.com/ http://www.grasshopper3d.com/) has kind of taken over the architecture world for being graphical / patch based.
- CyberFonic 15y agoChill !!! 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.
- openbear 15y agoPlayed 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).
- nedwin 15y agoBeautifully simple single product page. I've recently become a convert to no gradients, flat buttons etc.
- navs 15y agoThis looks fun. Would be great in schools, even entry level Computer Science classes in Uni.
- greggman 15y agoThis 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?
- ricardobeat 15y agoI really wish this butt-hurt comment wasn't at the top. It's a beautiful app.
- dendory 15y agoWhy 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.
- Tichy 15y agoUh, 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.
- simonh 15y agoIt'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.
- antimora 15y agoI 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.
- deleted 15y ago[deleted]
- yread 15y agoI think that touchdevelop on wp7 feels much more natural for coding on touchscreen. I hate to write on soft keyboards
- evo_9 15y agoCodify's talks about import/export functionality via email coming in an update already submitted to Apple in this thread: http://forums.toucharcade.com/showthread.php?p=1975221 http://forums.toucharcade.com/showthread.php?p=1975221 It will be interesting to see if Apple allows them to do this.
- mkramlich 15y agoSpeaking 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.
- nextparadigms 15y agoI 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.
- seclorum 15y agoThe moment that moai (http://getmoai.com http://getmoai.com) gets an onboard editor, this will be a reality. I give it a few weeks. :)
- seclorum 15y agoI'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!
- jonbro 15y agoyes 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 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
- metachris 15y agoMinor 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/ http://www.anscamobile.com/corona/ [2] http://getmoai.com/ http://getmoai.com/
- jonbro 15y agoyeah, 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.
- senthilnayagam 15y agoExamples are good,would teach my 8 year old daughter to program in a fun way
- senthilnayagam 15y agoOne 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
- karpathy 15y agoI made a simple particle simulation in Codify in around 30 minutes: http://www.youtube.com/watch?v=QEqTvRd8qMM 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.
- colomon 15y agoWoah, 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. :)
- jonbro 15y agothis 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 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-coders-paragraf http://digitaltools.node3000.com/blog/3310-coding-ipad-coder...
- mojdril 15y agoSeems a smalltalk IDE-like intention. With fingers, though.
- rbxbx 15y ago"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-tweet-a-video-an-idea-and-its-execution.html 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)
- mwexler 15y agoGame 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...
- tammer 15y agoHypercard for iPad? Brilliant!
- mwexler 15y agoIt'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.
- soapdog 15y agoCheck out http://www.runrev.com 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.
- the_mat 15y agoI can't see writing text-based Lua scripts on an iPad as anything other than an anachronism.
- sandieman 15y agowould be cool if it had github support
- mcdaid 15y agoJust finished porting a javascript fractal tree generator, the javascript version is at http://www.mcdaid.eu/labs/codify1 http://www.mcdaid.eu/labs/codify1 and the code to run in codify is in the textarea (small)
- seclorum 15y agoBrilliant! 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 ..