Why I Wrote a Programmer's Text Editor
rsms.me
rsms.me
Especially Rasmus, I coded up the whole indentation feature and he had to completely rewrite everything I made because of efficiency issues (I'm not that great with objC yet) and he didn't even complain.
Great guy.
My later patches (think I've made two or three so far) got accepted without change :)
Hope I have time soon to make the automagic indentation feature that's possible with the new AST thingy. Also hope somebody hasn't beaten me to it yet :P
Your intellectual honesty and ability to judge your work dispassionately, as well as the fact that he accepted your work, lead me to believe that it might not have been crap.
See: Dunning Kruger effect. :)
- Kurt Vonnegut
Firefox 3.6 on Linux.
His two font choices Georgia: http://i.imgur.com/Lp6QL.png
Droid Serif: http://i.imgur.com/0Kja4.png
I cannot read the default font, sorry.
https://github.com/rsms/kod/wiki/Indentation
In a nutshell, if you press tab while anywhere on a line, it indents. Shift-Tab de-dents the line. After thinking about it a bit, I think I could get used to it. I like that they're exploring ideas like this.
I would like preferences "CMD ," to be bound to something though even if it's to opening the configuration file itself. It's a bit disconcerting to not be given an explanation of why there are no preferences. I didn't understand the reasoning until I read this blog posting.
http://www.emacswiki.org/emacs/TabCompletion#toc2
It expands if at the end of a word, and indents otherwise.
As Rasmus aluded, in-browser editors aren't really tractable right now, but if everything about Kod but the runtime is written in JS, you could imagine all sorts of interesting browser ports or hosted options down the road.
As Rasmus points out in this blog post, he's aiming for a different crowd: people for whom programming is a secondary activity.
The Kod website says it is "based on node.js", but I don't quite get that. I'm familiar with node.js as a server-side platform, but are we about to see a bunch of node.js desktop apps?
The ease of embedding is not a matter of sice; both Python and Tcl are trivial to embed, almost as much as Lua. But they come with relatively larger footprint, and the quality of the languages themselves are not up to par (i.e. not "Schemish" enough)
This is ALL subjective anyway; by quality I mean what would please me personally. I already code in my ideal language.
The 'not Schemish enough' I don't understand - unless it's a passive aggressive way of saying that anything that is not Scheme or Scheme-like is not a good language, which is a boring discussion I'm not going to go into. Well unless there is a reason that Scheme-like languages have some specific advantages that make them especially suited to being embedded, in which case I'd like to learn.
Regarding size, I don't think that's much of a problem today (leaving aside embedded or mobile dev, which I don't think we're talking about). Maybe a huge VM can cause issues in some specific circumstances, but much of the size of 'bigger' languages is going to be in the standard library anyway, in which case it's preferable for a user to have a large enough selection to work with, depending on the application domain.
He's not talking about lines of code – the lua interpreter/runtime is only approximately 150kB in size.
Lua has a pretty nice C API, too.
I'm interested in io, too, but I've had trouble even getting it to build on BSD.
I really like your UI choices borrowing so heavily from Chrome, though. Really do... updates personal notes
Well the bindings could probably be added[0], it's OSS and probably rather small still.
Emacs integration on the other hand, that would be rather harder.
[0] actually, since it uses standard Cocoa (text) controls it already has some Emacs-type bindings (C-a, C-e, C-f, C-b, C-k, C-p, C-n, ...) and you can define more (or redefine existing stuff) via DefaultKeyBinding.dict, just about any NSResponder action message (and there are quite a bunch of them) should be available for binding [1] And it even allows you to bind multiple actions to a single keystroke or to bind key sequences (à la Emacs's C-x C-s)