44 comments

[ 4.8 ms ] story [ 72.3 ms ] thread
(2008) Popular in:

2023 (314 points, 180 comments) https://news.ycombinator.com/item?id=34971924

2020 (363 points, 143 comments) https://news.ycombinator.com/item?id=25296900

2012 (94+156 points, 70+61 comments) https://news.ycombinator.com/item?id=4640658 https://news.ycombinator.com/item?id=3466388

Thanks! Macroexpanded:

A spellchecker used to be a major feat of software engineering (2008) - https://news.ycombinator.com/item?id=34971924 - Feb 2023 (180 comments)

A spellchecker used to be a major feat of software engineering (2008) - https://news.ycombinator.com/item?id=25296900 - Dec 2020 (143 comments)

A Spellchecker Used to Be a Major Feat of Software Engineering (2008) - https://news.ycombinator.com/item?id=10789019 - Dec 2015 (29 comments)

A Spellchecker Used to Be a Major Feat of Software Engineering - https://news.ycombinator.com/item?id=4640658 - Oct 2012 (70 comments)

A Spellchecker Used To Be A Major Feat of Software Engineering - https://news.ycombinator.com/item?id=3466388 - Jan 2012 (61 comments)

A Spellchecker Used to Be a Major Feat of Software Engineering - https://news.ycombinator.com/item?id=212221 - June 2008 (22 comments)

Fast forward to now, and autocorrect in draft Teams messages appears to be the unbreakable barrier.
Given that spellcheckers are mostly stable tech, I wonder why Google’s spellchecker in Gmail, or even in Chrome in “enhanced” mode, is so bad.

Even Microsoft Word, being a local app and everything, manages to work better than Google’s cloud-based offerings. That’s surely evidence that progress is far from being linear.

Checking if a word is spelled correctly is easy. It is providing high-quality suggestions that is hard.
Can confirm. The first time I saw an automatic spellchecker was probably with WordStar around 1989, and it blew me away. How can the computer know all the words? That's insane! Sounds lame, but it's true. It was a different world.
It still is? Few engineers could build a good spell checker without external libraries, giving a database of valid words.
TFA is just about flagging misspelled words, not making suggestions. That's something I would expect any undergraduate to be able to write.
IIRC none of the popular text-based games of the 80s and early 90s incorporated even basic support for spelling mistakes, best-case scenario they had one or two synonyms baked-in and even that was uncommon!
It is 2025 and the best spell checker is a search engine. Numerous time an application will not provide the correct word. Only solution is to try the word in a search engine and try using in a sentence if that fails.

In my opinion, this is where ML/AL local model, no internet required, would be the most beneficial today.

Even had to use a search engine with, "thoughts and opi" because I forgot how to spell opinion before posting this. In application spell checker was 100% useless with assisting me.

Some new way of Stenography. That everyone can use. Would make taking notes so much easier.
Is there a reason why Apple's iPhone spellcheck is often really poor, significantly worse than both LLMs and just...human eyes?

I often find myself butchering the spelling of a word in a way where the correct answer is obvious to human eyes (probably because of "typoglycemia" [1]) and an AI LLM immediately understands what I meant to say, but Apple's spellcheck has "No Guesses Found."

Does anyone else have this experience?

1. https://www.dictionary.com/e/typoglycemia/

> Is there a reason why ...

Yes: Apple doesn't care.

> Does anyone else...

Yes. I just typed in "Tipografical earer" - and iOS 18.6 suggested "Tipograxical" for the first word, and one of "eared", "eager", and "eater" for the second word.

I have definitely noticed this too. I also use the built in swipe to type feature, and it may as well be a coin flip as to whether it gets the word right. I get that swiping is vague, but even a little bit of frequency prediction would tell you that “sounds good” is going to be more likely than “sings hood”. It’s an absolutely infuriating feature.
I feel the same way about Android's. It just seems like spell check used to be so much better then years ago. But I'm not sure whether it's comparing mobile with desktop expectations. It really seems extremely dumb on Android.
The spell check is truly bad. It boggles the mind how this is even possible given how solved the problem is everywhere else. Also the period being to the right of the spacebar such that it gets hit instead of space. So annoying!
> Is there a reason why Apple's iPhone spellcheck is often really poor, significantly worse than both LLMs and just...human eyes?

It's somewhat funny that human performance is seen as a baseline here, and not the pinnacle of achievement to aim for.

(I agree with you. I just find it entertaining.)

