38 ms·
Effect of perceptual load on performance within IDE in people with ADHD symptoms
- bbrks 3y agoThere's also a video presentation JetBrains Research have published alongside this paper: https://youtu.be/ris_UxYMn_Y https://youtu.be/ris_UxYMn_Y
- ansgri 3y agohttps://arxiv.org/abs/2302.06376 https://arxiv.org/abs/2302.06376 – non-paywalled paper https://github.com/JetBrains-Research/adhd-study https://github.com/JetBrains-Research/adhd-study – experimental data
- therealdrag0 3y agoThank you! No one is discussing the details just their personal experience. I’m not able to read it yet but curious what are the effect sizes? Is faster 1ms or 1 minute, etc.
- McPepper 3y agoFrom my own personal experience, it would explain why when I use window managers like i3wm and Yabai versus regular desktop that I am more effective and efficient. Somehow window managers just fits perfectly like glove for my brain. I don't get that cognitive load overhead when I have million different tabs and windows and programs and notes just splattered in a single screen. It's all neatly hidden away until I need them with good management of window managers.
- mywacaday 3y agoAre there and similar managers for windows like i3wm and Yabai?
- kgtm 3y agoHave a look at https://github.com/LGUG2Z/komorebi https://github.com/LGUG2Z/komorebi.
- dtx1 3y agoI'm not diagnosed with ADHD though it's likely that I have a mild form of it. I also use sway exclusively (Wayland i3) and couldn't bear to use anything else at this point. Though my experience is the opposite, sway allows me to represent the cluttered state of my mind perfectly and to quickly ad-hoc reorder my open windows and gazillion tabs for what I am currently focussing on. It's always chaos but in a comfy way. Quite interesting to see how different our usage seems to be, for many people tiling window manager help keep order, for me it enables me to survive in a constant state of chaos until i am running out of RAM
- vidarh 3y agoI currently is bspwm on my personal laptop, and work on a Mac, and it was a brutal change to go back to a non-tiled wm at work (I tried without as an experiment to see how I'd feel about it when I first got the new work machine - the jury is in: It's absolutely awful; Yabai is heaven in comparison). As far back as the 1980's when I was using an Amiga, I'd always effectively work full screen or with carefully tiled layouts if I couldn't...
- PartiallyTyped 3y agoPerhaps a vim + tmux + magnet (mac app) setup could work for you?
- vidarh 3y agoI detest vim far more than I detest overlapping window managers ;) Yabai works ok. It's not ideal but its close enough.
- unixhero 3y agoI find it asto ishing that research now is directed at how to figure out what works best for persons with ADHD. This will lead to many breakthroughs.
- xyproto 3y agoFinding solutions that work well for people with ADHD is also likely to have the added bonus of making everyone less stressed.
- itronitron 3y agoAbsolutely, I assume that it's easier to measure adverse impacts on people with ADHD but I expect that reducing perceptual load will improve things for everyone else as well.
- flir 3y agoIt's OXO Good Grips all over again.
- agroot12 3y ago"After that, participants solved mentally active programming tasks (coding) and monotonous ones (debugging)" ... this is a surprising take. Debugging, as the saying goes, is often like a murder mystery. Edit: I dont' think the authors are wrong about that, since they have observed the participants, I assume they chose a monotonous debugging task.
- pjerem 3y agoI’ve been surprised by this too. Maybe it’s a personal preference after all but my ADHD brain for sure prefers debugging. Debugging is sometimes more challenging and the boundaries are clearly defined : you know how the program should behave and you know when you get it. You know what doesn’t work so it’s easy to go TDD : when the test is green you are good to go ! Whereas writing new code is a pain for my dopamine system because I never know when it’s done. Getting the boring feature to work is easy but finishing is horrible. Figuring if you managed every edge cases, if you wrote enough tests, if you respected the team defined architecture, that’s hard.
- johnchristopher 3y ago> Maybe it’s a personal preference after all but my ADHD brain for sure prefers debugging. > Debugging is sometimes more challenging and the boundaries are clearly defined : you know how the program should behave and you know when you get it. You know what doesn’t work so it’s easy to go TDD : when the test is green you are good to go ! > Whereas writing new code is a pain for my dopamine system because I never know when it’s done. Oooooh, that fits with my drifting towards debugging other's code (even when I have 0 experience with the language) and debugging infrastructure configuration. I sometimes think I may have some ADHD traits but I don't believe I have it. Though I recently decided to adopt some ADHD strategies to organize my home/life and it has had some effects/benefits. Maybe I should pivot harder away from coding and drift towards sysadmin.
- xmcqdpt2 3y agoAs I was writing in another comment, I have a very clear deficit of attention and I love debugging! Especially when it's urgent, and I'm basically livecoding in front of other devs or clients, jumping about in our codebase, hacking through breakpoints and the interactive console. It helps that JVM debugging is very good (can be done remotely over the network, can insert code, add conditional breakpoints, suspend single threads etc.) It's an almost lisp like experience! And a bug report is the most scoped task I ever encounter frankly. You have a clear success condition, often a pretty clear deadline ("now!" or "before the release window"!) In fact, if anything I tend to take support tasks way too often, to the detriment of my feature building work. When I get an email with a title like "Intermittent null pointer exception in running prod application", I just know I'll have a really good few days!
- mtlmtlmtlmtl 3y agoFinally some research on ADHD and UI. I have it and have always found GUIs confusing as hell. Most people seem to find Windows an intuitive OS, for instance. Not me. Windows up to and including XP felt pretty intuitive, but since then every version has gotten more confusing. I never know where to find stuff, how to navigate around. I'm sure there are visual cues that I'm just not capable of processing. Icons for buttons mean nothing to me. Text does. So the design of HN for instance is wonderfully easy to understand because almost everything clickable is just plain text. Something like Microsoft Word is completely mind-boggling to me. Both before and after "ribbons". I would love some sort of global setting for GUI frameworks to replace all icons with their alt text or something.
- 123pie123 3y agowhoever created the UI/ UX in MS Teams needs a good talking to MS Teams overloads my brain through very bad design
- xmcqdpt2 3y agoI hate Teams and wish so much there was a better client for it. Why does is the "teams" pane different from the individual chats pane ??? Do I just have to deal with the sluggish UI switch every time I want to chat with my team? do I not understand how it works or something?
- solardev 3y agoNo, it's just bad. Microsoft rushed it to market so Zoom wouldn't eat them alive. Then they just stopped caring...
- lachlan_gray 3y agoThis is why I’m convinced vim is great for the ADHD brain. You don’t need to remember where something is or what it looks like, you just have to know the name of what you want to do, and you tell the editor to do it!
- wpm 3y ago
- rahen 3y agoThis reminds me of how Rob Pike mentioned his dislike for syntax coloring as extra cognitive load, which seems odd in regards to current IDEs filled with information and stimuli. With LLMs now directly interfaced to IDEs, it is likely that any obstacle will trigger a need for immediate AI powered dopamine reward. I wonder how programmers brains are going to rewire in this regard, even for those not subject to ADHD, but I suspect their sense of focus will worsen even more. In the coming years, I wouldn't be surprised if writing high level code will slowly turn from mainstream to an edge art requiring focus and commitment, like assembly programming has already become. The casual developer will probably be just giving directives to an AI code bot and be incredulous when told how people used to write code themselves, pondering for hours on a bug in a bare boring terminal. A possibility is that what is perceived ADHD today might become the norm with future humans.
- psd1 3y agoNo, IDEs do not give you ADHD. ADHD has a clinical definition and a physiological cause in a region of the brain.
- water9 3y agoIMO syntax coloring lessens the cognitive load. What is "high level code". You are telling a machine what to do and to do it as fast as possible. Can you still make money telling a machine what to do but not as fast, depends but most likely. We code to ultimately make money in one form or another. Whether you keep that money or put it towards altruistic causes is independent of the shared commonality.
- extasia 3y agoWe should organise a study of our own: does syntax highlighting help or hinder and does the answer change based on your level of ADHD traits. Could be quite interesting!
- AnyTimeTraveler 3y agoI have been diagnosed with ADHD and got an especially bad score for working memory. I find myself tired out really quickly by a lack of syntax highlighting. With syntax highlighting, I feel like I am not really reading the code anymore, but instead just registering the patterns and parsing the color tokens. I think the most important aspect for me, is that I don't spend time reading where a token starts and ends. Ex.: If I wanna check the function name, I just have to read the only yellow thing in around this area. I can register the tokens on a whole page in seconds, if the code isn't too dense. I just tried the same with syntax highlighting disabled and would say that I took about twice as long to parse the entire page. (I used a different, but similar file from a microcontroller HAL)
- swader999 3y agoSo a low frills just the code IDE is better for ADHD. Wonder if single monitor and even single code pane at a time also boosts an ADHD brains productivity. Suspect it does. Another aspect of focus is fixation on a specific physical space with lowered blink rate. As soon as you move your eyes away or blink it lowers your concentration. The text outside of this cone of sight is less sharp. It's like a hunter that finds its prey in a landscape. Seems obvious when you think about it but we rarely consider this when designing our office and workflow. Edit: love all the replies to this, lots to consider that could really help.
- pjerem 3y agoMy natural workflow is everything full goes full screen. It’s sometimes painful on Windows but on Mac, it’s a breeze to switch full screen apps with the trackpad. But I’ve got the combo of myopia + ADHD so I naturally prefer little screens (like 13 to 15“). I acknowledge that everything full screen on a 30" screen is pretty painful.
- SkyPuncher 3y agoI typically find I do better with a single screen when I’m able to work entirely within an IDE. Once I need to visually see what I’m building or reference documents, it's helpful to have to visually referenceable.
- phito 3y agoOh yes that is definitely the case for me. I can have laser focus when I'm working on my laptop with just one window on foreground at the time, and I get distracted a lot on my comfy dual monitor desktop.
- rodrigodlu 3y agoGive a try on displays of different sizes, like a 13/15 laptop with 27 external. The best I found is 21 and 27, just need to find a decent 21 modern replacement that is not low contrast LCD. Even better if you can dim the brightness of the secondary display. With the notebook display I can just use the brightness shortcut of my keyboard (both on Logitech MX or my Keychron one).
- dkh 3y agoAs an engineer for 10+ years with pretty severe ADHD (unmedicated, I cannot usually even read more than a few pages of a book before either losing focus or feeling drained) I have always been aware of how much my performance fluctuates based on the cognitive load of dealing with the code I am currently working with, and how it is displayed. I half-jokingly tend to describe it to people as having a "small brain buffer" where while I can understand (and design and implement) very complex things, it is easy for me to flounder when debugging if I feel unable to visually see or mentally hold the entire problem in my head at once. This is especially true if the code isn't mine. It is for this reason that I try to write what I feel is very obvious or self-explanatory code, why I try to keep functions/modules as simple as possible and ideally not longer in length than I can see on my screen at once (when possible), and why I almost exclusively join small/new teams who don't yet have an enormous codebase that I'll have to wrap my head around. I am never done tweaking the UIs of the editors I use to maximize my ability to work around these things.
- bestouff 3y agoHey you are a younger version of me ! I completely agree, and I am now very selective wrt where and with who I work and I still love my job.
- deleted 3y ago[deleted]
- Netcob 3y agoSame here. I try to see the bright side, where I am basically forced to write "clean" code because anything else just doesn't fit my buffer. And I feel a kinship with current LLMs with small context sizes.
- elcritch 3y agoIt's funny, my input buffer may be small and it's a large mental drain to read busy code (ADHD con), however once I grasp how a code base works it's just there (ADHD pro). It makes me wonder if it's related to the hunter-gatherer origin hypothesis. In that scenario covering large tracks of land was beneficial and that ability can be used to mentally map code. The flop side this also leads to distractibility and boredom paying attention to monotonous details.
- extasia 3y agoAnecdotally, as a person waiting to be tested for ADHD, I've always removed as much as possible from my editor's interface. Flashing lights, spinning icons etc. are the worst. Interesting icons that I never use also gotta go!
- mrmincent 3y agoThis rings true to me, I’ve tried so many times to pick up a more “professional” IDE as that’s what all the proper software devs at my workplaces have used, but I just always come back to a completely pared back emacs and a separate command line window. I’d be interested in seeing if certain languages with extra syntax / symbols have a similar impact, or even other software stacks - the aws console, a noisy ide and c++ all give me the same feeling.
- dakom 3y agoWhen a problem has my attention, nothing can phase me. I get hyperfocused. Music, colors, the need to eat or sleep.. doesn't matter. All that gets put aside, the thing that has my attention has my full and undivided attention When something doesn't grab me, it takes enormous effort to maintain focus. It's not that other distractions are just so incredibly moving that they take my focus away. Rather, it's that it's physically difficult if not painful to focus on the thing that evades my attention, so by comparison, anything else is better. I have no idea if my comment speaks to the paper. I started reading it because I am at the grocery store and the checkout line is so boring, but then the paper didn't quite grab me enough either, so I'm slightly more interested now in whatever happens to be on some other screen. But if it is studying the effect of distractions, I think they have the wrong idea (or I have something other than ADHD), because it's never about the distractions, it's about the interest in the thing that needs my attention. Nothing else matters
- giantg2 3y agoSounds a fair amount like me. I'm autistic.
- vanderZwan 3y agoThere are overlapping symptoms between the two. There is also comorbidity, if I'm not mistaken.
- BirdieNZ 3y ago> There is also comorbidity, if I'm not mistaken. Last I checked, it's uni-directional; if you have autism, you are more likely than the general population to have ADHD, but not the other way around.
- vanderZwan 3y ago> Rather, it's that it's physically difficult if not painful to focus on the thing that evades my attention, so by comparison, anything else is better. If I had to describe the feeling it's the mental equivalent of trying to push the same poles of two strong magnets together, while the distractions are like trying to avoid the north-south poles from attracting to each other. Especially the part where as soon as you stop applying force (i.e. mental effort) it flips.
- AnyTimeTraveler 3y agoIs that why I find embedded programming the most fun? I have been diagnosed with ADHD and had a really bad score on working memory. With embedded programming, there are usually few to no libraries and all I have to do is write certain values into certain hardware register addresses to get stuff done. All the relevant information is always on my screens, allowing my working memory to be occupied only by the problem or task I am working on. I also find myself building everything in little modules that have interfaces that make it hard to misuse them, because I WILL forget how to use them and just let my IDE remind me of what functions a module has.
- formulathree 3y agoWhat ide are you using? Also what are you using for the build? Cmake? Just curious. I found in general most ides don't work well for embedded. There's always some really annoying flaw.
- acuozzo 3y agoNot OP, but I write in C for embedded platforms. I use Vim and I write my build scripts in Python. Of the half-dozen dependencies I'm working with at the moment, half use GNU Autotools and the other half use CMake. I know my targets and their respective toolchains in advance, so the automatic feature & quirks discovery of e.g. autoconf doesn't help all that much for the code I write myself. Plus, the targets I work with nowadays all have a compiler that's C11 and GCC-compatible to some degree, so my approach is generally to target ANSI C89/ISO C90 to the greatest extent possible; pulling in C99, C11, and GNU extensions only when necessary. I find myself reaching for <stdatomic.h> more and more nowadays, FWIW.
- smittywerben 3y agoI just switched back to "never combine" on my Windows 10 taskbar after a lawyer complained on Reddit about this feature being removed in Windows 11. Said he has like 15 word or pdf files open at a time. He can see the title of all of them without navigation. I know that feeling. Never combine seems nicer than navigating a stack of 20 browser windows (the browser icon) on my stack of 20 programs on the taskbar that I have to swing my mouse pointer around like a neanderthal just to look for where I need to swing it to next. If it's a browser specifically, I have to look for the right tab of the 20 non-merged tabs too. That's 3 neanderthal grunts with the mouse to find where I was 15 min ago. Idea: Why not stack the browser tabs too so it's all in one place. When the windows aren't combined, I like that I notice when the taskbar starts looking like sardines. Otherwise I don't notice. Hours later, I have 40 browser windows open when my computer chugs upon clicking the browser icon. I don't realize until it's too late because I use alt-tab most of the time. I think UI design is getting worse in almost every way and this is just a symptom of it. Wayland brought back some interest in window managers[1]. On Windows, holding Windows key + arrow keys to snap windows is one of my favorite features. They stole that idea from the tiling managers. It's useful! I'm surprised Microsoft didn't remove it in Windows 11 to make their UI all floaty like a Mac. On any Apple device, I have to drag my aging neanderthal hand over a touchpad with the delicacy of a butterfly to go "warp speed" between two windows. Anyways thanks for reading my impromptu ted talk rambling on navigating the electric box under cognitive load. [1] https://wiki.archlinux.org/title/wayland#Compositors https://wiki.archlinux.org/title/wayland#Compositors edit: clarity + format
- bloopernova 3y agoI have ADD and I'm struggling to write a more complex Python app right now. I'm hating myself for not being able to easily skip around the code as it gets more complex with more classes and methods. So this is very apropos for me. Thing is, I can skip around Terraform much more easily (in my normal DevOps role). I'm wondering if Python whitespace isn't "right" for me somehow. EDIT: I'm definitely more used to Terraform, but I can read and navigate nodejs far more easily than Python, it's weird. I also don't want to come across as blaming Python for this, certainly it's incredibly effective for a huge number of people! My next step is to try to break out the classes into their own files or something like that. I don't suppose anyone has any tips on managing Python scripts? I doubt this is even 2,000 lines yet :(
- manfre 3y ago2000 lines in a single script file is a lot to mentally process. Unlike a large utils.py (the junk drawer of a putting module), with a script there is often a wide range of functions and classes. My best advice would be turn this into a more organized package that you install with pipx[0] on the systems that need it. The click[1] package is helpful too. [0] https://pypi.org/project/pipx/ https://pypi.org/project/pipx/ [1] https://pypi.org/project/click/ https://pypi.org/project/click/
- wryoak 3y agoIf Terraform is easy for you, you might try another declarative language like something from the ML family (Elm, Haskell, OCaml, etc) I get along very well with declarative code but find myself struggling through imperative and OOP equivalents Many imperative languages (including Python) can be written in a declarative style, but it’s a more challenging practice to maintain
- ilc 3y agoI'll do you one better. Learn to use search tooling. My neovim setup has ripgrep + a LSP on hand at all times. You can do the same things in VSCode. If you don't know where something is... search, search, search. 2000 lines or 2 million lines. Searching cuts the mental load because you find what you NEED at that moment. Need to know what refers to this function or variable.. there's a click or key sequence for that. And yeah, Python is a bit of a trip to read, the lack of braces makes it unique to parse, if you aren't used to it.
- scotty79 3y ago> participants solved mentally active programming tasks (coding) and monotonous ones (debugging) Am I the only one that finds debugging not monotonous at all? Often the programming feels more monotonous. I'm not sure if that's because I feel like I'm learning something when I'm debuggging or that a bug is a puzzle to solve, I feel like a detective and a scientist figuring out things about my small part of the universe. In comparison programming feels like playing with sand in the desert. Where you can do everything but it's hard to decide what and where and ultimately whatever you build doesn't really feel impactful. It's still a desert and those are still just sandcastles. I might have ADHD, I suffer from a lot of the same inconveniences at similar intensity that ADHD diagnosed adults suffer from.
- xmcqdpt2 3y agohttps://news.ycombinator.com/item?id=36722157 https://news.ycombinator.com/item?id=36722157 I just wrote the same comment. My guess is that their debugging task wasn't really representative of real life debugging.
- NortySpock 3y agoMaybe it's "stupid parser error debugging", where a single missing comma in a csv, or a missing semi-colon in a long one-line shell script, causes a bizarre, misleading error message. Something where your tools mislead you because the input broke all the assumptions that were made. In my experience I then have to resort some quick slice-and-dice work in a text editor to bisect the problem, and I'll eventually find it, but it is tedious and not fun. And your reward is usually learning "the input was wrong", not "the code is wrong".
- nucleardog 3y agoIf you read the study it’s reading through python code trying to spot and fix indentation errors. It’s monotonous.
- xmcqdpt2 3y agoThis is interesting. As a developer with ADHD, maybe I should try paring down my IDE interface. (I do take amphetamine medication though so maybe it compensates enough?) I find it interesting though that they describe "debugging" as a monotonous activity. Maybe my experience is different from others? I personally find debugging to be way more active than coding! It involves setting breakpoints, zooming about the codebase trying to understand the flow of an app and cutting down code until you get a minimized repro. I'm often doing this live with users or other devs looking over my shoulder while I play with code all over the place and run git bisections. It's often a time sensitive activity too, because a bug might be blocking a release or requiring a fast prod rollback. From an executive dysfunction POV, a bug report is often the perfect kind of task for me, inherently scoped, usually short, with a clear success condition. I personally thrive on that kind of work and I usually really enjoy being on the support rota (not for too long though!) In fact if anything, I enjoy it too much and bug reports don't uncommonly take me away from the actual dev work I should be doing. I think the issue is that they probably didn't do the debugging tests under the right conditions.
- nucleardog 3y agoIf you read the paper the “debugging” task is “here’s a bunch of python code, there’s problems in the whitespace, please read through and find the whitespace problems and correct them—this is explicitly not a bug in the logic and no code needs correcting”. They didn’t test the wrong thing, they tested exactly what they want—a high engagement task and a low engagement task.
- fluxinflex 3y agoIt seems that ADHD is trending on HN today: https://news.ycombinator.com/item?id=36719713 https://news.ycombinator.com/item?id=36719713 or is it just my focus today :thinking:
- VikingCoder 3y agoI heard about a study: Give a stack of CT images to a radiologist with zero user interface at all (just the original CT images shown), and ask them to do a read. They cine through the stack a couple times, and do their dictation. Have them do a few dozen cases. Give the same stack of CT images to another radiologist in an unfamiliar user interface, with buttons and menus all over the place, and ask them to do a read. Tell them to ignore the UI, they should just cine and dictate. Have them do a few dozen cases. The ones with the distracting buttons were indeed distracted by them. They were slower and less accurate in their read. Terrifying, honestly.
- brundolf 3y agoIt's crossed my mind before, that my extremely strong preference for static analysis > tests > debugging might be related to my ADHD There's something unbearable to me about manually recreating state, waiting for longer-running results as a part of my workflow, arranging multiple processes to talk to each other, etc. Anything where I have to mentally track and manage several moving parts at once. It feels like a huge attention-burden that makes it way harder to think about the problem I'm trying to solve, and makes me more likely to lose context and get stuck in the mud
- brucificus 3y agoI had something flickering in my IDE the other day while I was trying to learn my way around a large monolithic codebase at a new job. I couldn't executive function well enough to stop/hide the flickering, and I couldn't ignore it. I eventually had a meltdown and left the room (wfh, thankfully). It took me hours to recover. Having a tidy, visually "muted" workspace - both in a literal sense (the IDE) as well as a conceptual sense (the code structure) - is very important for coping with my ADHD+ASD. Unfortunately, trying to sell DRY+KISS+YAGNI+SOLID as an accessibility/inclusivity concern has not worked out for me yet. There's a lot of intellectual elitism running in the veins of our profession, and it makes me sad that it's often likely just a shield for other people nursing insecurities about similar struggles. We need to work on our empathy, and coding empathetically, and designing UIs empathetically.
- delecti 3y agoI can absolutely relate to that sentiment. A former coworker once gleefully refactored a bunch of unit tests in a way that reduced duplication and made the reporting marginally better, at the cost of making the cognitive load vastly worse to read them. I told them I couldn't review the PR, though neglected to mention that it was because it gave me a meltdown trying.
- digdugdirk 3y agoThis hits home. Especially the "hours to recover" part. I never quite appreciate how long it takes to right the ship after a day like that. Do you have any tips for how you structure your digital workspace? Favourite tools or methods to help support your executive functioning?
- badtuple 3y agoThe only thing that works for me is separating things into very distinct "realms" and only having one realm open at a time. No exceptions. For example one realm is for communication. Slack, Browser, Email, and Calendar can be open. Nothing is really a distraction from anything else here. I'm just being "at work" and communicating in this mode. Another is for coding. Literally the only things open are vim and a terminal. NO browser and NO Slack. If I need documentation then I didn't design well enough, and design is it's own realm. I should know the libraries I'm using, and anything else is easily handled by vim's autocomplete/intellisense or navigating to the code. The other two explicit realms are Writing and Design/Planning. There are more adhoc ones, but I really try to avoid adhoc-ness. Switching realms is a hassle and requires super deliberate action. This means I can't just randomly switch between tabs and code and Slack and email and social media and just...kinda looking at things? That was my main problem. It was too easy to "move" and so I could never stop moving and somehow the entire day was gone. At no point was I goofing off, but my day just disappeared. The only issue is that work people really really want my dot to be green on Slack at all times. They even give me the room to be on my own, but literally just having Slack open is a weird attention drain and I don't really know how to convey that. This leads to me getting most of my work done after hours and working way too long :/
- bitwize 3y agoOh. So it's not just me then. For years I thought I was missing out by not having acclimated to modern IDEs like JetBrains or Visual Studio Code. I find features like autocomplete aggravatingly distracting, and when I want to do something the IDE or a plugin didn't account for, it often becomes a manual process. By contrast, with Emacs, I can simply omit the addition of features that distract me from the code, and I can automate away manual workflow pain points with a few lines of Emacs Lisp, evaluating them right in my running editor and saving them off. But I wondered if that was some sort of Bruce Tognazzini "your brain is gaslighting you, and you're leaving productivity on the table by not using the objectively superior UI" type phenomenon. Based on this research... well, I guess not. Comforting to know.
- bob1029 3y agoEven "lite" editors like VSCode, NP++, Sublime Text, etc have become distracting for me. Every time I fire one of these things up, my mental state is eliminated by being forced to dismiss some "hey we got a new version for you :D:D:D" bullshit modal. To whomever is responsible for adding these to apps: please stop. No one is enjoying your shenanigans. It is a text editor. Empathize with the user: People with far less time than you are trying to paste some hot mess right off their clipboard to work with. They've probably got a super nasty idea in their head they can barely hold on to. Visual studio proper is a 100% circus for me now. I can power through it, but I lose tabs in about 15 seconds after opening them. Many times I feel convinced these tools have been engineered with intent to be shittier over time and slow down neurodivergent users. The ADHD/etc crowd is definitely the #1 thing a software company needs to worry about in terms of moat maintenance...
- kzrdude 3y agoI'm sorry to shame here, but one of my favourite environments jupyterlab has started with the same thing. Update notification popup. And this is python, where I specificed exact version in my requirements file.
- kazinator 3y ago> I lose tabs in about 15 seconds after opening them. But even simple editors open multiple files somehow, in tabs or otherwise.
- phito 3y agoI love intellij/rider's Distraction Free mode, combined with shortcuts and no mouse
- jstarfish 3y agoThe corollary is enabling auto-update to get rid of the box, only to find UI features added or rearranged every time you try to start working.
- ziml77 3y agoSublime Text is surprisingly bad about that. Or at least the package manager is. I'm okay with occasionally being prompted to update the editor, but it drives me crazy when I launch Sublime Text, go to start working in a text buffer, and then suddenly have the tab swap out from under me to show me changelogs for everything it just updated. All doing that does is piss me off and make me certainly not read the changelog because I'm instantly closing it to get back to what I was doing!
- sfteus 3y agoAnecdotally as someone with ADHD, one of my favorite features in Jetbrains IDEs is that I can double click on the tab / filename to hide everything irrelevant to what I'm looking at, and repeat to bring it all back when needed in the same state that it was in previously. When I'm doing like a root cause sort of search by using the find window (via Ctrl/Cmd + Enter) and pulling up individual results, and using other tools such as the explorer / git history / terminal / whatever else. If I need to focus on the code I can temporarily hide everything, then bring it back up when I'm ready to move to the next result.
- adfm 3y agoThere's also a focused "zen mode" for VSC.
- sirsuki 3y agoMeanwhile, Vim and Emacs users be like “what is going on over there?”
- AequitasOmnibus 3y agoIt's funny, I just spoke about this in another thread (https://news.ycombinator.com/item?id=36691047 https://news.ycombinator.com/item?id=36691047) recently. These findings don't merely apply to coding, they're applicable to any type of focus-driven work. Case in point, I use VSCode to type all of my work-related research and writing drafts instead of using Word for the simple reason that the Word UI is cluttered, distracting, and makes writing difficult. By comparison, VSCode is so much more pared down and lets me focus on what's actually important - the content of my writing! Is feature-creep the inevitable fate of any software environment? As a product gains momentum, I think there's always going to be pressure to add new features to either justify monetization or user retention/growth (and, more cynically, to justify what an employer is paying a team who is staffed on that piece of software). I do think that FOSS is more immune to this problem. There's no incentive to grow or monetize, and so you end up with software that can be feature-complete for its purpose and left relatively alone (the downside is that there's a lot of half-baked FOSS out there as well!). Hopefully when feature-creep takes over VSCode, someone will fork it and continue the project as-is.
- heyoni 3y agoCould you imagine vim trying to push some sort of paid subscription or social network integration?
- euos 3y agoI am a successful software engineer (20+ years, worked in companies like NVIDIA, had been at Google for the last decade) and I have dyslexia. I was also diagnosed with ADHD a couple years ago but I do not want to take medications as they did not improve my quality of life. Syntax/semantic highlight and animations are the only reason I am in this profession. I do not "read code" - I mostly "parse" the shape of it, relying on identations and colors to grasp what is going on. I loved when I worked with Java that Eclipse and IntelliJ refactoring support enabled me to quickly restrusture code the way I can easily understand it.
- naikrovek 3y agocolor and shape of segments of code are far more useful to me than reading, once I've already read that code. I need those colors and those shapes. people who say that no one needs syntax highlighting are so myopic that it makes my head spin. oh everyone is exactly like you, are they? no one needs syntax highlighting! no one! 80-column rules are the same, for me. arbitrary nonsense rules made up by people who do not have the exact brain that I have, but who assume that everyone has the exact same brain that they have. this profession is riddled with people who think they know the best way for all software developers to work, and I swear nothing is more perfectly crafted to inspire in me the urge to murder people than people who say these things. believing you know the best way for everyone in your field to work is one of the apex caustic traits of professional software developers, and it is an extremely common trait, in my experience. everyone is different. there is no enforced development style, or enforced language, or enforced framework which is even acceptable to even 10% of all software developers, never mind being "best for everyone."
- bern4444 3y agoThis is why like tabs over spaces. I like a tab to be equivalent to 4 spaces. But my coworker may prefer a tab to be 2 spaces. Another may prefer 6 etc. Tabs let each individual render the code to their liking while keeping everything in sync. Using spaces forces everyone to one person's preference.
- w10-1 3y agoToo bad the article is not open-access, as I would expect from JetBrains. And too bad Eclipse's Mylyn doesn't make anyone any money. It's brilliant for this. Extra cognitive load slows everyone. It's just that the effect is measurably distinct in people with executive function (distractability) issues, with respect to speed. The distinction between debugging and coding is not really active vs monotonous but driven by your own ideas vs chasing (a problem). The study isn't realistic, but it's designed to get a measurable result (and to showcase the "efficiency tracking" plugin). Anecdotally, everyone adjusts their IDE, or accommodates what can't (easily) be changed. Too bad that wisdom is lost and hard to share. I think the solution here is more configurable UI's, with the configuration being automated/scriptable so that once you've established your preferences, you can replicate them through upgrades, etc. The most configurable IDE of course is Eclipse (which is in decline because no one gets paid directly to write for it, and it's cheaper to publish a language server for your new language than build an IDE). You can arrange views as you like, change menu and toolbar visibility, change key bindings, and of course add whatever plugins/features you need. If you use Mylyn, you get task-based filter that hides elements not required for your tasks, and highlights the files relevant for that task in a way that can be shared via bug-tracker. You can save view configurations as a workspace and save various preferences. But because components come from everywhere, support for configuration capture varies. People share their dotfiles for shell and vi/emacs configuration, but not their IDE configurations. It's too bad, because then there would be a configuration population to analyze when raising UI issues. ADHD and ASD are a broad spectrum. It may help to join the tribe because it validates our experience, but then we can fail to recognize our brain's specific biases. Worse, anyone over 7 has been getting good at compensating, which hides the issue, and our culture of excellence/competition/success == good (therefore failure bad) further obscures with shame, defeat, and self-sabotage. Legal requirements for accommodation help set a global floor, but may also work as a local ceiling by supplanting ordinary fellow-feeling. For reading fatigue, consider a dyslexia font, e.g., https://opendyslexic.org https://opendyslexic.org.
- VectorLock 3y agoEvery few years I go through the exercise of thinking "Oh <some IDE> has some cool features, maybe I'll try using it" and that ends quickly when I get annoyed by the clutter and lack of efficiency in operations and go back to vim-- even IDEs that have "vim mode." Even adding IDE like features to vim I quickly dump because I feel like they get in my way.
- ranting-moth 3y ago> "We found that the perceptual load does affect programmers’ efficiency." Yeah, not a surprise of the century for me. Is there an similar research on interruptions? Especially Slack going ping ping all the day? I wonder how much those interruptions cost the industry. I know they have benefits too.
- joymonger 3y agoEverybody's style is different, but for me, I silence... everything. Nothing dings. Nothing pops up. Not on my macbook, or my phone (Do Not Disturb, always), or even my microwave. For Slack, I watch for a number in the red dot above its icon. Then I know I need to check it. For e-mail, sometimes e-mails just get by me. It's not usually a problem. For calendar, I have to keep a mental note of my next meeting. That is probably the biggest downside of this setup.
- atq2119 3y agoI'm similar, and started to just manually set a timer for upcoming meetings on my phone.
- awwaiid 3y agoI couldn't even make it all the way to the end of the title
- crtified 3y agoIt is a lot. "Do coders with ADHD find bloated interfaces annoying?" might be one simplification. And, of course, we know they can be. To varying degrees, depending upon the type of task the person is doing, the nature of the bloat, and the nuance of that particular persons ADHD symptoms and triggers. Take away the ADHD factor, and we might still conclude that concentration of focus is impaired by distracting external stimuli, and that what does-or-doesn't constitute "distracting" is entirely context- and nuance- dependent!
- treyg 3y agoDistracting things distract people who are easily distracted
- macinjosh 3y agoThis is why I use nvim with minimal plugins. It is hilarious to me that an IDE has a distraction free or "zen" mode. Like that is the mode it always needs to be in my friends! Who wants a "full of distractions" mode on the tool they use to get work done. Also, why would I need an on-screen button for something I can just do with the keyboard I am already touching?
- itissid 3y agoI have pretty bad ADHD, back in the day when I was flipping between editors, I had to carefully catalogue what I want from an IDE and then force myself from ignoring everything else. Here is what my list chiefly has: 0. Reasonable Vim key binding support 1. Linter should highlight as I type. A compile time checker that can point out type errors(mypy, clint what have you) as I type. A reasonable code formatter that formats on save the code I have edited only. 2. A build button that can run a predefined file(useful to run Android apps) 3. Jumping between functions by mouse click. 4. Search bar to find (a) Any Class by Name or (b) any file by name across code bases. 5. A good debugger that can be run from within the IDE. Though for python ipdb is better by miles from the stock pdb debugger. But different languages have different ways they support a debugger so an IDE can abstract over them and just let me place break points and hit run! 6. Sane auto complete: This is easier for IDEs to do in compiled languages, but for non compiled languages like python I have to sometimes futz around. 7. Lately a chat GPT plugin that can answer basic question without diverting my attention to a browser tab. I would suggest that if you get distracted and have an inner voice(even if its faint), use the inner voice to build out this kind of a list and ignore everything else.
- solardev 3y agoFor you UX/accessibility folks, is there a meaningful difference between "perceptual load" and "cognitive load"?
- melagonster 3y agoMaybe this is the time to offer ADHD friendly function. this issue is frequently mentioned on HN.