Why there are multiple shells in a Unix like system?

view story

http://unix.stackexchange.com – I have just started learning the fundamentals of Unix and wondering why there are so many shells in a unix like system . From the book Advanced programing in Unix Environment: A shell is a command-line interpreter that reads user input and executes commands.The user input to a shell is normally from the terminal (an interactive shell) or sometimes from a file (called a shell script). And then the book goes on to list a number of shell programs like Bourne shell,Bourne-again shell,Cshell, etc . My question is basically why do we need multiple shells ? (HowTos)