textProperty
TextArea does NOT store the document as a String, it is stored as a list of strings where each item in the list does NOT contain a new line character.
Therefore, getting/setting text is O(n) where n
is the number of lines.
IMHO, the trade-off, with everything else being much faster is well worth it! e.g. JavaFX's TextArea is painfully slow inserting a single character (for a moderate length document), because it needs to recreate a String containing the entire document.
If you bind this property, you should also set readOnly to true, as Themes may style a read-only TextArea differently. If this is bound, then the TextArea cannot be altered by the user regardless of readOnly.