Are balances for an address visible? If you know someones BTC address, can you also find out what their balance is? 

Does it also apply for the transaction history for that address? 

I'm mainly asking because I want to know if it's possible for me write a script that can do this.
Yes.  All Bitcoin transactions are recorded in the public blockchain, and this gives you sufficient information to compute the balance of any address.

Sites such as blockchain.info and blockexplorer.com will conveniently show you such info, as well as complete transaction history for an address.

http://blockchain.info/address/13PWYdQ1bAFFkzgcfA4avzSp8iaPzUD7CE

http://blockexplorer.com/address/1NVdrDdS52R4Tb8w9tKnTaVk1WxkVSEh6Z