Странно, я как раз старался добиться обратного эффекта. Строковая интерполяция, регулярные выражения с выводом групп и DSL не возымели должного эффекта?
Здравствуйте, Eye of Hell, Вы писали:
LS>>Как и ожидалось, руби убедительно слил.
EOH>Странно, я как раз старался добиться обратного эффекта. Строковая интерполяция, регулярные выражения с выводом групп и DSL не возымели должного эффекта?
Вообще говоря, такое категоричное утверждение я позволил себе написать только из-за того, что дело происходит в КСВ, розжигу холивара ради.
Единственный плюс строковой интерполяции — писать немного меньше. Питоновский метод "my name is %(name)s!" % locals() ничем не хуже.
Встроенные в язык регулярные выражения, особенно с такими эффектами, как изменение переменных, с моей точки зрения вообще вредны.
DSL — с этим согласен. Однако преимущества питона в виде хорошей документации и тонны сторонних библиотек и биндингов однозначно перевешивают, не оставляя никаких шансов.
Здравствуйте, vpchelko, Вы писали:
V>Здравствуйте, alex_public, Вы писали:
_>>Например на всяких там невыделенных хостингах питон/руби уже стоит, а root'а нет.
V>Это уже преимущество хоста, а не языка. Что у него будет там поставлено для удобства пользователя.
Ну питон-то на любом линуксе есть, а руби — не факт.
Здравствуйте, Eye of Hell, Вы писали:
EOH>Странно, я как раз старался добиться обратного эффекта. Строковая интерполяция, регулярные выражения с выводом групп и DSL не возымели должного эффекта?
Народ ещё не вкусил прелестей DSL и метапрограммирования. Судя по комментам к статье, многие даже не знают о самом существовании метапрограммирования, а те кто знают — не пользуются. Ну, мне так показалось.
На rsdn сколько не рассказывают Влад сотоварищи о достоинствах макросов и DSL (Немерле, да) — большинство от них лишь отмахиваются, считаю макросы и переопределение синтаксиса злом. Сила привычки — страшная сила.
Здравствуйте, koodeer, Вы писали:
K>Народ ещё не вкусил прелестей DSL и метапрограммирования. Судя по комментам к статье, многие даже не знают о самом существовании метапрограммирования, а те кто знают — не пользуются. Ну, мне так показалось. K>На rsdn сколько не рассказывают Влад сотоварищи о достоинствах макросов и DSL (Немерле, да) — большинство от них лишь отмахиваются, считаю макросы и переопределение синтаксиса злом. Сила привычки — страшная сила.
Как бы с переопределялками не было бы проблем с поддержкой, когда нужный человек уйдет, все надо будет переписывать заново.
Как обстоит дело в python/ruby в хранением состояния в веб приложении между запросами? Конкретно с каждым новым GET запросом скрипт каждый раз по новой загружается и создаются классы? Или сделано как в Java/.Net?
Здравствуйте, sysenter, Вы писали:
S>Как обстоит дело в python/ruby в хранением состояния в веб приложении между запросами? Конкретно с каждым новым GET запросом скрипт каждый раз по новой загружается и создаются классы? Или сделано как в Java/.Net?
Про руби — не знаю. В питоне — зависит от модели использования. CGI — это как и везде (даже с явой), каждый раз дёргается скрипт. WSGI — классы создаются единожды, а потом дёргаются их методы.
Здравствуйте, vpchelko, Вы писали:
V>Здравствуйте, LuciferSingapore, Вы писали:
LS>>Ну питон-то на любом линуксе есть, а руби — не факт.
V>Я за линух рад, а на венде тоже?
Там вообще ничего нет, там хорошо только в игры играть и в офисе документы редактировать.
Да и вообще, мы же о шаред хостинге заговорили, причем тут вообще винда.
Здравствуйте, monax, Вы писали:
M>Про руби — не знаю. В питоне — зависит от модели использования. CGI — это как и везде (даже с явой), каждый раз дёргается скрипт. WSGI — классы создаются единожды, а потом дёргаются их методы.
Как это Java через cgi?))
Я имел ввиду вариант с JVM в которой крутятся application сервера или контейнеры сервлетов...
Здравствуйте, LuciferSingapore, Вы писали:
LS>Там вообще ничего нет, там хорошо только в игры играть и в офисе документы редактировать. LS>Да и вообще, мы же о шаред хостинге заговорили, причем тут вообще винда.
А причем тут вообще шаред хостинг, во круг них все IT крутиться?
Здравствуйте, sysenter, Вы писали:
S>Как это Java через cgi?))
такое тоже можно, никто ж тебе не запрещает писать cgi хоть на асме (на wasm.ru есть пример)
S>Я имел ввиду вариант с JVM в которой крутятся application сервера или контейнеры сервлетов...
Ну вот в варианте с WSGI запускается сервер, который создаёт необходимые классы (во всяком случае в Pylons, Flask именно так). Эти классы живут всё время, а вот методы дёргаются по запросу от пользователя.
Здравствуйте, sysenter, Вы писали:
S>Как обстоит дело в python/ruby в хранением состояния в веб приложении между запросами? Конкретно с каждым новым GET запросом скрипт каждый раз по новой загружается и создаются классы? Или сделано как в Java/.Net?
А причём тут вообще язык?
Сохранения состояния зависит от модели приложения:
— свой сервер
— бэкенд к http серверу (fast cgi и т.п.)
— cgi скрипт/модуль к http серверу.
Вот в последнем каждый раз всё заново грузится и создаётся. Но от языка тут вообще ничего не зависит. Каждый из 3 вариантов может быть написан на любом языке.
Здравствуйте, vpchelko, Вы писали:
V>Как бы с переопределялками не было бы проблем с поддержкой, когда нужный человек уйдет, все надо будет переписывать заново.
Здравствуйте, vpchelko, Вы писали:
V>Как бы с переопределялками не было бы проблем с поддержкой, когда нужный человек уйдет, все надо будет переписывать заново.
С помощью обычной процедурки/ООП можно безо всяких макр написать такого говнища, что вовек не разгребёшь. На шарпе и яве в том числе. Более того, говнокод можно сообразить с помощью практически любого инструмента.
Здравствуйте, Мишень-сан, Вы писали: МС>С помощью обычной процедурки/ООП можно безо всяких макр написать такого говнища, что вовек не разгребёшь. На шарпе и яве в том числе. Более того, говнокод можно сообразить с помощью практически любого инструмента.
Тут можно использовать принцип KISS. Но с пере определениями синтаксиса я думаю это мало возможно.
Здравствуйте, alex_public, Вы писали:
_>А причём тут вообще язык?
Я спрашивал скорее про framework в частности есть ли такое, как в Java/.Net — допустим на дотнете или java я присвою значение статическому члену класса и это значение будет сохраняться пока VM не выгрузит класс из-за нехватки памяти или по иным причинам, у скриптов обычно подобного нет.
Здравствуйте, sysenter, Вы писали:
S>Я спрашивал скорее про framework в частности есть ли такое, как в Java/.Net — допустим на дотнете или java я присвою значение статическому члену класса и это значение будет сохраняться пока VM не выгрузит класс из-за нехватки памяти или по иным причинам, у скриптов обычно подобного нет.
Так будет, если процесс исполняющий код живёт между запросами пользователя, а не создаётся под каждый запрос.
Соответственно можно написать код на Java/.Net стартующий код на каждый запрос — там не будет ничего сохраняться. А можно написать код на Python/Ruby (а так же на C++, Pascal и вообще чём угодно) висящий в памяти постоянно — будут сохраняться все значения.
И фреймворки тут опять же ни при чём — вопрос только в том, как мы выполняем приложение.
Кстати, если говорить уже предметно, то например у Питона есть усиленная поддержка эти дел — смотреть на wsgi. Причём что приятно, благодаря таким вещам как Flup это позволяет писать один и тот же код для разных условий. Т.е. грубо говоря пишем под интерфейс wsgi и запускаем через flup это на shared хостинге как cgi (т.е. как раз каждый раз запуск — не особо эффективно, но для начала пойдёт). Потом у нас становится денег побольше (как и нагрузка на ресурс), переходим на свой выделенный сервер, ставим там как фронтенд nginx или lighttpd и подключаем к ним через тот же wsgi наш код, который будет уже висеть всё время сам, отдельным процессом (т.е. без запусков на каждый запрос).