[[painless-guide]] == Painless Guide _Painless_ is a simple, secure scripting language designed specifically for use with Elasticsearch. It is the default scripting language for Elasticsearch and can safely be used for inline and stored scripts. For a jump start into Painless, see <>. For a detailed description of the Painless syntax and language features, see the <>. You can use Painless anywhere scripts are used in Elasticsearch. Painless provides: * Fast performance: Painless scripts https://benchmarks.elastic.co/index.html#search_qps_scripts[ run several times faster] than the alternatives. * Safety: Fine-grained allowlist with method call/field granularity. See the {painless}/painless-api-reference.html[Painless API Reference] for a complete list of available classes and methods. * Optional typing: Variables and parameters can use explicit types or the dynamic `def` type. * Syntax: Extends a subset of Java's syntax to provide additional scripting language features. * Optimizations: Designed specifically for Elasticsearch scripting. include::painless-guide/index.asciidoc[]