That's a fair criticism. Hell, I'll probably have to learn Java sooner or later, like it or not.
>Worry not, your Scheme kool-aid will fade out eventually
It's not Kool-Aid. I can tell because I am still capable of criticising Scheme, and am not in awe of it.
Scheme has a weak stdlib (which is both good and bad), its string handling is painful at best, as srfi-13 doesn't provide a lot of common functionality, its function names are painfully long (call-with-current-continuation. Really? What would you call 'do' if you hadn't inherited it from maclisp? iterate-over-variables-incrementing-until-condition?) Which matters a lot when your whole language is made up of them, or things that look like them (how many times do you want to type 'vector-ref'?). Scheme has no dynamic variables. Chicken, my scheme of choice, and the most viable one for real work, lacks a decent debugger. Gambit and Guile have good debuggers, but Guile is slow, and Gambit has no libraries, so you can't get anything done. Schemestill doesn't have a standard imperative macro system. And the SSC is still working on R7RS-large, which will finally bring together a stdlib large enough to write scheme portable across implementations without snapping and spending the rest of your life in a corner, dribbling about syntax-rules.
I like scheme: it's both syntactically and semantically small, beautifully clean, and even decent for some kinds of real work.
But it's not even close to perfect, or even ready for industry.