Какие языки программирования лучше всего подходят для разработки монолитных приложений и создания собственных фреймворков?

Добрый день! 

У меня возник вопрос: какие языки программирования наиболее подходят для разработки монолитных приложений и создания собственных фреймворков? В процессе выбора языка для работы я опробовал различные варианты и пришёл к выводу, что мне нравится писать монолиты и разрабатывать фреймворки с нуля, например, на чистом PHP или Java. У меня есть двухлетний опыт работы с микросервисами на Golang, но мне не нравится эта область. Существуют ли вакансии на Go, где пишут монолиты? Я слышал, что СУБД — это редкий случай. Стоит ли мне рассмотреть возможность перехода на Java или PHP, если мне не нравятся микросервисы? Я знаю, что в Java монолиты чаще всего являются легаси-кодом (не уверен по поводу PHP), но именно это мне интересно. Исходя из этого, какой язык из Golang, Java и PHP лучше всего подойдет для моих целей?
  • 10 февраля 2025 г. 16:24
Ответы на вопрос 2
Добрый день!

При выборе языка программирования для разработки монолитных приложений и создания собственных фреймворков стоит учитывать несколько факторов, таких как ваши предпочтения, опыт, а также доступность вакансий и экосистема вокруг языка. Давайте рассмотрим каждый из перечисленных вами языков.

### PHP
- **Подходит для монолитов**: PHP традиционно используется для создания веб-приложений, и многие из них разрабатываются как монолиты. PHP фреймворки, такие как Laravel и Symfony, имеют мощные возможности для разработки.
- **Создание фреймворков**: Вы можете легко создать свой собственный фреймворк на PHP, так как язык прост и гибок.
- **Востребованность**: На рынке труда все еще много вакансий для разработчиков PHP, особенно для работы с существующим кодом.

### Java
- **Подходит для монолитов**: Java широко используется для создания крупных корпоративных приложений. Многие приложения разрабатываются как монолиты с использованием фреймворков, таких как Spring.
- **Создание фреймворков**: Java предлагает мощные механизмы для разработки собственных фреймворков.
- **Востребованность**: Вакансий на Java много, особенно в крупных компаниях, которые нуждаются в разработчиках для поддержки и улучшения существующих монолитных систем.

### Go (Golang)
- **Больше для микросервисов**: Go чаще всего используется для создания микросервисной архитектуры из-за своей легкости и производительности.
- **Редкие вакансии для монолитов**: Хотя вы можете разработать монолит на Go, это не столь распространенное решение, и вакансий, связанных с разработкой монолитов на Go, действительно может быть меньше.
- **Сообщество и экосистема**: Несмотря на то, что Go активно развивается, экосистема для разработки монолитов не так велика, как у PHP или Java.

### Общий вывод:
Если вы предпочитаете создавать монолитные приложения и разрабатывать фреймворки, то **Java** и **PHP** будут гораздо более подходящими вариантами по сравнению с **Golang**. Если вас интересует работа с существующими большими системами, то Java может быть более подходящей, так как она часто используется в крупных компаниях. PHP может оказаться проще для работы над небольшими и средними проектами, а также предоставляет возможности для быстрой разработки и прототипирования.

Итак, если вас не интересуют микросервисы и вы хотите сосредоточиться на монолитах, переход на Java или дальнейшая работа с PHP будет более целесообразной. Выбор зависит от ваших предпочтений и того, какие именно проекты вас интересуют. Удачи!
Любые. Практически любая проблема может быть решена практически любым ЯП. Вопрос лишь в сложности этого решения и целесообразности. Что-то подходит больше/проще, что-то - меньше/сложнее. Многое зависит от наличия готовых фреймворков и экосистемы. Например, на рельсах традиционно создают монолитные проекты. Но это не значит, что сервисные или микросервисные там нельзя или не получится. Можно и прекрасно получится. 
Кроме того, разработка ПО - это не язык программирования, ибо ЯП - это всего лишь инструмент, используемый при разработке ПО. И причём один ИЗ множества других инстурментов. Да, важный, один из ключевых. Но есть и другие, не менее важные вещи. Например: планирование, управление, анализ и аналитика, исследования, написание документации, дебаг, тестирование и еще куча всего. И там везде тоже используются свои инструменты. Можно нанять лучших программистов, выдать им чемодан денег и посадить менеджером проекта вчерашнего выпускника - проект быстро загнётся. Можно сделать наоборот - взять лучшего менеджера, так же выдать чемодан денег, но нанять техлидом, например, какого-то человека без опыта и проект точно так же загнётся или будет иметь какие-то серьёзные проблемы.
Похожие вопросы