Live data from Hacker News

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

news.ycombinator.com

591–600 of 652 posts

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

#591
post #579

This thread is certainly eye opening. It reminds me of a post I saw somewhere, maybe on Reddit, where someone was describing their experience working as an intern at an old-school tech shop. All of the developers there were hardcore Vim/Emacs users with 20+ years of experience. The intern was tasked with a large-scale refactoring of some modules which the senior devs estimated would take months of work to complete. A…

Work at a "tech shop," even old-school ones, most likely involves extremely varied types of work, much more than name-refactoring, for which something like IntelliJ indeed would be the best tool. Just because one use-case of one tool being better than another use-case of another, doesn't imply that users of the former are stubborn/unintelligent/worse than the others. Maybe there's a use case where the Vim user is at…

LSPs are useful because they are context-aware and understand the syntax.

But that advantage becomes a weakness when you need more complex text replacement or specific repetitive actions.

That is why I use vim with an LSP, I find it to be the best of both worlds (especially the macros in vim): a smart but limited tool, and a dumb but powerful one.

Maybe we'll get a smart and powerful one some day (but I doubt it).

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

#592
post #565

Earlier quoted context omitted.

I find the more plugins I add to vscode to do all of the automation, keypresses become more and more sluggish. It seems like it wouldn’t be noticeable — we’re talking about milliseconds. But I find there to be a world of difference between every keypress being processed as I touch the key versus slightly after it. With enough experience on a given language you just of internalize a lot of the common linter rules. I u…

> vscode to do all of the automation, keypresses become more and more sluggish The problem is VS Code then. Try IntelliJ, they spent ridiculous amounts of engineering to make typing as fast as Vim. > I find when it pops up automatically to be maddening. Me too, the first thing I do in my IDE is disable that. I love autocompletion, but I want it only when I need it. Now, that's completely different from just saying I…

> The problem is VS Code then. Try IntelliJ, they spent ridiculous amounts of engineering to make typing as fast as Vim.

I presume that does not apply on an old laptop with 8 GB of RAM.

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

#593

Earlier quoted context omitted.

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

I see where you're going but for me "create more work" doesn't quite capture it. In my mind there's a pretty clear distinction between computer work and human work. Computers are good at fast, precise calculations and following complex procedures repetitively without variation. Humans are good at lateral thinking, constructing narrative and drawing non-obvious connections. Coincidentally, humans are generally really…

Sure, increasing the quantity or quality of human output works. My point is that overfishing is a concept that might be applied to programming and other human endeavor if those doing the fishing could only think a bit more and coordinate, and leave a few fish in the sea for next year. We soon learn labor's lumpier than we prevuously thought.

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

#594
post #261
post #3

I use vim with ctags. vim has good autocomplete but I don't use it much -- I rely on memory and looking things up in the docs. With ctags I can jump to definition/implementation of a function. ctags has worked since the early 1990s. Check out this video: How to do 90% of what plugins do with just vim. https://youtu.be/XA2WjJbmmoM

Same. ctags all the way!

I'm curious: what language are you working on where ctags are useful?

I spent years fighting with those to try to have a satisfying setup that worked, but found ctags to be high maintenance (always breaking in some way, not context-aware on untyped languages, index getting obsolete quickly and taking forever to update...), and I never looked back since trying coc.vim.

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

#596

Earlier quoted context omitted.

I see where you're going but for me "create more work" doesn't quite capture it. In my mind there's a pretty clear distinction between computer work and human work. Computers are good at fast, precise calculations and following complex procedures repetitively without variation. Humans are good at lateral thinking, constructing narrative and drawing non-obvious connections. Coincidentally, humans are generally really…

I think everything could be summed up even better to just say that the goal should be to increase productivity.

I think I prefer to focus on humans vs a productivity metric. Consider overfishing. Easy to imagine overfishing being driven by a desire to max short term productivity. One has to think beyond the bounds of quarterly or annual metrics, at that point it isn't clear what the abstract construct of productivity buys you. Slavery increases productivity. I don't want that. I want humans to have freedom and meaningful work and well functioning healthy societies. Are those things "productivity"?

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

#597
post #520

My preferred way of working is plain sublime text and the terminal. I use command line tools for linting, formatting and type checking, wrapped in “make lint”. I find that sublime is just smart enough to go to the definition using only its “dumb” grepping based approach. I think the hurdles of getting a nice LSP setup that works across projects in different languages and in a polyglot monorepo is a real determinant.…

I do basically the same exact setup. It works, it's fast, and it's simple.

I also work almost exclusively with Rust, so I just go to crates.io. for uniform documentation for all the libraries I use.

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

#598
For C++ projects I use a language server to jump around within Emacs. For a Linux kernel which is my day job, I just use git grep, since I couldn't make the language server work across multiple architectures at the same time and plain old C is simple enough for that. I have never used auto completion, so perhaps I don't know what I am missing. At least to me, coming up with an idea how to do stuff is more time-consuming than writing it down in an editor.

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

#599

Earlier quoted context omitted.

I don't want to write any code. I want to think about the design of the program and have it pop out of my head fully formed. The latter gives me dopamine. The former gives me carpal tunnel.

For myself, the code is the journey. There are times though when I'm not fully invested in the problem, that I really just want to skip that part.

Sure code can be cool for the same reason hip-hop is more than just the meaning of the words.

The typing is the rhyme scheme. The algorithm is the rhythm.

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

#600

Earlier quoted context omitted.

If you'll allow me to shill my company for a second, I'd be interested if you could take a look at DBOS[0] and tell me if it might simplify your problem. It's designed for making microservices a lot easier to reason about, and might help make your system a lot simpler. [0] https://docs.dbos.dev/why-dbos

That seems quite clever but for this specific use case it likely won’t solve the difficult bits. Namely I am using threads and subprocesses mixed with asyncio and PyAV to transcode real time video. Does DBOS allow you to store the internal state of Python modules written in C? How does it deal with recreating subprocesses and threads?

It saves the inputs and outputs of the function, not the internal state, so most of what you asked isn't directly relevant. We do have async support coming soon though.

That being said, real time video processing is probably not a use case that we shine on. We'd be really good for managing everything around that, but not the actual video.

Post reply on HN