I mean, TBH I would expect this to be true: an LLM is trained over a massive corpus of internet data, which contains many typos, and is required to accurately predict tokens despite edit errors. A spellchecker is typically running a deterministic algorithm really, really quickly, and has hardcoded limits on acceptable edit distance (and has no learned knowledge of what looks correct/incorrect to human eyes). An LLM should generally trounce a spellchecker at figuring out what you meant to type, unless the spellchecker is secretly a tiny LLM / ML model of some kind under the hood.
One wild thing about the AI era is that tasks which once required specialized NLP expertise—rhyming/meter detection, grammar correction, sentiment analysis—can now be done by weak LLMs. Same APIs, different prompts. I’m surprised more people aren’t exploiting this.
i can't help but make funny connection between "warm" making them less reliable/consistent and the temperature setting....
(comment deleted)
It's also a key enabler to CJK typing on computers. CJK scripts never map to keyboards well, so instead of actually typing, approximate representations are typed in and regularized into written forms using similar technologies as spell checkers. It's a neat thing if you speak one of the languages, sort of interesting that a similar tool haven't been integrated into English keyboards.
Please add 2008 to the title.
My Commodore 64 had a spellchecker. It was a separate program. I had to save my file, exit my word processor program, switch floppies to the spell checker program, wait for it to load, and all I got was a list of misspelled words… no suggested corrections.

Thinking back, how the heck did they do spell checking algorithms on a 6502? That’s a bit of code I’d like to see reverse engineered!

I have used WordStar in 1993. But I don't remember anyone really using the spell checker or feeling a need for it those days. Work was slow and we had enough eyes and time to catch the spelling mistakes. When we were upgraded to MS Word on Windows 3.1, we were astonished to see that it has a feature to preview the document before printing. But somehow WordSatr still looked more fluid and faster than GUI-based word processors.
This article ends too soon! Show me the techniques and solutions those clever programmers of old came up with. Did I miss a link somewhere to subsequent posts?
Early spellcheckers often used Bloom filters to efficiently store dictionaries in minimal memory - a probabilistic data structure that could determine if a word was "definitely not" or "possibly" in the dictionary using just a few bits per word.
I used a document editor in DOS with spellcheck. It was quite fast too. I don't remember what it was called but it featured formatting characters such as character returns and paragraphs. It had good printer support. I think it was called Easy Print and it was only a couple of dollars.
Pff, now Microsoft Word probably sends your document to an AI every second and asks it to send back a PNG that highlights every misspelled word, and it overlays that underneath your text.
"A Spellchecker Used to Be a Major Feat of Software Engineering"

It still is. The spell checker on my Android phone is a PIA. It's too dumb to correct many typos, there's no way of highlighting wrongly used but correct words such a 'fro' and 'for', etc. There's no automatic or user defined substitution such as correcting 'rhe' with 'the' and yet keep the words highlighted until a final revision.

Wordpossessor spellers have no way of tagging certain words that one may or may not wish to use depending on context. A classic example that's caught me out past the draft and found its way into the final document without me noticing it is 'pubic' for 'public'. Why doesn't my speller highlight such words in red and ask whether I actually meant to use this word?

Moreover, spellers are not all of the same level of accuracy, for example Microsoft Word's speller is much better than LibrOffice's much to my annoyance as LibreOffice is my main (preferred) WP.

Nor is there a method of collecting misspelled words or typos and tagging them as spelling errors or typos for the purpose of helping one's spelling or typing. It'd be nice to have a list of my misspelled words together with their correct spelling, that way I could become a better speller. Also, spellers could be integrated with full dictionaries—highlight the word and press F1 for its meaning, etc.

There are no dictionary formats that are both universal and smart, that is that would allow for easy amalgamation between dictionaries and yet could contain user defined words and other user metadata which would be distinguished from the general corpus of words when crossed or amalgamated. For example, a smart dictionary format could contain metadata that would allow a dictionary and thesaurus to coexist in the same word list, similarly so different dictionaries, technical, medical etc.

All up, spellercheckers are still a damn mess. They need urgent attention.

Having a dictionary is a prerequisite but is only a small part of the spell check problem. Plus, plain text word lists are slow to parse in the 80s; better going with a Trie or some other exotic tree structure that is naturally compressed but O(log(n)) instead of O(n) to traverse.

The computer has to figure out whether the word is in the dictionary, but it also has to figure out a suggestion for what to change it to.

And even after just that, we already have a bug- homonym mistakes- homonyms are in the dictionary but they’re misspelled (that was intentional btw).

How misspelled is another problem. We’ve had Levenshtein et al algorithms for a long time, but how different can you get? A really badly misspelled word might not have any good replacement candidates within your edit distance limit.

There are also optimizations like frequently mistyped words (acn-> can), acronyms, etc.

It was never just about size.