

Kickstarter for an Open Source Programmer's Text Editor using HTML5 - flaminglunchbox
http://www.kickstarter.com/projects/1241383920/open-source-programmers-text-editor-using-canvas-a

======
yid
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.

~~~
flaminglunchbox
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.

~~~
grayrest
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.

~~~
flaminglunchbox
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!

~~~
dangoor
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...)

------
d0m
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)))

~~~
antipax
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.

~~~
d0m
It's not web based though

------
daleharvey
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

~~~
fluidbyte
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>

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

~~~
moonlighter
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.

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

~~~
flaminglunchbox
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.

~~~
shazow
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?

~~~
flaminglunchbox
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.

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

~~~
flaminglunchbox
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.

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

~~~
flaminglunchbox
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.

~~~
davidbanham
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.

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

~~~
flaminglunchbox
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.

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

~~~
StavrosK
Fabrice Bellard already did it:

<http://bellard.org/jslinux/>

~~~
flaminglunchbox
That man is tough to compete with ;-)

~~~
StavrosK
That's an understatement!

------
wmf
Didn't Bespin already do this?

~~~
flaminglunchbox
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.

~~~
wmf
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?

~~~
flaminglunchbox
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.

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

~~~
flaminglunchbox
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.

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

~~~
flaminglunchbox
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.

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

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

------
bprater
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?

~~~
flaminglunchbox
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.

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

------
duck
What editor do you use on your linux box?

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

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

------
Gotttzsche
i wish he'd do it in clojurescript

