97 comments

[ 6.3 ms ] story [ 194 ms ] thread
That's really impressive. I've been working on a web only code editor for a few weeks (on and off), so I can appreciate the work gone into this.

They built it using Objective-J (according to the source code).

You've no idea how good it is to see an IDE on an iPad. Editing doesn't seem to work, but so what; it's _there_
We are aware of this and are working on an on screen keyboard, kind of like this: http://googleblog.blogspot.com/2010/04/integrating-virtual-k...

To answer the question below: we would need a custom layout to ensure all the curly brackets and other common JS chars are one tap away

Why not use the buit-in keyboard-UI in the iPad?
It looks like the UI uses an editable div. I believe that editable divs do not trigger the built in keyboard on an iPhone, and there's no way to force it to do so.
Alright, but shouldn't the solution be to allow the user to use either Google's keyboard or the built-in(by using textarea)?

The built-in one has a dictionary and some autocompletion, which could be good or annoying... :)

Most likely annoying if you're writing code.
Perhaps, maybe on par with seeing some home-made keyboard on screen. IMHO.
Yes, a custom keyboard for this kind of app should include the necessary buttons for JavaScript. Curly braces, etc.
I have played with making an absolutely positioned single-char text input box in my custom editor (https://github.com/dnewcome/richie). The idea is that it forces the built-in keyboard to show but the input is caught and inserted into the DOM. I don't use contenteditable since it doesn't work on most mobile devices. My hacks are really rough but I think the technique could be polished eventually.
Don't work on iOS. In my web app, I display a plain textarea for iPhone and iPad, but it's not an IDE.

Why doesn't @contenteditable work on the iPhone?

http://stackoverflow.com/questions/723592/why-doesnt-content...

Is contentEditable not supported by iPad?

http://www.quora.com/Is-contentEditable-not-supported-by-iPa...

AFAIK it supports contentEditable, but just doesn't show the keyboard for those elements. So theoretically formatting commands and such work.
yogsototh thank you for submitting this. We are seeing 150 or so concurrent users on the site due to this at the moment. I'm retweeting some of the other online reactions we're getting at https://twitter.com/akshell_com
150? It's only the beginning :)
You were right ;) I'll write a blog post about it once things calm down a bit.
Interesting tweet: "... someone made the old @heroku for node.js" -- did Heroku start out as a browser-based app builder?
Yes they did, they were in the same batch as AppJet as well.
Actually AppJet was summer 2007, Heroku was winter 2008.
Oh, then I've had it wrong for a while now. Thanks for pointing it out.
Yes, Heroku was the first. I tried it out. It was fun, but I think they realised that though it was a novel idea, it was not the _Big Idea_, and they replaced it with what they now have. That's pretty inspiring when you consider how much work they threw away and how that decision has been rewarded.
Maybe the timing was just wrong? The browsers are fast enough now and users, including developers, are much more comfortable with web apps.
I think it was less about speed and more about trying to replace peoples' editor / workflow. People are very particular about the tools they use and putting the editor and deployment in the browser doesn't do much in terms of productivity (and probably more counterproductive than anything else)

Screenshot: http://weblog.rubyonrails.org/2008/2/7/write-rails-apps-in-y...

Yes, I remember speed being an issue, and I wasn't trying to subtract from the usefulness of this creation.
I would say what they threw away was essentially a gimmick. Assuming the functionality of Heroku was the same before and after, publishing from github rather than publishing based on editing files online doesn't change their offering.
Be nice to see a non-OSX skin. :P
You could write your own, the interface is fairly open and Firebug is all you need.
Took an hour and a bit yesterday to improve my eBay listings, like so: http://tinyurl.com/67dou5n (link to the app, not eBay).
That's neat Roman, didn't know you were working on this. I'll have to put you in touch with somebody else who wanted to build an eBay app on top of Akshell.
Impressive. May I ask what libraries do you use for the menubar and all UI widgets?

Also, is the web a "pretty proxy" that redirect everything to a node.js server which does the actual work?

It's a kind of a Javascript framework called Cappucino, I assume.
Good work. As author of Ace (the source code editor) I'm always happy to see it being used. Do you guys have Cappuccino bindings for Ace you might consider sharing?
We will share it on our blog and mailing list. It's quite simple, only 200 lines of code.
Thank you so much for making this. I'm learning to program, and an intern at a place where I can't use my computer, can't install anything on their windows machines, and have a lot of free time. You just made my life a LOT better.
Sounds like you need to get a better internship =]

Mind you, if it pays well and you have enough spare time to pursue your own interests then it might not be such a bad thing overall!

Oh, it's unpaid. But I have to do it for school credit to graduate :(

I'm a political science major.

Maybe we should start paying you for building Akshell apps for our clients? That way you can do what you enjoy and get paid for it, while getting your CV points as well ;)
Can somebody who has used both Akshell and Cloud9 IDE post a brief comparison?
I didn't used both but gave try to bespin when it appeared (it evolved to cloud9 as i know) and liked. it's an advantage to have a universal gui, to not ignore users of other platforms.

