Some formal methods are very useful.
It's just a practical way to formally describe syntax in Backus-Naun form. If you're programming in yacc, you're doing formal work. Every time I come across a piece of complicated UI code, I wish formal method classes were more practical. After describing the UI behaviour formally with a finite state machine, you have much better chances to get the implementation right. I don't care if you use UML, GoF state pattern, an FSM translator or two enums and switches.