Hacker News new | past | comments | ask | show | jobs | submit login
Kickstarter for an Open Source Programmer's Text Editor using HTML5 (kickstarter.com)
78 points by flaminglunchbox on July 26, 2011 | hide | past | favorite | 52 comments



Sorry to be the one to ask this, but why can't you start this as an open-source side project? I'd be more inclined to support improvements to a core product rather than support another (what seems like) pie-in-the-sky project -- I'm referring to the promises of GPU acceleration, client-side github/dropbox integration, syntax highlighting, scriptable interface -- none of which are trivial for even a full-time developer.


It's tough enough making money as an independent developer as is. I really can't afford to work on this as a side project. As for the pie-in-the-sky... reuse as much as possible. With the exception of GPU acceleration everything exists as either side-effects of the implementation (javascript scripting for extensions) or as an available library (dropbox/github integration). Not that I'm saying it is easy... I wouldn't have a Kickstarter otherwise.


GPU acceleration isn't going to make a difference here. Bespin started as Canvas-based and moved to Ace's DOM based rendering because there wasn't a significant performance advantage to keeping it on canvas.

Mozilla and the ajax.com guys have put a significant amount of effort into this area (the current system is the third rewrite for the Mozilla guys) and both teams had a pretty good set of js hackers. I disagree with some of the decisions made (mostly due to scope and what I think is important vs what they think and my background in writing several Vim plugins) but the decisions weren't made from technical ignorance or not being willing to experiment with non-DOM backends. If you aren't familiar with what they're doing, you're going to spend most of your time rediscovering pain points. The simplest example I know of is that there isn't a good way to figure out exactly what the user typed other than having them type into a hidden text field and reading the results back. The obvious approaches seem to work for US/EU keyboards but fall apart on the CJK family.


Yeah, there isn't a very good interface between the events passed to Javascript and IMEs yet... and this causes the headaches with non US/EU input. I had the hidden text field method down as a last ditch workaround.

I do plan on learning as much as possible about the current attempts to do similar projects. But I feel that the current options do not adopt enough of a "get out of the way" approach for me. I'm hoping to write an alternative for those who don't want a browser based eclipse. I've been poking at WebGL for this and I really do think it can help... but I also understand that I may be eating my words here shortly.

Thanks!


Ironically, Eclipse doesn't want a browser-based Eclipse either.

http://www.eclipse.org/orion/

