LINUX.ORG.RU
ФорумTalks

[вещества][вебдваноль] Серверный джаваскрипт

 


0

0

http://habrahabr.ru/blogs/nginx/82511/

Суть для Ъ

В качестве основного веб-сервера было решено использовать nginx, в качестве «движка» javascript — TraceMonkey (javascript-движок из Mozilla Firefox, бывший SpiderMonkey), и написать модуль для nginx, который бы их «склеил». Ничего сложного, на первый взгляд, но очень хотелось иметь определенную функциональность (и это получилось!), чтобы можно было нормально работать дальше. Большинство идей заимствованы, кстати, из PHP.

Сабж подарил мне две минуты веселого настроения.

Ответ на: комментарий от linuxfan

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

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

>Использую серверный JS на основе spidermonkey уже лет 6. Очень удобно

Как там обстоят дела с биндингами и многопоточностью?

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

>Как там обстоят дела с биндингами и многопоточностью?

Биндинги - пишем сами, хотя есть и FFI, если поискать, в том же firefox есть, можно и сторонние найти.

С многопоточностью вообще у спайдерманки получше многих скриптов, большой интерпретаторский лок отсутствует за счет хитрой модели контекстов и тредов, кстати патентованной мозиллой. На сайте у них неплохо описано.

Но мы многопоточность не используем ибо на фиг надо проблемы с синхронизацией, используем генераторы + Thread.js + select/poll для io, это если отдельная приклада. А в апаче - пул рантаймов, с контекстами не очень как-то получилось.

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

>один запрос один поток, что тебе еще нужно?

Вобщем-то так и написал, если в веб-сервере. Просто у нас бывают еще задачки с кучей всяких железок, которые необходимо обрабатывать все сразу. Но как я уже написал - обходимся без потоков и даже без коллбэков (как в ноде.жс, не люблю коллбэки) за счет Thread.js Нейла Микса.

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

>один запрос один поток, что тебе еще нужно?

Нужно много чего...

Если это онлайн игра реального времени то пересчёты надо проводить постояяно.

Я могу захотеть чтобы данные переодитески отправлялись на jabber или есчё кудато.

Всякое может быть.

SV0L0CH
()
Ответ на: комментарий от vga

>Не вижу чем ситуация отличается от питона, пхп и руби, и что так развеселило топикстартера.

Самое смешное, что ты и вправду не понимаешь, что меня так рассмешило :D:D:D

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

>С многопоточностью вообще у спайдерманки получше многих скриптов, большой интерпретаторский лок отсутствует за счет хитрой модели контекстов и тредов, кстати патентованной мозиллой. На сайте у них неплохо описано.

Но мы многопоточность не используем ибо на фиг надо проблемы с синхронизацией, используем генераторы + Thread.js + select/poll для io, это если отдельная приклада. А в апаче - пул рантаймов, с контекстами не очень как-то получилось.

Вообще интересуют возможности аналогичные nodejs. Думал попытатся както задействовать QScriptEngine, но для серверного приложения это врядли сойдёт. А для nodejs покачто вижу мало биндингов. Но судя по всему на spidermonkey можно взглянуть... Возможно Thread.js мне тоже будет достаточно.

SV0L0CH
()
Ответ на: комментарий от linuxfan

>Самое смешное, что ты и вправду не понимаешь, что меня так рассмешило :D:D:D

Ну так объясни, а то смех без причины - сам знаешь. По ссылке не ходил.

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

>Самое смешное, что ты и вправду не понимаешь, что меня так рассмешило :D:D:D

Завязываей с веществами, не к добру это :-/

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

>Думал попытатся както задействовать QScriptEngine

Он тормоз, они сейчас его на вебкитовский перекинуть хотят.

Возможно Thread.js мне тоже будет достаточно.

Ну для IO (как в твоем примере с жаберром) - достаточно. Достаточно для всего, что можно засунуть в selecl/poll. Вобщем если Twisted питоновский видел - это оно же, только сделать все надо самому.

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

>>Возможно Thread.js мне тоже будет достаточно.

Ну для IO (как в твоем примере с жаберром) - достаточно. Достаточно для всего, что можно засунуть в selecl/poll. Вобщем если Twisted питоновский видел - это оно же, только сделать все надо самому.

Тогда забиваю на nodejs и перехожу на spidermonkey. Раз есть аналоги erlang/twisted/termite то это то что надо. + готовые биндинги.

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

С готовыми биндингами - тут уже что сам нагуглишь. Просто когда мы начинали, их особо не было, и большинство мы прикручивали сами. Сейчас их вроде бы уже налабали всяких. Главное преимущество spidermonkey перед v8 - наличие генераторов, которые позволяют реализовать Thread.js и вывернуть все колбэки в нормальный execution flow. Пока в v8 не сделают yield - я даже в его сторону смотреть не стану.

vga ★★
()

