Brat
{{language |exec=bytecode |express=implicit |checking=dynamic |gc=yes |site=http://brat-lang.org }} {{language programming paradigm|Dynamic}} {{language programming paradigm|Object-oriented}}
Brat is a little language which tries to let you do what you want to do, because it knows no one is the boss of you. While influenced by [[Ruby]] in many ways, it accidentally resembles [[Javascript]]. The language design attempts to avoid "special cases" as much as possible, and therefore has no keywords and very few special symbols.
In Brat, everything is either an object or a function, and all functions are closures. Objects are essentially just collections of functions which can have inheritance relationships with other objects. The object system in Brat uses a prototyping approach, so new objects are always created as children of some existing object. Functions in Brat are first-class values which can be passed around like any other value.
Brat is also a very eager language. The only way to delay code evaluation is to enclose it in a function. Any use of a variable containing a function is assumed to be calling the function.