LINUX.ORG.RU
ФорумTalks

[У меня гениальнейшая идея!] Кто сказал, что компилируемые языки не подходят для Web?


0

1

Не, ну серьёзно - почему? Забудем сразу CGI как историческое недоразумение. Возьмём к примеру C++.

  • Представление при помощи шаблонизатора (CTPP)
  • Логика в компилируемом приложении
  • SCGI
  • ???
  • PROFIT!

А теперь небольшие пояснения:

Шаблонизатор убивает двух зайцев при использовании компилируемого языка - больше не надо заморачиваться над сложностью генерации самой страницы внутри приложения (кто пробовал на C++ генерировать хотя бы HTML-отчёты - меня поймут), и не надо перекомпилировать, если надо чуть поправить интерфейс. Мухи отдельно, котлеты отдельно.

Да и реализовать SCGI куда проще, чем FCGI.

А если так - то чем так удобные PHP/Python/Perl для чисто логической части приложения (_без_ представления!)? Добавить до C++ ещё фреймворк Qt - и мы имеет кучу штатных плюшек, особенно для БД.

Напомню, что CTPP имеет ещё и биндинги до PHP/Python/Perl, а значит, что логическую часть можно разделить и использовать С++ только в критических участках.

Где я ошибаюсь? Где изъян в моей конгениальной идеи, которая может положить конец тормозам интерпретаторов?

> Кто сказал, что компилируемые языки не подходят для Web?

И правда, кто?

damnemall
()

А теперь посчитай, сколько программистов на С++ ты сможешь нанять за те деньги, на которые вкалывает целый отдел веб-кодеров.

melkor217 ★★★★★
()

А где ты видел в Веб _не_ компилируемые языки?

Где изъян в моей конгениальной идеи, которая может положить конец тормозам интерпретаторов?

Ты путаешь интерпретатор есть у кучи компилируемых языков. Если для тебя «компилируемый» значит «компилируемый в нативный код», то просто напиши компилятор похапе в натив.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> то просто напиши компилятор похапе в натив.

Zend вроде как предлагает что-то ънтерпрайзное из этой серии.

melkor217 ★★★★★
()
Ответ на: комментарий от post-factum

почему интерпретатор? Есть демон SCGI, который по сокету слушает соединение. Шаблонизатор CTPP - компилируемый, т.е., при запуске он один раз компилирует шаблон в [байт]код, благодаря чему чрезвычайно быстрый.

Chaser_Andrey ★★★★★
() автор топика
Ответ на: комментарий от post-factum

> Я правильно понял, что ты изобрёл… интерпретатор?

Скорее, простенький xml-парсер. Вёрстка на шаблонах - стандартная для веба практика. Чтобы дизайнеры не занимались кодом и наоборот.

melkor217 ★★★★★
()
Ответ на: комментарий от tailgunner

Таки да, в компилируемый в нативный.

компилятор похапе в натив.

Ну зачем? Зачем это непотребство улучшать? (кстати, компиляторы PHP давно есть. Один из них сделал Facebook).

Chaser_Andrey ★★★★★
() автор топика

Где я ошибаюсь?

CPU на фронтэндах наименее узкое место нагруженных проектов и самое масштабируемое. Такие дела.

baverman ★★★
()

Я лет 10-12 назад делал что-то похожее.
Приложение генерировало XML а UI делеся с помощью XSLT.
При этом если браузер поддерживал XSLT в полном объёме то рендеринг можно было отдавать клиенту а иначе всё рендерилось на сервере.

Бонусо было то, что можно было без изменения приложения сделат страницы для мобильников, что сейчас ещё более актуально.

Но трудоёмкость всё-же выше чем при использовании специализированных средств для вэба.

grim ★★☆☆
()

Не знаю как в пхп, а пейтон точно умеет вызывать сишные функции. Это для участков, где производительность ну очень критично. А С++ и Qt лучше бы выкинуть.

melkor217 ★★★★★
()

Не нужно. Т.к если скрипт генерит пользовательскую страничку, то тут всё упирается в пропускную способность канала, а не скорость работы скрипта. А там где надо гонять большие куски данных, никто и так ими не пользуется.

koirn
()
Ответ на: ах да... от Chaser_Andrey

> Не понял юмора.

Да меня тут некоторые осуждают за то, что у меня бывают идеи, которые не соответствуют их мироустройству «всё украдено до нас». Не обращай внимания.

Sadler ★★★
()
Ответ на: комментарий от Sadler

всё украдено до нас

«большая часть в этой области украдена до нас и не с твоей квалификацией сюда соваться»

fixed.

baverman ★★★
()
Ответ на: комментарий от Sadler

> Да меня тут некоторые осуждают за то, что у меня бывают идеи, которые не соответствуют их мироустройству «всё украдено до нас». Не обращай внимания.

Обычно осуждают за гениальные идеи, украденные и обкатанные десять лет как уже.

shimon ★★★★★
()

Уже сейчас можно написать http-демон, который будет сразу отдавать контент. Например, делаем GET /, на выходе получаем index.html и отдаем клиенту. Как сформировать index.html ? Да просто, пишем алгоритм выдерания данных прямо из БД (неважно какой, хоть с файла из ФС). Почему так никто не делает? Фиг знает, но сделать обертку под БД, чтобы редактировать данные html, имхо, не сложнее чем написать PHP. Хм.. будет время попробую реализивать каркас в libev/perl/postgres.

