Hacker News new | ask | show | jobs
by cjohansson 1052 days ago
GNU Emacs is now dependent on TreeSitter which is a MIT-licensed project and LSP which is a Microsoft project. Also built-in support for non-gnu packages to install. Soon it will be a non-gnu project entirely. I think it's a bit sad that the ideological basis is beginning to be abandoned but I think there is not enough believers in the ideology anymore.

I would say most modern editors (Helix, Neovim) do TreeSitter and LSP better than Emacs today and probably for many years to come

10 comments

>LSP which is a Microsoft project

Emacs' LSP client Eglot and many of the LSP servers have nothing to do with Microsoft. Honestly, LSP is one project that I'm thankful to MS for. Personally, I value open standards like LSP more than any single FOSS project.

Eh, I've been looking and haven't found anything for other editors that actually tries to use TreeSitter for anything beyond highlighting. The Emacs structural editing packages are still very WIP but at least they exist.

(And also some have been based on the out of tree implementation that's been around for a while now)

Example: https://github.com/mickeynp/combobulate

There are quite a few packages for neovim that use treesitter for structural editing, folding, jumping and viewing.
Well, they really need to up their SEO, because I found one
LSP I can probably understand, mostly for performance reasons. Native json parsing and native compilation goes a long way, but clients written in elisp seems susceptible to edge cases where it's not performant enough because UI and IO runs in same thread in Emacs. Not insurmountable even without multithreading, some newer clients that uses better IPC or the dynamic module system are not constrained by Elisp requirement and seems to be doing fine in terms of performance.

The dynamic module system is generally a win for pragmatism over ideology, and it has been around for 7 years already. You can't do everything, like say extending core graphics of Emacs, but you can do a lot in any language of your choice if you feel constrained by Elisp. Tree-Sitter feature is built on top of that so it's not clear to me why do you think Emacs can't do better than say neovim. I use neovim and tree-sitter daily and generally don't think tree-sitter itself is rock solid yet, I run into indentation and slow query issues semi-routinely. But I am much more impressed with the work happening on Emacs community that leverages tree-sitter for advanced tooling [1].

[1] https://github.com/mickeynp/combobulate

Why is it a problem that LSP was originally invented by Microsoft? It's an open protocol with many free-software implementations. You don't have to use any Microsoft code if you don't want to.

Besides, even if that wasn't the case, Emacs has long had a policy of interoperating with non-free software. It runs on versions of Windows from 98 to 11. That's not because its developers don't value free software, but because they realize that this is a more effective way of convincing people to use free software than insisting on absolute purity.

> GNU Emacs is now dependent on TreeSitter which is a MIT-licensed project and LSP which is a Microsoft project

Not really dependent (you can build and use Emacs without either).

Seems you have prior form in not knowing what you're talking about https://news.ycombinator.com/item?id=32632468
X-windowing system is also MIT-licensed, were they every avoiding that license?
Tell me you know nothing about licensing without telling me you know nothing about licensing...
MIT code could be used in GPL, but other way round is not possible. As long as there is a line of code with GPL license, entire project will be GPL.
Not really, only when it can be shown that the project is derivative of the GPL code (for example, hard dependence on GNU-only library for some of its features vs. "one of the multiple possible implementations we can use is GPLed")
> I think there is not enough believers in the ideology anymore

I don't know what ideology you're talking about, but the only one I've ever had is the Emacs ideology: use the best program ever made and be happy.