Is there a difference between them? If so, how and when are they used?
For example:
I fixed a little/small typo.
Is there a difference between them? If so, how and when are they used?
For example:
I fixed a little/small typo.
When you are denoting size, there is little difference between "little" and "small". In your example sentence, either would work just fine (and mean just about the same thing in everyday usage).
The most significant difference between the two comes into play when you're describing quantity. As others have noted, only "little" can be used to describe quantities.
Another bit about "little" is that depending on whether you have the article "a" in front of it, the meaning flips:
I have a little experience teaching English.
I have little experience teaching English.
The two sentences have opposite meanings. The former indicates your having some experience, whereas the latter indicates your having no experience. Another example of the latter is the word's usage in the first paragraph, first sentence of this answer.
The word "small" has no such issues.
There are few differences between the two = There aren't too many differences between the two.
There are a few differences between the two = There are 3~4 differences between the two.
The meanings diverge especially when referring to people and animals:
She is small
Describes her size.
She is little
Would usually describe her age if she is a person or an animal, although it can also describe size.
In your case:
I fixed a little typo.
I fixed a small typo.
Both forms are interchangeable.
There are a number of differences, one of which @Robusto has listed, and that is:
"little" can be used as a quantifier, denoting the amount of something, whereas "small" denotes size.
The other difference in usage is, "small" is used to form comparatives and superlatives, but "little" is just used as a description.
i.e "A small/smaller boy" : the reason the boy is small, is because he is being compared to other boys of the same age, and he is of less size than the norm.
"A little boy" is just a boy which is small of size, but doesn't necessarily compare the boy with anything.
You see "little boy", but not "littler boy", because "small" is used to form the comparatives and superlatives.
So, "a little typo/ a small typo" could mean a "typo" small in quantity(little), or significance(small).
If forming the comparatives or superlatives i.e. -er and -est, "small" is usually used.
I would say the usage generally reflects the speaker’s attitude toward the thing described: small can mean smaller than the norm, undersized. Surprisingly, it is distantly related to Latin malus, French mal/mauvais, meaning bad.
Little on the other hand can suggest cute, loveable.
Compare a small boy, slightly pejorative, and a little boy, rather approbative.
You can use either in that sentence:
I fixed a little typo.
I fixed a small typo.
Where the usage diverges is in the phrase "a little":
I sighed a little when you said that.
This is an adverb meaning somewhat or to some extent.
Edited to add:
Also, "a little" is used to mean a small quantity:
I spilled a little coffee on my shirt when the car went over a pothole.
This is probably best viewed as a contraction of "a little bit of ..." and you would never use small ("I spilled a small coffee on my shirt") to mean the same thing; "small" in that sentence would refer to the size of the cup, not the amount spilled on the shirt.
The Corpus of Contemporary American English indicates that the word "small" is much more common than "little" before the following nouns (among others): intestine, lesions, reptiles, saucepan, appliances, grenades, quantities, fraction, percentage.
Whereas "little" is much more common than "small" before the following nouns (among others): brat, twinkle, rascals, piggy, niece, punk, tramp, gal, helper, elf, orphan, weasel, fool, twerp.
Based on this data, I would tentatively conclude that "little" is often more appropriate than "small" when talking about people, especially when the adjective has a less literal meaning. As mentioned in the other answers, "little" can be used to refer to young children ("little niece", "little helper" and "little rascals" would probably be interpreted that way), it can have an affectionate sense, but it can also have a pejorative sense (as in "little weasel" or "little twerp"). However, note that for some reason, "small" is not uncommon as a modifier of the noun "children".
I would conclude that "small" is often more appropriate than "little" when talking about the physical size of concrete objects in non-emotional contexts.
I would add this to @narx's answer, with which I agree:
Little can also mean unimportant, undistinguished, petty, and so on. It is not just a measure of size or quantity. He is a little man can mean he is small in size or significance, or he acts in a petty way (similar to the senses of stature). Small can also convey such other meanings, but this is less common, IMO.
In the OP example:
[It's a bit like the difference in French between un homme grand (a tall man) and un grand home (a great man).]
Another example is that the original German title of "Eine Kleine Nachtmusik" by Mozart is translated in English as "A Little Night Music", not as "A Small Night Music", because it's referring to a quantity of night music "material", not the size of an object.
The two common opposites of "little" and "small, which are "big" and "large", would both behave like "small" in the above example: "A Big Night Music" or "A Large Night Music". The opposite of "A Little Night Music" would be "A Lot of Night Music". (Or a humorous ultra-opposite would be "A Lot of Daytime Noise", probably by P.D.Q. Bach.)
Also, while you can use either of the expressions "big or small" or "big or little", it is common to use "large or small", but not "large or little". Example:
"Every child, ___________, needs love."
Swedish demonstrates the root of the English words little and small, whatever the use now. It is simply the singular and plural.
de små flickorna = the small girls
ett litet barn = a little child
This incidentally also shows the source of the occasional ‑en plural in English: