In the past, sometimes programming has been done directly on portable devices. For example, on the Psion organisers, OPL programming was often done on the device. Psions really successful period ended when they decided they didn't want customers some time in the late 90's, so we're not talking about a powerful device by todays standards.
OPL was an interpreted language - probably in the structured Basic family.
However, if you were more serious, the C++ SDK for the Psion was run on a PC, with the compiled binary then transfered to the device.
There were some third party (hobbyist?) compilers that ran directly on a Psion, and I'm pretty sure I had a Python interpreter running on my 5 series at one point.
In general, though, it's not a very practical thing to do. The screen doesn't show much code, and the keyboard (if any) isn't really up to the job. A netbook seems about the minimal platform for the moment that would allow for the development of significant projects.
A lot of programmers insist that a single monitor isn't enough - even a large monitor. I'm mostly happy enough with a single 1080p monitor, but going back to a screen with an original VGA 640x480 resolution or less isn't a tempting prospect.
I'm not aware of any research towards making programming on a mobile platform more practical. There are IIRC projector keyboards and projector screens, but both are a bit impractical and not intended for programming. A specially designed language might make some sense, but you can still only fit so much readable information on a small screen, and if BF is your model for a better fit to mobile programming - well, that language was never meant to be practical for any purpose.
One factor to take into account - the vast majority of new languages never achieve any success.
A Lisp dialect probably needs fewer punctuation symbols than most languages - the Lots of Infuriatingly Stupid Parentheses being the most obvious, and the back-quotes probably being the most awkward on a phone. It may minimise (but not eliminate) keyboard issues, and perhaps other issues can be tolerated - but I have my doubts.
If you want to give it a go yourself, though, it has never been easier to design a language and write a compiler for it. There's all the usual tools for scanners and parsers, of course - e.g. flex, ragel, bison, byacc. There's tools for working with ASTs (treecc - though admittedly I ended up writing my own) and there's back-end code generating systems like LLVM or Parrot. Or, of course, the popular approach of using an existing virtual machine platform like the JVM or .NET.
LLVM even supports multiple target platforms - I don't know if that includes any phones, but I believe there's a way to target either .NET or the JVM using LLVM.