Neurodivergent devs: what languages actually *click* for your brain?
-
@dylanisaiah Python is generally my go-to but I'm fairly used to jumping between languages.
Python's pretty nice because it reads like pseudocode and still has a LOT of uses, so it's both super accessible and super powerful
@sitcom_nemesis I haven't been able to click with Python. I've been jumping languages like I distro-hop for ~10 years. I keep coming back to Rust but learning is a significant struggle for me. So I'm trying to find something that works better with my brain
-
Neurodivergent devs: what languages actually *click* for your brain? Not popularity — what feels kind, predictable, low-cognitive-load? Why?
I'm building a framework for ND devs and want real experiences. Rust? Go? Odin? Python? Something else?
Tell me what works (or doesn't) for you.
#ActuallyAutistic #ADHD #Neurodivergent #Programming #Rust #Go #Odin
@dylanisaiah in my personal experience, the challenge is to reduce the working memory demand, which materialize in two main ways:
- having to track side effects due to global state, autowiring, meta-programmaing or monkey-patching: Ruby, JS and Python are the worst offenders in descending order
- having inconsistently documented inputs and outputs for functions. I hate languages such as JS or Java where one function can have a dozen overrides. I love languages such as Go, Rust, Gleam, where there's a consistent documentation format and a single website to read them all, instead of having to navigate to each project's website to find where the docs are (if there are any)
Although it can be tedious and not fun to write, Go spoils me on both aspects so that's the language I usually default to:
- using global state is frowned upon, magic tricks too. My IDE's "go to definition" / "go to usage" functions are enough to navigate the code base, no need to grep and pray. Formatting and software patterns are consistent across projects, so diving into a library is pretty fast
- https://pkg.go.dev offers a consistent experience to navigate both the stdlib docs and dependencies docs. My IDE shows the apidoc on mouseover, with a link to pkg.go.dev to navigate it easily
The Rust ecosystem's over-reliance on macros breaks point one for me (and makes compile times horrible!). "Go to definition" is my most used keyboard shortcut because I like to read my dependencies' code, and many Rust libraries break that flow (with macros in the middle of the flow, or too many abstraction levels)
Gleam's functional + immutable with a familiar syntax should theoretically work great for me, but the ecosystem is a bit too young for now. But I'm keeping a close eye on it.
-
@d1 Python doesn't click with me and C looks scary! I don't even want to touch JS or C++ honestly
@dylanisaiah There's a learning curve with C (best if one has some sort of mentor), but it's great once once gets the hang of it. It's very Old School.
-
@d1 Bash is honest about what it is — no pretenses. Do you ever find yourself wanting something higher-level, or does Bash cover most of what you need?
@dylanisaiah As to something higher level (*and* performant, unlike python): if I ever get really ambitious, I think I might try some #Zig.
-
@dylanisaiah As to something higher level (*and* performant, unlike python): if I ever get really ambitious, I think I might try some #Zig.
@d1 Zig looks super interesting to me honestly. I was looking at it and Odin at the same time.
-
@dylanisaiah in my personal experience, the challenge is to reduce the working memory demand, which materialize in two main ways:
- having to track side effects due to global state, autowiring, meta-programmaing or monkey-patching: Ruby, JS and Python are the worst offenders in descending order
- having inconsistently documented inputs and outputs for functions. I hate languages such as JS or Java where one function can have a dozen overrides. I love languages such as Go, Rust, Gleam, where there's a consistent documentation format and a single website to read them all, instead of having to navigate to each project's website to find where the docs are (if there are any)
Although it can be tedious and not fun to write, Go spoils me on both aspects so that's the language I usually default to:
- using global state is frowned upon, magic tricks too. My IDE's "go to definition" / "go to usage" functions are enough to navigate the code base, no need to grep and pray. Formatting and software patterns are consistent across projects, so diving into a library is pretty fast
- https://pkg.go.dev offers a consistent experience to navigate both the stdlib docs and dependencies docs. My IDE shows the apidoc on mouseover, with a link to pkg.go.dev to navigate it easily
The Rust ecosystem's over-reliance on macros breaks point one for me (and makes compile times horrible!). "Go to definition" is my most used keyboard shortcut because I like to read my dependencies' code, and many Rust libraries break that flow (with macros in the middle of the flow, or too many abstraction levels)
Gleam's functional + immutable with a familiar syntax should theoretically work great for me, but the ecosystem is a bit too young for now. But I'm keeping a close eye on it.
@quinze This is incredibly helpful — thank you.
"Working memory demand" is exactly the framing I needed. Your Go vs Rust macros/"go to definition" point really resonates.
This reinforces what I'm building with Axis — predictable, discoverable, low-magic.
Given Go's philosophy works for you, do you ever miss features, or is the simplicity itself the win?
Really appreciate you writing this out.
-
Neurodivergent devs: what languages actually *click* for your brain? Not popularity — what feels kind, predictable, low-cognitive-load? Why?
I'm building a framework for ND devs and want real experiences. Rust? Go? Odin? Python? Something else?
Tell me what works (or doesn't) for you.
#ActuallyAutistic #ADHD #Neurodivergent #Programming #Rust #Go #Odin
@dylanisaiah #ActauallyAutistic person here who's written software both for fun and for money for some time now.
The ones I've used the most over the past few years are Python and Go.
Python: it's probably the language I've leveled up in -- and *can* level up in -- most quickly. I can generally write up a quick script-level application in Python almost as fast as I can think about it intelligently. There are plenty of other languages and frameworks that are faster and/or a bit easier to do really complex or low-level tasks in, but for anything that's at the level of most small tasks that don't need to run fast, it's where I usually look first.
Go: it's ugly. I won't deny it. But its core functionality is pretty simple to pick up as well (it feels *kind of* like basic C with a bit of Python and most of the C footguns disabled or even removed), and in general it's pretty easy to tell what a given bit of code in Go is trying to accomplish. That's important when you're coming back to an old project after a few months and need to reboot some working memory. It also ranks pretty highly on application execution speed, much of the toolchain (compiles crazy fast and gives you a single executable file in general), and a few other things like that. I can generally focus on actually writing what needs to be written. It's what I've tended to use recently when Python is too slow (which it often is).
I like the *idea* behind Rust, and it'd seems like it could be a good choice for a good-sized project that didn't feel right for either Python or Go, but I don't know it anywhere near as well as those two.
I'm not super fond of JavaScript and friends (I stopped doing web dev after a while for that reason), and I haven't worked with most others regularly in the last 5 years or so, so I can't comment about much else.
-
@catboi29 You've sold me on the imagery alone. What does Common Lisp actually *feel* like to use day-to-day? Is the quirkiness charming or frustrating?
@dylanisaiah difficult to enumerate. Some bits feel very old (like the "car" function named after a register on an old IBM mainframe from the 70s) and some of it is space age: getting into macros and writing programs that write programs.
It's a language that you will be learning new things about for years and years.
A good place to start is googling "practical common lisp" as a free introductory book.
It is, unfortunately, completely unemployable!
-
@quinze This is incredibly helpful — thank you.
"Working memory demand" is exactly the framing I needed. Your Go vs Rust macros/"go to definition" point really resonates.
This reinforces what I'm building with Axis — predictable, discoverable, low-magic.
Given Go's philosophy works for you, do you ever miss features, or is the simplicity itself the win?
Really appreciate you writing this out.
@dylanisaiah when writing Go, the two things I miss most are:
- sum types + pattern matching -> really reduces code complexity
- Result / Option instead of nullable -> mostly cosmetic, although nil pointer exceptions are not fun to get into
Iterators & generics are good enough,
samber/loscratches my map-reduce itch when it makes the code easier to maintain than a loop. -
@dylanisaiah when writing Go, the two things I miss most are:
- sum types + pattern matching -> really reduces code complexity
- Result / Option instead of nullable -> mostly cosmetic, although nil pointer exceptions are not fun to get into
Iterators & generics are good enough,
samber/loscratches my map-reduce itch when it makes the code easier to maintain than a loop.@dylanisaiah ah, and quick build times are a must for my ADHD. In Kotlin, my brain is already drifting elsewhere before the unit tests execute.
-
@josejfernandez @gooba42 IDE weight mostly — Visual Studio/Rider feel heavy compared to lightweight editors I use for other languages. Do you use something lighter? Or does the tooling just fade into the background after a while?
@dylanisaiah @josejfernandez My experience is that for a while you ignore the IDE but as you get used to it, it's more like having someone over your shoulder who's actually helpful.
Syntax highlighting, Intellisense, help formatting... None of it is critical but it's all helpful enough to want to keep it.
-
@dylanisaiah @josejfernandez My experience is that for a while you ignore the IDE but as you get used to it, it's more like having someone over your shoulder who's actually helpful.
Syntax highlighting, Intellisense, help formatting... None of it is critical but it's all helpful enough to want to keep it.
@gooba42 @josejfernandez I really want to use an IDE, I just simply can't pick one. IntelliJ, Visual Studio. They feel "bloated" to me.
-
@dylanisaiah #ActauallyAutistic person here who's written software both for fun and for money for some time now.
The ones I've used the most over the past few years are Python and Go.
Python: it's probably the language I've leveled up in -- and *can* level up in -- most quickly. I can generally write up a quick script-level application in Python almost as fast as I can think about it intelligently. There are plenty of other languages and frameworks that are faster and/or a bit easier to do really complex or low-level tasks in, but for anything that's at the level of most small tasks that don't need to run fast, it's where I usually look first.
Go: it's ugly. I won't deny it. But its core functionality is pretty simple to pick up as well (it feels *kind of* like basic C with a bit of Python and most of the C footguns disabled or even removed), and in general it's pretty easy to tell what a given bit of code in Go is trying to accomplish. That's important when you're coming back to an old project after a few months and need to reboot some working memory. It also ranks pretty highly on application execution speed, much of the toolchain (compiles crazy fast and gives you a single executable file in general), and a few other things like that. I can generally focus on actually writing what needs to be written. It's what I've tended to use recently when Python is too slow (which it often is).
I like the *idea* behind Rust, and it'd seems like it could be a good choice for a good-sized project that didn't feel right for either Python or Go, but I don't know it anywhere near as well as those two.
I'm not super fond of JavaScript and friends (I stopped doing web dev after a while for that reason), and I haven't worked with most others regularly in the last 5 years or so, so I can't comment about much else.
@hatysa This is exactly the kind of real-world experience I needed. Thank you.
"Reboot working memory" after months away — that's the goal. That's what I'm trying to build with Axis.
Right now I'm still exploring — Odin, Rust, Zig, and even Java are in the mix. Hearing how Go works for you is really helpful context.
Appreciate you taking the time!
-
@dylanisaiah when writing Go, the two things I miss most are:
- sum types + pattern matching -> really reduces code complexity
- Result / Option instead of nullable -> mostly cosmetic, although nil pointer exceptions are not fun to get into
Iterators & generics are good enough,
samber/loscratches my map-reduce itch when it makes the code easier to maintain than a loop.@quinze This is exactly the kind of detail I'm looking for — thank you.
Sum types + pattern matching feel like a superpower. And yeah, nil pointer exceptions are rough.
Good to know samber/lo helps — I'll check it out.
-
@dylanisaiah ah, and quick build times are a must for my ADHD. In Kotlin, my brain is already drifting elsewhere before the unit tests execute.
@quinze "Brain already drifting elsewhere before unit tests execute" — this hit hard. Build speed is absolutely part of "kindness" for me too.
Slow feedback loops kill focus.
-
@gooba42 @josejfernandez I really want to use an IDE, I just simply can't pick one. IntelliJ, Visual Studio. They feel "bloated" to me.
@dylanisaiah @josejfernandez No doubt they are heavier than just an editor but you do get something in the trade.
I'd suggest just try one for a while. Stick with it through at least one project, not super trivial but it doesn't have to be huge either.
-
@catboi29 You've sold me on the imagery alone. What does Common Lisp actually *feel* like to use day-to-day? Is the quirkiness charming or frustrating?
@dylanisaiah @catboi29 Sorry to chime in from the sidelines: To me, #CommonLisp feels like home. I mean this seriously: This is my home language. I know and confidently use a lot of other programming languages, but whenever I use Common Lisp, I get a sense of calm, familiarity, warmth, predictability, and belonging that I don’t have with any other language. Common Lisp has, as far as I can tell, what Christopher Alexander calls the Quality Without a Name. Common Lisp is alive, it has a sense of history, of constructs that just work and fit extremely well together, of a living and breathing organism that takes good care of you and your ideas. Sorry to sound so esoteric, but that’s just how it is, for me at least…
-
@gooba42 @josejfernandez I really want to use an IDE, I just simply can't pick one. IntelliJ, Visual Studio. They feel "bloated" to me.
@dylanisaiah @gooba42 The IDEs help. If you are writing a simple script they might seem like too much, but otherwise they are useful. I also advise to get used to one. Visual Studio is more heavyweight and installs many more things on the machine. Jetbrains Rider is leaner on that regards.
-
@catboi29 You've sold me on the imagery alone. What does Common Lisp actually *feel* like to use day-to-day? Is the quirkiness charming or frustrating?
@dylanisaiah @catboi29
#commonlisp
It is a language that does not force on you opinions of its creators. It is multiparadigm and it is more like an exoskeleton than a mecha - if that makes sense. -
@catboi29 You've sold me on the imagery alone. What does Common Lisp actually *feel* like to use day-to-day? Is the quirkiness charming or frustrating?
#CommonLisp just gets out of the way. It makes thinking about problems and solutions in your head to code on the screen a fluid endeavor.
It is the ideal prototyping language and I like that it comes with a lot of batteries included.
There's also no quirkiness in it for me. There's some warts but they don't really detract from the overall experience.
(It also available for and can target a lot of platforms: I have an app available on Android for testers.)