GD Star Rating
loading...

Я тут решил отвлечься от окошка в котором сижу пишу контроллеры и вьюшки и спросить – а кто-нубудь в нашем уютном блоге пишет на server-side javascript?

Кто предпочитает асинхронный (nodejs)? Кто синхронный (teajs)? Может есть еще какие решения?

server-side javascript, 5.0 out of 5 based on 1 rating
Tagged with →  

76 Responses to server-side javascript

  1. AgnNo:

    Пишу на nodejs уже, наверное, года два. Готов ответить на всякие вопросы.

  2. KkeNo:

    у меня один. зачем вам на серверсайде именно JS?

  3. AgnNo:

    ну вопрос на самом деле исторический. В один момент потребовалось перейти с HTTP-коммуникации между клиентом и сервером на постоянное соединение. На тот момент в силу своих знаний самым быстрым вариантом была node.js. В принципе, ничуть не жалею. Наверное, и сейчас бы это же решение выбрал.
    На больших проектах, конечно, JS это боль и слезы, в силу отсутствия строгой типизации, но на небольших все терпимо.

  4. HraNix:

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

  5. HraNix:

    ну я в какой-то момент решил что perl закончился, и нужно выбирать новый язык. посмотрел на php, плюнул, посмотрел на питон и их проблемы с переходом на python 3, вспомнил про perl5=>perl6 (perl5 и perl6 имеют разный синтаксис и не совместимы друг с другом), и решил на всякий случай не лезть. посмотрел руби и не проникся. потом подумал – а почему бы и не javascript – он намного быстрее php и перла ввиду JIT-компиляции, имеет стабильный стандартизированный синтаксис (ECMA-262). Потыкал node.js, но он мне не очень понравился своей эмуляцией асинхронности и тем что 2 года назад там не было нормальных драйверов PostgreSQL.

    В результате остановился на v8cgi, который пол года назад переименовался в teajs – классический интерпретатор javascript в качестве (fast)cgi.

  6. 01pre:

    просто ты пишешь мелкое говно, а не серьёзные вещи. Или просто туповат. Других причин не понимать строгую статическую типизацию – я не вижу.

  7. HraNix:

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

  8. Ail00:

    а он обычно бывает.

  9. Xuaef:

    с каких пор в похапе запретили джит? Сейчас он даже в руби есть.

  10. HraNix:

    люблю троллей. ручные, милые, с рук едят.

  11. HraNix:

    это я аро то что в v8 джит есть а в перле и пхп не было

  12. Xuaef:

    давно уже всё есть.

  13. Okkam:

    Пишу на nodejs под промышленные железки. Спрашивай точнее что интересно?

  14. Oloodin:

    промышленные железки can javascript???

  15. KkeNo:

    что за железки? зачем промышленным железкам яваскрипт?

  16. Oloodin:

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

  17. Xuaef:

    ну ява им зачем-то нужна…

  18. 01pre:

    с каких пор куча мелкого говна (с точки зрения качества кода) на уёбищных языках стала ориентиром в мире разработки? Любой действительно сложный и крупный сайт уже нахлебался говна с такими подходами и не знает, куда и бежать. Ну и да, расскажи-ка про своё видение мира банковским процессингам. Заодно, представь, как сжались бы твои маленькие яички, если бы от твоей копеечной зарплатки проебалась половина только потому, что какой-то уебан попутал имя переменной и компилятор в этом месте не упал. Но нет, вы же блять сами лучше знаете. Придумали оправдание своей тупости и лени и теперь живёте в мире иллюзий.

  19. AmtSport:

    ээ… а где он там, собственно? Вроде гугл говорит, что в шестом только-только собираются внедрить.

  20. IhsNo:

    Сынок, ты что нервничаешь так?

  21. HraNix:

    Вот отсюда по-подробнее, плиз. Я разработчик софта для управляющей компании, с остатками больше чем на кипре суммарно в банках лежит.

  22. Oloodin:

    Банковский процессинг написан на RPG, а твои фронт-эндовские довески можно хоть на пхп писать.

  23. Xuaef:

    Ох лол, ты никогда банковского софта не видел. Не рассказывай сказки, товарищя.

  24. Xuaef:

    есть куча ускорялок на любой вкус и цвет: апц, хипхоп и т.д.

  25. Tua00:

    Twitter так с прикола переписали с Ruby на Scala, и писали кучу постов радости, насколько стало лучше и от скорости JVM vs RVM, и от строгой типизации.

  26. Tua00:

    вместо javascript можно юзать coffescript, кстати.

  27. Oloodin:

    Конечно, они всё переписали исключительно из-за типизации. Производительность и стабильность их абсолютно не беспокоила.

  28. Oloodin:

    Случай, когда “нет” – непидора ответ

  29. Tua00:

    Самый важный фактор в такой ситуации – это улучшение разработки, потому что это вроде как факт, что на таких языках проще разрабатывать при большом коллективе и большом объеме кода. А история показывает, что даже медленные динамические языки можно оптимизировать до такой степени, что и у них будет хорошая стабильность и производительность.

    В случае Scala конечно, строгая типизация не единственный фактор, там еще играет роль, что это функциональный язык.

  30. Tua00:

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

    По динам языкам советую ознакомится со скринкастом:
    https://speakerdeck.com/alex/why-python-

  31. Tua00:

    http://goo.gl/gsJWV вот правильная ссылка. 🙂

  32. Oloodin:

    Why Python Ruby and javaScript are slow. A Java, значит, пиздец фаст? Портанул я в 2002 гофу один програм с Ц на Яву…

  33. Aynko:

    но зачем? От него больше проблем, чем профита. Это язык с явным скосом баланса в сторону write-only. Если учесть, что мало какой фронтендер может написать хорошо поддерживаемый код на чистом JS, на CS получается вообще кишки и расчлененка.

  34. Tua00:

    ты использовал? Тоесть ты хочешь сказать, что куча if/else и скобок читабельней чистого полу-функционального кода?

  35. Aynko:

    конечно использовал. Рискую нарваться на холивар, но с тем же успехом можно говорить, что вложенные тернарные операторы читаются лучше, чем куча if/else со скобочками.

  36. Aynko:

    и кто мешает писать в функиональном стиле на JS?

  37. Tua00:

    здесь нету холивара, ты сделал утверждение, что CS write-only, а это далеко не так. 🙂

  38. Aynko:

    очень аргументированное мнение, ценю 🙂

  39. Tua00:

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

  40. XibaTa:

    В случае с сервером и IcedCoffeeScript (именно Iced) наличие defer/await перевешивает недостатки (хотя, конечно, понятно, в какую жесть это компилируется).

    Чистый кофескрипт – дело вкуса и вопрос исключительно холиварный. Мне не нравится, я в свое время перла накушался.

  41. XibaTa:

    А расскажите, почему вы предпочли node.js, а не:
    * python/twisted
    * ruby/eventmachine
    * erlang, наконец?

    Сам пробовал, обплевался и выбросил:
    * без корутин получается жесть из коллбэков, deferred-ы, завернутые в chain of responsibility, помогают, но не сильно
    * прототипное наследование и this scope – ну ведь это жесть. на клиенте привыкаешь (деваться некуда), но зачем это на сервере, где есть нормальные языки?
    * третья претензия (хер словишь exception) была на момент игрищ решающей. Сейчас есть domain.create, но все равно делать это руками – жесть 🙂

  42. Tua00:

    согласен, тоже из-за этого нода не нравится. Сам сейчас думаю erlang щупать, а так полно годноты на той же Scala, которая и быстрее и надежней node.js, конечно сложнее немного.

  43. XibaTa:

    jvm это свой отдельный мир, не совсем корректно сравнивать )

  44. XibaTa:

    кстати: будешь ерланг щупать – если охуеешь от его слегка инопланетного синтаксиса, глянь вот http://elixir-lang.org/

  45. NamRU:

    да что там инопланетного-то в синтаксисе?

  46. Tua00:

    я вкурсе про Elixir, для меня синтаксис функцоинальных языков давно не инопланетный, я уже полгода как начал их изучать, так что уже привык. 🙂

  47. XibaTa:

    да на самом деле ничего, просто непривычно поначалу

  48. HraNix:

    Эрланг это конечно реально круто. Но меня несколько смущают ограничения виртуальной машины – четко ограниченное количество идентификаторов (хотя ХЗ, много это или мало), и его работа с памятью. То есть если что – OOM killer и тоби пизда. А так я очень от него протащился.

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

  49. Aynko:

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

  50. XibaTa:

    Ограничения там by design, в рамках идеологии let it crash. 🙂 Большинство лимитов настраиваемы.

  51. LimaTa:

    ты рассчитываешь, что компилятор спасёт от ошибок бизнес-логики? У меня для тебя плохие новости.

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

  52. Tua00:

    Это язык с явным скосом баланса в сторону write–only.

    Этот язык дизайнился, что бы быть более читабельным чем javascript, и он есть более читабелен, чем JS. Я верю, что всегда найдется человек, который не желает разобратся в до ужаса простом синтаксисе, но кофескрипт все таки не write-only язык.

    От него больше проблем, чем профита.
    Проблемы есть, они весьма специфические, но в 95% случаях – генерится вполне хороший и главное работающий js.

    Писать на javascript в функциональном стиле можно, но язык слишком громоздкий для этого. CoffeScript не функциональный язык(по сути он такой же как javascript, который тоже нельзя назвать полноценным функциональным языком), но в нем есть ряд улучшений, делающих написание в функциональном стиле лучше и приятней. Это и if тот же в конце выражения, а так же for-list comprehensions.

    что мало какой фронтендер может написать хорошо поддерживаемый код на чистом JS, на CS получается вообще кишки и расчлененка.

    А вот самая большая глупость, потому что это взаимоисключающие факторы, если приобщить плохого фронтендера к нормальному CS – его JS тоже улучшится, а в большинстве случаев горе-фронты просто будут плеватся и не будут прикасатся к кофескрипту.

    Пользоватся ли CS или нет – это выбор каждого, альтернатив хороших полно, мне например еще нравится ClojureScript, правда в производстве мне пока не приходилось им пользоватся, а вот CoffeScript вовсю юзал.

  53. Tua00:

    Я смотрел много разных всяких тестов, с памятью он ок работает, даже сравнивали в одном тесте с нодой, которая со временем вообще выжрала солидно памяти, в то время как elrang стабильно потреблял минимально-необходимое ему прострастнво. Все таки для тех нужд, которых он дизайнился и в какие времена, память важна была.

  54. HraNix:

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

    Но в целом это тоже можно побороть.

  55. XibaTa:

    а… дык – плата за то, что у каждого процесса своя кучка.

    Ну там есть что подергать, чтобы узнать memory usage.

  56. Oloodin:

    Зачем система кэширования в ноде? Есть же редисы вякие. В ноуде обычно жрет память криво написанный код.

  57. Nidblack:

    вопрос. есть проект сайта, люди хотят делать его на node.js

    смысл сайта – каталог продукции и документация к продукции в pdf
    базой данных планируется mongodb.

    что из модулей посоветуете использовать в помощь.
    любые мнения интересны.

  58. XibaTa:

    посоветую не делать на node.js и mongodb

  59. Rotoff:

    редисы для более-менее чего-то нормального нельзя использовать

  60. Rotoff:

    Ну как раз по-хипстерски получится: node.js и mongodb для сайта визитки. Еще не мэйнстрим, так что будут настоящими хипсторами.

    еще в Heroku деплойтесь

  61. HraNix:

    я вообще-то про эрланг и его траблы с памятью писал. :)))

  62. HraNix:

    тоже рекомендую не использовать ни ноду ни монго. монго вообще можно использовать только если понимаешь зачем она тебе нужна и в чем ее плюсы в конкретно взятом случае над sql (такое бывает но очень редко).

  63. XibaTa:

    я как представил себе конфигурацию “ерланг с редисом”, чуть не поперхнулся 🙂

  64. Tua00:

    странная прихоть, node.js для сайтов лучше не юзать. Вот монгу можно юзать, но она не даст никаких преимуществ над SQL, более того, может работать хуже, если ее неправильно варить с SQL проще все.

  65. Oloodin:

    У меня есть мечта переписать Друпал на Коболе; хорошо, что времени нет.

    На самом деле, никого не слушай: если людям надо, а тебе интересно покопаться – делай. Возьми, например, calipso, посмотри, как работает, понаставляй ей костылей. Всё лучше, чем быть пиздуном-теоретиком на хабре.

  66. Okkam:

    есть протоколы для чтения информации с железа и управления ими. Например snmp или коннекты через сокеты. node js тут вполне вариант

  67. Okkam:

    Железки – сервера для управления другими железками. Я пишу админку, т.е. эти сервера вполне себе содержат современный стек LAMP, разве что не предназначены для чятиков и тому подобного.

    Это похоже на веб-сервер в роутере, для его настройки, жмячно, удобно, красиво )

  68. Ylfen:

    ловко ты в один ряд хипхоп с апц поставил

  69. Xuaef:

    говорю же – на любой вкус и цвет!

  70. Nidblack:

    да я как бы вообще за Django. но вот захотелось.

  71. XibaTa:

    ну попробуй, расхочешь очень быстро 😉

Добавить комментарий