I can attest to the awesomeness of both Kod and Rasmus.
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.
It happened to be my second time ever coding in objC, so I'm fairly certain it was crap.
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
> It happened to be my second time ever coding in objC, so I'm fairly certain it was crap.
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.
He is using font face embedding of the 'Droid Serif'. Probably some issue with the typography conversion or with windows rendering the fonts badly (i get the weird t also in windows 7).
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.
I think you're describing the type of behavior that emacs uses when you press tab, except it indents the line according to the default tab style associated with the file type. It's great for programming; I never have to worry about indentation because it's handled automatically.
I'm really looking forward to seeing this project develop. It has the potential to spawn a whole host of "webby" editing components..
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.
Sure. But for the power user, for the full-time developer, there's no point in going for something like Kod. Learning vim or emacs is actually not that hard.
As Rasmus points out in this blog post, he's aiming for a different crowd: people for whom programming is a secondary activity.
I initially read this as "people who use Linux are odd" and had a much needed chuckle. After reading it's descendants I don't think that's how you meant it, but thanks, nonetheless.
I agree. Both are amazingly powerful editors and seeing a nice/powerful GUI on top of it might make me switch over from a CLI. Time to branch this project.
Can someone explain the relationship between Kod and node.js?
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?
Exactly. Node.js is—just like Python, Ruby or LUA—an embed-able general-purpose JS runtime. You can simply link with libnode. Kod then uses a mix of libdispatch and libev constructs to perform inter-thread communication. The code for doing this is fairly orthogonally designed and can be found in the KNode* and node* source files.
I don't quite understand - are you saying that the lower the amount of lines of code, the easier it is to embed? Or better in some other way? Or something else entirely?
Lua strikes a very sweet balance, almost to its own detriment: you have an Schemish language, with huge user-base, at 100k. OTOH, since Lua is always an option, people put off using it until "necessary", and start their apps in cruft like C and C++.
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.
Yes, Python was going to be my counterexample - it's very easy to embed yet much bigger than 100k lines.
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.
Nice, just found Kod yesterday while browsing around Github and gave it a try. Really like the dark syntax highlighting, looks very pleasing. I seem to have a font-rendering issue though, the text looks kinda blurry.
> too bad it doesn't support vim or emacs bindings/integration in some way.
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)
Yeah that's one of those weird things in OSX which likely come from its NeXT roots: you can extremely easily configure/customize things you would never expect being able to touch on a non-OSS product.
Eventually. Kod is still a very young and a relatively immature product, but as it stabilizes (in several aspects) we will make it available in the Mac App Store.
This is awesome, I recently switched to vim after Textmate just became too outdated, but the usability of VIM is just terrible. I love what I see in Kod, but I won't change just yet, when are you planning to start charging for it ? I'll change when I can pay for it.
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.