Why does nobody write programs in shell/bash? they seem to be much simpler that c, java and all that other shit

Bash syntax is fucking awful and it's much easier to just write a script in python most of the time. Anything > 50 lines should be written in C/C++ anyway.

Because shell scripts have terrible syntax and anything involving floating point integers quickly becomes convoluted.

There's no guarantee, because of bugs or deliberate non-compliance with POSIX. But you can get maximum portability by writing for plain Bourne shell, and using only the utilities (and their options/arguments) described in POSIX:
pubs.opengroup.org/onlinepubs/009696699/utilities/contents.html
This was my strategy some years ago when I had to write a script for managing hundreds of systems already in the field, each with unknown versions and distros of Linux. The only thing I could be sure of is that they'd eventually download my script and execute it, but nothing else was guaranteed, and there was no way to find out any more details about them (they were located all over the damn place, thousands of miles apart).
One caveat though: if you examine the list, you'll notice that it's missing a lot of basic networking utilities: no arp, ping, route, netstat, ifconfig...
Another thing: if you have to deal with BusyBox, POSIX probably won't help you much.