I just finished my second year as a university CS student, so my "real-world" knowledge is lacking.  I learned Java my first year, continued with Java and picked up C and simple Bash 
scripting my second.  This summer I'm trying to learn Perl (God help me).  I've dabbled with Python a bit in the past.
My question is, now that we have very readable, very writable scripting languages like Python, Ruby, Perl, etc, why does anyone write Bash scripts?  Is there something I'm missing?  I know my linux box has perl and python.  Are they not ubiquitous enough?  Is there really something
that's easier to do in Bash than in some other hll?
What I don't get is why people say bash when they mean any bourne-shell compatible shell.
When writing shell scripts: always try to use constructs that also work in older bourne shell interpreters as well. It will save you lots of trouble some day.
And yes, there is plenty of use for shell scripts today, as the shell always exist on all unixes, out of the box, contrary to perl, python, csh, zsh, ksh (possibly?), and so on.
Most of the time they only add extra convenience or different syntax for constructs like loops and tests. Some have improved redirection features.
Most of the time, I would say that ordinary bourne shell works equally well.
Typical pitfall:
if ! test $x -eq $y works as expected in bash that has a more clever builtin "if" operator, but the "correct" if test ! $x -eq $y should work in all environments.
Is there any use for Bash scripting anymore?