この世界は。。。いいですか?
Настала пора выбросить несколько технологий на свалку истории и начать делать вот так:
Это и веб-сервер, и бэк-энд в одном флаконе. Ещё парой строк прикручивается работа с https. Компилируется всё в бинарник. Получается, на сервере можно запустить только его и сервер СУБД (если вы, конечно, не держите его на отдельной машине). Что же с остальным софтом?
Apache? Больше не нужен.
Tomcat? Оставим легаси Большим Корпорациям.
nginx? Разве что как балансировщик.
php? В прошлом.
cgi во всех инкарнациях? Это уже даже не смешно...
О, разумеется, они ещё побарахтаются, масса существующих фреймворков и CMS будут жить ещё довольно долго, хостеры будут хостить LAMP как прежде.
Но приговор уже вынесен.
Будущее за Go и дешёвыми VPS.
Это и веб-сервер, и бэк-энд в одном флаконе. Ещё парой строк прикручивается работа с https. Компилируется всё в бинарник. Получается, на сервере можно запустить только его и сервер СУБД (если вы, конечно, не держите его на отдельной машине). Что же с остальным софтом?
Apache? Больше не нужен.
Tomcat? Оставим легаси Большим Корпорациям.
nginx? Разве что как балансировщик.
php? В прошлом.
cgi во всех инкарнациях? Это уже даже не смешно...
О, разумеется, они ещё побарахтаются, масса существующих фреймворков и CMS будут жить ещё довольно долго, хостеры будут хостить LAMP как прежде.
Но приговор уже вынесен.
Будущее за Go и дешёвыми VPS.
> маркетинговый буллшит про Go
Ты чего-то не то съел? Иппонская еда?
Ты не пишешь "многопоточный демон" - ты используешь встроенные в язык средства диспетчеризации задач. И ты даже демона не пишешь. Ты не сможешь ответить на вопросы - сколько потоков в конкретный момент в твоём процессе, и как он себя поведёт на SIGTERM.
В смысле реальной функциональности Go - не более чем статически типизированный, компилирующийся в один бинарник node.js.
Для мигрантов с php/js никогда не видевших ничего другого оно может и откровение божие.
умеющий в mysql и ssl
Щас бы в 2К18 этим гордиться.
И точно знаешь, что оно потом ещё и h264 тебе будет на Raspberry Pi кодировать и не тормозить.
А ты не знаешь, лул. Ты фантазируешь. Кодировать будет в любом случае не Go, а libx264, а "тормоза" будут зависеть от достаточности доступных ресурсов для обработки входящего потока данных.
А с этой фигней "четвертого дня" какие минусы есть?
Кстати,
«Производительность по-прежнему остается проблемой во многих приложениях, которые меня интересуют: быстрота реагирования интерфейсов, время запуска и закрытия приложений. Разработчики программного обеспечения нейтрализуют поразительную производительность современного компьютерного оборудования, добавляя избыточные (программные) абстракции слой за слоем. Похоже, что мы столкнулись с ограничениями линейного ускорения для аппаратного обеспечения, но во многих случаях мы могли выиграть пару порядков величин у программного обеспечения.»
Бьёрн Страуструп
Кстати, распберри пи первых версий (у меня модель B) слабовата тоже для сайтов. Использовать её для серфинга вообще невозможно.
Так что, всё не так однозначно.
Здесь, полагаю, дело не в используемом языке, а в том, кто и как его использует.
Про слои абстракции сказано верно, ну дык Go как раз и пытается решить эту проблему, убирая как минимум один слой полностью (интерпретатор php / Java-машину), а второй делает значительно тоньше (заменяя Apache / Tomcat своим лекговесным сервером).
Хорош толстить.
Кстати, интересный вопрос. Насколько я помню, в Unix сигнал может получить любой поток и, если обработчика не будет, то происходит завершение потока. Поэтому я использую sigblock чтобы все порождённые потоки никогда не получили никаких сигналов (SIGKILL или SIGSTOP не в счёт).
Вот так.
Ящитаю, это девиз разработчиков на Go. :3