Program control is not really needed in a firewall. A firewall is basicly only for keeping your doors (ports) closed and nothing does it better than a hardware firewall.

Tip: If you install a firewall (hardware or software) close ALL ports and open only those who are really needed such as 80 for webpages, 21 for ftp and such. Leave ALL others closed untill you really have to open them for the system to work. And don’t open udp and tcp at the same time if not needed for a port.