Live data from Hacker News

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

news.ycombinator.com

471–480 of 652 posts

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

#471
post #184

Earlier quoted context omitted.

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

"the whole point of your job is automation?" Automation is not the point of programming. Think hard about this. It's the most important point. Code/build/hack to create more work for people to do, not less. It's thanatos. People need to unlearn "programming==automation" before it's too late. Everything we do as programmers should be done with "create more work" as a mantra.

Automation is bad for you, but it's "good for business". The least they need you, the better it is.

I assume this is where 'automation' comes in, reduce dependence to the meatbags (us, humans)

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

#472

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…

Here's my take.

One of my hidden superpower that I often see others are missing is navigating library code. Especially in new language.

I don't like reading docs. Very rarely docs are good. Usually docs are incomplete or outright wrong. So I never read them unless absolutely required. I just navigate library, skimming through its source code. Whether it's standard library or third-party library.

I failed this approach with Scala and it was main reason that I abandoned this language. Its collections were so absurdly overcomplicated, that I decided this language is doomed to collapse under its own weight. Apparently I wasn't very wrong.

Another failure with this approach is C/C++. For reasons that I kind of understand but don't approve, its standard library either hidden (so I can't just navigate to malloc implementation) or obfuscated with endless underscores (header template libraries), which makes it unreadable.

So it's not absolutely universal approach, but generally it works. And of course it requires "jump to definition" editor feature.

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

#473
Hi, younger programmer here who's first programming experience was Visual Studio and .NET (that's a lie my first programming experience was a decade earlier with yabasic and notepad but given that I only ran about three programs I'm loathe to count it) my tiny laptop struggled to run Visual Studio and I was working a lot in server admin so naturally started using vi. Vi came without any modern features and when I tried to move back to Vs code I hated it so much. The screen was so busy and every time I typed something I was distracted by 100 different suggestions, sometimes I would accidentally press a key and paste a load of code in I didn't need. By this time I had already gotten proficient at vi keybindings, got any information about an API I needed from scouring the documentation/manpages(please every one make a lot more manpages). I then decided to see how much I could strip back without really affecting productivity. Anyway a few months ago I switched off syntax highlighting and now other people's editors look like a mess to me. Anyway I love that I can program in any environment on any machine as long as a text editor is available. Makes me feel like I'm not beholden to Microsoft or jetbrains when they inevitably tighten the licenses and I think it makes me a better programmer because I have to read and think about the APIs I'm calling.

tl;dr modern ide's abstract you away from compilation pipelines and make you more reliant on intellisense than reading docs. Syntax highlighting is a psyop designed to kill the art.

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

#474

Hi, younger programmer here who's first programming experience was Visual Studio and .NET (that's a lie my first programming experience was a decade earlier with yabasic and notepad but given that I only ran about three programs I'm loathe to count it) my tiny laptop struggled to run Visual Studio and I was working a lot in server admin so naturally started using vi. Vi came without any modern features and when I tri…

I also want to add to this: I write code in such a way that I shouldn't need to be referencing multiple files because each file exposes a clear interface. As long as the interface makes sense with the rest of the program I shouldn't need to think about the specifics of it and should be able to populate the interface as naturally as shifting gears whilst driving

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

#475

Hi, younger programmer here who's first programming experience was Visual Studio and .NET (that's a lie my first programming experience was a decade earlier with yabasic and notepad but given that I only ran about three programs I'm loathe to count it) my tiny laptop struggled to run Visual Studio and I was working a lot in server admin so naturally started using vi. Vi came without any modern features and when I tri…

I also want to add to this: I write code in such a way that I shouldn't need to be referencing multiple files because each file exposes a clear interface. As long as the interface makes sense with the rest of the program I shouldn't need to think about the specifics of it and should be able to populate the interface as naturally as shifting gears whilst driving

Also I use vi so language server protocol installation isn't something I have the energy to mess with. Nor would it make me more effective

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

#476
post #265

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 myself coined a term "kitchenware principle" that I have applied to my codebase as well. You put forks and knives adjacent because they serve similar utility and common purpose. Same with plates, cups, weird gadgets in separate drawer. You should organize your code similarly and with as little fanfare. They are just tools, dont get clever with them. Sometimes, you get too many forks in same holder so you have to di…

so `utils` is pretty much the 'junk-drawer' of the kitchen then ;)

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

#477
I use auto-indent and syntax highlighting which is sort of an IDE feature, and some other quality of life things like triming trailing whitespace on lines I edit. I also trigger compilation from the editor so I can step through the compilation errors one by one.

I know my editor (emacs) could do some of the more advanced things you mention, but it needs a bit of setup and I'm lazy. It's not really a blocker.

I look at the docs if I'm doing something new to me or have forgotten a function call. I google more complex things which often gets me more useful info than an IDE could give me, unless it's drowned by AI-slop.

If I want to dig around in a codebase I can grep for things, or just open a likely looking file and isearch for the thing.

I do git etc from the commandline, which I could probably do from emacs too but I never really bothered to.

I have nothing against IDEs and have used some at places where it was harder not to because they'd standardised on a common one. I kinda enjoy the simplicity of just having a familiar editor for any language I encounter though.

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

#478

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…

My understanding of successful blind programmers is they basically are forced to write code in a way that fits in their head, and this is the essential feature of good code.

I'd be interested in more concrete examples of what specifically you're referring to though.

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

#479

Earlier quoted context omitted.

It was very clear from the context that I was not talking about Forth or Assembly.

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 dynamically-typed-without-static-type-annotations and statically-typed-or-dynamically-typed-with-static-type-annotations, but obviously people need a more succinct term for that.

> 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.

Static type inference still counts as having static types. That's totally different to dynamic typing without static type annotations ("untyped").

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

#480
I've been through both aspects. I really wouldn't listen to any of the people in this thread. Advice in this arena is so specific to domain and environment. If you don't remember function parameters for every builtin or stdlib of your language(s), you should look it up in the docs or use the LSP provided feedback. I have to reference my own libraries for docs sometimes. I just find myself in too many different codebases in a week to remember everything.

I learned more Bash and Python from running Shellcheck and Ruff respectively. Frankly, if your code has squiggles that get on your nerves from the LSP/linter fix the settings ... or better yet, correct the syntax. gasp

Post reply on HN