Live data from Hacker News

Ask HN: Programmers who don't use autocomplete/LSP, how do you do it?

news.ycombinator.com

491–500 of 652 posts

Re: Ask HN: Programmers who don't use autocomplete/LSP, how do you do it?

#491

This question reminds me of the first time I met a blind programmer. I asked him how he managed to code, and he replied with something that stayed with me: a good programmer should organize software in such a way that every piece of code has a clear and logical place. The organization should be so intuitive that anyone could build a mental model of the structure and navigate it easily, even without seeing it. It felt…

> I asked him how he managed to code, and he replied with something that stayed with me: a good programmer should organize software in such a way that every piece of code has a clear and logical place. The organization should be so intuitive that anyone could build a mental model of the structure and navigate it easily, even without seeing it.

I had a similar conversation with a blind classical guitarist before I ever played, which was echoed by my instructor when I started to learn a few years later. Something along the lines of "If you don't know a piece of music to play it with your eyes closed then you haven't practiced it enough for a performance."

I'm not sure I follow the same idea with not utilizing available tooling in software development, but I do believe that most developers would benefit from intentionally going 'back to basics' and limiting their use every so often and shining a light on what you might think you have a solid grasp of but are actually at the limit of your unassisted capabilities.

Re: Ask HN: Programmers who don't use autocomplete/LSP, how do you do it?

#492

This question reminds me of the first time I met a blind programmer. I asked him how he managed to code, and he replied with something that stayed with me: a good programmer should organize software in such a way that every piece of code has a clear and logical place. The organization should be so intuitive that anyone could build a mental model of the structure and navigate it easily, even without seeing it. It felt…

You are lucky to have small code base or one that you write mostly?

With 6 other devs on the team and 5 apps our team supports there is no way I get code well organized especially when as a senior I have devops stuff to deal with meetings, explaining features to business, checking up support tickets and random stuff happening all the time.

I don’t know the code base and there is no way to keep up.

While I have to dive in and fix shit ASAP or when I get to code review I have to fix some less experienced guy code. Or write part of code when proposing architecture solution, because just telling people “I am right do it my way” does not work until I write piece of code and then they understand.

Language server and ctrl-click is my bread and butter because that is the fastest way while also going slow enough to understand context.

Re: Ask HN: Programmers who don't use autocomplete/LSP, how do you do it?

#493
Before mobile phones where a thing, we used to memorize the phone numbers of every family member and friend and co-worker, etc. The numbers we rarely used, we wrote down or looked up in the phone book. When you got a new number, you maybe wrote it down, then after having dialed it a couple of times, it stuck. This didn't really require any effort, it was just the natural way of doing things.

Then came the mobile phone with the ability to store contacts, today I can't even remember my wife's number.

I have coded for more than 40 years and I hate autocomplete, language servers, etc. I don't use any of it because I have found (after having tried to use it all) that, just like with phone numbers, you don't remember much if you use all of that and you have to make a real effort, but things just don't stick the same way. But if don't use any of that, you only have to look things up in the beginning, then occasionally, then rarely or never again and more things just stick, you get faster in a natural way and you understand your code better. You also think deeper about how to structure your code and how to organize everything.

If you always use a crutch to help you walk, you will never walk by yourself. The crutch will look like it is helping you, but that's only in the beginning, eventually it will hinder you and hold you back.

That's my 2 cents.

Re: Ask HN: Programmers who don't use autocomplete/LSP, how do you do it?

#494

Earlier quoted context omitted.

