21 ms·
My IDE is too heavy so I moved to Emacs
- tomerbd 4y agoCheckout also https://github.com/AstroNvim/AstroNvim https://github.com/AstroNvim/AstroNvim
- ineiti 4y agoTrue - nowadays, `Eight Megabytes Always Continuous Swapping` is a feature, not a bug...
- deleted 4y ago[deleted]
- schipplock 4y agoAs much as it hurts me to say this, as a fan of JetBrains and its tools, IntelliJ just seems to have become too heavy to run properly on a laptop that’s not at the very higher end of laptops in the early 2020’s. They advised you to turn off/uninstall plugins, which I did as well. I disabled most of the plugins, even the ones that get shipped by default. For me it improved the performance a lot. But imho you just need a more powerful computer :). You are obviously missing the features from IntelliJ :).
- janlaureys 4y agoI thought I did this as well, but I went to check my plugins after reading this comment and I just disabled at least 30 plugins. Thanks !
- dist1ll 4y ago> But imho you just need a more powerful computer :) Or maybe we need to stop tolerating performance creep and resource bloat?
- vkoskiv 4y agoPrecisely. This pervasive attitude of 'duh, just upgrade your hardware' comes across as elitist, and is very toxic. Not everyone can afford to drop several thousand $ every few years just to maintain a tolerable development environment. Software bloat is ruining the world, it's a significant contributor to making people more jaded about technology and making the future seem depressing and lame.
- schipplock 4y agoI'm on your side, but there is not much you can do to convince Jetbrains to make IntelliJ more performant. They are adding more features with every release. You can expect IntelliJ to become slower and slower if you don't upgrade your hardware. As a user your choice is buying new hardware, or not using IntelliJ. Paulo Renato de Athaydes decided to do the latter :). However, he states that he's missing the features of IntelliJ :). That's why I would buy a more potent computer (or one that has more fans and able to cool down good enough).
- Sohcahtoa82 4y agoThat ship has sailed long ago. These days, Windows Calculator takes over 20 MB to run, despite not significantly changing in functionality since Windows 3.11. How did we get here?
- jodrellblank 4y ago> "despite not significantly changing in functionality since Windows 3.11." Here you can run Win 3.1 in a VM in your browser with a click: https://copy.sh/v86/?profile=windows31 https://copy.sh/v86/?profile=windows31 and Calculator is in accessories. Make sure to put it in View -> Scientific mode for a full comparison. Now launch Windows 10 Calculator, you'll see that it is resizable, Win 3.1 calulator can only be minimised. Win 10 shows Unicode characters like Pi, square root, superscript exponentials, Win 3.1 shows them as "x^y" and the letters "PI". Win 3.1 has a memory. Win 10 has a history log of calculations done, a scrollable editable copyable history and clicking on the entries brings them back to do again. Win 3.1 has a bug where (2.01 - 2 == 0), Win 10 has that fixed. Win 3.1 has normal and scientific mode, Win 10 has normal, scientific, date calculation, multiple unit converters, equation graphing with customisable theme, zoomable scrollable live updating high quality, themeable graph. Win 10 integrates with the Windows contacts in some way to let you share graphed equations with other people. Currency conversion pulls currencies and live rates from the internet. Win 10 has Programmer mode which does base conversion, logic gates, bit shifting, bitwise number representation with click-to-toggle-bits for entry and viewing. Win 3.1 calculator is a binary blob, Win 10 calculator is open source MIT licensed on GitHub https://github.com/Microsoft/calculator https://github.com/Microsoft/calculator
- Majestic121 4y agoEven with a middle of the line laptop from 2017, IntelliJ is not that bad. Disable extra plugins, do not hesitate to mark directories as 'excluded' if you don't need them to pop up in search (especially build directories), and be patient during the 5-10 minutes indexing when you switch to a new project (which should not happen often) is more than enough to get very good perfs.
- LoganDark 4y agoIntelliJ ran great on my MacBook from 2015...
- PracticalHelp 4y agoDid you try the last step, for maximum performance? Uninstall IntelliJ? /s
- SanjayMehta 4y agoI use vim inside a VS Code terminal. Best of both worlds. I've heard of a vim extension/mod for VS Code but haven't had the time to dig into it.
- maratc 4y agoYou could use vim inside a regular terminal for the same effect, with a notable exception of sending all of your keypresses to Microsoft.
- elcomet 4y agoDefinitely not the same effect. The vscode application is much nicer than a terminal, has lot of plugins that I'm not sure exist for vim. And you can disable telemetry. And it's much faster to learn
- iillexial 4y agoI feel like Vim has more plugins than VSCode
- elsjaako 4y agoNothing wrong with your setup if you like it, but I'm very curious what features you are missing in vim. Can you give any examples?
- elcomet 4y agoThe learning curve mostly. And most things you need are there out of the box, or very easy to install. Also plugins like remote ssh. Overall it just works without too much effort.
- elsjaako 4y agoRemote ssh is built into vim. I think it's formally a plugin, but it's installed by default. Of course, if you don't use too many plugins, vim is also designed so you can run it remotely. I use this sometimes to have a long-time running vim session on a remote server, using tmux or screen to reattach when I log in.
- tikkabhuna 4y ago> IntelliJ is a great product and I don’t even consider switching to anything else for professional development, where having the greatest laptop and the best tools possible should be a priority. The title should really be "My IDE is too heavy so I moved to Emacs for hobby projects".
- deafpolygon 4y agoThat's less click-baity, though.
- throwaway2037 4y agoYes, I agree. And to add my two cents, if you are living in a wealthy country and/or working for an established, stable firm, you should have an IDE with the world's worst case of type 2 diabetes: 8+ CPU cores, 16+GB RAM, PCIe 3.0+ NVMe. (Double is more ideal.) Gluttony! Except as a golf-like sport, I never understand the obsession with "lightweight" development environments. Like Protoss and Zerg, it would be fun to watch eSports-style coding exercises with type 2 diabetes IDE vs vim/emacs + plugins. Example ridiculous exercise: Refactor this bloated enterprisey Java mess to upgrade from Spring Framework version X to Y. Only slighly joking here, but the vim/emacs setup would be smoking at the hood. The IDE would need a few mins of indexing, then off to the races!
- ParetoOptimal 4y ago> Example ridiculous exercise: Refactor this bloated enterprisey Java mess to upgrade from Spring Framework version X to Y. Only slighly joking here, but the vim/emacs setup would be smoking at the hood. The IDE would need a few mins of indexing, then off to the races! It's hard for me to come up with examples where the emacs setup wouldn't already be done in a couple minutes or using grep and a writeable grep buffer.
- the-lazy-guy 4y agoAs an emacs user I have to say that IntelliJ (and pretty much any modern IDE) feels snappier than emacs configured to do anything comparable (lsp-mode/eglot, corfu/company, tree-sitter etc). While IDEs may require more resources, they usually utilize them better. Emacs is fundamentally single-threaded and not great at async things. With most of the logic written in a very slow non-JIT friendly language with naive blocking GC. Rendering pipeline is also a mess. Underlying internal datastructures are also very naive (which is a good thing when you implement things in C). Things are slowly changing. emacs now is a lot better than 5 years. So may be in 10 years it will really rival more modern competitors in terms of performance. Having said all this, emacs universality and extensibility keep me with it.
- omnicognate 4y agoThe asyncness of Intellij IDEs annoys me at times. I'm used (from emacs) to bashing out a series of key combinations in the expectation that the effects of one will be complete before the next is processed. There are cases in Intellij IDEs (can't remember specifics, I'm blissfully back in emacsland and don't anticipate using an IDE again in the near future) where that can result in the later keypresses being processed before the window pops up or whatever from the earlier ones. Just a minor annoyance, really. It would be nice for emacs to improve on the async front, but synchronicity does have its benefits when interacting with humans. I sometimes find the lack of asynchronous behaviour annoying in emacs, but not very often despite using EXWM (so locking up emacs means locking up the window manager).
- singron 4y agoI use IdeaVim on a Mac and I'm 80% sure it reorders keystrokes sometimes when I go between normal and insert mode.
- pindab0ter 4y agoI've never had this happen to me. Could you describe what happens a bit more clearly? Now I'm curious.
- nucatus 4y agoSubmitted a bug report regarding poor performance like 2 years ago and they are still "looking" into it. I guess the shiny look has priority over performance for them. https://youtrack.jetbrains.com/issue/IDEA-270042/High-CPU-usage-due-to-DFAEngine.performDFA https://youtrack.jetbrains.com/issue/IDEA-270042/High-CPU-us...
- 5e92cb50239222b 4y agoThey definitely don't seem to care about performance or bugs very much, but it should be noted that the latest version starts up much faster even from cold storage. I used to look at the splash screen for ~8-10 seconds, but not anymore. It was the first significant performance improvement in a very long time. Other than that, I agree with you. In addition to well-known performance issues and longstanding bugs, I'm also still waiting for features like full Wayland support that was promised by the end of 2020. I mean, I understand it's not on their highest priority, but why promise things you're not actively working on?
- rhdunn 4y agoI'd suspect that it is a combination of the following: a) a lot of existing code that needs to be untangled (e.g. moving various tasks to not depend on indices); b) figuring out how to avoid unnecessary re-indexing (e.g. the downoadable index caches for things like Java files); c) having to define a migration path to spread out breaking changes to give plugins enough time to adapt. IIUC, some of the performance work with the latest version is due to parallelizing the various background processes, which uses coroutines, so you could add "implementing language, library, and tooling support to Kotlin/Java" to that list.
- tadfisher 4y agoFull Wayland support depends on OpenJDK. It was supposed to ship in 2020, but that's Java for you...
- spapas82 4y agoI also find intellij idea (and friends) too heavy. I am using it only when developing java or kotlin because the experience is much better than anything else, despite the slowness. For anything else (python, js, elixir) I use VSCode with a careful selection of plugins. It works very nice even on my Thinkpad T420. I agree with the people that said that if you install a lot of plugins (lsp etc) on a bare bones editor it will feel very slow; I had exactly this experience using vim on Windows: Using it as a text editor with only a few plugins (fzf etc) was great but when I started using is more like an IDE the experience wasn't that good anymore resulting in choosing VSCode instead.
- dmitriid 4y ago> For anything else (python, js, elixir) I use VSCode with a careful selection of plugins. I find JetBrains IDEs to be significantly better at Python and JS/TS (they do have dedicated IDEs for them after all). I wish Elixir support wasn't just one guy from Jetbrains working on it in spare time though...
- mdaniel 4y ago> I wish Elixir support wasn't just one guy from Jetbrains working on it in spare time though... Better that than the travesty they did to the intellij-hcl plugin, where they .. hired? in-housed? I don't even know what they did to that plugin except completely and utterly broke it and made updates to it go into this weird black hole
- deliriumchn 4y ago> The shortcuts are just unergonomic in my opinion Extensions -> type "emacs" -> done I really hate this articles that scream "look I'm so old school I use vim/emacs" while emacs is a single threaded nightmare that will work worse than any IDE if you will try to configure it to make it usable for actual every day work.
- worthless-trash 4y agoMany, many people use emacs and vim for everyday coding. You sound confident, but you'd also be wrong for a large swath of programmers.
- jbverschoor 4y agoI abandoned JetBrains a long time ago.. too bad, because they always have really good language/framework/platform tooling, but I just can’t stand the IDE. I don’t see them just creating a language backend for VSCode.
- jb1991 4y agoThe OP would probably find that any IDE works just fine on the baseline MacBook Air from the Apple Silicon era. But anything older than that is probably going to have problems.
- mro_name 4y agoYes. I have to build small, permacomputing-inspired stuff, so I resort to (neo)vim wherever possible. The complexity of the toolchain tends to sip into the result over time. Conway's law.
- rob74 4y ago> On my top-of-the-line Mac M1 with 64GB of RAM and 10 CPU cores, everything feels lightweight and smooth [...] But when I am at home and want to work on a hobby project, I prefer to use my less powerful laptops [...] after just an hour or so writing code and running tests using IntelliJ, the laptop becomes unusably hot. The fans get louder and louder until it’s really annoying. To add my anecdotal evidence: I have a relatively new Dell Core i7 laptop with "only" 16 GB of RAM, and while using IntelliJ IDEs "normally" (i.e. not while it's updating its cache), the CPU usage rarely goes above 5%. So the impression that you need top of the line hardware for running IntelliJ products that the blog post is giving is a bit exaggerated...
- jeroenhd 4y agoThere could be some kind of limitation on Apple's chips, there are complaints across the Internet of IntelliJ being slow on Mac despite the power of the M-series SoCs. It could be that there are optimisations to be made in their JVM for generating ARM code. Disabling plugins helps a lot, though. On install you'll get a screen that let's you select tons of features that had me going "gimme gimme gimme" but in hindsight I've never used 90% of them. For example, Android support is a major plugin I've never used with Idea because Android Studio exists and seems to integrate much better. Disabling that cut down startup time by a noticeable amount when I last culled my install. My experience with tricked out command line editors has been that they start out blazing fast but as you add more and more features (syntax highlighting, linting, etc.) they become slower than your average IDE. They're still responsive when they're not doing anything, but sometimes they just need a few seconds to think, breaking up my work flow. Another issue that I've seen some people run into is that IntelliJ will index all your files. If you have some kind of process that slows down your computer when you're opening tons of tiny files (say, an antivirus program or a project stored in a hard drive) that can instantly kill your work flow. The only alternative seems to be to postpone loading all the files until you start searching (which VS Code seems to do) but then you're just moving the problem around, not really fixing it. It's what I get for using a text editor for an IDE, I suppose. My experience with Jetbrains tools is that they're a lot more powerful than most of the competition at the cost of some minor input latency during heavy operations such as indexing.
- 4y ago
- bowsamic 4y ago
- bennyp101 4y agoI'm assuming that was missing a '/s'?
- bowsamic 4y agoNo? Why did you interpret it as sarcasm? If you explain then perhaps you could help me understand
- vkoskiv 4y agohttps://justforfunnoreally.dev https://justforfunnoreally.dev
- jraph 4y agoMany people like to work on hobby projects, and hobby is usually done at home or somewhere else than work. It's also not recommended working on personal stuff with work's hardware and means, you risk losing your hobby projects to your company. And during work time, you are supposed to work on things the company told you to do, not personal stuff. If you are planning to do extra hours for that, why should it matter where you do it? Your comment probably seems non intuitive to many of us for all these reasons.
- bowsamic 4y agoI don't really understand, but that's okay
- wheelerof4te 4y agoI did not understand this viewpoint until I started to program for a living. So, don't worry about the downvotes. They will understand someday.
- 4y ago
- rg111 4y ago> That’s why I am currently trying to get back to using Emacs. I just wish that people write such posts six months after they have made the switch. The author has only started. He only has stuff set up and checked speed. He hasn’t yet become as efficient as he was with JetBrains. He might never become that, and after 20-30 days, he might throw in the towel and go back to JB. _Being too bullish too soon_ is one of the serious maladies of the present personal-brand/influencer culture.
- krageon 4y agoI switched three years ago and I'm happy with emacs still. I don't find I miss anything jetbrains used to offer me. I might feel different if I spent a lot of time profiling, the one area where an IDE generally has a leg up - but IME the profiling experience in anything that isn't visual studio is bad anyway.
- luispauloml 4y agoWell, the author says "trying to get back" (emphasis mine), which makes me think that there is some prior experience, it's not "has only started." The article also says: > Over a couple of years, I have managed to configure Emacs with most basic modern shortcuts that work in most other applications post the 1990’s (small things like Cmd+S to save, Ctrl+Tab to switch buffers etc.) which, on the other hand, sounds a bit weird to me. It states that there are years of experience with Emacs, but it wouldn't take years to configure small things like Ctrl+Tab. These are things people use very frequently, so I would imagine one would configure it within the first month, or even the first week, of using Emacs to reduce friction.
- pjmlp 4y agoXEmacs was my IDE when UNIX environments didn't offer anything better, and most likely Emacs nowadays has implemented most of the stuff that XEmacs had going for it over Emacs. So it was my "IDE" between 1995 - 2005 when working on UNIX, muscle memory is still there and I still remember basic elisp stuff, yet I see no reason to abandon my IDE's, now that they are available everywhere that matters to me.
- hyperman1 4y agoI recently started using intelliJ's datagrip. For some reason, it stores its metadata in xml files, 150Mb or so per database. One postgres DB cluster it actually refuses to index unless I select only some of the DBs in it. Mind you, these databases are not particularly big, e.g. 17GB for the cluster it doesn't want to index. When it starts up, it loads all this metadata in memory. You feel the laptop being slow for a minute or so. After that, its mostly a good tool. Once in a while, it indexes something and grants you another coffee break. I keep wondering, why XML? If you build this much metadata, wouldn't it make a lot more sense to store it in a database itself, and only load what you need from it? Say sqlite or h2 or something.
- bayindirh 4y agoMy guess it started relatively small, and more features added over time to the feature, and they never thought changing about the XML part. Another thing is, XML can be converted to objects and vice-versa relatively easily, so it is a neat serialization format in nature. Also, parsing XML fast is a solved problem for the most part. I have worked with relatively big XML files, and when done right, the path is not heavy, at all. Edit: Oh, Considering this is IntelliJ and Java talks XML natively, this might also played a role in this being XML.
- hyperman1 4y agoNot complaining about the xml vs json vs yaml vs csv thing. It's more that when you choose XML, you've chosen streaming and reading it completely. There is no way to read it partially and only use the little bit needed.
- bayindirh 4y ago> ...when you choose XML, you've chosen streaming and reading it completely. That part is pretty true. I didn't use XML in a case where I didn't need to read it completely and transform to objects, yet. I'd not choose XML in these cases probably, if I ever encounter such a case.
- 4y ago
- hadrien01 4y agoI don't know the impact on battery, but there's a Power Save mode in Jetbrains IDEs that makes the IDE slightly snappier, when you just want to read some code or do one or two modifications.
- gnramires 4y agoI highly recommend the Geany IDE as well, it's very simple and lightweight, but still has conveniences like an integrated terminal if you like, automatic state saving, etc. Best IDE in my humble opinion!
- WesSouza 4y agoCooking is too complicated so I'm back to hunting and gathering.
- buescher 4y agoOrdering takeout is too complicated, and they always botch my special orders, so I’m remodeling my kitchen. Again.
- RunSet 4y ago> running the community edition of Jetbrains’ IntelliJ IDEA ... > As much as it hurts me to say this, as a fan of JetBrains and its tools, IntelliJ just seems to have become too heavy to run properly on a laptop that’s not at the very higher end of laptops in the early 2020’s. IntelliJ does what I want, but only barely. The autocompletion gets it wrong as much as it gets it right and it is a performance hog. I can deal with that. The problem for me was JetBrains' privacy policy[0]. It is loosely-worded enough to forbid them practically nothing, and I find that especially appalling in a so-called "community edition". So I began searching for alternatives. Emacs may serve for OP but I always forget how to exit it so I wanted something with a clickable "close" button in the top right. I am getting a good initial impression from Codelite[1]. I'm sure Codelite doesn't do everything IntelliJ's IDEs do, but it has the functionality I use and it is a breath of fresh air after waiting for IDEA and the like to catch their breath during text editing. [0] https://www.jetbrains.com/legal/docs/privacy/third-parties/ https://www.jetbrains.com/legal/docs/privacy/third-parties/ [1] https://codelite.org/ https://codelite.org/
- okeuro49 4y ago> The problem for me was JetBrains' privacy policy[0]. It is loosely-worded enough to forbid them practically nothing, and I find that especially appalling in a so-called "community edition". What, specifically? Because I can see they are bound by the GDPR and it seems clear to me: > If you install on-premises products such as IDEs or .NET & Visual Studio Tools, these products are located on your hardware. JetBrains does not provide hosting for these products and does not have access to any of your data processed with these tools, unless you actively decide to share this data with JetBrains.
- vindarel 4y ago> I wanted something with a clickable "close" button in the top right. c'on! Last time I checked (2 seconds ago), Emacs' GUI has a "close" button in the top right. And a "File" menu at the top left with a "Quit" entry, that teaches you the shortcut (C-x C-c). Emacs in the terminal (emacs -nw) doesn't have the top right button but still has the menu. We can't click it by default though. Use: F10, or M-x menu-bar-open, or M-x xterm-mouse-mode and click on it. https://www.gnu.org/software/emacs/manual/html_node/emacs/Text_002dOnly-Mouse.html https://www.gnu.org/software/emacs/manual/html_node/emacs/Te...
- fileeditview 4y agoA long time ago I switched to Emacs(with evil mode) from whatever IDEs I was using but it was also way too slow. I then switched to vim and configured it with lots of plugins. This was the best thing ever. I transitioned to Neovim but Vim would also be OK. Vim/Neovim are always fast. Even with 30+ plugins configured. I can run them on any hardware and they are blazing fast. Not to mention the superiority of modal editing if you are used to it. I have every feature I need (LSP/code completion/diagnostics/even debugging via DAP). Pretty sure that I won't switch setup for a long time/ever again.
- cerved 4y agoThen you couple this with IdeaVim and complement by running JetBrains IDEs on the side
- fileeditview 4y agoThis sounds like exactly what I wouldn't do?! I actively stay away from IDEs because the are bloated and slow and don't offer me personally anything that I am missing in my (configured) Vim. I have used JetBrains in the past and I never was a fan. It is very slow and lagy in many situations. If I'd go the "IDE" route vscode would be my choice.
- illegalmemory 4y agohttps://spacevim.org/ https://spacevim.org/ is also good alternative , it is basically vim/neovim sensible plugins pre-configured with smaller config file and simpler management.
- xigoi 4y agoAlso see: https://www.lunarvim.org/ https://www.lunarvim.org/ https://nvchad.com/ https://nvchad.com/
- agrippanux 4y ago+1 to LunarVim, I use it daily. It has sensible default shortcuts and plugins. I think I have configured maybe 2 things in the last few years.
- soheil 4y agoI think the cycle repeats itself, there used to be bloat-wares like Eclipse (IntelliFuck) that programmers would swear by. Then came Sublime and people had a revelation about how light and fast an IDE can and should be. Recently there has been another wave of hipster programmers swearing by bloat-wares like VSCode. Now people have to rediscover Emacs from 47 years ago.
- eloisant 4y agoIt's really funny that people see Emacs as an alternative to bloatware. For most of its history, Emacs has been the very definition of bloatware.
- tmtvl 4y agoWhat do you mean, doesn't every IDE need its own Infocom-esque text adventure, psychoanalyst, IRC client, web browser, Morse code translator, ASCII art drawing tools, and Tetris implementation? Of course all that bloat is an acceptable price to pay for the best editor available.
- ris58h 4y agoSorry but Sublime isn't an IDE. It's a text editor. Emacs and Vim too.
- prmoustache 4y agoIt all depends at which level you configure them in the end. vanilla emacs/vim with default config are just editors, but they can be configured to have most if not all the functionnalities of an ide.
- ris58h 4y agoI agree but people often compare vanilla text editors with fully-featured IDEs which doesn't make sense.
- soheil 4y ago
- sidlls 4y agoI love emacs. I don't use an IDE unless I'm forced to, mainly because I simply don't use the features most IDEs offer, and have considered them bloated nightmares since the first time I used one. Emacs has everything you need, and is fast enough, with few exceptions. Same for vi(m).
- ThePhysicist 4y agoI'm still on Sublime Text, after briefly switching to VSCode. Unless you're on latest-gen hardware it seems that most feature-rich IDEs are just terribly laggy, which drives me nuts. A computer just shouldn't need several seconds to load and parse a source file even if it has 100.000 lines. Editors like Emacs or Vim were always too low-level for me though, Sublime is a nice compromise between simplicity and speed.
- ilrwbwrkhv 4y agoAfter all these years, sublime still stands on a league of its own. Fleet is supposed to be this lightweight editor but unless it can beat sublime at startup, it's not.
- sgc 4y agoOne of only about three things I miss from switching away from Windows, is that I now have to use Sublime instead of Notepad++. It was just so much better at dealing with large files and batch operations, which are a priority for my work. But Sublime has beat everything else I have tried out on Linux, and obviously has features Notepad++ does not.
- mgaunard 4y agoI tried to switch from Sublime to VSCode as well, and it's mostly been a disappointment.
- baby 4y agoReally? I did the switch and there’s no way I could go back to ST.
- jonwinstanley 4y agoAgreed. I loved Sublime for years but VS Code is now miles ahead in my opinion.
- graycat 4y ago> ... apparently, writing code on anything other than top-of-the-line machines is too much to ask for. You guys are way ahead of me, so I need to learn. E.g., I'm missing the need for "top of the line". For my Web site startup, I typed in 100,000 lines of text, 24,000 programming language statements, in Microsoft's Visual Basic .NET using an old desktop computer with a processor with a single core with a with a 1.8 GHz clock, Windows XP, SQL Server, calling LINPACK via Microsoft's platform invoke, and the editor KEDIT (with ~100 macros I wrote) with command line commands in ~100 Rexx scripts I wrote. Once I got past some documentation frustrations, I was thrilled with all of it: I typed in code using KEdit, compiled it using a Rexx script, then used another Rexx script to run it, e.g., to run the Web site locally, i.e., with IP address 10.0.0.177. I thought that the compiling was fast, nicely fast, really, blindingly fast. For the code to start running and the Web site to be functioning -- again blindingly fast. I was thrilled. Something went wrong, apparently with the motherboard, and I got an HP laptop with a 2 core processor and a 2.5 GHz clock to use while I plugged together a desktop with an 8 core processor and a 4.0 GHz clock. Then compiling the code and running it were faster than blindingly fast, nearly too fast to get finger off the Enter key. I've considered moving to Emacs instead of KEdit and to Power Shell instead of Rexx, but so far I've not seen anything like > ... apparently, writing code on anything other than top-of-the-line machines is too much to ask for. What am I missing? Maybe I'm missing some big things an IDE (integrated development environment) would do for me? I've been delayed by collecting data, etc., but am getting back to code writing and running so would like to know what I'm missing? In simple terms, I see programming as just typing in text and like KEdit, and my macros, for that. Then for the compiling, building, just run the compiler -- it runs right away.
- projektfu 4y agoDoes KEdit do symbol completion, show you documentation as you type, and perform automated refactoring? Those are the big wins for the heavyweight editors. Especially when working with a verbose language like Java or C#, editor support is very nice. Also, in languages without keyword arguments, seeing the correct order of arguments as you type is very helpful, as well as seeing a docstring to confirm that your unreliable brain picked the right function.
- heurisko 4y agoSomething I recently missed emacs for, was being able to use it to transparent edit a file over SSH. I couldn't find an easy way to do that with IntelliJ/phpstorm.
- bayesian_horse 4y agoMy space suit is too heavy so I moved into my bathing suit.
- gpderetta 4y agoWell, the bathing suit comes with rockets and you can bathe in lava though. And a kitchen sink. Can't forget the kitchen sink. You might need to jerry rig the life support system though.
- hannofcart 4y agoI've never understood why developers look to be _tied_ to a single IDE/editor. I also don't get the obsession that some of us have with our IDEs. What's with the "I am moving to editor X...". You don't have to give up one editor to use another. You can use whichever may be convenient for a given situation. I use several editors/IDEs based on whatever the language/ecosystem/task at hand is. Quickly editing a config file? I just use a barebones vim or Sublime Text. Writing some quick Python/Rust code, I use nvim with plugins. Writing some SQL: I spin up DBeaver. When I want to do extensive refactoring or step debugging in Java/Rust/Python: I open a Jetbrains flavour: Jetbrains vanilla/PyCharm/CLion. IDE at work containing a mix of JS+TS frontends and Go+Python+Rust services: VSCode (it's a nice general purpose workhorse). I guess the secret sauce to all this is that I have vim shortcuts configured everywhere, so the transitions are easy. I don't see a reason to be monogamous to one IDE/editor :)
- worthless-trash 4y ago> I don't see a reason to be monogamous to one IDE/editor :) Years of muscle memory.
- TrickyRick 4y agoToday you can usually customize everything anyway. And if you just want the default setup from another editor there's probably a plugin for that. I remember when moving from Eclipse to IntelliJ a long time ago I brought some of the most commonly used shortcuts into IntelliJ. I then later moved those with me to VSCode and still use them today, took me a maximum of 30 min to configure ONCE so I really don't understand the author's reluctance to configure that in a new IDE.
- layer8 4y agoNah, when I tried to switch from NetBeans to IntelliJ, there were too many things that just couldn’t be set up the way I was used to operating NetBeans, from window/panel handling to keyboard navigation and code-template expansion. I would have had to write a number of plugins myself.
- FpUser 4y agoMy "least powerful" laptop that I still use for development is ASUS TUF A15. With Ryzen 7 4800H CPU. 8 Cores 16 threads. I bought it recently dirt cheap for $799 Canadian (translates to $586US approximately). Stuffed it with 64GB RAM (I had it lying around but it is cheap anyways). I run CLion from JetBrains on it for my C++ development. When doing full rebuild of the project and libs (all cores at 100%) the fan comes on but not really loud and goes back to sleep for the rest of the development. Building itself is really fast. Not sure why you have such poor experience. Maybe those thin laptops can't really handle CPU loads without overheating.
- schipplock 4y agoWe still have many Thinkpad T490 with Intel Core i7 and 40GB Ram. They overheat and throttle gpu and cpu to the point you can't work anymore. Even the mouse comes to a halt. The fan barely spins up. Absolutely rubbish. Then we have Thinkpad P15v2 Gen2, also with Core i7, the moment you fire up your compiler, the fans spin up immediately (also very loud). No throttling, you can compile all day. At home I have a Thinkpad Ryzen laptop, no fan noise, no throttling, full power. It's just a different kind.
- FpUser 4y agoI guess the recipe is - do your homework and do not buy crap but that is what many corporations do for their employees. Their laptops cost way more than the one I mentioned and are still slow.
- schipplock 4y agoT470 was fine :). $Company thought that a "T490 must be better and good enough" :). In fact, if you cool down a T490 good enough, it _is_ faster than a T470, but in the end the T490 is useless for a developer that needs processing power.
- ColonelPhantom 4y agoThat's some crazy powerful hardware, and would be a significant upgrade for most people. My main and only laptop (apart from some ancient ones) has a quadcore i5-8350U and 8GB RAM. (I kind of want to upgrade its RAM though) I also have a PC, that I upgraded to a Ryzen 7 5800 and 32GB RAM recently, but a few months ago it was an i7-4790K with 8GB RAM. Sure, 8GB RAM is quite little, but it's still within the mainstream. In laptops quad-core CPUs also only became mainstream in the last few years, let alone more than that. FWIW, I don't have any real performance issues with Jetbrains IDEs on either of my machines, but I don't use them much either as I don't like the convoluted user interface.
- rahen 4y agoI thought the title was a joke, until I remembered a second later Emacs is now perceived as lightweight. The same Emacs was that belittled for its insane memory usage, typically megabytes of memory. I must be an old-timer now.
- jlengrand 4y agoI absolutely love Kotlin (and I do like the folks behind Jetbrains), so I'm kinda de facto locked onto IntelliJ but damn that post is right in the feels. Yesterday, I had to let go of my 4K screen and go back to working on the laptop screen of my 1 year old M1 because of some issue that is open for 7 years (https://twitter.com/jlengrand/status/1601246555066859520 https://twitter.com/jlengrand/status/1601246555066859520). Back then, I upgraded my laptop because the indexing of semi-large projects was making me go bonkers. Sometimes, it does feel like my DevEx is getting worse over time. Not better
- dotancohen 4y agoEmacs people: How well does Emacs manage many files being open in disparate directories? I've often got two dozen files open as I navigate source code of a new codebase, and my current IDE (Jetbrains) does not have a good way of organizing the tabs so that I can quickly find them by module (not filename). For instance, consider the following open files: projectRoot/beatles/foo/bar/alice/bob/charlie/a.c projectRoot/beatles/foo/bar/alice/bob/charlie/b.c projectRoot/beatles/foo/somethingElse/UI/keyboard/usbSupport.c projectRoot/stones/mick.c projectRoot/stones/bass/dick.c projectRoot/stones/bass/ricky.c I'd like a single "view" (whatever that may be. In Jetbrains it's a tab bar, in VIM it's an ASCII list) to see all the files, but collected into "groups". So the files in the `projectRoot/beatles/foo/bar/alice/` group are all together, the files in the `projectRoot/beatles/foo/somethingElse/` group are all together, and the files in the `projectRoot/stones/` group are all together. All other files would be in a separate "group" visually. Notice that each "group" is _not_ a child of a single parent directory. I would define these groups manually - each project only has a handful of groups that I need. This is the feature request for Jetbrains, with each group defined as a Jetbrains "scope": https://youtrack.jetbrains.com/issue/WI-61955/Tab-bar-row-per-scope https://youtrack.jetbrains.com/issue/WI-61955/Tab-bar-row-pe... Any ideas for how to handle this situation in Emacs would be much appreciated. I've begun using Emacs for org-mode (with Evil) and I'd love to actually develop in Emacs if it has really good groupings of files.
- teddyh 4y agoIt seems that by default, Emacs wants to treat what it calls “projects” as files having a common root directory: https://www.gnu.org/software/emacs/manual/html_node/emacs/Projects.html https://www.gnu.org/software/emacs/manual/html_node/emacs/Pr... https://www.gnu.org/software/emacs/manual/html_node/emacs/EDE.html https://www.gnu.org/software/emacs/manual/html_node/emacs/ED... There are, however, a fairly large number of third-party packages¹² which seem to be for project management, but I have not tried any of them. 1. https://elpa.gnu.org/packages/ https://elpa.gnu.org/packages/ 2. https://stable.melpa.org/#/?q=project https://stable.melpa.org/#/?q=project
- dotancohen 4y ago
- jansan 4y agoWhat really irritates me about IntelliJ is the terminal (on Windows). It is slow as molasses (can be down to two characters per second), and sometimes typing occurs not at the prompt, but a few lines above. How can something like a terminal be that broken? And there were a ton of issue reports in the past, so I don't even bother to write another issue report. I finally found that disabling "Typeahead" in Advanced Settings seems to help quite a bit so I will stick with IntelliJ, because I quite like it aside from the terminal. But I was ready to jump ship a short while ago (because of the performance of the terminal, can you even imagine?).
- roland35 4y agoIntelliJ also has a "Power Save" mode if you want to disable a lot of the background stuff while on battery. The reality is, with large projects there is a lot of crunching going on in the background. Laptops tend to reduce their processing power when on battery, so a few options are: - use a dev server! I have a desktop at home I can use - a cheap desktop is much better than a cheap laptop. Or rent an on-demand from the cloud. IntelliJ has nice remote development support. - plug into the wall - turn off everything non-essential like plugins - use emacs/vim! I love vim as much as anybody but now that I am older I don't have much time to mess around with configurations. I am learning rust and it is great to open up CLion and just get down to business.
- xenodium 4y agoWhile lightweightness is often an important factor considered in choosing text editors, their hackability and the fun associated with it can be so rewarding (if you're into it of course). Sure, elisp may take a bit of time to get used to but writing short snippets can often bring delight, tailored to your needs. A couple of years ago, I wrote a smartish Swift yasnippet (https://xenodium.com/emacs-generate-a-swift-initializer https://xenodium.com/emacs-generate-a-swift-initializer). A few days ago, I revisted and made it smarter (https://xenodium.com/emacs-generate-a-swift-initializer https://xenodium.com/emacs-generate-a-swift-initializer). Lately, I've made lots of command-line utilities easily accessible with a small package I wrote (https://xenodium.com/seamless-command-line-utils https://xenodium.com/seamless-command-line-utils). You can accomplish quite a bit with very little code. Here's another usage integrating with macOS (https://xenodium.com/emacs-reveal-in-finder-dwim-style https://xenodium.com/emacs-reveal-in-finder-dwim-style). You can also goof around a little and create a welcome screen (https://xenodium.com/emacs-a-welcoming-experiment https://xenodium.com/emacs-a-welcoming-experiment). Perhaps you want to blur the lines between your editor and your shell (https://xenodium.com/yasnippet-in-emacs-eshell https://xenodium.com/yasnippet-in-emacs-eshell). There are lots of packages available that do the heavy lifting, like multiple cursors (https://xenodium.com/inserting-numbers-with-emacs-multiple-cursors https://xenodium.com/inserting-numbers-with-emacs-multiple-c...). An all-time favorite of mine is the Emacs Rocks multiple cursors episode (https://emacsrocks.com/e13.html https://emacsrocks.com/e13.html). Well worth the watch to the very end. He's just having so much fun.
- omaranto 4y agoHaha! I didn't recognize your user name or domain name and when you mentioned seamless access to command-line tools I almost recommended Álvaro Ramírez's dwim-shell-commands package to you. Glad I clicked the link first. ;)
- xenodium 4y agoOh yay! Nice to hear you find dwim-shell-command useful. Thank you.
- ergonaught 4y agoI assume I'll use emacs as long as I continue to use computers, and it's been decades since I thought editors really should be written in assembler, but this: "I use an underpowered MacBook Air from around 2019" and this: "Mac M1 with 64GB of RAM and 10 CPU cores, everything feels lightweight" are insane sentiments to express, and it's an insane world that makes those thoughts seem agreeable to anyone. There is zero justification to consider a 2019 Air "underpowered" for this task. There is zero justification to consider that of course one needs an obscenely powerful portable supercomputer for this task. IDEs do a lot. They do NOT do enough to justify this insanity. I'm sure there's an element of people not knowing what's been lost, and an element of people not understanding just how inconceivably fast computers are today, but it's hard to wrap the brain around anyone tolerating this (as customers, as purchasers, as users). Perhaps the same sort of jaw-drop that occurs when someone takes a naive python app to go or rust and discovers that python is in fact actually really slow (whether or not it's "fast enough")? Get off my porch, whippersnappers, etc etc.
- cmiles74 4y agoMacOS is probably not helping that 2019 MacBook Air feel responsive. I have a Dell that's a little older than that running Linux and it doesn't feel slow or sluggish.
- manmal 4y agoWell a modern IDE does way more than an IDE 10 years ago. E.g. I expect full text search that is pretty much instant. I remember times when a full search took multiple seconds to complete. Compilers for heavily typed languages are constantly re-compiling my code while I'm typing. Decent autocompletion has to perform tasks that are usually only required of a compiler. Code comments are converted into formatted documentation instantly, always available when I look for it. Device and build processes are monitored, git status is kept up to date, etc etc
- roperj 4y ago> Well a modern IDE does way more than an IDE 10 years ago. Really? Like what? What types of refactoring, indexing and completion features does IntelliJ have that it didn’t in 2013?
- etra0 4y agoI remember when I was a kid, I wanted to start coding so naturally most places mentioned Visual Studio. I installed it in the hopes to begin something new and challenging. Every time I open Visual Studio, it took an average of 18 minutes (yes, I timed it), and it was using my full 2 gigs of ram that I had at that time, so the typing experience was even worse. I wish I was more persistent with the idea of start coding, but a heavy IDE was one of the causes my curiosity was killed. Since that day I have kind of a resentment against big IDEs like the ones from Jetbrains and VS, although my PC doesn't struggle at all with them nowadays. I mostly use VIM and it's enough for me.
- deleted 4y ago[deleted]
- tiffanyh 4y agoSlightly off topic: any reviews of Zed or Helix here? How does it compare?
- omaranto 4y agoZed! That's a blast from the distant past! I enjoyed this 1980 paper about its development: https://onlinelibrary.wiley.com/doi/abs/10.1002/spe.4380100107 https://onlinelibrary.wiley.com/doi/abs/10.1002/spe.43801001... EDIT: I just saw in my own comment history that I knew (but forgot) there is a more recent Zed text editor which is probably the one you meant.
- bugeats 4y agoA couple of months ago I switched from Neovim with a carefully crafted config file to Helix with zero config. I haven't looked back. As far a performance, well, Helix + Alacritty is the fastest thing I know of. Snappy AF. You're still at the mercy of whatever language server might be grinding away, but at least it doesn't block the UI in any way. Every other component (tree-sitter, ropey) is performance optimized by Rust nerds who love that sort of thing.
- WuxiFingerHold 4y agoHelix is awesome. But the plugin system is not there yet, so it is limited to its core features. There are no extensions so you only get a very good modal editor with very well made core features based on its LSP and Treesitter integration. The only reason I don't want to make the switch is the missing (but WIP) support for multi LSP which is essential for frontend stuff (e.g. tailwind with React or just basic JSX support compared to VS Code). Snippets are WIP as well, but I could live with a workaround like pasting them from somewhere else.
- logicchains 4y agoI write C++ professionally and primarily edit code using Emacs inside Tmux over ssh, and I've found once you get accustomed to it you can be just as productive without any fancy plugins. E.g. instead of autocomplete, it only takes a couple seconds to split the window, open the other source file in the second pane, jump (by text-based search, if you weren't already there) to where the definition is, highlight the word and copy-paste it back to the first pane. And that way you never have to worry about your tooling randomly breaking in template-heavy code, something no C++ IDE is safe from. No more moments of frustration when the IDE randomly freezes while you're trying to do something important.
- sidlls 4y agoMost of the things IDEs provide are unnecessary, and ultimately harm the developer by permitting skill atrophy of one sort or another. My opinion (obviously, and perhaps controversially). There are some exceptions (e.g., because the other tooling is garbage, one might consider Visual Studio "necessary" for building certain applications on Windows), but not many.
- G3rn0ti 4y agoIf you think lsp-mode is too slow you can simulate „jump to definition“ using old-school „xref“ and „etags“ that comes with your Emacs. It creates a reverse index for you. Then you can put that in your git repo and add it to your .gitignore. Finally, you can press „M-.“ for jump to definition and return to your buffer pressing „M-,“ — if the name of the function is unique. In practice, that works good enough most of the time. „etags“ runs so quickly you can call it from a git hook and re-generate the reverse index every time you pull or check out a branch. It works with all languages. No lsp server required.
- marcosdumay 4y agoDoesn't the language server lisps provide that? (I'm postponing installing and learning to use any for years...)
- 4y ago
- gavi 4y agoI noticed that I focussed more when my Mac terminal was full screen and only using vi to learn rust with almost no plugins. It forced me to reason about the borrow checker before cargo build. I still use vscode for debugging once in a while, but I think it improved my understanding of the language and also prevented me from getting distracted.
- jmclnx 4y ago> (funny, because at the time it was created it was considered a heavyweight… how things change) No kidding, but I remember in the early days, when people complained, RMS said something like "the hardware will catch up". Seems he was right :)
- bitwize 4y agoBack in Emacs's heyday, it was the editor everyone was complaining about for being too bloated and slow ("Eight Megs And Constantly Swapping"). Today, Emacs is a great retro video game, but you will be kneecapped if relying on it for serious programming work. For pay or otherwise. And if you're like me, you'll become mired in it and everything else will seem as a pebble in the shoe. Don't be like me. Using a modern IDE, or IDE-like editor, is a critical developer skill because that's where all the tooling and attention is. Focus on that and don't attempt to cosplay as an old-school wizard by faffing about with things like Emacs.
- ParetoOptimal 4y ago> Today, Emacs is a great retro video game, but you will be kneecapped if relying on it for serious programming work. I haven't felt like this was true since lsp support matured. Plus there are big benefits to having the same editor, autocompletion, etc while coding that I already use daily with org-roam.
- bitwize 4y agoLSP helps, but even with it Emacs is falling behind. Language hackers support Visual Studio Code first these days, with extensions that go beyond LSP.
- ParetoOptimal 4y ago> Language hackers support Visual Studio Code first these days, with extensions that go beyond LSP. Can you give me an example of one?
- bitwize 4y agoJulia's VSCode extension provides linting, debugging, and live interactive development features that go beyond the language server: https://www.julia-vscode.org/ https://www.julia-vscode.org/
- chimprich 4y ago
- markus_zhang 4y agoTBH nowadays I give up learning either emacs and vim, it's just too much time to replicate the experience in Jetbrain editors. I'd just throw in an extra thousand and buy something more powerful, like a 16g m1 macbook pro. Time is precious.
- ParetoOptimal 4y ago> too much time to replicate the experience in Jetbrain editors That's not what most emacs or vim users are trying to do?
- markus_zhang 4y agoOr I should say same smoothness? I think experience is a better word.
- the__alchemist 4y agoIntelliJ needs a lightweight competitor, if that's possible. As the article points out, it's slow! Drains laptop battery, requires a powerful computer not to have slowdowns etc. (Using PyCharm, mainly with Rust plugin) Sublime is much lighter, but not as powerful.
- EdwardDiego 4y agoNot sure how'd you compete on features without being as heavyweight.
- the__alchemist 4y agoValid lol. My desktop can keep up, but I think I'm done with IntelliJ on my tablet. It's smoking the short-term battery life, and I imagine it's smoking the long-term as well. Not worth that, or the latency.
- indymike 4y agoI've got an Emacs window open on the top and PyCharm on the bottom of the screen. The main story in the IDE for me is first class debugger, visual refactoring tools and luxury level toolchain integration. The main story in Emacs is org-mode, runs almost anywhere, plus, great text editing features (try running a macro in the IDE... sometimes I can actually type faster... all on a 2022 i7 with 32GB of RAM). I think we're dealing with the same problem we do with all development tools: functionality vs. performance.
- it 4y agoKiss your productivity goodbye. Emacs has lots of half-baked features that you'll be tempted to fix with its LISP dialect. It's so much fun to tinker that you'll wonder where your day went. The $20 I spend every month on my JetBrains subscription is easily worth it. I can depend on my IDE to be working well and not waste time on fixing buggy features. The JetBrains people are also highly responsive to bug reports.
- G3rn0ti 4y ago> and inserting custom snippets for things like System.out.println and public static void main YASnippet!
- Sohcahtoa82 4y ago> Jetbrains is working on Fleet, a new, lighter editor from JetBrains, and while it seems very promising (it’s quite pretty, well thought out, modern) Heh, these days I'd consider a program advertising a "modern" UI/UX to be a bug, not a feature. Current trends of making everything flat and hiding functionality sucks.
- 29athrowaway 4y ago1. Disable unused plugins 2. Exclude folders from indexing 3. Tune the JVM It is less work than tuning emacs.
- samiam_iam 4y ago
- samiam_iam 4y ago
- wiredfool 4y agoI'd be happier if: 1) Some random mode couldn't kill M-% search and replace. Something somewhere does it in some of my installs. 2) Magit was reliable on MacOS. On one machine, it's fine. On another, I have some random issue with emacs server and therefore I'm not able to commit, or do anything where I can edit a message buffer.
- rcarr 4y agoI’m still waiting for a rust text editor or ide to emerge and take off. I think that’s going to be ‘the one’. I’ve been trying to go for rust software wherever I can on my new MacBook and it’s always blazingly fast. Alacritty literally loads instantly - makes the terminal experience so much nicer. In the mean time, I’ve tried out Atom, VSCode, Vim, Emacs and PhpStorm but settled on using Sublime Text and Sublime Merge after watching a senior wizard use them day in day out at my last job. I absolutely love their minimalism: I want as little as possible on the screen to distract me when I’m coding. Atom, VSCode and especially PhpStorm all felt too bloated and cluttered: way too many panels and buttons taking up real estate from the text editor. Focus mode isn’t the solution for me because it’s annoying coming in and out of it all the time when you want to do a file search or look for something in the directory tree or what not. For me, Vim and Emacs were too much of a pain in the arse, both with the endless configuration and research you have to do to get a decent set up and with having to remember all the keyboard shortcuts and look one of them up from a cheat sheet when you inevitably forget. For me, Sublime Text really is the sweet spot between the two worlds.
- ThisIsSavo 4y agoI've used Emacs for years now. What I like about it is how little I have to use the mouse. Actually, I don't have to use the mouse at all, but sometimes I'm just lazy. It's all keyboard, baby. :) Once you get used to the keybindings you can keep a steady flow and concentrate on your work, in contrast to pretty much all modern IDEs which are mouse driven.
- gloosx 4y agoAs an nvim user – the IntelliJ feels a lot more responsive than VScode, and the whole thing when configured carefully is a breeze compared to everything else i used. It's pane management is so good, and it fits seamlessly inside a vanilla terminal. It's keyboard-first support is, with no doubts, the best-in-class. I can navigate it so quickly at this point any other IDE feels like an aimless turtling