7 ms·
I made a decision 20 years ago to avoid auto complete and other "in programming flow breakers". Instead, I have multiple phases, writing, linting and such. I a
by svennek 6y ago
I made a decision 20 years ago to avoid auto complete and other "in programming flow breakers". Instead, I have multiple phases, writing, linting and such.
I am sure that it made me a better programmer as I know a lot of stuff by heart, where a lot of "auto" programmers are merely constantly picking of a list, which I think breaks their thinking flow...
Which is basically the same as not using the vim muscle memory for me..
Consider a piano player that needs to look up the right keys before every stoke.. The never get a feel for the music..
- IshKebab 6y agoI use autocomplete heavily and I can assure you that it breaks up flow much much less than having to go to the documentation all the time to look up minor naming variations (is it "start" or "begin"?). Programming is not remotely the same as playing the piano. This and the sibling "I don't make mistakes" comment just seem like excuses to me.
- _-___________-_ 6y agoFWIW, I didn’t say that I don’t make mistakes. Perhaps you misread my comment. And why would one need an excuse for setting their development environment up the way that works best for them?
- chriszhang 6y ago> Perhaps you misread my comment. Which comment are you referring to you? IshKebab (the user you are replying to) was replying to svennek (not you).
- _-___________-_ 6y agoIshKebab said: > This and the sibling "I don't make mistakes" comment just seem like excuses to me. At the time of IshKebab’s comment I was the only sibling comment.
- IshKebab 6y agoYou literally said > I’ve learned not to make the mistakes
- _-___________-_ 6y agoYes. Perhaps you're just skipping over the word "the" when reading that sentence? In the context it has a pretty important meaning, so it pays to read all the words, not just the ones that support your preconception. I have learned not to make the specific mistakes that the linter used to tell me off for making, so it doesn't tell me off any more. That's a very different thing from "I don't make mistakes", which is what you incorrectly claimed that I said (even with quote marks around it, implying a direct quote!)
- thomasahle 6y ago> it breaks up flow much much less than having to go to the documentation all the time to look up minor naming variations (is it "start" or "begin"?). I read OP's position as: If you don't use aurocomplete you'll remember the naming variations better, and won't have to look them up all the time. I still think aurocomplete might be faster for libraries you haven't used much before, but it doesn't sound at all unbelievable to me that the brain works as stated.
- kstenerud 6y agoI never used autocomplete until my fourth programming language. By that point, trying to write anything was an exercise in frustration as I constantly mixed keywords, namespaces and functions from the other languages. Nowadays, I just leave autocomplete on for minimal flow break no matter what language I'm using at the moment. I don't want language-specific names and structures interrupting the flow of models and ideas from my head.
- snarfy 6y agoOP's position doesn't work very well the more you generalize. I had OP's philosophy when all I was doing was low level C code. It doesn't work very well when you are switching between yaml, python, c++, c#, typescript all with different libraries, coding standards, and naming conventions. By the time you no longer need the reference to remember, the reference changes.
- svennek 6y agoFor me, it works with 5+ languages I write (production) code in at least every month... I don't know how it is for others. Also, I really try to minimize complexity and not ending up in the javascript npm dependency spaghetti.. Good code is simple and obvious....
- svennek 6y ago> I still think aurocomplete might be faster for libraries you haven't used much before, but it doesn't sound at all unbelievable to me that the brain works as stated. Possibly, but I still need to read the librarys documentation carefully, where I plan my code anyways... I have seen so many "auto coders" write 100+ lines of extra code because they missed reading the manual carefully and doing it correctly/efficiently... If lines of code is your metric, that is great, if not, not...
- svennek 6y agoI think it depends on whether you type, or your fingers type (without brain involvement). I didn't say, that I don't make mistakes. It is rare that I make it a quarter of an hour before fucking up... luckily I am good at fixing it :) But again, if you like your IDE, use it. I have (almost) one decade of using IDE vs. two of not using an IDE and I strongly prefer the freethinking of the latter...
- j-krieger 6y agoIf I were a boss of a company and saw one of my employees do this, I would seriously reconsider their employment. Purposely limiting yourself has no place in development. It‘s like an electrician refusing to wear protective clothing.
- KKPMW 6y agoI completely understand the position of the person you replied to. One video outlining it is here: https://www.youtube.com/watch?v=Q3XuFr7rw84 https://www.youtube.com/watch?v=Q3XuFr7rw84 . Many people disagree with it but I think thats because they don't imagine being productive without auto-completion. > If I were a boss of a company and saw one of my employees do this, I would seriously reconsider their employment. Purposely limiting yourself has no place in development. If I was a boss of a company I would try to judge people based on some objective measure, rather than subjective opinions about how one should be doing things.
- svennek 6y ago> https://www.youtube.com/watch?v=Q3XuFr7rw84 https://www.youtube.com/watch?v=Q3XuFr7rw84 Cool video, thanks. That is going straight to my treasure chest..
- drran 6y agoI write in languages with and without IDE. With autocompletion, I'm more productive than without. Even in shell I prefer to use autocompletion or two panel file commander, because it lowers burden on my brain. I don't need to spend brain cycles on correctness of typed code. I know names, I type fast, but with Tab it even faster to type, and less error prone. For example, when I started to use Rust, IDE was not available, so I used plain text editor for about 2 years. When I switched to halfbaked IDE, my productivity is raised because of autocompletion and error checking on the fly.
- sriram_malhar 6y agoI think an employee would prefer to be rated on the quality and quantity of their output, not on whether they used autocomplete or not.
- stinos 6y agoIt's a fair point, certainly interesting, however most or all of it is an assumption (you didn't try the other thing in an elaborate way, let alone double-blind-tested it), plus it might not work like that for everyone. In the past decades I have written (and still do) like 50/50 in IDEs and plain to somewhat less plain text editors, and if there's something which is a flow breaker for me, then it's coming up with the exact name and method in such plain editor when I just know there's one which does what I need but cannot remember the exact name. Fuzzy matching it against a list doesn't break any flow for me on the other hand. Which matches how my memory works: I cannot remember hard facts and data well (function DoSomethingVeryHardCore). However I'm good at remembering abstract things (function which does something hardcore). I am pretty sure learning many things by heart from the many very different codebases I work on would be a complete waste of time. Instead learning some abstract mental model of the codebases architecture, and how to navigate through it in text, is what makes me fast and efficient.
- svennek 6y agoI coded in IDEs for almost a decade up to that decision. I could feel my "clarity" fall year for year.. I have never looked back. I stand by my original statement, that for me, IDEs hinder my thought. Also, I have seen other coders I really consider high-end having the same considerations (it might just be a bias, where I just notice those, who agree with me).. Have you ever seen the "competitions" where they give a really really good photographer (or videographer) a 50$ toy and lets them compete against an amateur with a really high end setup.. Only amateurs blame their tools (above a certain minimum threshold)..
- joelellis 6y agoI'm gonna go out on a limb here and say that the amateur does worse than the pro is because said amateur doesn't know how to use the (often very complex) tool that they've been given, whereas the pro knows all of the theory and at least mostly how to use this toy.
- tamrix 6y agoYou've really never used CTRL+X F to look up a file name in vim?
- chriszhang 6y agoCan you elaborate how 'Ctrl-x f' looks up a file name? I tried 'Ctrl-x' but it decrements the integer under the cursor by 1. I tried 'f' but it starts a new motion command to search the next occurrence of the character following it to the right. Example: 'fx' will place the cursor on the next occurrence of 'x' to the right. How can I use 'Ctrl-x f' to look up a file name?
- jshholland 6y agoIt's an insert-mode binding, built in by default.
- deleted 6y ago[deleted]
- tzs 6y agoIn addition to being an insert mode command as jshholland already noted, it is Ctrl-x Ctrl-f, not Ctrl-x f. Here is a description of it and a few other insert mode commands: https://georgebrock.github.io/talks/vim-completion/ https://georgebrock.github.io/talks/vim-completion/
- e12e 6y agoFascinating. These ctrl-anything is like a dangerous, crippled emacs lurking in a dark corner of my beautiful vim, ready to terrorize with keyboard coords over modes and commands ;) I've bound some complete-plug-in to tab, but that's pretty much all I do in insert-mode command-wise.
- mst 6y agoMy use of vi-like editors is sufficiently minimalist that I use a locally built http://ex-vi.sf.net/ http://ex-vi.sf.net/ and still don't really need more than about half the features of that. I -personally- find it way more comfortable than even a minimal vim install because when I typo a command it beeps at me, whereas in vim I generally accidentally activate a command I don't understand and get broken out of flow while I figure out wtf just happened. I don't at all judge people who're IDE wizards, I've not seen any correspondence between maximalist versus minimalist taste in tooling and competence, but this approach works way better for me.
- boogies 6y ago> in vim I generally accidentally activate a command I don't understand and get broken out of flow while I figure out wtf just happened This doesn't happen to me very often anymore but when it does I’m grateful for multiple undo, I’d be scared to use an editor without it.
- jcelerier 6y agoSo interesting. > where a lot of "auto" programmers are merely constantly picking of a list, which I think breaks their thinking flow... For me, typing when the computer can type faster than me breaks the flow. Though your auto complete is very bad if it needs you to pick things from a list - 99% of the time it's just "type a couple of first letters, <ctrl-space>, repeat for the next token." > Consider a piano player that needs to look up the right keys before every stoke.. Most professional classical musicians play with sheet music, no ?
- deleted 6y ago[deleted]
- svennek 6y ago> Most professional classical musicians play with sheet music, no ? That is WHAT to play, not how to play... also I actually thought more of improv players, but that wasn't stated :)
- svennek 6y agoI don't consciously type... I think, my fingers type... I spend 0% brain cycles on typing (it is pure muscle memory), which why picking from a list (or checking that autocomplete choose the correct) is more brain work...
- jcelerier 6y ago> I spend 0% brain cycles on typing (it is pure muscle memory), which why picking from a list (or checking that autocomplete choose the correct) is more brain work... but, it's definitely not "more brain work", just like stenography does not take "more brain work" to write - when you're used to it you don't need to look at the autocomplete output either, it's just a very shorthand way to get things from your brain to your computer.
- svennek 6y agoI just need to trust my fingers, you need to trust an algorithm choosing something for you. For me, checking whether auto-complete choose the correct is more work that typing the correct thing, as my fingers type on their own - almost without supervision... I have written code for 30ish years (professionally for 25 years) and I have honed (and still hone) my environment for maximally "transparency" so that my though is not hampered by tools.. If that is not true for you, then use your IDE and be happy about it... Nothing wrong with that, at all... EDIT: also fun, that you highligt stenography that is the definition of learning-curve/musclememory ... :)
- z3t4 6y agoIn my experience simple tools leads to simple designs. With the aid of an IDE the architecture/design of an app can become insanely complicated.