When you have to manually search for files and then Ctrl+F to find functions, lookup docs in a web browser (which I hear is how people who don't use IDEs still do that), or manually run a linter/compiler to see warnings in your code, you're just being really inefficient. It's inefficient the first time but you quickly build a working memory and a deeper mental model of the code, which becomes even more useful in the…

Good riddance? Why spend your life doing something a computer could do for you? The goal of programming is not to write code (however much I enjoy that part), it is to solve problems. I don't think copilot et al is anywhere close yet though. They are occasionally useful when working with popular APIs you use very rarely, or when you need to write some very repetitive code. Other than that, I feel like it's mostly a m…

> The goal of programming is not to write code (however much I enjoy that part), it is to solve problems.

Right, which is exactly why autocomplete is not a huge help.

Re: Ask HN: Programmers who don't use autocomplete/LSP, how do you do it?

#495
post #184

This question reminds me of the first time I met a blind programmer. I asked him how he managed to code, and he replied with something that stayed with me: a good programmer should organize software in such a way that every piece of code has a clear and logical place. The organization should be so intuitive that anyone could build a mental model of the structure and navigate it easily, even without seeing it. It felt…

> Not only do I avoid using LSP features, but I’m also opposed to their use. While they can help with navigation, they may prevent developers from experiencing and addressing the underlying structural issues in their code. LSP by itself will not prevent anything. LSP (using the terminology from OP, but any IDE really) is just a tool like any other which allows you to do things faster. It doesn't matter how organized…

"just a tool" is always the excuse for allowing a crutch to make you weak and directionless.

If it's really "just a tool", why so defensive?

Sorry. I know I'm a dick. But come on man, don't pretend the effects of crutches doesn't exist. It's silly to try to deny something so obviously observable all day every day, in all possible contexts not just coding.

Re: Ask HN: Programmers who don't use autocomplete/LSP, how do you do it?

#496

Earlier quoted context omitted.

Those terms have actual meaning, I've never heard Python or Ruby referred to as untyped. Because they both definitely have types and are in fact strongly typed. Like, no one would call Ocaml untyped if you used type inference and didn't spell them out yourself... Or if you used the auto keyword everywhere in C++... The Ruby and Python runtimes both definitely enforce types.

> I've never heard Python or Ruby referred to as untyped Well, now you have! Here are some examples: https://0xda.de/blog/2024/03/untyped-python-sucks/ https://lucumr.pocoo.org/2023/12/1/the-python-that-was/ In fairness I think it is a fairly recent linguistic shift, probably because there's no debate between weakly typed and strongly typed - strongly typed is oblivious the right answer. Instead the debate is between…

Of course it's Python people who come up with this nonsense...

Re: Ask HN: Programmers who don't use autocomplete/LSP, how do you do it?

#497

I use vim on the command line, and screen to switch between terminal and vim. vim does have autocomplete, but it doesn't pull names from the entire codebase, just from the current files open. I don't remember every type and field in the codebase--I have to familiarize myself with them when I work with them, just like you do--and if you don't familiarize yourself with your types, the IDE telling you what your type is,…

SIDE NOTE: An underestimated attribute of using command line editors of olde is that they basically don't change. Yes, Vim is under development still, but the new features don't matter to me, because I don't track them and don't know what they are. All of the things I have ever done with Vim, Vim still does exactly the same way it did when I started using Vim.

I'm too out of touch with the IDE world to be sure they all have this problem, but at least the ones I used BITD would make changes that forced me to re-learn how to do things I already knew how to do before the change. I'm not against doing this entirely, but it needs to be done a lot more judiciously than most higher level tools do it. Code editing simply isn't an area where there are fast advances being made, so if your editor is making large changes, they are probably not advances, they're just causing you problems.

Re: Ask HN: Programmers who don't use autocomplete/LSP, how do you do it?

#498
post #492

This question reminds me of the first time I met a blind programmer. I asked him how he managed to code, and he replied with something that stayed with me: a good programmer should organize software in such a way that every piece of code has a clear and logical place. The organization should be so intuitive that anyone could build a mental model of the structure and navigate it easily, even without seeing it. It felt…

You are lucky to have small code base or one that you write mostly? With 6 other devs on the team and 5 apps our team supports there is no way I get code well organized especially when as a senior I have devops stuff to deal with meetings, explaining features to business, checking up support tickets and random stuff happening all the time. I don’t know the code base and there is no way to keep up. While I have to div…

[deleted]

Re: Ask HN: Programmers who don't use autocomplete/LSP, how do you do it?

#499
post #198

You should try turning off those features yourself for at least a month and see what happens ;) You’ll learn the answers yourself, much better than us trying to explain them. You’ll learn where all the reference docs live for your language, libraries, and frameworks, and along the way you’ll learn more by actually reading the docs. You’ll learn the value of good project organization and file naming, and explicit impo…

