Author here: my learning objectives, in order of importance, are: (1) vocal understanding, (2) speaking, (3) reading, and (4) typing and writing (far further). As I explain, I'm mostly bypassing the problem of typing by using screenshots (ChatGPT's OCR capabilities are very good, and Anki works very well with it too).
With a few hours of applied learning, distinctions between these will collapse. If you work on typing, your reading will naturally improve (because you're identifying letters to input). With stronger reading, you won't see differences between scripts and reading will be the same as listening. That is, improving your knowledge of the language by reading will improve your listening comprehension too. (Reading the wikipedia article on phonology will also unify reading out loud and speaking, Persian is extremely phonemic.)
At minimum, consider a few hours now compared to the time saved by halving the number of flashcards you need.
I've been using ChatGPT to learn Persian (as a third language) for more than a year now (along with a heavy use of Anki), and it's incredibly useful and surprisingly good, for about everything: romanization, OCR from screenshots, deep explanations of complex and subtle stuff, etc.
Are you writing up how you are doing this. I would be fascinated to learn more about how you use Anki and ChatGPT in concert to learn a language like Persian. Please do share more.
Counterpoint: I actually really enjoy his style of writing, which I find clear, patient (you must appreciate visual examples and exploration though) and very often challenging and stimulating (recent examples: the posts about the bigger brains, Conway GoL engineering, and biology / evolution). I find he regularly introduces intriguing and useful ideas, like the distinction between "brain-like" computers (which includes neural networks) and more general, Turing-like mechanisms, and I find his overarching concept of computational irreducibility (even though he didn't invent it) quite profound in its implications. I would add that his posts read like an ambitious research program in progress (like a book written one chapter at a time) and that is why I think certain concepts (like ruliology) may appear obscure at first, if you didn't read a lot of stuff that comes before. One tiny nitpick I have: certain language tics, like the constant use of the "And, yes" pattern (he really uses this a lot I wish someone somehow told him).
I agree. I usually find his posts illuminating. Sure, they’re verbose and self-aggrandizing, but there are way more writers out there online that are also self-aggrandizing but offer no original content or value. Also the rambling style presents a more realistic view of how scientific exploration works than a distilled down paper missing crucial details needed for replication (I’m looking at you ML/AI).
Would love to see that link and any other posts others might have run across here as well. I feel like pre covid it was common to see high Quality ask hn discussions with niche/prestigious book recommendations often. I dont see that as much now.
If you consider this from the angle of Wittgenstein's "language games", you could say that the problem would be "simply" to distinguish between these two, quite different, language games, and act accordingly.
> Emacs is a powerful tool, but it also demands a lot from its user. Eventually I got tired of dealing with the host of plugins and customizations that I needed to keep my system running the way I wanted. I'm at a point in my life where I would rather spend my spare time on hobbies, hanging out with family and friends, and otherwise not messing around with a patchwork of ELisp code snippets that I've cobbled together from various sources. I gradually stopped using Emacs in favor of more modern tools that are less flexible but also less of a hassle.
I don't know how many times I've read a variation on this. It took me a very long time, but now I pretty much made my peace with that: I use Emacs (for certain things), I use VS Code (with Emacs bindings), I use Apple Notes.. I don't find that it's possible or reasonable anymore, the desire to be "pure" and use only ONE tool to rule them all. The same for messaging apps, chatbots, etc.. I now embrace extreme diversity.
> Eventually I got tired of dealing with the host of plugins and customizations
The trick is to stick to as few packages and as little configuration as possible. And when opting to install a package, sticking to something popular and well maintained. This leads to a small and robust setup with little churn. Most built-in packages work out of the box. Most defaults make a lot of sense. Emacs is really tidy these days compared to where it was one decade ago. Package management has been key facilitating this.
Personally, I use major packages like AUCTeX, Org, Magit, or gptel with little to no customization and I avoid installing lesser known packages that build on top of them as I have found this to be a major source of fragility. You can get a lot of functionality from a boring 50 LOC .emacs/init.el that consists of a few straightforward use-package directives.
> I don't find that it's possible or reasonable anymore, the desire to be "pure" and use only ONE tool to rule them all.
It's not about being "pure". I was originally interested in Emacs because of the idea of only ever having to learn to use one tool, that would give me a better experience in many different domains.
Since, as you say, that doesn't really work, I personally don't find using Emacs compelling anymore, hence my not using it. (I actually used vim for a long time, then Emacs briefly, and now VSCode/Cursor/other things as the need arises.)
Note that I worked with Emacs already a few years ago, and it was Spacemacs specifically.
That said, VSCode is - much nicer looking, a lot of things come working out of the box that I had to work hard to make work in Emacs (even with Spacemacs), a lot of great plugins exist and are easy to add to VSCode.
Really it's the "great experience out of the box" and lack of weird edge cases where custom code/plugins interact with other custom code/plugins in ways that don't work well.
And the vim mode in Spacemacs was great, probably best in class, but the vim mode in VSCode is also pretty good. Missing a bunch of stuff but close enough.
Makes sense. I have no experience with Vi-like layers built on top of Emacs, but I think standard Emacs is much easier to use right now than it was in the past. Most major packages work really well with zero configuration. There's even a LSP mode (eglot) built in.
I think the problem is that most advanced users have incredibly convoluted .emacs files, mainly for historical reasons, and this has given Emacs a reputation of being overly complex and difficult to set up.
IMHO, the great advantage of Emacs is that it will always be around, and it's really open to customization in case you ever need that.
> I really dont get the idea of having a vim mode in emacs
vim-mode is not just about keybindings.
It's about modal editing philosophy - the distinction between command and insert modes fundamentally changes how you think about text manipulation. When you're in command mode, every key becomes a text object or motion command, making complex edits incredibly efficient. You're not just getting vim's keybindings; you're getting vim's grammar of editing. The real power comes from composability - vim motions aren't just shortcuts - they're a linguistic system for describing text transformations.
Emacs veterans often detest "modality" without realizing how much modality already exists in Emacs. Key chords like C-x put you in a modal state where the next key has different meaning. Recording macros creates a modal context. The minibuffer is literally a different mode with its own keybindings and behavior. Transient menus are explicitly modal interfaces. Even isearch is a modal state. Vim-style modality is just making this concept more explicit and systematic.
Besides, it's simply an obtuse exercise to ask Emacs users why would they do something with their editor. The answer is obviously "because they can."
Vim's model of modality and mnemonics is a beautiful, powerful, amazing paradigm. Here's the thing though - there's no such thing as the "vim-mode". None of the IDEs and editors like IntelliJ, VSCode, XCode, Android Studio, Sublime, etc., can properly emulate Vim navigation. The one exception is Emacs.
Pretty much every other IDE fails to comprehensively replicate Vim. Unless it's Vim/Neovim, vim-mode in all of them is just that - an emulation. However, Evil mode in Emacs feels much more natural. Sometimes, you forget that it's an afterthought, an extension, and not a built-in functionality.
While Evil-mode obviously is not the most important or even built-in feature of Emacs, as a nerd and a computer programmer, if I discovered that there's a civilian plane that can perform a vertical landing, yet never actually needs to use it, I would still love that model over any other planes, even if the feature is purely accidental. The fact that it can do so alone would be great evidence of amazing engineering.
vim mode is far, far better than any alternative way of using a keyboard (because you don't have to ever move your hands from home row). Even without vim mode, just the vim keybindings by themselves are far better. Once I got used to using them, using a keyboard without them felt stupid.
Hence my using vim mode everywhere I can.
I also created a set of mappings to give me vim-style keybindings everywhere on the computer, so I can use vim-style bindings even within this very comment I'm typing on my browser. Obviously it doesn't support the full set of vim bindings, but just the basic movements and some other mappings (like selecting a word/sentence, backwards delete word, etc) are enough to get a huge amount of value.
This makes me feel seen. I was a lunatic at one point trying to make Emacs to be my end-all-be-all. I learned to cope with multiple programs being my "toolset" since then.
What I find interesting about spaced repetition is the underlying thesis that raw memorization, in certain contexts, is playing a more important role for learning than what some modern education ideas would make you assume. In mathematics or programming, for instance, there is this idea that understanding a concept is better than memorizing algorithms or recipes (derivation methods for instance). But spaced repetition challenges that, in a sense.
If you zoom out and look and the shift in educational systems from pre-industrial revolution to modernity, memorization is a key topic. Basically educational reformers wanted a switch from memorization-heavy classics-based education with lots of Latin and Greek – to one with less emphasis on memorizing and more technical focus, more “understanding” and so on.
Like other big cultural shifts from the time, the correction was necessary but also probably went too far in the opposite direction.
Which is a long way of saying that memorization is underrated and it mostly has a bad reputation from anti-Victorian reformers.
>But spaced repetition challenges that, in a sense.
Common sense challenges this honestly. Education systems that traditionally have put a strong focus on repetition, memorization and what you could call neuromuscular training (e.g China, the USSR, France) in particluar in STEM far outperform anyone else. Vietnam outperforms most rich countries.
In programming circles it's a cultural cliche because our profession is full of people who go by: "I am a genius, I work smart, not hard", probably the most damaging idea ever uttered in education, and in the humanities it's seen as culturally unsophisticated.
In reality, 95% of everything is mechanics. Starcraft, math, even literature and acting. Creative freedom is enabled only by a large body of effortless recollection.
Most modern programming lives by the idea that you don't need to remember something as long as you remember where to look it up. Of course that's only true for some things: I can look up an API call, but I need a reasonably complete working knowledge of the concepts offered by my chosen programming language and its idiomatic design patterns. In most cases this is maintained through application (practice is unstructured spaced repetition), but if I wanted to get into say C++-based driver development then spaced repetition would definitely help build and maintain the necessary knowledge
It makes sense to memorize elementary operations that are reused frequently because that frees your mind to focus on the "higher level of abstraction" of learning. You probably learned the multiplication tables by heart before you were asked to do more complicated multiplication problems for example.
I think the difference in recall- knowledgeable and logical-model-knowledge will be really interesting. LLMs appear to strongly be the first. But this is very hopeless on mathematics.
The advice with gendered languages is to always learn the word alongside some context that includes its gender, e.g. "Der Tisch" (The masculine table) rather than merely "Tisch->Table".
It's surprising how much easier to translate a foreign when it's given in a sentence. Also helps when there are multiple translations for a word depending on context.