какая разница на чем писать, на asm или этом js?
все одно все обычно упирается в web сервер и sql сервер - попробуй и поймешь. те участки которые не упираются - можно оптимизировать когда проект уже будет работать.

xtron
()
Ответ на: комментарий от linuxfan

>> Ты сторонник разработки веб-проектов на языке ассемблера?

Не вижу в этом ничего плохого.

Ну значит ты упоротый.... что я могу ещё сказать? ))

php стоит в той же скоростной категории. Но тем не менее он пользуется популярностью.

Это каким-то образом говорит о его качестве? Или это говорит о том, что бесплатных хостингов больше всего на LAMP?

Ну он весьма популярен и на небесплатных хостингах. А есть ещё ASP.NET, JSP и прочие, которые, к твоему сожалению, далеки от ассемблерных языков. И используются они потому что разработчиков устраивают их параметры скорость_разработки/удобство/производительность/etc.

NightmareZ
()
Ответ на: комментарий от xtron

> какая разница на чем писать, на asm или этом js?

Разница в том, что на js писать быстрее и удобнее, чем на asm. Пока ты напишешь один проект на asm, твой конкурент на js напишет и пролучит профит с десяти, потом сгоняет на моря, а когда приедет, выкупит вашу шарашкину контору и выгонит тебя к ебеням, потому что ты не приносишь профита.

NightmareZ
()
Ответ на: комментарий от xtron

все одно все обычно упирается в web сервер и sql сервер - попробуй и поймешь. те участки которые не упираются - можно оптимизировать когда проект уже будет работать.

Вот именно. Потому нужно выбирать удобный язык.

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

>> все одно все обычно упирается в web сервер и sql сервер - попробуй и поймешь. те участки которые не упираются - можно оптимизировать когда проект уже будет работать.

Вот именно. Потому нужно выбирать удобный язык.

Как вариант, можно обойтись без web сервера и sql сервера. Например здесь http://www.parser.ru/ есть встроеные средства работы с таблицами.

SV0L0CH
()

мне кажется - топикстартер тролль. жирный и толстый.
или «теоретик программирования», что то же самое.

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

> Как вариант, можно обойтись без web сервера и sql сервера.

Ты сейчас споришь с моей фразой о том, что (в подавляющем большинстве случаев) нужно выбирать удобный язык, а не asm?

NightmareZ
()
Ответ на: комментарий от vga

>Главное преимущество spidermonkey перед v8 - наличие генераторов, которые позволяют реализовать Thread.js и вывернуть все колбэки в нормальный execution flow.

Кстати, пару вопросов. Используется ли jit, т.е. tracemonkey? Потому что без него spidermonkey довольно медленный, особенно по сравнению с v8. Есть ли что-нибудь вроде node.js, но менее специфичное, работающее и на мозиловских реализациях? Я как-то следил за js.io, но проект кажется заброшенным. Где найти этот thread.js? Нагуглилось только упоминание в «new in javascript», но самого проекта не вижу.

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

>Используется ли jit, т.е. tracemonkey

Да, джит используется, с недавних пор и на 64-битах.

Есть ли что-нибудь вроде node.js, но менее специфичное, работающее и на мозиловских реализациях

Не в курсе, у нас все свое.

Где найти этот thread.js?

http://www.neilmix.com/2007/02/07/threading-in-javascript-17/

Там один файл http://www.neilmix.com/demos/js17threading/Thread.js

И вот, еще, javascript'овский yield - он как в раннем питоне, или как в руби? я имею в виду построение корутин, вот http://www.python.org/dev/peps/pep-0342/

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

Там есть, какая-то тонкость с закрытием генераторов, которая сделана правильнее чем в питоне, про это Igor Bukanov (который делал генераторы в спайдерманки) писал в питоновский мейллист, чтоб питонеры поправили, но был послан - типа вы в своем жс делайте, как хотите, а у нас будет вот так, и по фиг, что оно криво. Но что за тонкость - я не помню. В целом же это полностью сдертые питоновские генераторы. Брендан сказал, что мы не будем придумывать велосипедов, а будем стоять на плечах гигантов, и так и сделал, сдер под копирку.

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

Создатели интернетов из нетскейпа так не считали



И что именно из серверного софта они писали на javascript'е?

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

>45kbytes.com

И чего они написали? Сайт «Я и моя сраная собака-2.0»?

То-то я и смотрю, одноклассники со вконтактиками на похапе написаны, а не на пистонорельсах.

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

одноклассники со вконтактиками на похапе написаны, а не на пистонорельсах


Их пишут за доширак, пистонорельсовики до такого не опускаются

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

>Их пишут за доширак, пистонорельсовики до такого не опускаются

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

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

> Их пишут за доширак, пистонорельсовики до такого не опускаются

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

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

> Это не тот чувак который написал с пятак книг «[это] глазами хакера» ?

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

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