Java
Java — это универсальный язык программирования, который часто используется для веб-разработки и для разработки под Android. Это строго типизированный объектно-ориентированный язык программирования.
Программы на Java транслируются в байт-код, который выполняется виртуальной машиной Java (JVM). JVM — это программа, которая обрабатывает байт-код и как интерпретатор передает инструкции оборудованию. Достоинством подобной реализации является независимость байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует JVM.
В веб-разработке Java занимает Enterprise-сегмент: чаще всего на Java реализуют довольно крупные веб-сервисы и приложения, но делается это обычно или по историческим причинам, или из-за наличия квалифицированной внутренней команды. Скорость и удобство разработки веб-приложений на Java оставляет желать лучшего, равно как и стоимость такой разработки. Но с точки зрения производительности итогового результата — Java как правило не отстаёт от других компилируемых языков, хотя к сборщик мусора в JVM и вызывает проблемы в многопоточном режиме, а интерпретируемые языки Java по производительности вполне ожидаемо опережает. По надёжности Java близка к другим строго типизированным языкам и несомненно превосходит языки без типизации, хотя к реализации типизации на Java и существует относительно много претензий.
Достаточно сильные позиции у Java ранее были в нативной мобильной разработке под Android, но сейчас Java там вытесняется языком Kotlin, который также работает поверх JVM, но обладает большей лаконичностью и типобезопасностью по сравнению с Java.
Kotlin — статически типизированный язык программирования, работающий на базе JVM.
Язык был создан для большей лаконичности и типобезопасности (относительно Java), а также для большей простоты использования (относительно Scala). Кроме работы поверх JVM, Kotlin компилируется в JavaScript и в исполняемый код ряда платформ через инфраструктуру LLVM.
React Native — это фреймворк на JavaScript для разработки мобильных приложений под операционные системы iOS и Android.
Фреймворк React Native позволяет разрабатывать мобильные приложения для iOS и для Android с использованием всего одного языка программирования — JavaScript, а также использовать в этих двух приложениях значительную часть общего кода.