Hacker News new | past | comments | ask | show | jobs | submit login

"You haven't seen XCode, Delphi or MS Visual Studio, where, for example, you can jump to the definition of a symbol with "one click""

That's an old feature. It used to be called "ctags" and even console-based text editors support it.

"Finally getting to the point and you say "and all that"? Btw, "all that" includes unification of code and data - something no other language provides, let's say, idiomatically. This is an amazing feature, and in fact Lisp macros are Lisp macros thanks to just that - unification of code and data and symbolic nature of the language."

Lisp's problem seems to be that, until you know how to use macros and code/data unification, you can't be easily convinced of their merits. It takes a considerable commitment to learn Lisp before you can reach that level, though.

Yeah, Slime does this and without ctags, I believe most lisps keep track of the location of definitions in source.

But what's a definition? Slime does this for defun/defvar etc, but not for things defined with, say, hunchentoot's define-easy-handler. Can you tell your IDE to take me to that location in a single keystroke? Maybe Slime supports adding definition types, I have no idea. Or maybe it throws up its hands because of the potential naming conflicts.

All this makes you wonder whether Lisp is too powerful for any IDE to keep up.

LispWorks does that. You can add your own ways to record source locations of your definition forms.


You can do that, it's not terribly difficult, just picky.

That's an old feature. It used to be called "ctags" and even console-based text editors support it.

Have you ever used IntelliSense?

Yes, and it's a very useful feature I haven't found an equivalent to yet, That's not quite what we were talking about though--it's far beyond jumping to the definition of a symbol with a click.

IntelliSense doesn't always work, either, at least when I used Visual Studio a lot.

Which version of Visual Studio? Intellisense in VS, at least as of 2008, is pretty much rock solid. I can't think of a time when it has failed on me.

In '03 and '05 Intellisense would intermittently quit, but start working again after a build.

I'm often saddened that because CLOS doesn't use a message-passing paradigm (and because Lisp's syntax is prefix?), doing traditional Intellisense-style method listing and completion is nearly impossible.

I wouldn't be impossible, it just wouldn't work the way a message passing language does. If you ask me the trade off wouldn't be remotely worth it.

You could e.g. have a system where write some type name (or variable with a declared type), hit a key and get a list of all the generic methods that apply.

It would be a small matter of programming to add a function to Slime that, upon typing a symbol presents a list of every function that's reasonably likely to apply to it. I think the reason I haven't seen it is that it represents a very noun-oriented way of thinking about programming. Lispers are less likely to program that way than say Java programmers, where the language enforces the style.

ctags are a pain to set up and not nearly comparable to what exists today.

jumping to definitions is nothing that is new. My Lisp Machine can edit/modify all source code of the entire operating system while it is running. It knows the location of every single definition.


Registration is open for Startup School 2019. Classes start July 22nd.

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