Light

Each edition of Minecraft used a different lighting model. Classic's model is simple and only checks whether a block is exposed to the sky. Indev's model is more complex and consider's a block's distance from the nearest sunlight and from the nearest light-emitting block. Alpha's model is a refinement of Indev's, calculating sunlight and block-emitted light separately and using a different scale of light intensities.

Classic
In Classic Creative mode and Survival, light is cast by the sun and will hit any block that is under it (and go through any transparant blocks to light blocks underneath). Blocks that did not recieve light were in a dim shadow that remained at the same level of brightness no matter it was.

Indev
A new lighting system was the first thing to be put in Indev. This lighting uses a more complex and realistic shadowing method:

There are 16 degrees of brightness, 15 being sunlight, 0 total darkness. Each block that emits light has its own luminance value. In this example, we'll use a Torch which has a value of 14. After placing a torch, the six blocks around the torch are given a light value of 13. If the neighboring block already has a greater light value, it is skipped. The process is repeated for each block whose light value just changed - the 13 will spread 12 into neighboring blocks, and so on.

During the day, sunlight has a maximum light value of 15. At dusk, it steadily decreases until it reaches a nighttime maximum value of 4 representing moonlight. (The moonlight value has changed a few times during development.) Sunlight is emitted by the top edge of the map. It spreads to adjacent blocks similar to normal light, except that when spreading downward, it will spread the same light value if it is the maximum light value for the time of day.

In Indev, each lighting value maps linearly to a visible color in the game. That is, 15 is shown as fully bright, 14 is 93.75% bright (15/16), 13 is 87.5% bright (14/16), and so on down to 0 which is always pitch black. This is not the case in Alpha.

Alpha
Lighting in Alpha was subtly changed in appearance. Instead of using a linear scale for the visible light values, each value is 20% less bright than the value above it. Thus, 15 is fully bright and 14 is only 80% bright. 13 is thus 64% bright. This has the effect of making sunlight and firelight seem much brighter than torchlight.

Alpha lighting still behaves identically to Indev lighting, with a behind-the-scenes optimization to make dawn and dusk smoother: The amount of light from the sky is precalculated and saved along with the blocks, because it never needs to change except when blocks are added or removed. During dusk, nighttime, and dawn, a darkness value is subtracted from the sky light to create the effects of different times of day.

Light plays an important role in determining the growth of trees and whether mobs spawn or not. Mobs will spawn at light levels of 8 (moonlight) or below, and trees will only grow when light levels are 13 or higher. Saplings will not remain planted in the ground at light levels below 8, so they will survive moonlight, but no darker.

Blocks that emit light include Torches (14), Fire (15), Lit Furnaces (14), Lava (15), Brown Mushrooms (1), Redstone ore (9) that has been clicked or stepped on and Redstone torches (7) that are on. The Void also gives off light during day.