Most languages don't use sigils for their variables, and they aren't massively abandoned because they are 'cryptic'.
Python and Java are often considered to be less cryptic language than Perl - which is often seen as quite cryptic, or even shell, which can be quite cryptic as well.
Which are the variables and which are the function words?
You know, if context cannot tell, and if you are only looking through a peephole (that is, seeing a few lines of code, and not a declaration of the variable or function), it usually doesn't matter. If one sees:
print foo;
in a language where parenthesis aren't required after a function call, it really doesn't matter whether
foo is a variable, or a
function. It's printing the value of
foo.
In fact, understanding programming in general becomes a lot easier if you view scalars, arrays and hashes as functions. A scalar is just a function that returns a fixed value (although you can later change what the value is). An array is just a function that takes an integer as argument, while a hash is a function that takes a string as argument.
I find sigils handy because they allow me to do interpolation. But for me, that's their only use. It doesn't make programs more cryptic or less cryptic.