В интернете часто пишут, что делать сайты (серверное программирование) на языках типа С, С++, C#, Фортран, ТурбоПаскаль вроде как нереально, надо делать на языках программирования вроде PHP, Perl, Python, Ruby, Java.
Но почему это так и в чем нереальность в интернете до сих пор нет нормального объяснения и многие новички не понимают, я бы даже сказал не знают, поскольку нигде нормально этот вопрос не рассматривается?
Поэтому хотелось бы понять
Можно ли делать сайты (далее везде речь пойдет о серверном программировании, не клиентском) на С, С++, C#, Фортран, ТурбоПаскаль или любых других языках? Или есть какие-то особенности, которые не позволяют этого делать или очень сильно усложняют разработку и какие это особенности?
Правильно ли я понимаю, что для данных языков С, С++, C#, Фортран, ТурбоПаскаль на сервере должен стоять компилятор и есть ли он там? Или на сервер нужно загружать уже скомпилированную программу, если так он сможет ее исполнить или нет?
В чем принципиальное преимущество PHP, Perl, Python, Ruby, Java касаемо серверного программирования против С, С++, C#, Фортран, ТурбоПаскаль и любых других языков? Оно вообще есть или в свое время сыграл свое дело хороший маркетинг?
делать сайты на языках типа C, C#, Фортран
На самом деле абсолютно все сайты "сделаны" на языке HTML. Другое дело, что все html-странички, из которых и состоят сайты, делятся на две категории:
Примером статичных страничек могут быть страницы, содержащие документы - фиксированный текст, который не меняется, а если и меняется то очень редко.
Динамические странички генерируются "на лету", в тот момент, когда пользователь ввел URL этой странички. Примерами могут быть прайс-листы, новостные и погодные сайты, гостевые книги и т.д.
Тенденция такова, что всё больше и больше контента сайта становится динамическим. Естественно, возникает вопрос, какими средствами выполняется эта самая генерация html-страничек. Так как сами странички - просто текстовые документы, то для работы с таким форматом данных необходимы средства, хорошо работающие с текстом, строками и символами.
Можно выделить два класса этих средств, выполняющих генерацию контента:
Естественно, что язык С совершенно не подходит для обработки текстовых документов - набор функций для этой цели в нём крайне примитивен. Но если есть желание, можно и на С написать программу, генерирующую htm-страничку, поместить её в каталог cgi-bin и наслаждаться результатом.
Но почему нереально
Реально. Хоть на ассемблере, хоть на фортране, хоть на bash. Вопрос в трудозатратах и уровнях абстракции.
чисто технически сгенерировать html-страницу на сервере можно на любом языке?
Да. Но попробуйте обработать что-то вроде multipart/form-data на C/ASM/etc (даже с привлечением сторонних библиотек), и представьте, что это самая примитивная задача в числе тех, которые приходится решать.
P.S. Именно поэтому глупо спрашивать "какой язык учить" - для разных задач подходят разные языки, и нормальный программист должен знать хотя бы пяток из них :)
А вы замените "невозможно" на "мне влом учить язык". Получите ответ. В принципе можно писать хоть на ассемблере.
У PHP, Java, Ruby низкий порог обучения, по сравнению с С,С#
Можно ли делать сайты (далее везде речь пойдет о серверном программировании, не клиентском) на С, С++, C#, Фортран, ТурбоПаскаль или любых других языках? Или есть какие-то особенности, которые не позволяют этого делать или очень сильно усложняют разработку и какие это особенности?
Можно. Но у всех перечисленных языков кроме C# из коробки ничего для веб-разработки не идёт. Вот статья на хабре, как на ассемблере писать: https://habrahabr.ru/post/318916/.
Правильно ли я понимаю, что для данных языков С, С++, C#, Фортран, ТурбоПаскаль на сервере должен стоять компилятор и есть ли он там? Или на сервер нужно загружать уже скомпилированную программу, если так он сможет ее исполнить или нет?
Неправильно. Нужен рантайм языка, если он требуется после компиляции программы твоим компилятором. Если ты получил исполняемый файл, то его надо просто запустить.
C# опять немного выделяется, поскольку в .net core что-то сделали не так, как было в классическом C#, где приложение компилировалось в код. Не знаю, что нужно для его исполнения на сервере, но при классическом C# компилятор тоже не нужен.
В чем принципиальное преимущество PHP, Perl, Python, Ruby, Java касаемо серверного программирования против С, С++, C#, Фортран, ТурбоПаскаль и любых других языков? Оно вообще есть или в свое время сыграл свое дело хороший маркетинг?
В php изначально идёт нечто, позволяющее использовать его для написания сайта. Это и куча функций по работе с запросом/ответом, буферизациейи т. д., и встроенный шаблонизатор.
В C# есть устаревший asp.net и более новые asp.net mvc и webapi. Последние два также входят в кроссплатформенный .net core. Писать на них сайты весьма удобно.
Node.js предоставляет низкоуровневый доступ к запросу и ответу и на него давно написаны аналоги распространённых решений по сайтостроению. Наиболее популярен express.
На джаве когда-то было jsp, но оно устарело, что есть сейчас - не знаю.
В си и плюсах нет ничего. Там даже методы для работы с сетью в стандарт не входят, если не ошибаюсь, так что придётся всё делать с нуля и под конкретную платформу (ну или искать готовое - думаю, должно что-то найтись).
Турбопаскаль - старьё с 16-битными программами. Во-первых, понятия не имею, на каких серверах это сможет запуститься, во-вторых, памяти мало - 65 КБ на всё и, вероятно, возможность нарыть до 2 гигов через дальние указатели (это вспоминая borland c++), но мегабайта стека, как в современных программах, точно никто не даст.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники