The difference between excessive, redundant and superfluous.

The words redundant, superfluous and excessive all imply that a quantity greater than the minimum amount needed has exceeded some threshold. But they all suggest different implications.

Excessive indicates that a quantity is so high it might be a bad thing. It could be said for example, that excessive rainfall will cause a tank to overflow. If you wanted the tank to overflow to feed the plants around it, you might just call it sufficient instead.

Redundant implies that the extra abundance can be used as a means of substitution. When you buy a packet of say 100 sheets of paper, they may give you 103. The extra 3 are redundant in case only 99 of the regular sheets are provided. Animals often have organs in pairs, Lungs, kidneys etc. Its said that one kidney can perform the job of two so it that sense it is there for redundancy reasons.

If your job is to be terminated, one of the tactful ways to express this is that your position is redundant. This implies that the company found a way to do your job without you. To simply say that the person is no longer needed might imply that they can no longer do there job which is only sometimes the case and could be a harsh thing to do considering their situation.

Superfluous makes no judgement on whether something is worse or better, indeed it suggests the matter is little importance to the rest of the message being conveyed . Although the etymology of superfluous means overflown water, you would not use the term if you were concerned with wasting water or things getting wet. Instead you would say it’s excessive. If however you were describing the motion of water in a physics class and you filled up a cup of water which overflowed into a basin you might describe the overflown water as superfluous as to not import any other concerns other than the motion of the water. In a practical scenario, saying excessive when you meant superfluous will almost always be forgiven as superfluous is a much less used word than excessive and they can both get a common point across. This would be like saying big when you meant ample. Both are matters of connotation which generally fall under fairly subjective interpretation.

As a further explanation, when acronyms are described, sometimes both the last letter and last translation of the last letter are pronounced. For example, ATM Machine, which expands to Automatic teller machine machine. Notice machine is described twice. This, I’ve noticed to be a contentious issue in communication. If you think its a good thing you would call the extra M redundant. If you think its a bad thing you would call it excessive. If you think its neither bad nor good you would call it superfluous.

EDIT: there is also extraneous. This word is similar to excessive but works on type and not quantity. Extra objects of which the type is bad.

Why RAM is slower than some things like CPU cache.

A software person should know enough about hardware to write software easily but I confess I only recently figured out different types memory exist. Namely RAM and CPU cache.

Why both RAM and drive storage exist is an easier thing to understand although it was recently  made harder by the arrival of flash drives. RAM stands for random access memory . HDDs certainly are not random access but flash drives are. This is why HDD performance can be improved with defragging but not flash drives. Flash Drives are also refereed to as SSDs. One reason RAM has been faster than SSDs is because SSDs are non volatile where RAM is volatile. To make the memory in your computer stick when you shut it down requires a longer time to alter the hardware than something that is just influenced by the flow of current which inevitably stops when the computer is turned off.

Now on to CPU cache. It turns out the speed of light is not infinite. Therefore, the time it takes for information to travel is dependent on how far it has to go. In the case of computers this is current running along a conductive path. Given that there is also a minimum to the size of which manufacturers are capable of making small hardware, there is a delay between memory and computations on that memory. The more memory you are trying to access, the farther away it will potentially be because memory cells can only be packed so tightly together. Thus, if you work with a small amount of memory, provided your algorithm allows it, you can compute faster. CPU cache is made of smaller divisions of memory particularly for executing things fast. This often serves as a cache on information in RAM but CPU registers could also be considered a form of memory too. CPU caches come in different sizes for algorithms requiring more memory, namely L1, L2 cache etc. The smaller the level, the less memory is used and the faster your code can execute with.