I think food coloring is a generic term for what can be dyes and lakes. Which actually in some ways have similar properties but are different. Dyes, lakes, and pigments have been used for thousands of years and on all inhabitable continents. Dyes can found in many foods, cosmetics, textiles, paper, wood, fur, and leather.
A dye is a coloring agent that is chemically bound to a substrate (a textile for instance) and permeates it fully. It is typically water soluble, but not always. It tends to have a loose association with the substrate and the color can be lost over time. Almost all dyes are organic.
A pigment is a coloring agent that is applied to the surface of a substrate with the help of a binder. It is typically not water-soluble. May find their use in ceramics, paints, and also in cosmetics. While a dye can only transmit, absorb, or reflect light, some pigments/binders can scatter light. Most are inorganic. I do not think that pigments are typically used in food, but I may be wrong.
A lake is a combination of a dye and a mineral in the form of a powder or solid that may be used as a pigment. Basically you take a dye mix it up with a solid substrate such as chalk or kaolin clay and use it like it was a pigment. You can find these in cosmetics, and foods, I know because I have used them in R & D for breath films. (Oh god bringing back nightmares of one of the worse jobs I have ever had).
Just a warning to anyone that might be playing with actual food grade dyes, the FD & C blue # 4 is very fine and powdery. Trust me when I say that it is very easy to make a cloud of it, accidentally breath in the fine particles and suddenly have lips, tongue, and noise hairs that are electric blue that lasts for a few days (i.e. You become a smurf and oh it gives you blue snot too). It can also land on surfaces and appear not to be present until water is added then suddenly everything is electric blue! Fortunately, it will not permanently stain clothing but will last for a few days on your skin. Trust me I know all to well!!!!
Hope this answers your question, probably more than you wanted to know.