Characteristics and use.
WHAT IT IS
A dynamically typed, interpreted, object-oriented language emphasising developer happiness and expressiveness.
WHAT DISTINGUISHES IT
Everything is an object Flexible syntax allowing readable, almost prose-like code Blocks, passed to methods, used pervasively
WHAT IT IS BEST KNOWN FOR
A web framework that shaped how web applications are built generally.
WHAT THAT FRAMEWORK POPULARISED
Convention over configuration Scaffolding and generators Database migrations Patterns adopted widely by other ecosystems
WHAT IT IS USED FOR
Web applications Automation and tooling Configuration management
WHAT IT IS CRITICISED FOR
Performance, relative to compiled languages Excessive flexibility, permitting code that is difficult to follow
WHAT THAT FLEXIBILITY ENABLES
Modifying existing classes at runtime, which is powerful and easily abused.
WHAT TO ESTABLISH IN A TEAM
Conventions limiting that.
WHERE IT STANDS NOW
Smaller than at its peak, but with mature tooling and a productive ecosystem.
WHO IT SUITS
Teams valuing rapid development and expressive code.