btw, i put some effort to build an online ide 4 years ago. i stopped maintaining it because my dream tool was evolved to firebug lite. anyway, my died ide can be seen at vimeo.com/azer for some web nostalgia

Just a small correction, Bespin evolved into Ace (which Akshell uses as their code editor), which was created by the guys that created Cloud9 (Ajax.org). Cloud9 is the actual IDE that uses Ace as its code editor.

Find ace here: http://ace.ajax.org and Cloud9 here: http://c9.io

thanks for correcting. I've tried akshell also, it seems great.
From my very brief test of both:

The main difference is that cloud9Ide is a general purpose IDE, while akshell is intended as a tool for Akshell platform development.

Akshell is an IDE (version 0.3 currently) to create javascript apps on the Akshell infrastructure. Which seem to be based nodeJS, or something similar:

  "The Akshell engine is based on Google V8. It compiles JavaScript code 
  into native code; so execution is utterly fast."
The Akshell infrastructure seems to be composed of a javascript/html framework, a relational database javascript API, the IDE to create apps, a git server to host code, and a infrastructure to handle deployment and scale of apps. It claims that the platform will be open sourced soon, so you will be able to host apps on your own server.

The cloud9ide is a more general IDE, with syntax highlight for various languages: javascript, ruby, python, html, css, coffee script, XML, PHP, and more may be added in the future. Some features provided are integration with github, nodeJS debugging, team chat and team management, an extensions mechanism, and themes.

I find syntax highlight to perform similar on both IDEs.

Cloud9ide license is free for open source projects, with a monthly fee for private projects. I couldn’t find license terms on the Akshell Ide. Currently they are on open beta, and I suppose that pricing terms will be announced at a later time.

In a similar vein, people should check out Ares SDK from Palm for WebOS. It is an entirely browser based IDE for creating apps for WebOS, which are also written using their Javascript/HTML/CSS based APIs.

edit: https://ares.palm.com/Ares/about.html

This is really cool. Your docs are well put together, and simple. It looks like you put a decent amount of time into them, which I really appreciate. Too many apps write the docs as an after-thought just before launch.
This is pretty good timing given we (Akshell) submitted to YC last night. Bad timing in the sense that I've only had two hours of sleep.
Slick design, however, I don't understand the buttons. Why is 'eval' a joystick and commit a box?

Also, whenever I hit Preview I get a 500.

We're changing that joystick to a VCR like play button.

The commit one being a box hints at a shell or terminal, since we couldn't find an official Git icon. Could maybe put the GitHub Octocat there - what do you think?

You would have to ask Github, as they own the copyright to Octocat.
Thanks for pointing out the 500 error occurring for new apps. Existing apps are unaffected and we are looking into it.
Sorry, guys. We have SSH key pairs pregenerated for speed reasons and we've just run out of them today. Now everything should be OK.
awesome work, but FWIW, the first thing I get in the git console for help is two lines of "undefined", and an internal server error for "lol" in the eval screen, using chrome on ubuntu. But you are probably being overloaded ATM so I'll just wait and try again later :)
Yes, we're being hammered pretty hard. Thanks for pointing this out, will look into it right away.
No love for IE9?!
It works, but there are slight rendering errors with popups. We wanted to make sure it was perfect before officially supporting it. If you're really keen to see it in IE, you can fake the user agent headers to pretend to be Firefox or Chrome.
Well. This is a good way to make my JS looking insignificant by comparison.
Looks like it's built on Cappuccino:

http://cappuccino.org/

It's only recently become viable to use because of the performance improvements all the browsers have been making to their javascript engines. Last time I tried 280 slides it was painfully laggy (http://280slides.com/Editor/).

Not that I'm belittling the effort, it's pretty amazing work nonetheless.

But have a play with cappuccino if you want to see what's doable!

Yeah. I saw a 280North presentation at FOWA Miami a few years back. Those guys are great.
(comment deleted)
Thanks, now I'm not going to pay attention in class... :)
What class is this? If it's anything programming related, perhaps we can introduce Akshell into the curriculum? I'm already talking to some universities in Europe.
Some worthless Communication class, I'm all for introducing Akshell into that class!
Looks great! Do you think you'll be including support for CoffeeScript?
Yes, we think about it. CoffeeScript support should be easy to implement and seamless to use.
Wow, this looks really great.

One small suggestion: can you s/git// on the git shell? because I'm really used to type "git <cmd>" in a shell and it's hard to change the habit.

I ran into this immediately as well.
Thank you! We'll do something about it. May be we'll have a more universal console, where git will be only one of the commands.
* A little bit faster. It's just fine for typing, but the menus and toolbar are a little bit slow.

* Why only GIT? Support Mercurial with bitbucket if possible.

* Add a context menu when user right clicks the mouse. It's important to have a copy/paste feature for files for example.

... and I'll move my JavaScript coding to it.

Looks very well done. What I don't like is that is has a slow feel to it.
We're working to optimize it as much as we can. Which browser/OS/hardware are you on? If you're not on Chrome, can you try running it in that first and let me know if you see a speed increase?