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.
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.
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'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.
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.
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.
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.
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.
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.
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.
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.
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.