Как написать веб сервис на паскале?
Модератор: Модераторы
Как написать веб сервис на паскале?
Хочу написать сервис на паскале, который от разных людей принимает текстовой файл (например, json); обрабатывает его и формирует другой json к юзеру. Причина почему на паскале, так как обработка скорее всего потребует строгой типизации и весьма ресурсоёмких нетривиальных обработок на сервере.
Сам ничо не понимаю как это сделать на паскале.
1. Стоит ли это того, или писать на пхп как всегда?
2. Где и что почитать (лучше с примером) как такая задача реализовывается, желательно на русском.
Сам ничо не понимаю как это сделать на паскале.
1. Стоит ли это того, или писать на пхп как всегда?
2. Где и что почитать (лучше с примером) как такая задача реализовывается, желательно на русском.
cgi, brook, web-spider, web-cgi и т.д.. Возможны ошибки в названиях. Писал по памяти.
1. YES !
2. fpc\[YOUR VERSION]\source\packages\fcl-web\examples\
2. fpc\[YOUR VERSION]\source\packages\fcl-web\examples\
azsx писал(а):1. Стоит ли это того, или писать на пхп как всегда?
Питон, согласно таблице его создателей, по скорости в 80-90% совпадает с С++ идентичными написанными алгоритмами (недавно ходил на семинар там создатели питона свои таблицы-сравнений приводили). Пхп написан на питоне, так что, какой-то прирост в скорости написав на Паскале - Вы вряд-ли получите. Основная проблема написания на паскале, в защищённости сервера. Считается, что пхп - более защищён от атак на уровне спец. символов (процессорных команд) и т.п. В написании кода особой разницы нет, но в отладке пхп явно удобнее (т.к. она там сведена к минимуму и всё за вас делает секрипт). Как впрочем и при работе с БД и другими WEB-необходимостями - пхп удобнее. Кроме того, в пхп тоже можно принудительно указывать типизировать, раз уж именно это Вам важно (хотя я не совсем понимаю, что конкретно вы имели ввиду под словом типизация ). Ну и наконец обслуживание "допиливание" кода, на php делать удобнее. А паскаале-компилируемую программу удобно отдавать пользователю в одном файле, но постоянно работать безусловно удобнее с пхп скриптом. В общем писать на пхп в 10-20 раз проще чем на паскале и добиться прироста в скорости написав сервер на паскале - смогут только программисты наивысочайшего уровня, ясно понимающие все фишки web технологий.
С другой стороны, на паскале написать сервер - это несколько строк кода, и несколько рабочих примеров есть на форуме. Всё зависит от задачи. В некоторых вещах, паскаль безусловно выйграет, и по скорости и по вариации возможностей.
.
Последний раз редактировалось vitaly_l 25.05.2017 09:40:36, всего редактировалось 1 раз.
Пхп написан на питоне
упс...
azsx писал(а):упс...
да действительно упс... в смысле я облажался. Но - это ничего не меняет, т.к. всё остальное про пхп моё мнение.
что конкретно вы имели ввиду под словом типизация
Мне надо, чтобы 2+2 однозначна равнялся 4, а не "22". Ну и все вытекающие проблемы от этого.
К сожалению я не настолько хорошо знаю паскаль, чтобы судить хуже он или лучше для моей задачи. Хочу написать сервис чат бота, начать можно с rest сервиса (получил переменную, отдал переменную). На пхп такое реализовать легко, прекрасно масштабировать горизонтально (если потребуется) и код можно править на лету.
Зато нет типизации и если в скрипте будет сложная логика, то скорее будет как минус выбор php. Хотя пхп написан на С и некоторые алгоритмы рвут С++ ваще как тузик грелку (пруфы искать не буду).
Java более тяжёл при начальном запуске, зато сразу, как я понимаю, легко многопоточность сделать.
советую GO(Lang), он специально разработан для таких задач, это как паскаль только со встроенной поддержкой эффективной многопоточности, сборщиком мусора и вместо бегин енд фигурные скобочки, компилится в один исполняемый файл, за пару-тройку часов разберетесь и набросаете скелет сервиса. Аналогичное решение на паскале - пару недель будете только разбираться какие либы использовать.
sts -- для меня совсем не вариант.
azsx писал(а):Мне надо, чтобы 2+2 однозначна равнялся 4, а не "22".
Код: Выделить всё
$a = 2;
$b = 2;
$c = (int)$a + (int)$b; // как минимум вот так можно это сделать
Это всё или ещё что-то, подразумевается под типизацией?
Добавлено спустя 2 минуты 27 секунд:
А вообще, чтобы 2+2 равнялся "22" в php делают так:
Код: Выделить всё
$a = "2";
$b = "2";
$c = $a . $b; // ставят не плюс а точку или запятую
Код: Выделить всё
$a = "2";
$b = 2;
Sc = $a + $b;Виталий, мне надо чтобы такой код давал ошибку, а не отрабатывал.
зы
это далеко от темы и спор мне не интересен.
azsx писал(а):sts -- для меня совсем не вариант.
почему? на паскале придется самому реализовывать то что в го есть (собственно оно там встроено в язык как раз потому что нужно для сервисов), либы типа indy ("работа" с сетью) для паскаля если и имеют то примитивные менеджеры потоков, чисто для галочки, там придется самому реализовывать либо сопрягать с либой управления потоками, специфика сервисов - неоднозначный цикл использования ресурсов заставит сделать свой сборщик мусора, в лучшем случает найдете готовый проект где все увязано и все равно долго будете в нем разбираться, но я таких не видел.
Го обычный компилируемый язык со строгой типизацией, или задача - только на паскале?
почему? на паскале придется самому реализовывать то что в го есть
Значит паскаль просто не вариант. ээх...
Го обычный компилируемый язык со строгой типизацией, или задача - только на паскале?
Для меня слишком круто учить go для написания чат бота.
azsx писал(а):Виталий, мне надо чтобы такой код давал ошибку, а не отрабатывал.
зы
это далеко от темы и спор мне не интересен.
Возьмите модуль synapce и сделайте на нём сервер на паскале. Тогда сможете делать вот так:
Код: Выделить всё
var
s: string;
i: integer;
v: variant;
begin
s := '2';
i := 2;
v := s + i; // здесь важное сообщение
end;
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
vitaly_l писал(а):Основная проблема написания на паскале, в защищённости сервера. Считается, что пхп - более защищён от атак на уровне спец. символов (процессорных команд) и т.п.
vitaly_l писал(а):т.к. всё остальное про пхп моё мнение.
Какая разница, если все это обрабатывается на стороне сервера? Клиент видит Яву, нтмл, хмл и флеш. И хоть обзащищайся в результате все равно взламывать будут через клиентскую часть, пытаясь получить рутовый доступ. А еще лучше рутовый доступ к ftp аккаунту.
