I've always liked the idea of a language that combined syntax level support for functional reactive programming and symbolic programming. So you define z as x + y. Then you change the value of x and that change cascades across your program, like a spreadsheet almost.