* I have no problems with 'fun projects'. I do them myself.
* I have no problem with 'useless code'. Many fun projects are never useful. I have done these myself.
* I have no problem with learning for learning's sake. I have engaged in lots of that.
What I don't agree with is artificially limiting your project's potential. By choosing to implement brainfuck, instead of Tcl or Lua or Forth or Lisp or any number of other languages (even if it's just a toy version, and not the full spec), you've consigned your project to the dustbin before you've even finished it. To my way of thinking, that just doesn't make any sense. If you want to be artistic, go out and make your own language.