> Nobody today can memorize an epic like the Illiad today like people routinely would in Socrates' day.
They can, and occasionally do. It tends to be people with a lot of spare time, or interested in memory techniques. And it probably helps if you know (ancient?) Greek, so it actually still rhymes. But it isn't super useful, so people generally don't.
If you paid people a living wage to recite the Iliad, you might get some more takers. We kinda do that, except it's actors in theatre plays or films. Sure, they don't take days to recite, but e.g. people put on several, different plays a year.
> It is certainly faster to look something up than to learn it
If it's faster to look it up, why bother learning it? Conversely, if someone had to look it up often, I bet it would be learned. Spaced repetition and all.
> The same with auto completion. Sure you can type faster, but it also means you, as a human, become less capable because you've never needed to hone the skills necessary to program without it. Programming without autocompletion is available in any text editor, even on paper.
I loathe this argument. Compilers or interpreters (computers in general) are sticklers for the exact spelling. Humans aren't; I still understood what you meant when you misspelled "Illiad". Why exactly spend the time and brainpower knowing exactly what something's called, as long as you have a rough idea of how the code works. Or, why spend the time typing it fully if you can have it auto-complete? When do you have to program in any text editor? Or even on paper, where the exact syntax can't possibly matter? (Equally, I'm sure that if this was a necessary skill, people could pick it up - occasionally they do, like for whiteboard interviews.)
Humans are very capable, and also lazy (one of the best engineering qualities). Don't mistake having no reason to do something with not being able to do something.
On your last point I'd add that using GitHub copilot has (at times) felt like pair programming to me. It has made suggestions for something I didn't know or think of yet, but I noticed that I remember that next time. So it's possible that I'm actually learning more when aided by tools, much like a teacher looking over my shoulder.
I used to work for someone who was convinced phone gps + maps would doom young people because if they became unavailable, everyone would lack navigation skills. I thought it was absurd. First, who was ever taught how to use a map explicitly (for basic usage)? Second, what is there to learn? I think these kind of arguments forget that most people are pretty bright, especially in times of need. If gps is down, I'm sure people can find their way to Burger King with a paper map and stopping to ask a few of the locals, just like everyone did intuitively back in my day. They just wouldn't have to walk uphill in the snow with onions on their belt, because the war.
> If it's faster to look it up, why bother learning it? Conversely, if someone had to look it up often, I bet it would be learned. Spaced repetition and all.
Because of what I said, knowing something means you always have access to it. Otherwise this type of hypothetical knowledge may be an unknown unknown for you, even though you could look it up, you don't know to do it. You have access to facts, not understanding.
Real knowledge enriches all areas of life. If you for example learn to write with a pen (not just to scribble crow's feet, proper calligraphy), you will never look at letters the same way again. You could go your entire life not acquiring this understanding, but your world would have fewer colors, less nuance. Handwriting also means you must think through what you want to write before you write it, which is another practical skill.
It's similar with music, if you learn to play an instrument, you will never hear melodies quite the same. Better still if you learn to dance, beyond an entirely new connection with your body, music will forever gain entirely new dimensions.
If you learn to cook, you will appreciate flavor in different ways, be able to pick the taste of individual ingredients when tasting a soup. It isn't just just "that's good", or "that's bad", but "oh, is that celery?"
It's not just about what this knowledge let you do, that is the least of my concerns, but how they shape your relationship with the world. If you only have access to the world through tools, you become cut off from experiencing it.
> I loathe this argument. Compilers or interpreters (computers in general) are sticklers for the exact spelling. Humans aren't; I still understood what you meant when you misspelled "Illiad". Why exactly spend the time and brainpower knowing exactly what something's called, as long as you have a rough idea of how the code works. Or, why spend the time typing it fully if you can have it auto-complete? When do you have to program in any text editor? Or even on paper, where the exact syntax can't possibly matter? (Equally, I'm sure that if this was a necessary skill, people could pick it up - occasionally they do, like for whiteboard interviews.)
This is not my problem with autocomplete, but rather that it prompts you with suggestions for things to type. I absolutely use shorthand when I write code by hand. My beef with autocomplete is that your programming turns into a series of multiple choice questions as to what to do next, rather than something you truly drive by yourself. How questions are posed absolutely shape what sorts of answers you will come up with, and if you are not the one posing the question, you will never truly be in control.
> Real knowledge enriches all areas of life [...] if you learn to play an instrument [...] if you learn to cook
I don't disagree that there's value in knowing something. But I don't have a problem with people choosing what they want to know and invest time in (like cooking or playing instruments), and being able to ignore stuff that doesn't really matter to them (trivia, whether it's information on wikipedia, or random programming stuff).
In fact, that's one of the great things about modern times. There's more information out there than ever, so you can go really deep into an area (like calligraphy), even as a relative amateur. You can't do everything though, so it's a trade-off. Being able to forgo memorisation of things you don't want to prioritise is possibly a boon then?
I'm not sure of the equivalence of "knowledge"/rote memorisation vs doing an activity. We're getting a bit deep here. Personally, I'm not sure e.g. memorising the Iliad makes you that much better at writing epics, at least compared to trying to actually write epics (there's going to be some cross-pollination, but how large is that effect, and can you also get it by studying the Iliad without remembering it in its entirety?). At least memorising poems in school didn't make me better at writing them.
Or closer to home, is memorising random programming snippets (because of the lack of auto-complete) is superior to actually just writing code? Certainly studying e.g. a well designed standard library and noting design patterns is helpful, and knowing commonly used functions will make you more efficient, but there's no substitute for actually doing the thing/activity.
But how does memorizing all 33 methods of your AbstractBeanFactoryProviderImpl enrich anything?
Learning to play an instrument is enriching because you start to understand the logic/inner workings behind the music you listen to. You need the same skill for programming, sure, but I don't see how autocomplete would replace that.
> But how does memorizing all 33 methods of your AbstractBeanFactoryProviderImpl enrich anything?
Auto-completion is no doubt a large part of what's enabled your AbstractBeanFactoryProviderImpl to get those 33 methods in the first place. Which is a big part of my point, autocompletion shapes the way you think about code, shapes how you write code.
There are also a lot of examples of functions that, by name alone, do not do what they seem to do. That shouldn't be, you might say. But even in the face of that objection, they do exist. It would be very easy to jump to the conclusion that for example "Boolean Boolean.getBoolean(String)" parsed the string and returned its boolean equivalent.
> Auto-completion is no doubt a large part of what's enabled your AbstractBeanFactoryProviderImpl to get those 33 methods in the first place. Which is a big part of my point, autocompletion shapes the way you think about code, shapes how you write code.
Sure, but that doesn't necessarily make it better or worse. People have written horrible code without auto completion, just like they have written horrible code with auto completion. I'm not convinced that you just magically get better at thinking by making your life harder and typing more for no real reason.
> There are also a lot of examples of functions that, by name alone, do not do what they seem to do. That shouldn't be, you might say. But even in the face of that objection, they do exist. It would be very easy to jump to the conclusion that for example "Boolean Boolean.getBoolean(String)" parsed the string and returned its boolean equivalent.
And not having auto complete doesn't help with that at all. Auto complete MIGHT also include commentary for the function and explain what it does (if that commentary exists in the first place) and at least help with the issue.
They can, and occasionally do. It tends to be people with a lot of spare time, or interested in memory techniques. And it probably helps if you know (ancient?) Greek, so it actually still rhymes. But it isn't super useful, so people generally don't.
If you paid people a living wage to recite the Iliad, you might get some more takers. We kinda do that, except it's actors in theatre plays or films. Sure, they don't take days to recite, but e.g. people put on several, different plays a year.
> It is certainly faster to look something up than to learn it
If it's faster to look it up, why bother learning it? Conversely, if someone had to look it up often, I bet it would be learned. Spaced repetition and all.
> The same with auto completion. Sure you can type faster, but it also means you, as a human, become less capable because you've never needed to hone the skills necessary to program without it. Programming without autocompletion is available in any text editor, even on paper.
I loathe this argument. Compilers or interpreters (computers in general) are sticklers for the exact spelling. Humans aren't; I still understood what you meant when you misspelled "Illiad". Why exactly spend the time and brainpower knowing exactly what something's called, as long as you have a rough idea of how the code works. Or, why spend the time typing it fully if you can have it auto-complete? When do you have to program in any text editor? Or even on paper, where the exact syntax can't possibly matter? (Equally, I'm sure that if this was a necessary skill, people could pick it up - occasionally they do, like for whiteboard interviews.)
Humans are very capable, and also lazy (one of the best engineering qualities). Don't mistake having no reason to do something with not being able to do something.