To think that some people are still writing code like in the 70's. Not using productivity tools is just hurting you. I don't know what sort of misplaced sensation of superiority doing things the hard way may bring to you, but please don't give bad advice like this to young people. If they want to experience writing code without the help of modern tools, they can just use one of the so many languages whose tooling suc…

> To think that some people are still writing code like in the 70's.

I'm one of those, sort of. I did install vscode used autocomplete, find definition and on the fly compilation for a while. In the end I turned it all off bar the syntax checking.

Even my i7 32GB laptop it just got in the way, my typing lagging by many seconds while it recompiled and pondered autocomplete. I left syntax checking on only because while it still fell behind in revealing typos, sometimes by minutes, but at least it kept responding to my keystrokes.

I eventually gave up and went back to vim. It's a sad state of affairs when I can find a definition faster with 40 year old tools than a modern IDE can do it. I respect your decision to use modern tools of course, but I'm not sure I'm the luddite here. An Integrated Development Environment that runs slower than I can think is not an improvement in my books.

As for languages and online docs, one of my first steps in learning any new language is to memorise it's standard library. I don't use other libraries unless the bring something very substantial to the table, in such case I memorise them too. Not having to wait for a IDE to suggest autocompletes means the code flows off my fingers, but also means if the IDE starts lagging my typing I get really pissed off.

All that said, I recently tried using IDE + AI + integrated RAG, and was blown away. It's code suggestions are still so bad it's not worth taking the time to evaluate them, but omg as super grep it's amazing. Yes, it might take 15 to 30 seconds to evaluate my "can you find the code that does X" plain English request and provide links to the key functions, but it would take me hours to read through tens of thousands of lines code I haven't seen before to get the same result. Finally, after 40 years, we may have seen the first step change in programmer tooling since the move from line editors.

Re: Ask HN: Programmers who don't use autocomplete/LSP, how do you do it?

#500

This post just gave me an epiphany. I work with some programmers in their 20s. They are some of the best programmers I've ever met. But they never seem to enter "flow state". In fact, they welcome distractions. And now I think I know why. When I was coming up, you needed to enter flow state to be a good programmer. Because you had to keep track of all the functions and their signatures, all the different flows and ob…

This is something I have been noodling with a bit. I'm 40 (started in my late 20's). I welcome the distractions as well.

When I was learning, I would always have a movie or TV show on in the background.

On stream, I am constantly responding to chat. But I am able to delay that by up to a minute most times. So I get most of my work done in short bursts.

BUT, while distracted by a TV show or a chatter on stream, my brain is probably not completely distracted. It becomes a moment for diffuse thought to kick in rather than relying purely on focused thought. (For anyone reading and unaware, diffuse thinking is what causes "shower thoughts")

So, those distractions are just a way of forcing myself to toggle between thinking states.

Diffuse thought is also the reason why I never end on a resolution for the day. I always try to have something that I can stew on overnight while going to sleep, waking up, showering, doing the dishes, etc. I have solved several bugs on my morning commute back when I used to go into the office.

Something somewhat related. People who do non-traditional sleep patterns like biphasic, or even something as extreme as uberman, are able to get to sleep faster than most people with traditional sleep patterns. It is something that you can actually train and practice. Forcing diffuse thought more often maybe helps it kick in quicker too?

Post reply on HN