Hacker News new | ask | show | jobs
by dunk010 837 days ago
LSP is basically an open(-ish) source implementation of Google’s internal tool called Grok. Grok was made by Steve Yegge, a formerly famous tech blogger. Steve Yegge uses emacs, and half his motivation was to equalise editors by moving the language processing elements to an external place that’s shareable by all. He has a great talk on it: https://youtu.be/KTJs-0EInW8.

So it’s, like, not an accident that emacs can leverage this :-D. Though I never see anyone giving him credit.

5 comments

I'm somewhat amused by the idea that this can be traced to a single tool. Cscope and simple ctags predate both by a long shot and were similar ideas. SLIME and SWANK were similar ideas that have also existed for a while, at this point.

Which is not to say that Yegge and others haven't created some nice things. They have. I tend to see it more that they succeeded at problems previous people had either failed at, or had a much more limited success. Progress is not always new things. Nor is similar effort always informed by each other.

He has also recorded two videos on youtube demonstrating some of emacs' features that I really like.

- A guided tour of Emacs: https://www.youtube.com/watch?v=lkIicfzPBys

- Emergency Emacs: https://www.youtube.com/watch?v=6ZWp05OW1c0

Steve Yegge also made js2-mode. Which is basically treesitter for javascript.

He was ahead of his time on dev tooling. I'm still using js2-mode to this day.

js2-mode was the coolest major mode for Emacs back in the day. The js2 parser is primitive, non-incremental and language-specific.

semantic-mode almost, a-a-a-lmost did something similar (mostly based on LR incremental parsing) but was Emacs-only and never gained enough traction.

Tree-sitter is decades ahead of both. It's hard to compare js2 to a modern GLR incremental parser generator of Tree-sitter. I am not even talking about the size of the community building grammars useful in all the editors out there.

> Steve Yegge uses emacs, and half his motivation was to equalise editors by moving the language processing elements to an external place that’s shareable by all.

That is cool. I was thinking just today (without knowing it was the intention) that LSP has meant I moved from an IDE to an editor with plugins (Kate, not Emacs), because an editor now has so much more of what the IDE can do.

Oh wow, another form of circularity in the lisp world :p

Thanks steve for all the things.