Eh, I have used vim, spacemacs, sublime, vscode, atom, eclipse and netbeans. Jetbrains IDEs have superior functionality out of the box across languages and don’t require me to mess with and debug a million plugins. I don’t mind a UI refresh, it’s going to be just like the gmail refresh everyone hated it and now we’re all fine with it.
I just wish they would invest more money into things that are actually a problem currently like how slow indexing is and how disruptive it is when you do a clean re-install and it indexes all your dependencies again.
I have tried spacemacs which gives a lot of functionality out the box with less configuration needed than DIY vim or emacs but it still just doesn’t compare to the ease of use of Jetbrains IDEs across languages (I use Java, Python, Ruby and Typescript every week).
UI refreshes are a funny thing. I remember avidly hating the look of YouTube when they removed all the borders from things. And now when I see the old version, it looks quite bad and the current one very good.
It’s an uncomfortable feeling to see something new, and sometimes it genuinely is a step backwards, but I feel most of the time it’s progress and you get over it after a month.
Same, the only refresh that I feel is genuinely bad is reddit. The problem with new reddit is that the usage pattern is totally different. Old reddit can be rapidly browsed and only the posts that interest you are the ones that you give attention, in new reddit posts can’t be rapidly browsed and each one is supposed to grab your attention (in my opinion).
Controversially: I also much prefer the usability of older Windows operating systems, the scrollbars that don't hide, the double click semantics that are consistent across the whole OS.
It might look a lot prettier now, but it's much harder to actually do things from zero knowledge, I do fear we've regressed.
I’m going to say something even more controversial, but true; that the obfuscated thing these two prior comments are really noting is a degradation that has been obscured in distracting color or design language changes. It’s akin to “shrinkflation” that is now even totally overshadowed by the real rise in prices they said wouldn’t happen, people are starting to notice things like “hey, why are there now far less features than 30 years ago, and why does it cost 10x as much?”
”New packaging, same great taste” the professional liars proclaim; as the box got emptier, the false bottom bigger, the air more voluminous, the filler lower quality. No, no. Worse things are in fact good for you. The party proclaimed it, so you are required to believe it. Or else.
Even more controversial is both the cause and the remedy, for which the overwhelming number of people, especially on a site like this, have absolutely no interest in facing; so I will refrain from expanding on that. It’s irrelevant anyways, because the consequences are as inevitable as they were clearly predicted and suppressed.
The abusive relationship that the western world in particular is currently in, remains largely furiously defended, like any other abusive relationship the abused have not yet faced reality about.
That results in continued comments one can also see in these threads, proclaiming essentially how “no, no, degraded features and lower information density against my will is actually a good thing”, which is no different than “I would not get beaten if I just made smarter decisions”.
I hope you’re being Reddit brained, but the short answer is no, I do not see anything nearly like actually doing that. The trajectory is clearly towards the shadow of authoritarian control flowing over the whole of humanity. Don’t worry, you’ll realize it too once it’s far past way too late.
The new design is bad intentionally to improve their performance numbers, that it's still online and that the whole site didn't go the way of digg means they pretty much nailed it.
I'm not sure how much of that is the UI, and how much of that is just that it's unbearably slow. I feel like the UI could work quite well if it actually loaded roughly instantly.
Changed aesthetics are fine. Even when they suck you eventually get used to them. Changed functionality - which with UI refreshes often entails removal of more advanced or subtle features - is the killer. Designers who don't understand how products work in depth look at complexity they don't understand and decide nobody needs it if they personally don't get what it's for.
It is a problem even when it comes to aesthetics. Turning up the whitespace 300% makes things worse, it's not even just a subjective design choice.
The problem is precisely what you say: UI """designers""" don't make evidence-based decisons and don't do research or look for user feedback, they simply go with whatever they subjectively think best.
My issue is not with style changes but when stuff is moved around or renamed, you update the IDE or a plugin and now when you go to amenu to access some function it was renamed or moved around , my musle memory is broken and I waste tiem working to figure out where stuff was moved now.
I agree that youtube "looks" better but it's objectively worse. This comment reminded me of a video I saw a decade ago and could still easily find: https://www.youtube.com/watch?v=9u6Bfnq3aZk
It was more pleasant to look at and provided more useful functionality on the UI.
The modern trend of wasting space and erasing colors is really bad.
The only new feature I like is the "tab" categories (but only on desktop). Though they really botched it because now I'm confused about the difference between categories and labels so I don't use labels anymore. IMO they should have used the existing labels system for that.
You can still opt-in into the ancient HTML UI.
It's really lightweight and network-bandwidth friendly, but not having shortcuts for some basic actions makes it a little bit too arcane and sometimes way slower than just paying the resource costs.
I wish there was a better balance between both UIs. The "better looking" one wastes too much resources (CPU, memory, screen space).
Thanks, I didn't know that, I think I'll switch it back.
It's not about resource cost for me, I use high end hardware and fast connections (coupled with ad and script blockers, both in-browser and at network level, which are probably adding to the frustration) and not only does it load and run like complete crap, I literally couldn't find an email I knew was there in my "inbox" last time I opened it.
I only use Gmail/Workspace for family/personal stuff so I just use mobile apps 99% of the time now, but if I had to use it more regularly I'd be quite annoyed.
Not that Office 365 which I use for work is any better in a web browser.
At the bottom of this guide there are two links to switch from the current state-of-the-art design to the "basic HTML" version, and back, should you regret it: https://support.google.com/mail/answer/15049?hl=en
The "basic HTML" version is probably not exactly as any previous version but it's a good approximation. I think it makes much better use of color and space, and the buttons have text labels instead of using an arcane symbol language I have to relearn every time I have the misfortune to use it.
Still points to the "basic HTML" version, which is at least faster than the standard one. (I use it, and I'll keep using it, until I can, I guess.) https://support.google.com/mail/answer/15049
Nah I'm fine with it, because I never go to the website and just use mail clients; I can tolerate you its existence, out of sight out of mind and all that.
Actually I did use the web client one time recently and I literally couldn't find an email I knew I'd just received; my inbox is kept at 0 unread; so in theory it should have been impossible NOT to see it, right? After the initial confusion then annoyance came the realisation and I just went and found my phone to read it on.
> Nah I'm fine with it, because I never go to the website and just use mail
> clients; I can tolerate you its existence, out of sight out of mind and all that.
And that contributes nothing to this thread because we are discussing the Jetbrains UI and the Gmail UI was an analogy. Unless you would like to argue that we can ignore Jetbrains UI changes like Gmail UI changes because we can use VIM as an interface to the code, so the Jetbrains UI is out of sight out of mind and all that.
I'm afraid my British humour (sarcasm) may have been lost here.
I'm neither fine with Gmail, nor with major changes to Jetbrains IDE which I've been using every day for years now, and totally agree with all of the points in the article (and by extension this thread).
IIRC on desktop you can still use the old-ish (at least, plain HTML) version of gmail if you disable Javascript once logged in. At least it worked quite recently for me.
I actually really like it. I've been looking at IntelliJ for 8 years, the refresh is really very welcome XD. I also haven't noticed any lost functionality.
Sadly it’s not actually just a UI refresh but a UI downgrade because they’ve actually removed key functionality, not just tweaked some visual styling.
It’s a completely different tool window layout mechanism with far fewer tool windows that can be open at the same time. I rely on having my source control, embedded terminal, problems window, commit window + more all simultaneously visible. It’s key to my workflow to have a number of key windows open and their new layout throws this all away.
So far its the most disruptive and user hostile “UI refresh” I’ve ever seen and will see me moving back to Visual Studio if they persist with it.
You want to run a task from your build tool that has nothing to do with indexing before indexing finishes? No can do!
You installed an npm package and it seems to depend on all the things? Let's start indexing on node_modules and give you no chance to even uninstall the **er. You used the CLI to work around our tooling? Hey let's start indexing immediately after this one finishes so it's a great idea for a coffee break, just never pull directly after coming back so you may actually do some work until we bog down all the cpu cores.
Don't get me wrong, I love all the JB IDEs, but indexing has been a deal-breaker for many.
> so you may actually do some work until we bog down all the cpu cores.
I wish it bogged down all cores.. I work on relatively small Java projects (maybe 10 KLOC, 20 or so items in the pom.xml (although these obviously have transitive dependencies)). IntelliJ 2018 would re-index everything in a few minutes using all 20 vcores. I specifically spent about $8k on an iMac Pro back in the day to make this faster.
IntelliJ 2022, on the other hand, uses only 4 cores, and takes about 10 minutes. That's a stupid default (if I buy a powerful computer I want to use it..).
There is a setting to override it, but in my case it just doesn't work. CPU goes to approx 400% and just stays there. I filed a bug report, no movement.
While not quite 10 minutes, I'm on a 12 core i7 Dell XPS, I have to switch between half a dozen or so Go projects in a day sometimes and it really can take a couple of minutes each; long enough to be annoying, not long enough to grab a coffee.
Edit: I should say 12-thread, not 12-core, just to be clear on the performance level we're expecting here. It's a 6c/12t i7.
Maybe. I used to be on MacBook Pros back in the days when I was working on Java and indexing was the bane of my existence.
I usually worked with 3-10 big Java projects in parallel (e.g. HBase, Hadoop, Hive, NiFi, Kafka) and indexing could (not exaggerating) take up to 4 hours in total. NiFi is one of the worst offenders. And switching branches means it starts all over again.
I haven't worked with Java in ~2 years so I'm not sure how bad it is now. I might start a NiFi index job just for fun...
I use Rust in IntelliJ, and the indexing is usually fine once the IDE is up.
But for some reason, whenever I reopen a project, it needs to reindex it. Even when I open the same project every day, not having changed anything in between. I understand from a friend it doesn't do that with Java projects.
Indexing performance has drastically improved for me in the last 1-2 years, to the point where it's become a non-issue. New projects index very quickly, and adding new libraries also indexes quickly. It's an order of magnitude better than a few years ago.
That's both on my 16-inch M1 Max and my M2 Air with Go in Goland.
If you are a professional developer, and plan to be working for several decades, is it really that much of an investment to maintain your editor config a la vim or emacs? I did a lot of work setting up vim 10 years ago, and have only had to tweak it since. It works exactly as I expect, anywhere, in a terminal, for free, and setup is as easy as checking out a repo and running a script.
JetBrains is good for stuff I rarely do in the editor, like certain types of debugging, but otherwise feels too heavy, expensive, and hard to configure across installs. Finding a particular config option is always a hunt.
Honestly yes, I would rather pay someone to do it than maintain it myself especially across languages it just becomes a real nightmare. I need text editing, jupyter rendering, sql client, csv spreadsheet rendering, vim keybindings, git client, terminal/ssh, autocomplete, documentation tooltips and “run highlighted in repl” support at a minimum. These are all part of my weekly workflow, I have tried to use spacemacs because the community has setup a lot of this stuff for you already but the autocomplete is not comparable to VSCode or Jetbrains.
My dad was a vim user since the 90s and he ended up switching to IntelliJ a few years ago as well. It’s just significantly less hassle and has way more intelligent intellisense/autocomplete.
I have only recently tried GoLand while living in vim for ~5 years. IMO vim's autocomplete is significantly better than GoLand. Not saying the rest of the auto-insert helpers, but the completion itself is way better imo.
GoPLS is honestly really good, and while I haven't tried GoLand myself, I have no trouble believing you. Even rust-analyzer beats IntelliJ Rust IME. I'm very bullish on language servers because these two (and ElixirLS, though it isn't on the same level as GoPLS and rust-analyzer IMO) are countering the common assumption that you need an IDE to have powerful dev tools.
My experience is absolutely the opposite, especially on complex Go projects with multiple modules. I haven’t given Rust Analyzer much of a shot, but admittedly that might be better. Many of the projects I’m working on right now build using Bazel, and gopls has serious issues there even in generated code with a package driver configured.
I used to meticulously maintain a vim config for the 8 or so languages I switch between, but eventually realised that for me the good part of vim is modal editing, and that IdeaVIM gives me that without having to fuss with it. My vimrc is now empty and it’s relegated to commit messages and fixing merge conflicts…
I'm constantly surprised that people have trouble finding things in JetBrains IDEs, because they have search everywhere, for everything. You can even look for "actions" in the double-shift menu: just press Cmd-Shift-A (I suppose Ctrl for Win/Linux) and type a few letters. I found that way easier than figuring out how to configure vim, because there is no discoverability from inside the editor itself, and I frequently had to google several times before I found a way to get the behaviour I wanted. This gets even worse when you're using plugins for LSP etc.
(Emacs, of course, has best in class discoverability via M-x and C-h, which allow you to find and introspect basically everything that's available to you, but then Emacs is an OS, not an editor)
Apologies if you have accessibility needs and that’s the reason, but otherwise what is so unique about your editing requirements that requires such extreme customisation? I just use tools as they come. I try not to change anything. Less entropy in my life.
You can't possibly call yourself a "professional developer" (and it sounds like you're not pointing out that you're paid for the work, but that you're a "pro") and then talk about debugging as something you rarely do. If debugging (with a debugger) is something you rarely do, you may be paid for your work, but I wouldn't call you a pro.
You should be debugging alongside development to gain deep understanding and reduce errors. No amount of "test" coverage can replace that.
I'm always skeptical about people who don't use IDEs and I'm almost always right about them. And it's not the good kind of being right.
That’s funny, because I’m always skeptical about people who fire in all judgy about the way other people work when they know literally nothing about who they are or what they do, and I am always right.
I think that parent’s point was that debugging is an exceedingly powerful tool, and therefore leaving it out of your toolset by definition makes you less powerful as a programmer. It’s not even such an esoteric skill - operating the simplest kind of a GUI debugger is maybe learning 5-6 different actions, and the IDE often takes care of the details of setting up the debugger for you.
I don't know that I'm convinced of that point though. I've been developing software professionally for almost 20 years and my usage and reliance on a debugger has decreased over time. At the moment, I think it's been probably three months since I've last used one.
This. I used to use debugger all the time as a more junior dev, but I haven't used one in years now. Also, over time I spend more and more time writing tests. When there's a problem a simple print, echo, console.log or whatever is usually enough to solve it quickly.
The problem that debuggers solve is simply not a big problem anymore, in my experience. Definitely not worth the setup hassle when actively working on multiple platforms.
On the contrary, I find a common debugger (see questions below) an underwhelming experience, not a powerful tool.
Can it:
- assign (scenario, subsystem, level, description) to breakpoints and watches, so they can be turned on/off or selected in groups for debugging without removal?
- commit these scenarios of bps and watches into a repository?
- edit/read them in a textual form to patch or share over an IM?
- store traces of previous sessions and diff them to find out what changed?
Does anything even remotely similar exist? Most debuggers are just test-pause-and-inspect tools with “integration” in the form of eval on mouse hover. Their ux and dx sucks and the only reason I could find to use them were slow build times and too low-level runtimes, which are no more today.
Pretty sure most people avoid debuggers not because they are too hard to learn (they aren’t), but because they are too dumb to be useful, given that you can ‘if (cond) log.level(…)’ and restart instantly.
> - assign (scenario, subsystem, level, description) to breakpoints and watches, so they can be turned on/off or selected in groups for debugging without removal?
In Jetbrain's tools they definitely can. I can
* create a bunch of breakpoints
* give them descriptions
* only have them break on execution under certain conditions (conditions stated via the programming language being debugged, so `my_struct.some_func() == 5`)
* disable and enable breakpoints with a click of a button
* have a breakpoint only become active when another breakpoint got hit (and therefore only cause the debugging logic to execute in certain code paths
* Have a breakpoint not stop execution when it gets hit, which is useful because I can then
* Log when a breakpoint gets hit, including it's stack trace (so I can see exactly the flow that got me to that breakpoint)
* Evaluate some variable when a breakpoint is hit and log that evaluation.
All of this with an extremely simple UI that can be manipulated without any recompiles and while the application is running. I've gotten tons of value of debugging complex scenarios in both C# and Rust via this constructs.
So while I'm not going to convince you that debuggers are worthwhile, to call them "too dumb to be useful" is pretty naive.
That’s a fine opinion to hold, until you work on applications that you cannot debug for one reason or another.
As a fellow debugger lover, having to basically use log statements instead of being able to reach in and debug was a rude awakening. Some people probably don’t know that debugging can be easy with the right combination of IDE and language. Or the billion software layers mean that the debugger fails to attach for some reason which can’t be figured out.
I have a decent experience in all sorts of debuggers (from softice to gdb to ide) and prefer log() where possible. The reasons are: less-ing a log is superior to stepping into. Step-based debugging doesn’t work in production or retrospectively. That’s it.
Debugging and using IDEs are entirely orthogonal. DTrace and lldb are far more valuable to me than a graphical step debugger, which I effectively never use. As it happens I use JetBrains IDEs full time.
Getting used to a new look is possible, but that does not mandate disrupting - no, that is not a good thing! - changes. Just for the sake of it along questionable long explained philosophy. This is actual work not beauty contest.
Especially in cases when much more important tasks are at hand, as you rightfully note.
Try to debug JNI code in Jetbrains IDEs, go try it. Ah, I forgot they rather sell a Clion license instead.
Or stop the damm thing to run indexing, or avoid doing 10 finger combos, showing code problems without running inspections, doing Java compilation on save without using Eclipse's own compiler,...
> showing code problems without running inspections
You can configure which inspections are run all the time and which are not
> doing Java compilation on save without using Eclipse's own compiler
If you are saving files with Intellij. Configure Intellij to save when focus is lost. I haven't pressed Ctrl-S in 15 years in Intellij. Regarding the automatic compiling whenever you save, like in Eclipse. I am really happy it doesn't do this. Because it means I can work slow compiling projects at all. I can work with refactoring features while my code is in the middle of larger refactoring and it doesn't compile. And so on. But if you prefer Eclipse's workflow, why not use Eclipse?
If I had a nickel for the number of time I accidentally deleted an email in the new Gmail interface, I could buy out Google and force them to git reset it back to the old version. I for one (of many) are not fine with it.
The git client is easy, the db and docker clients are useful, the kube integration is useful, ideavim is pretty seamless, the autocomplete is great, the jupyter and scientific modes are perfect, the remote debugger and remote interpreter thing is very useful, the debugger is great across languages…I mean there’s so many things that are good and I get them all uniformly across languages without needing to hassle with configurations and plugins.
I did make an attempt to be the million line vimrc, t480, arch Linux guy (from reading HN) for a month or two but I found it was taking up so much time it was basically a hobby. I would rather just have something that works out the box (Mac + jetbrains) and be able to spend work and hobby time coding interesting stuff.
The fancy vim configuration just becomes more and more frustrating the more languages that you use and you start to run into weird things like when you start a new line in markdown the cursor doesn’t start at the same bullet indentation level so now you need to debug which plugin is messing that up.
I am on the same page as you. I also have tried spacemacs, but it either installs or doesn't depending on what OS I'm on. I secretly wish someone would make a bundled installer for it for Windows so I dont have to figure out the terminal incantations to make it work on Windows. I've also managed to mess up the initial setup on Linux too.
> Jetbrains IDEs have superior functionality out of the box across languages
They dont, not compared to eclipse and java. They are more lightway and look nicer, but it does much less for you. (The default call hierarchy is just atrocious for example, you can see only problems from small part of project etc)
I just wish they would invest more money into things that are actually a problem currently like how slow indexing is and how disruptive it is when you do a clean re-install and it indexes all your dependencies again.
I have tried spacemacs which gives a lot of functionality out the box with less configuration needed than DIY vim or emacs but it still just doesn’t compare to the ease of use of Jetbrains IDEs across languages (I use Java, Python, Ruby and Typescript every week).