Im probably super out of the loop but I always wonder about these kind of comments. Even if electron uses say 500% more resources than vim, why in the world would that matter beyond personal irritation for anyone making 6 figs doing software development? I get the impression from these arguments that people are trying to do serious software development on 5 year old budget hardware. In any profession, investing in your tools is par for the course. Most of the geeks I know have far more machine than they could ever use as a matter of pride. Why would a few hundred extra megs of ram or a few more clock cycles matter if you have gigs of ram at your disposal and many cores? If the tool is good and doesn't touch your limits why does it matter if it's as slim as a demoscene release or as hungry as a browser tab? No judgement, genuinely curious.
Unless you’re only using your editor, you need resources for other things too. VM based dev environments via vagrant, docker etc are very common.
What I don’t understand is why if you’re going to use an editor that’s resource heavy, you wouldn’t just use an IntelliJ product.
Sure, they’re jvm based and “heavy”. But they’re also fucking amazing, and have functionality none of these text editors are ever likely to have. Resource usage is acceptable if there is a benefit to the user.
Oh right. I forgot. You can afford a $3K brand new laptop but you won’t shell out $200 a year for a tool you use basically every work hour of every work day.
Mine is currently sitting at 1.7GB with 3 projects open, but yes it does use a lot of memory. I never argued that it doesn't, but as you point out:
> great features are refactoring, advanced syntax highlighting, code completion and advanced search
Syntax highlighting and search are common these days, code completion is in most decent editors/IDE's but the key one is refactoring, and it's associated tools: find usage.
I keep trying out KomodoIDE (still not really native, but at least it's not Java) hoping it will be good enough to change to, and it hasn't gotten there yet.
> If someone wrote something that is not a hog and can handle Android flavor of C++ and Java as well I'd switch in a heartbeat.
The problem for me I think, is language/tool support in general. I generally write in scripting/interpreted languages (although I have written Java for a client) but it could be shell, php, python, ruby, sql, or of course any number of 'data' formats - json, xml, markdown, yaml (if Im feeling masochistic that day).
Is it common to code on a laptop instead of a desktop? I'd find it style cramping. Need the extra screens, full keyboard and mouse. But I work in digital marketing so my notions may be way off base.
I haven't used a desktop for work (or anything really) since... 2009?
My experience with developers I work with tends to be the same. The only place I usually hear about desktops being used, is in company office environments.
> Need the extra screens, full keyboard and mouse.
If you're at a desk where those things make sense, you can still use all of those things, but you also get portability if you want to take your primary working machine with you somewhere.
Edit: admittedly my next machine is potentially going to be a desktop. Mostly because this laptop while ageing, still performs OK, and will still be usable if I need to work outside my home-office.
Nowadays, you can plug several high-resolution displays in to a laptop (HDMI, DisplayPort, Thunderbolt over USB3...), and the integrated graphics will handle it just fine. Just unplug one cable to go to a meeting, or work out of the office.
> need the [...] full keyboard
If you're not doing data entry, and you're not using applications that use the numpad for keyboard shortcuts, then ditching the numpad is fine. I personally prefer laptops without the numpad because then keyboard is centered on the screen. Using a laptop where I had to have my hands left of center might drive me crazy.
> need the [...] mouse
Personal preference (largely influenced by the work you're doing). For precision graphical work, there's little that can beat a good mouse or trackball. For pushing text around the screen and browsing the internet, a touchpad or trackpoint is just fine.
Well, usually poor resource utilization means bad design all around. You can always buy more powerful hardware, but it won't fix something that is fundamentally flawed. Text editors are very personal to me. I spend a lot of time learning shortcuts and tricks that are easily cross-platform and portable, and Vim is very easy to do that and is still actively maintained by a great community of well-versed developers that aren't just getting another paycheck from a mega-corporation pretending to do some social good.
My gardener once left one of his shovels in my yard for a few hours. During that time, someone stole it. I asked him why someone would steal a shovel, and he said because it was a $150 shovel.
It's always interesting to see how tools of different trades scale. I got into woodworking a while back and discovered Festool. Turns out there is a decent difference between a $200 miter and a $1300 miter. Though much like audio equipment or anything else really there are certainly diminishing returns.
> Most of the geeks I know have far more machine than they could ever use as a matter of pride.
I take the opposite approach: I really enjoy using hardware which is exactly adequate to what I need it to do.
My entire senior year (2016-2017) of college, I ran Arch linux on an IBM Thinkpad X40 that I bought on eBay for 30 USD. It had a 1.1 GHz 32-bit Pentium 4, 1 GB of memory, a 32 GB CompactFlash card as a hard drive, a 1024x768 12" display, two hours of battery life, and a glorious keyboard (with an amber light above the screen!). I did everything on that computer: writing papers (vim and LibreOffice), writing assignments in C, Python, and Scheme (Chez and Racket), web browsing (Seamonkey), light image editing (Gimp and Inkscape), interactive 3D biochemistry simulation (Compucell), 3D modelling (Blender and Solvespace), and retrogaming (DosBox and Zandronum (Doom)).
I owned much newer, much more powerful computers, but I didn't use them at all that year because I really enjoyed using a computer that was exactly large enough in every dimension (spatial and otherwise) to do all the things I wanted to do without making me wait.
During that time, I learned a lot about the resource usage of various applications:
* Seamonkey used way less memory than Firefox. (Seamonkey has since switched to using the same rendering engine as Firefox ESR, so I don't think this is the case any longer.)
* UBlock Origin really is faster than Adblock Plus.
* Using ad blocker makes a HUGE improvement in browser CPU usage.
* I couldn't install Chrome/Chromium at all because they require a 64-bit processor.
* Dillo is really fast and uses very little memory, but isn't very standards-compliant.
* Netsurf is pretty fast and pretty low-memory, but it still isn't quite standards compliant. (For example, monospace text on Github always rendered as black text on black background.) It also doesn't ship with javascript support.
* No matter the browser, javascript animations in webpages always ran slowly and pegged the CPU at 100%. [0]
* Playing videos in VLC or mpv uses way less CPU than playing the same files in a browser.
* A lot of websites, including the HTML version of gmail, actually look pretty good in xlinks2.
* Suckless's `st` terminal has a very small memory footprint but takes an amazing amount of CPU time to redraw itself when scrolling.
* Blender and Solvespace are both very conservative with memory, and also are remarkably usable on a single-core machine with software OpenGL.
* Inkscape has a nifty tile-based rendering engine -- with a sufficiently complex file, I could watch it refresh the screen over the course of 0.2 to 0.4 seconds.
* Older versions of Inkscape (back when it was written in C) render way faster than newer versions (even the new 0.91 release, which substantially improved over the previous (still written in C++) 0.48).
* DrRacket allocates more memory every time you run your code. After a half-hour or so of write-test-write-test, I would have to restart DrRacket to avoid running into swap.
* CompuCell is actually very usable, even in a Windows XP virtual machine with 640 MB of memory running on the above laptop. [1]
* AbiWord is faster to launch but otherwise not much faster or lower-memory than LibreOffice Writer.
* When playing a video which the computer can't quite keep up with, VLC has a bad problem of ruining the picture and not fixing it for several seconds (until it gets to and successfully decodes a keyframe). mpv is much smarter about throwing away or skipping work, and is much less likely to propagate rendering errors over time.
* Brutal Doom's built-in low-performance setting doesn't clean up gibs over time, it just reduces the rate at which they are produced. A separate mod is needed to keep 1000's of gibs from accumulating.
* Quake 3 does not work well on a single-core 1.1GHz Pentium 4. (It runs, but the even with all of the settings turned down the frame rate is so low it's like having about a 250-500 ms ping.)
* muPDF is by far the fastest PDF rendering engine on linux.
* Vanilla Emacs is actually really fast.
* Spacemacs is remarkably more CPU-intensive than vanilla Emacs.
As a result of all of this knowledge, I was able to set the laptop up so that it was able -- barely -- to do literally everything I wanted to do on a computer on it, in a way that was comfortable for me. The machine and I were very in-sync, and I was working just as hard on my assignments as my computer was. I was very happy with the X40 and the way I had it set up, and very unhappy when it died the common X40 death (bad solder on the motherboard). I was very sad to get rid of that laptop; I had a much closer connection to it than my 2.4 GHz quad-core i5 with 6 GB of RAM. The more powerful machine is more distant. I never have to try to cooperate with it, and I never feel that it's really working with me in the same way that I felt about the X40.
I've been tinkering with a pair of OLPC XO-1 laptops. It would be awesome if I could comfortably use them for everything. I think that they're beautiful examples of industrial design, they are very open-source, and their screens have a really cool grayscale triple-resolution sunlight-readable mode. Unfortunately, I don't think I could live with 256 MB of RAM. There are just too many webpages that can only be rendered properly by engines that will need more memory than that. (Not to mention that the official operating system can't install more than 1 package at a time without running out of memory, and it has a memory leak that will fill the RAM up in less than a day.) Also, some projects I'm working on in Java would probably take a very long time to render on the 433 MHz AMD Geode. (Maven seems very bad at doing the minimum necessary amount of work.) I have been able to do some real work on them - I edited an existing SVG and animated it using Inkscape, a text editor, and epiphany. (http://bloominglabs.org/index.php/Logo#Animated_Logo)
I've turned this into a big, boring story about my own experience and preferences. I just wanted to say that, aesthetically, I really don't like software that clearly uses much more space, time, or energy than necessary to do what it does, and that I really do appreciate software that makes good use of space, time, and energy. After all, time, space, and energy are all finite. This occasionally has practical implications, but personally this is largely ideological. Obviously don't waste time (I only have but so much of it!), but as long as the software can keep up with me, conserving energy and space is admirable and desirable.
I should probably just write a blog post about this.
[0] This is, of course, only the case for browsers that support javascript (Seamonkey, Firefox, all the webkit-based stuff). The performance of Dillo, Netsurf, xlinks2, and all of the terminal browsers are unaffected by javascript.
[1] CompuCell's linux installer was completely broken at the time, and the build instructions didn't work. I did a semester's worth of CompuCell homework assignments and in-class interactive modeling in a 640 MB Windows XP virtual machine. It really was okay. In class, when we were all trying to tweak a simulation to get it to act a certain way, I was first to find working parameters a fair percentage of the time.
What's stopping you from using the software you've listed on a more modern laptop? I mean, I don't really understand the point of "cooperating with the system". You found a setup that works nicely for you, with a newer laptop everything would be faster, you could run Quake 3 without lag.
> What's stopping you from using the software you've listed on a more modern laptop?
Nothing, of course. I just really liked the form factor of the X40, and using it was a satisfying experience.
> with a newer laptop everything would be faster
From my perspective, the experience would not be faster. I had everything working fast enough that I never had to pause or wait for the system to respond to me. The only things I was doing that would be noticeably faster would be compiling, but reducing hypothetical compile times from 20 seconds to 5 seconds still requires me to stop and wait for the computer to compile.
> you could run Quake 3 without lag
I could do this on a newer computer. However, I found other games to play instead, and never missed Quake 3. Even though I'm back to my more powerful laptop now, I haven't played Quake 3 since the time I tried playing it on the X40.
The point of my post was that I was able to do everything that I wanted to do on the X40, and that I never felt like it was inadequate. There are all sorts of things that my newer laptop could do that the X40 couldn't, but I don't do any of them.
I find your point regarding Quake 3 counter to my experience, as the game ran just fine at release on my then-current Pentium 3 machine running at 500 Mhz.
> Even if electron uses say 500% more resources than vim, why in the world would that matter beyond personal irritation for anyone making 6 figs doing software development?
It would cost me several thousand dollars for a laptop with enough storage to make me happy, or I could get one with a hard disk from dell for under a thousand, or stick with an older machine for nothing. The difference goes into my home loan for me, for others it goes into a number of other things, from hobbies to investments. Just because you are making good money doesn't mean you should waste it on top of the line everything.
It also puts you much more in touch with your users. MS used to enforce the concept of dogfooding but it seems they only do this on top of the line surface pros these days. At least that's the only reason I can think of that allowed windows 10 to get out the door in such a broken state. If they'd had my cheap dell they surely would have noticed the multiple seconds that it can take for the start menu to load with a spinning disk in the mix.
> If the tool is good and doesn't touch your limits why does it matter if it's as slim as a demoscene release or as hungry as a browser tab?
Yes, the bloated one will slow down the rest of my system, we might have multiple GB available but they are still competing over other extremely finite resources like processor cache, disk buffers, etc.