Страница 1 из 16

Как написать веб сервис на паскале?

СообщениеДобавлено: 25.05.2017 08:54:54
azsx
Хочу написать сервис на паскале, который от разных людей принимает текстовой файл (например, json); обрабатывает его и формирует другой json к юзеру. Причина почему на паскале, так как обработка скорее всего потребует строгой типизации и весьма ресурсоёмких нетривиальных обработок на сервере.
Сам ничо не понимаю как это сделать на паскале.
1. Стоит ли это того, или писать на пхп как всегда?
2. Где и что почитать (лучше с примером) как такая задача реализовывается, желательно на русском.

Re: Как написать веб сервис на паскале?

СообщениеДобавлено: 25.05.2017 09:06:29
pupsik
cgi, brook, web-spider, web-cgi и т.д.. Возможны ошибки в названиях. Писал по памяти.

Re: Как написать веб сервис на паскале?

СообщениеДобавлено: 25.05.2017 09:43:53
grot
1. YES !
2. fpc\[YOUR VERSION]\source\packages\fcl-web\examples\

Re: Как написать веб сервис на паскале?

СообщениеДобавлено: 25.05.2017 10:38:20
vitaly_l
azsx писал(а):1. Стоит ли это того, или писать на пхп как всегда?

Питон, согласно таблице его создателей, по скорости в 80-90% совпадает с С++ идентичными написанными алгоритмами (недавно ходил на семинар там создатели питона свои таблицы-сравнений приводили). Пхп написан на питоне, так что, какой-то прирост в скорости написав на Паскале - Вы вряд-ли получите. Основная проблема написания на паскале, в защищённости сервера. Считается, что пхп - более защищён от атак на уровне спец. символов (процессорных команд) и т.п. В написании кода особой разницы нет, но в отладке пхп явно удобнее (т.к. она там сведена к минимуму и всё за вас делает секрипт). Как впрочем и при работе с БД и другими WEB-необходимостями - пхп удобнее. Кроме того, в пхп тоже можно принудительно указывать типизировать, раз уж именно это Вам важно (хотя я не совсем понимаю, что конкретно вы имели ввиду под словом типизация ). Ну и наконец обслуживание "допиливание" кода, на php делать удобнее. А паскаале-компилируемую программу удобно отдавать пользователю в одном файле, но постоянно работать безусловно удобнее с пхп скриптом. В общем писать на пхп в 10-20 раз проще чем на паскале и добиться прироста в скорости написав сервер на паскале - смогут только программисты наивысочайшего уровня, ясно понимающие все фишки web технологий.

С другой стороны, на паскале написать сервер - это несколько строк кода, и несколько рабочих примеров есть на форуме. Всё зависит от задачи. В некоторых вещах, паскаль безусловно выйграет, и по скорости и по вариации возможностей.

.

Re: Как написать веб сервис на паскале?

СообщениеДобавлено: 25.05.2017 10:39:33
azsx
Пхп написан на питоне

упс...

Re: Как написать веб сервис на паскале?

СообщениеДобавлено: 25.05.2017 10:48:10
vitaly_l
azsx писал(а):упс...

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

Re: Как написать веб сервис на паскале?

СообщениеДобавлено: 25.05.2017 11:02:00
azsx
что конкретно вы имели ввиду под словом типизация

Мне надо, чтобы 2+2 однозначна равнялся 4, а не "22". Ну и все вытекающие проблемы от этого.
К сожалению я не настолько хорошо знаю паскаль, чтобы судить хуже он или лучше для моей задачи. Хочу написать сервис чат бота, начать можно с rest сервиса (получил переменную, отдал переменную). На пхп такое реализовать легко, прекрасно масштабировать горизонтально (если потребуется) и код можно править на лету.
Зато нет типизации и если в скрипте будет сложная логика, то скорее будет как минус выбор php. Хотя пхп написан на С и некоторые алгоритмы рвут С++ ваще как тузик грелку (пруфы искать не буду).
Java более тяжёл при начальном запуске, зато сразу, как я понимаю, легко многопоточность сделать.

Re: Как написать веб сервис на паскале?

СообщениеДобавлено: 25.05.2017 11:31:58
sts
советую GO(Lang), он специально разработан для таких задач, это как паскаль только со встроенной поддержкой эффективной многопоточности, сборщиком мусора и вместо бегин енд фигурные скобочки, компилится в один исполняемый файл, за пару-тройку часов разберетесь и набросаете скелет сервиса. Аналогичное решение на паскале - пару недель будете только разбираться какие либы использовать.

Re: Как написать веб сервис на паскале?

СообщениеДобавлено: 25.05.2017 11:49:00
azsx
sts -- для меня совсем не вариант.

Re: Как написать веб сервис на паскале?

СообщениеДобавлено: 25.05.2017 12:04:53
vitaly_l
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; // ставят не плюс а точку или запятую

Re: Как написать веб сервис на паскале?

СообщениеДобавлено: 25.05.2017 12:09:21
azsx
Код: Выделить всё
$a = "2";
$b = 2;
Sc = $a + $b;

Виталий, мне надо чтобы такой код давал ошибку, а не отрабатывал.
зы
это далеко от темы и спор мне не интересен.

Re: Как написать веб сервис на паскале?

СообщениеДобавлено: 25.05.2017 12:13:52
sts
azsx писал(а):sts -- для меня совсем не вариант.

почему? на паскале придется самому реализовывать то что в го есть (собственно оно там встроено в язык как раз потому что нужно для сервисов), либы типа indy ("работа" с сетью) для паскаля если и имеют то примитивные менеджеры потоков, чисто для галочки, там придется самому реализовывать либо сопрягать с либой управления потоками, специфика сервисов - неоднозначный цикл использования ресурсов заставит сделать свой сборщик мусора, в лучшем случает найдете готовый проект где все увязано и все равно долго будете в нем разбираться, но я таких не видел.
Го обычный компилируемый язык со строгой типизацией, или задача - только на паскале?

Re: Как написать веб сервис на паскале?

СообщениеДобавлено: 25.05.2017 12:17:30
azsx
почему? на паскале придется самому реализовывать то что в го есть

Значит паскаль просто не вариант. ээх...
Го обычный компилируемый язык со строгой типизацией, или задача - только на паскале?

Для меня слишком круто учить go для написания чат бота.

Re: Как написать веб сервис на паскале?

СообщениеДобавлено: 25.05.2017 12:19:14
vitaly_l
azsx писал(а):Виталий, мне надо чтобы такой код давал ошибку, а не отрабатывал.
зы
это далеко от темы и спор мне не интересен.

Возьмите модуль synapce и сделайте на нём сервер на паскале. Тогда сможете делать вот так:
Код: Выделить всё
var
s: string;
i: integer;
v: variant;
begin
s := '2';
i := 2;
v := s + i; // здесь важное сообщение
end;

Re: Как написать веб сервис на паскале?

СообщениеДобавлено: 25.05.2017 12:22:51
Лекс Айрин
vitaly_l писал(а):Основная проблема написания на паскале, в защищённости сервера. Считается, что пхп - более защищён от атак на уровне спец. символов (процессорных команд) и т.п.


vitaly_l писал(а):т.к. всё остальное про пхп моё мнение.


Какая разница, если все это обрабатывается на стороне сервера? Клиент видит Яву, нтмл, хмл и флеш. И хоть обзащищайся в результате все равно взламывать будут через клиентскую часть, пытаясь получить рутовый доступ. А еще лучше рутовый доступ к ftp аккаунту.