Отличная презентация The Ghosts of Java Past, Present and Yet to Come об истории Java и том, какие языки послужили источником вдохновения при ее создании: LISP, Simula, C, Modula, SmallTalk, Pascal (p-code), Mesa, Cedar, Objective-C, Ada, C++.
Из LISP была взята идея динамического связывания и подгрузки классов во время исполнения по мере надобности. Из того же LISP пришла идея автоматического управления памятью и сборки мусора.
Идея встроить concurrency прямо в язык взята из языков Mesa и Cedar. Синхронизация между потоками с помощью мониторов — тоже оттуда.
Исключения, иерархия исключений, объявление исключений в декларации метода — из языка Modula-3.
Классы — как в C++, только наследование имплементаций не множественное, а единичное.
Интерфейсы — из Objective-C, с множественным наследованием интерфейсов.
Пакеты — как у Modula. Идея разбиения кода на модули, иерархия имен.
Приведу только один скриншот из презентации. А остальные слайды доступны по ссылке под видео презентации.
Очень интересно как с точки зрения истории, так и понимания концепций, которыми наделен язык Java.