gh0stwizard ★★★★★
()
Ответ на: комментарий от koirn

Брехня. На посещаемых ресурсах как раз уже загибаются интерпретаторы, которые генерируют контент, особенно, если последний почти без статики, прежде чем всё упрётся в канал.

Chaser_Andrey ★★★★★
() автор топика

>кто пробовал на C++ генерировать хотя бы HTML-отчёты - меня поймут что, за 20 лет никто не удосужился написать библиотеку для этого? что как бы намекает на применимость языка к данной задаче.

JFreeM ★★★☆
()
Ответ на: комментарий от gh0stwizard

Честно говоря, я не до конца понял этот поток сознания...

Chaser_Andrey ★★★★★
() автор топика
Ответ на: комментарий от Chaser_Andrey

> Почему? Уж не из-за мифа ли, что Qt сильно толстое?

А такой лихой замес плюсов и пейтона ничего не даст. Там всё равно общение на уровне вызова си-стайл функций.

melkor217 ★★★★★
()
Ответ на: комментарий от gh0stwizard

Почему так никто не делает?

Хоть бы немного с матчастью ознакомился бы чтоле. Как будто кроме апача и энжинкса больше http серверов нет.

baverman ★★★
()
Ответ на: комментарий от melkor217

>Не знаю как в пхп, а пейтон точно умеет вызывать сишные функции. Это для участков, где производительность ну очень критично. А С++ и Qt лучше бы выкинуть.

Почти все известные интерпретаторы умеют работать с кодом на Asm/C/C++. Как просто это сделать google:/swig

gh0stwizard ★★★★★
()
Ответ на: комментарий от quickquest

> Есть Morfik в 3-х вариантах: FX (Pascal), BX (Basic), CX (C#).

Ты же сам понимаешь, что два варианта как минимум смешны, а второй - тогда уж лучше Яву.

Chaser_Andrey ★★★★★
() автор топика

Кому то в вебе не хватает скорости выполнения кода? Я думал проблема в масштабируемости архитектуры, оптимизации БД и кластеризации всего приложения.

А вот если действительно нужно считать например 2 часа что-то, то все это асинхронным сообщением инициируется на отдельной машине. Приложение может быть нативным.

vertexua ★★★★★
()
Ответ на: комментарий от baverman

>Хоть бы немного с матчастью ознакомился бы чтоле. Как будто кроме апача и энжинкса больше http серверов нет.

Подробнее, желательно опенсорс и на не на интерпретируемых языках :) Типа, запустил я демон, он берет контент из БД и сразу отдает клиенту. Без всяких обвесок вроде php/perl/asp/etc.

gh0stwizard ★★★★★
()

Производительность непосредственно байткода — самое незначительная вещь на сервере. Использование памяти более заметно, но она настолько дешевая, что об этом можно не думать.
Самое важное — стабильность, легкая разработка, легкая отладка, качество кода.

А если так - то чем так удобные PHP/Python/Perl для чисто логической части приложения

Они управляемые.

note173 ★★★★★
()
Ответ на: комментарий от gh0stwizard

А потом начинаем оптимизировать, прикручиваем libevent, кэширование, пул потоков и получаем nginx с впаяной логикой.

note173 ★★★★★
()
Ответ на: комментарий от gh0stwizard

Дело в том, что в этой самой БД данные например в 3 нормальной форме. Сущность нужно собрать. Это как раз делает бизнес логика. Если сущности упростить, то по идее можно их вывалить в канал как-то в чистом виде. Но я тебе гарантирую что будет нужна кастомизация в 99% случаев. Кастомизацию нужно как-то делать. Что и делается на каком-то ЯП. А поскольку это хорошее решение, которое всех устраивает, то все прекрасно. Такой как вы говорите демон не нужен

vertexua ★★★★★
()
Ответ на: комментарий от note173

>Использование памяти более заметно, но она настолько дешевая, что об этом можно не думать.

Ага, apache и овер 2к fork'ов каждый по 5мб ~ 10Гб. И это только средней нагруженности, по нынешним меркам, сервак. Зачем думаешь всякие nginx придумали ? :)

gh0stwizard ★★★★★
()
Ответ на: комментарий от Chaser_Andrey

Если можно что-что сделать быстрее без особых усилий

Могу поспорить, что на своей связке ты потратишь на порядок больше времени.

baverman ★★★
()
Ответ на: комментарий от Chaser_Andrey

Особые усилия - это писать нативный код, его отлаживать. А в больших проектах просто получить неуправляемую непонятную текучую кучу кода

vertexua ★★★★★
()
Ответ на: комментарий от Chaser_Andrey

Ничего подобного. У меня абсолютно все CGI написаны на сях. И я, кстати, себе еще и библиотечку написал для аутентификации/авторизации и работы с файлами. Хотел еще туда добавить вебсокеты, но что-то влом - пока это не стандартизировано.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Chaser_Andrey

Managed в смысле. Не дадут внести трудноуловимые баги прямой работы с памятью, например.

note173 ★★★★★
()
Ответ на: комментарий от gh0stwizard

Зачем думаешь всякие nginx придумали

Очевидно, чтобы снизить context switching.

baverman ★★★
()
Ответ на: комментарий от gh0stwizard

> Почти все известные интерпретаторы умеют работать с кодом на Asm/C/C++. Как просто это сделать google:/swig

Да я и не спорю. Просто я в пхп не видел, вот и не стал утверждать.

melkor217 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.