Java "od zawsze" była klasyką programowania obiektowego. Wprowadzenie do tego języka elementów programowania funkcyjnego, takich jak wyrażenia lambda, referencje do metod czy strumienie, całkowicie odmieniło technikę pracy. Wielu programistów stanęło przed koniecznością szybkiego nadrobienia zaległości. Ten wysiłek jest opłacalny, gdyż nowy model programowania Javy ma wiele zalet. Podejście funkcyjne sprawia, że pisany kod jest prostszy i czytelniejszy, łatwiejsze też się staje uzyskanie współbieżności. Projektanci pracujący ze starszymi wersjami Javy muszą po prostu postarać się zrozumieć, jak nowe funkcyjne idiomy zmieniły sposób pisania kodu źródłowego.