У чому переваги java перед php в веб додатках

Коли мова збірний, значно простіше вивчати сторонній (та й свій) код або API. А в IDE складніше зробити помилку вчасно написання коду.

З приводу бібліотек на PHP їх звичайно кілька побільше, ніж на Java (в веб напрямку). Але я вирішував цю проблему через RPC (на не критичних участь) або через JNI (нативний виклик Сі \ Сі ++ функцій через спеціальний інтерфейс). З іншого боку фундаментальні речі типу ORM або веб-фреймворки зроблені набагато якісніше.

Якісніше зроблено управління залежностями, збірка і продакшн проекту. Все автоматизовано і заточене під Java.

В Java у вас один процес працює з клієнтами, в PHP ж потрібно на кожного клієнта новий процес. Не знаю наскільки це впливає на продуктивність, але в Java в цьому плані зручніше працювати, при написанні якихось расшаренних сервісів для клієнтів.

Найближчим часом з'явиться можливість виклику Python, Ruby бібліотек або фреймворків прямо з Java. Можна вже зараз це робити, але в Java7-8 це буде значно оптимізовано. Так що проблема з бібліотеками буде вирішена.

Якщо зараз хочете почати працювати з Java в інтернеті, придивіться до веб-фреймворк Grails або Tapestry 5. Перший не зовсім Java (побудований на Groovy), але має велику кількість інтеграцій з бібліотеками. Другий повністю на Java, але менше інтегрованих бібліотек.

Також Spring зараз є мейнстрімом в розробці веб-проектів. Вище перераховані фреймворки або побудовані на ньому, або мають можливість інтегруватися з ним.

В Java у вас один процес працює з клієнтами, в PHP ж потрібно на кожного клієнта новий процес
it depends. Тут вам і php демони і інші stillalive. Хоча, как не странно. Те що пхп створює окремий процес і грюкає його по завершенню - це, в принципі часто, навіть плюс.

Та ніби і для REST Java теж непогано підходить. Особливо зі Spring Framework. Можна описати API в одному класі, з якого буде доступ до інших. І Java HotSpot JVM під час роботи проведе JIT компіляцію цього класу і швидкість значно віці. Головне що б руки програміста були кривими при роботі з об'єктами і пам'яттю, інакше багато часу на GC буде йти. Але це моє ІМХО. Очікую думки інших

У PHP є ще одна важлива для вебу перевага: Виконання скрипта можна обмежити по часу, і по пам'яті. І це обмеження жодним чином не вплине на інші підключення.

В Java для цього доведеться убити сервер додатків і запустити заново, а це довго за часом і торкнеться інші підключення. Власне тому в продакшені запускають по кілька серверів на одній машині.

Схожі статті