Live data from Hacker News

Effect of perceptual load on performance within IDE in people with ADHD symptoms

link.springer.com

141–150 of 288 posts

Re: Effect of perceptual load on performance within IDE in people with ADHD symptoms

#141

Earlier quoted context omitted.

Modern python is no longer dynamic. Type checking is a big part of python now. Python also has ADTs which match it in power to rust.

The problem is less the language and more the culture around it. Typing will always be second-class, culturally. Additionally, mypy feels much slower to use versus something like Rust’s ‘cargo check’. Regarding ADTs: do type checkers ensure totality (all cases covered) when pattern matching? (I’m not casting aspersions here. It is what it is, you know?)

>The problem is less the language and more the culture around it. Typing will always be second-class, culturally. Additionally, mypy feels much slower to use versus something like Rust’s ‘cargo check’.

Agree with mypy being slow. As for the culture it's largely moving in the right direction and it's at a point where you're more likely to find a python shop to be using typing than not. Of course for scripting I think people may not be so readily adopting types.

>Regarding ADTs: do type checkers ensure totality (all cases covered) when pattern matching?

Yes it does.

Cast your initial presumption aside. This was a huge surprise to me too. Everybody loves typescript but basic usage of types in typescript is actually less powerful because it doesn't support this.

You have to use it in a specific way though.

https://tech.preferred.jp/en/blog/python-exhaustive-union-ma...

Re: Effect of perceptual load on performance within IDE in people with ADHD symptoms

#142
It's funny, I just spoke about this in another thread (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.

Re: Effect of perceptual load on performance within IDE in people with ADHD symptoms

#143
I 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.

Re: Effect of perceptual load on performance within IDE in people with ADHD symptoms

#144

Earlier quoted context omitted.

Modern python is no longer dynamic. Type checking is a big part of python now. Python also has ADTs which match it in power to rust.

That's great if you're in a codebase at a workplace which enforces python type annotation checking. Unfortunately, I can tell you from experience that out in the real world, at fortune 500 companies, there are millions of lines of untyped Python doing critical work while being full of subtle type errors which should be compile time errors but will rear their heads as runtime errors when it's least expected.

It's changed a lot recently. I would say the majority of companies now use type checking.

It's def not as pervasive yet as Typescript.

Re: Effect of perceptual load on performance within IDE in people with ADHD symptoms

#145

It's funny, I just spoke about this in another thread ( 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 c…

Could you imagine vim trying to push some sort of paid subscription or social network integration?

Re: Effect of perceptual load on performance within IDE in people with ADHD symptoms

#146
Too 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.

Re: Effect of perceptual load on performance within IDE in people with ADHD symptoms

#148
post #81

Earlier quoted context omitted.

This idea of a 'small brain buffer' is why I love writing small atomic notes in wikis [1]. It lets me break problems down into simple pieces that I can later assemble upward in abstraction, rather than try to hold complex ideas in my head and compile them together in one big document. The buffer waxes and wanes, and I need to be able to adapt my writing process so I'm productive no matter where it is at the moment. […

Do you have this issue of where you start in on something, you’re making progress, there’s velocity, the work seems cogent, and then...it’s gone. Whatever point you had, whatever drive was there, is just gone. The wind has calmed and the sails just drop loose on the mast. This happens to me, both in my own work, or writing something like this, and then I just dump it. Kind of aggravating.

Yeah definitely! I don't trust that my writing energy nor my memory will continue into the future, so I have a few tactics I use:

If an idea flashes into my head, I quickly write it shorthand anywhere. See my other comment (https://news.ycombinator.com/item?id=36726680) on having 'Streams' pages that offer an immediate working space to write. I let the idea expand with that progress & velocity, and once I've reached the end of my writing juices, if it's important enough I copy/paste it into a better place. Organizing is one task that can be done when the winds of flow state calm.

Similarly, breaking ideas into small bite-sized parts helps because those are easier to complete with less energy. Better to make incremental forward progress than keep trying to do the same big thing over and over.

Also, I try to start with a summarized version of what the thought is. Again, shorthanding the key points is helpful. It's easy to have a big thought that has several constituent parts and immediately dive into some details on one of those parts, only to find that the big picture sort of disappears. Better to capture the TLDR first.

Finally, I'm okay with abandoning ideas, I trust that the important ones will come back, and I make sure to leave affordances for myself so I can always return to what I was doing later. Some things I do to make revisiting ideas easier include:

1. I'll review my 'Passing Thoughts' stream at least once a week to see if my new context or a new perspective allows for the ideas to come back.

2. I keep track of work-in-progress work with a #WIP tag and new pages I've made in 'What's New' stream.

3. I keep track of my thought process with occasional self notes in 'Whats New', e.g. "I dove into X by expanding Y and Z but think I have to reorganize section A to fit it in"

4. In the organizing step I think carefully about how I name pages (including using aliases)

5. I densely link all related ideas so there's many ways to find them.

Re: Effect of perceptual load on performance within IDE in people with ADHD symptoms

#149

I 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 Terrafo…

As someone on more or less the maximum dose of adderall, here are the commandments as I have been able to divine (for myself): - Thou shalt use a language server. Esp. goto-definition and find-refs, as they shall light your path through third party libs. - Thou shalt refactor like a crazy person. No component should have less than 3 or more than 5 significant members. A concise codebase makes for a calm mind. - Thou…

1: I'm using vscode and the microsoft tools for Python, so I have the LSP for Python installed and running. I've also got treesitter running. The MS Python tools are at https://marketplace.visualstudio.com/items?itemName=ms-pytho...

2: This I need to do. I wanted to use the Traitlets module for my config parameters/data so I need to refactor that part of the app.

I did wonder about something like a TerraformCloud class because so far I have a bunch of methods in there: search_workspaces, get_workspace_id, get_variable_id, is_workspace_used, get_unused_workspace, enable_workspace_module, set_workspace_as_used, set_variable, start_workspace_run, and probably more in future. Should I be breaking those up into TerraformCloud, TerraformWorkspace, and WorkspaceVariable? Sorry for the question, I am still learning, and the terrasnek module is helping a lot with all this Terraform stuff.

3: I do use the black formatter. The only thing I question is its line-length rule.

4: I didn't know about mypy, that's pretty great and I'm super grateful!

5: Yeah, I am probably failing hard at that one. I will try to return to The Holy Path Of Unix.

Thank you for all of these. I'm so very grateful for your help!

Re: Effect of perceptual load on performance within IDE in people with ADHD symptoms

#150
post #103

Earlier quoted context omitted.

Yeah but my rebuttal is that even with type hints and adequate type checking, that Python is too dynamic to trust consistent behaviour. An object can conform to a type in name only, but that’s not enough to tell you what methods or attributes exist on it at any given time.

monkey patching is rarely done. In practice, your rebuttal almost never occurs. I believe these type checkers can detect monkey patching and trigger a type error or warning.

In practice it does occur very often. I’d suggest not ascribing your own experience to my own. I’ve been professionally coding in Python for over a decade in very varied codebases.

There are tons of libraries in many companies that use dynamic attribute lookups for efficiency reasons, when adapting to different data sources and the like. Or pass through lookups on nested objects. Or they’re dynamically looked up on bound libraries from other languages and frameworks.

And these type checkers cannot detect it. Python’s dictionary access is not guarded by the type checkers and neither is __getattr__.

If you’re making such wide sweeping statements you need to be more familiar with the subject matter.

Post reply on HN