A fisheye lens isn't designed to have extreme barrel distortion -- the distortion is the result of trying to map a sphere onto a plane.
A regular lens follows the equation image height = focal length * tan(half angle of view)
.
Tangent blows up near 90 degrees, so you cannot map a 180 degree field of view onto a plane.
Near this, equal changes in angle map to larger and larger changes in location on the image. This is what stretches the corners out in an ultra wide angle rectilinear lens.
Another mapping function is image height = focal length * half angle of view
. This maps the same change in angle into the same change in space anywhere on the sensor. It is also often the function used by ultra wide angle lenses, to avoid the difficulty of a low distortion design and difficulty putting a huge FoV onto an image of finite size.