6 ms·
While I still use emacs, I find that that despite the "batteries included" narrative about emacs, the things which are not included are causes of major frustrat
by billfruit 11mo ago
While I still use emacs, I find that that despite the "batteries included" narrative about emacs, the things which are not included are causes of major frustration.
Such essential functionality like grep-find and LSP servers which is required for out of the box auto complete are not bundled with emacs. Most modern IDEs/editors have these functionality baked in.
If you install emacs for windows you find that grep-find doesn't work, because it depends on support from environment. A full text search should be built into the editor.
- internet_points 11mo agoI don't think lsp servers should be bundled, they're often huge, and e.g. for haskell you need the one that matches your ghc version, so you'd need ..all of them? and they need to be kept up-to-date etc. There is an emacs LSP server package manager at https://github.com/deirn/mason.el https://github.com/deirn/mason.el though – maybe something like that could be included, and Emacs could suggest how to install an appropriate LSP server (and enable eglot). I know many of the old hackers bristle at this, but I think it should be possible to do some kind of helpful but non-intrusive hinting for new users (one can always `setq clippy nil`) They could at least change the default theme to one of the already-bundled modus-themes or something.
- billfruit 11mo agoOnce we get a modern IDE like PyCharm or Intellij Idea, the auto complete is essentially built in, without needing to deal with installing LSP servers, clients, and their dependencies. Out of the box, project and context aware auto complete is an essential feature in a modern IDE.
- worthless-trash 11mo agoExcept pycharm won't work with my erlang lsp.
- internet_points 11mo agoLast I checked, an IDE like Android Studio (based on IDEA) needs to download a hogshead of java before it can even begin to build anything. And if you switch compiler versions, it needs to download even more. Sure it makes installing java as easy as clicking a few buttons, and it'd be great if Emacs made it as easy, but still: it doesn't bundle every version. No one would have the drive space for that. And now consider that emacs has support for not just java/kotlin, but pretty much every programming language in existence..
- binary132 11mo agoEmacs is not a “modern IDE” and expecting it to be one is a recipe for not only confusion and irritation but also for watering down the goodness that it really is.
- teddyh 11mo agoWhy not instead blame Windows for not having the standard tools “grep” and “find”?
- positron26 11mo agoThe criticism makes sense when you consider that yeah, while posix tools are okay, needing them everywhere means you have something wrong in your programming ecosystem, and Elisp has many things wrong.
- mickeyp 11mo agoEmacs can easily work with non-posix tools. Many people use ag, ripgrep, or ack in lieu of grep. You change the command string Emacs uses for finding and grepping to your tool of choice.
- pjmlp 11mo agoUNIX standard tools, and not every operating system is supposed to be a UNIX clone. There are ways to search and grep files on Windows.
- teddyh 11mo agoFeel free to add the code to use something else by default on Windows: <https://cgit.git.savannah.gnu.org/cgit/emacs.git/tree/lisp/progmodes/grep.el?h=emacs-30.2#n842 https://cgit.git.savannah.gnu.org/cgit/emacs.git/tree/lisp/p...>
- pjmlp 11mo agoWhy should I bother, when I share James Gosling opinion regarding using Emacs on the 21st century? https://www.linuxtoday.com/developer/dont-use-emacs-says-javas-father/ https://www.linuxtoday.com/developer/dont-use-emacs-says-jav... Given that was in 2008, I would update his remark from Netbeans, to any of JetBrains products, Eclipse or whatever. In any case, you can get those features using Windows Resource Toolkit on the old days, a mix of findstr and other similar improvements on Windows NT linage, nowadays Powershell will be enough.
- positron26 11mo agoWSL2. While it's a fair criticism, the underlying issue here is that there aren't enough Windows users who program and upstream things for individual users to get support. Lean on the Linux ecosystem and things are fine. The reason there aren't programmers targeting the large market is a tangent into why I'm building PrizeForge, but the answer now doesn't change.
- mickeyp 11mo agoWhat? Emacs has eglot built in. It has had native grep and find stuff for decades. https://www.gnu.org/software/emacs/manual/html_node/emacs/Grep-Searching.html https://www.gnu.org/software/emacs/manual/html_node/emacs/Gr... You can change the exec-path to point to your cross compiled grep tool --- or you can change the command string to your tool of choice.
- skydhash 11mo agoI think for grep in emacs, the only thing require is the interface: - result on standard output - path and line numbers on each line A lot of emacs reliance on other tools follow the same pattern. While the default is posix, it has enough options to twist it to fit whatever OS.
- internet_points 11mo agoparent is talking about the external dependencies, grep.exe and java and jdtls etc., and in particular how they need to be installed separately from Emacs
- pooyamo 11mo agoDo other editors and IDEs bundle-in these external language servers? I don't think so, unless they are specifically tied to the language like Eclipse or PyCharm
- kqr 11mo agoI think the mistake is looking at Emacs as an editor. It's an Emacs Lisp VM, and the editor that comes bundled with it is good, but not great. Fortunately there are many ways to improve it, and make it go beyond what other editors can.
- skydhash 11mo agoEmacs isn’t battery-included. It’s a platform for textual interfaces with a focus on text editing. It may not includes some tools, but if the tools works with text (at least on the standard in/out) hooking it in emacs can be done really quickly. More so if it’s something that: - have result that can be formatted in a tabular fashion - do stuff with files then present some diagnostics (especially if errors and warnings are related to the files) - Have an REPL interface It’s not preconfigured like VS Code, but it’s much more versatile. Cursor having to fork VSCode is one such example. In Emacs, anything is just another package.
- pjmlp 11mo agoDefine modern. IDEs with such capabilities were already available in the 1990's. I became an XEmacs user in the 1990's, because there was hardly anything better in UNIX systems. Remember, Emacs still lacked many niceties only available on XEmacs, and vim was yet to be invented. This is how old such IDE features have been available.
- bitwize 11mo agoXEmacs only came about because Lucid needed a front end to their IDE, Energize, which was extremely comprehensive and could even do "edit and continue" style development of C++ on Unix but, as jwz has it, the Unix community preferred its stone-knives-and-bearskins approach with command line tools.
- pjmlp 11mo agoYeah, Solaris and NeXTSTEP were the only UNIXes that had an IDE tooling story from the vendors. Thanks to its origin, XEmacs also had for several years many graphical capabilities, that if I am not mistaken only landed on main Emacs during the late 2000's, by then I was back into IDE land.
- kragen 11mo agoI've never used grep-find or LSP, despite using Emacs for 32 years. Maybe I should; is grep-find better than M-x grep? Apparently I've sometimes improvised an equivalent: "Run grep via find, with user-specified args COMMAND-ARGS. ... This command uses a special history list for its arguments, so you can easily repeat a find command." My out-of-the-box autocomplete is M-/, which works in environments where LSP doesn't, like writing English. It works sort of poorly in all of them, but I write production code slowly enough that my typing speed isn't close to being a bottleneck. It's more of a bottleneck when writing English, but even there, generally any of my good writing was good rewriting. Where I've found LSP-like functionality really useful in the past in IDEA and later Eclipse was not autocomplete, which is mostly an annoyance, but in automated refactoring (extract variable, extract method, inline method) and in rapidly iterating through the implementors of a method whose semantics I'm changing.
- PaulDavisThe1st 11mo agoTo be fair, running grep from Emacs is a mistake - you should be using ag, or some other parallelized version of grep :) Ardour has around 800k lines of code, and ag (not even the fastest of the new greps) can search it all more or less faster than I can type. The idea of some system that analyzes/caches/indexes the code just isn't necessary anymore.
- kragen 11mo agoThat seems reasonable, yeah. ripgrep, etc., are definitely faster. Somehow I never twigged that you wrote Ardour and JACK. Thanks for JACK! (My audio editing needs are very modest and so I haven't actually tried Ardour.)
- paddy_m 11mo agoI customized grep-find on my setup. I have a shell script so that it does the following (in typescript-mode) first search ts, tsx, js, jsx files in the current project. Exclude .git, node_modules... then search node_modules with the ts.. extensions, still exclude .git finally search the whole tree for .py files still exclude .git, /dist... This is coupled with consult-find-grep. I basically want to find a string in the most relevant file type. I never want a result from node_modules first in the results. It took some work, but the results are quite nice!
- ubermonkey 11mo ago>If you install emacs for windows... ...you are a second class citizen in the emacs republic. I mean, I don't endorse this position, but it's the way things are.
- DonHopkins 11mo ago>If you install emacs for mac... ...you are a third class citizen in the emacs republic. In spite of the fact that you can't spell emacs without mac. Also: >If you install emacs for linux... ...you get flamed for not calling it gnu/linux.
- slowmovintarget 11mo agoEmacs for Mac is fine though?: https://github.com/jimeh/emacs-builds https://github.com/jimeh/emacs-builds That build has native compilation, and if you go for a Doom install you may need to build ripgrep yourself, but... that's also not difficult.
- jpfromlondon 11mo agothey mean you live within the walled garden, that you are playing make-believe.
- ubermonkey 11mo agoThat's not true, either, but I understand it's important for a certain sort of FOSS person to believe it anyway.
- jpfromlondon 11mo agotake it up with the fundamentalists, I'm a Mac Emacs user.
- ubermonkey 11mo ago
- pton_xd 11mo agoI don't think I've ever heard emacs described as "batteries included" -- maybe more like "batteries available." If anything it has the opposite reputation, that doing anything requires extensive and continual config adjustments, which isn't accurate either. There are plenty of emacs "starter kits" that do aim to provide more of a batteries included experience. My favorite is doom, it's worth checking out and does setup all the features you mention. Pointing new users at those more advanced default configs as an option would be pretty helpful, I think.
- billfruit 11mo agoBut many features, even obscure ones are packaged by default in modern emacs, including I think a pdf viewer.
- binary132 11mo agoTbh even though I got my start with Emacs Live I really do think at this point the simplest way to get started is to start vanilla and stay as vanilla as possible as you slowly build up your config based on simple and straightforward examples. The main problem is the utter lack of such examples in the community. I had to figure it out for myself for the most part. KISS!
- soupy-soup 11mo agoFor most modern programming languages, LSP servers are trivial to install. You can usually get them through your language or distro's package manager in one command line invocation. Considering that there are sometimes multiple servers with their own pros and cons for a language, this can be kinda nice. The only one I've ran into that is different is Java, but considering how underdeveloped Java LSP servers are, you probably don't want to be using emacs for Java development.
- binary132 11mo agothe total lack of “getting it” on display here is simply flabbergasting.
- iLemming 11mo agoEmacs in its half-a-century existence afaik never had "batteries included" narrative. Whatever comes bundled in Emacs, either practical or not so much (e.g. tetris) - are recipes and guides for extending it.