[[breaking_60_scripting_changes]]
=== Scripting changes

==== Groovy, JavaScript, and Python languages removed

The Groovy, JavaScript, and Python scripting languages were deprecated in
elasticsearch 5.0 and have now been removed. Use painless instead.

==== Native scripts removed

Native scripts have been removed. Instead,
<<modules-scripting-engine, implement a `ScriptEngine`>>.

==== Date fields now return dates

`doc.some_date_field.value` now returns ++ReadableDateTime++s instead of
milliseconds since epoch as a `long`. The same is true for
`doc.some_date_field[some_number]`. Use `doc.some_date_field.value.millis` to
fetch the milliseconds since epoch if you need it.

==== Removed access to index internal via the _index variable

The `_index` variable has been removed. If you used it for advanced scoring, consider writing a `Similarity` plugin.

==== Script Settings

All of the existing scripting security settings have been removed.  Instead
they are replaced with `script.allowed_types` and `script.allowed_contexts`.
