Julia uses a model similar to this. The main advantage is that you can interact much more easily if you have a REPL running where you can do things (assign variables load data etc) and then define/try out new code on that data.