Overview Static scopingGarbage collectionGood support for functional programmingFirst class shell capabilities