Their Orion project takes a very different approach of integrating services from all over the web and includes GitHub integration out of the box. It does have a server side part, but it also has a ton of client side code (that's all BSD-licensed!)

Their rendering is based on contentEditable, which means that it handles RTL text better than anything else and is likely to be accessible to disabled people. (For these reasons, we're working on including this editor in Firefox!)

As far as straight up programming editor functionality goes, Ace is hard to beat. It's got extensible keybindings (someone has built vi bindings, emacs is also possible). And don't let the DOM part throw you off... keep in mind that a canvas is DOM also – you could draw a canvas minimap if you wanted to.

And, as others state, if you really want to use canvas for rendering, you can pick up the Bespin code. The last version produced didn't have the server side and all of that stuff.

I think JS-based editors are the future, but I don't think brand new editing components are where the action is at: the action is in the stuff around the editing component.

(ObDisclaimer: My biases come from having worked on Bespin and Mozilla's other developer tools...)


I would strongly urge you to consider starting out with ACE instead of relearning the lessons learned by those who came before you. ACE is a well-tested, relatively-performant, extendable-by-design basis for any web-based text editing project. I followed the mailing lists for a long time, and it was not a trivial decision for Mozilla to abandon their efforts with Bespin in favor of ACE, but it was a necessary one.


I particularly like the Extendable with JavaScript part.

A minimalist kernel implementing the Js API, the windows (with a possibility to split them), the plugin and a theme system is the way to go IMO.

No cloud, no extra feature. Everything else can then be added by plugins. Git integration with github? No problem. Backup with DropBox? No problem. Syntax Highlighting? Np.

It'd be particularly awesome with the plugin system.. if you can browse and see new addons/plugins. Same with the theme.. where anyone could upload their tweaked theme. :)

I can't wait for something like this to exist..

  (let x (new awesome-web-based-editor)
    (while (not (ready? x))
      (sleep)))


That is the goal. So much of the functionality is already present in the browser. We can use the browser's Javascript interpreter, tabs, web connectivity, etc. We just have to put these together to create the core. To answer your other post this is how 4K becomes doable... especially since this is a project I want to do so badly.


Kod (http://kodapp.com/) has a node.js-based integrated scripting environment, but I don't know if plugin functionality reaches the power you describe, and I'm not even certain there are any third-party plugins. It would be incredibly powerful, especially since you could probably export plugins as a URL to a minified .js file.


It's not web based though


I am very interested in an open source web based ide, I would probably take note from bespin moving from canvas to dom is that reimplementing a whole bunch of stuff from scratch that you get for free with dom is a hard thing

I have looked at cloud9 and its an awesome project, but I feel uncomfortable developing against it because it doesnt feel "open source", can anyone expand on their experiences with it? I sent in one patch was ignored and it seems all / most development is aimed towards their commercial offering.

I would probably feel more comfortable if there was a completely open source community edition which cloud9 was downstream from, somewhat like chromium / chrome


We just released this over the weekend, it was built from a very similar mindset - Cloud9 looks great but not 'open' enough. If you like it, pass it along: http://www.wiode.com


The way you can tell an idea's time has come is that it starts showing up everywhere. ;-)


Sorry, but wiode isn't an "IDE" to me. What's "I"ntegrated? Where's the "D"evelopment "E"environment? While I do appreciate and like the push to new technologies, let's keep the terminology straight....

Coloring some keywords might make things look pretty, but it surely doesn't make it all by itself an IDE or even a good text editor. Line numbering isn't a 'feature', that's a basic necessity. If these things are taught as 'features', what else is a 'feature' then? The ability to save the text without errors? Let's raise the bar here, please.

For me, Eclipse or VisualStudio is an IDE. Aptana (now Appcelerator Studio) is also more than just an editor. TextMate, VIM, Notepad++, UltraEdit and the like are not IDEs. They are (mostly dumb) text editors.

Personally I draw the line at whether there's contextual code-completion provided via instant introspection or background compilation.


I hate to be that guy, but why use the GPL? Why not use MIT, which is popular in the Node.js community, or Apache 2, which is popular in the CouchDB community, or even a tri-license like the ACE Editor and many other Mozilla-related projects use?

GPL or not, I wish you luck in this project.


The GPL doesn't even mean much for SaaS. The AGPL is the license that best fits in with the FSF ideals in that scenario.


GPL was chosen in this case as it was the best way for us to maintain control and fund this as a startup. That final pledge tier wouldn't exist otherwise. As we're trying to do this without large amounts of financial backing it would be difficult to ensure that development stayed open otherwise.


I don't understand how having a GPL license will improve your funding situation.

Are you expecting that people will come along and pay $4,096 for an MIT license?

If they were doing it to support the project, then they would do it just the same if it was MIT to begin with, but who would do this just to get a different license?


The idea is that if a company wants to reserve the right to customize, commercialize and close the code they can... but only by supporting the completely open version first.


The GPL won't do that for SaaS. You need the AGPL.


There's no planned SaaS component to this. It should primarily all be client-side and interface with established SaaS systems instead of requiring its own.


bespin, cloud9, etc. there are quite a few mature, free options out there already doing a great job.


There are some. Bespin is now merged into ace and cloud9 is the actual full-featured (has someplace to save without further integeration) implementation. And cloud9 is sadly not free for non open source projects. I find that they aren't satisfactory for my everyday use.


Running cloud9 on their hosting isn't free for non open source projects, but you're welcome to download the source from GitHub and install it on your own server.


Why Canvas for rendering text? Makes very little sense, DOM hardware render support is better on many platforms right now.


Agreed. DOM rendering support has gotten really good over the past year. I want to try a different approach that will make everything seem smoother. Also, since with this sort of text editor you want everything to be aligned in a grid the rendering becomes a set of aligned glyphs... so the GPU rendering can be optimized more so than when considering the entire DOM. If there wasn't that simplification I wouldn't even be suggesting this.


Finally someone who's going to port VIM! to the browser ...right? Right? RIGHT? :(


Fabrice Bellard already did it:

http://bellard.org/jslinux/


That man is tough to compete with ;-)


That's an understatement!


I see vi, no vim.


Just modify the binary to include vim and upload it.


Didn't Bespin already do this?


Yep, and they did it well!

Here is a demo if you are interested: http://ajaxorg.github.com/ace/build/editor.html

And here is the GIT repo: https://github.com/ajaxorg/ace

Notice the last commit was only hours ago, so its still quite active

How will this be different?


Yeah, Bespin was trying a similar approach with regards to rendering. They had a lot more baggage (server side code, workarounds for issues that have now been resolved) that is no longer necessary. They've now merged into Ace though and the rendering approach was scrapped in favor of a DOM-based method. I think this gives it a lot more overhead than is necessary.


So are you planning to take the last canvas-based release of Bespin, rip out the crap, and improve from there, or are you going to NIH it?


I'm going to be looking very carefully at Bespin, Ace, CodeMirror and Ymacs. Not sure which, if any, pieces I'll be able to reuse... especially since I'm hoping to move to webGL where appropriate. But I am not going to blindly rewrite pieces that need no such effort.


collect donations, fork bespin... profit


You only give forums and beta access to people who have donated $16 or more, while you send handwritten postcards to people who have even pledged the lowest amount.

Now, I'm not sure if you plan to spend a dollar out of every $4 for international postcards, but it would be nice if you could give access to everyone who donated.

Two reasons for that - not everyone lives in a first world country (and expects postcards) and secondly, even a dollar committed to the idea of a software is more than most people.


I was planning on sending postcards internationally to anyone I could... even if it cost a fair chunk of the pledge.

The plan for the forums is to use them not only for discussion but also to vote on direction and cosmetic issues (name, logo, syntax targets).

Do you think that giving people access to the forums for the purposes of discussion but without the ability to vote would cause problems?

As for the betas, I agree that even a dollar is significant but I had to find a balance that I felt would work for the pledge rewards. This restriction is only for the first development cycle however; once the public release is done further development will be open to everybody.


I'd kill for someone to work on a modernized/reimagined emacs. There's so much that's beautiful about The One True Editor, but many things take an obnoxious amount of research/config-poking to make acceptable.


I'm hoping to at least make this into something that can grow into something like emacs. There is already Ymacs, though it's not a complete solution at the moment.


An editor on top of Chromium. A desktop program!


I hope someone will step up and create a canvas-based html editor to embed in web-pages. The current solution using contentEditable has lots of cross-browser and cross-platform issues. I'd back that.


Ha, my friend showed me roughly the exact same thing a week or so ago. He got started after talk about regex speed in browsers and went crazy building a sweet proof of concept.


I'm curious about the choice to integrate WebGL. How is current browser support around this? What advantage does it offer in building a text editor?


Browser support is hit and miss. I'm gambling that it will be much better supported in browsers 6 months from now. The advantage is that it allows the smoothing of all the rough edges normally found in editors. Quick zooming to arbitrary levels, completely smooth scrolling... things that aren't traditionally necessary but make for something that is so much more pleasant to use.


Interesting! Good luck going forward with it. I feel like 4k is really a small amount for such a huge project..?


What editor do you use on your linux box?


Vim, but there's no reason to start that discussion here. ;-)


Haha, well, I asked because what you create will be influenced by what you use.


i wish he'd do it in clojurescript




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

Search: