LINUX.ORG.RU

Что предпочесть: Go, node.js или Scala?


0

1

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

Пользуясь предоставленной свободой хотел бы попробовать в проекте какую-нибудь новую технологию.

Разрываюсь между 3 вариантами:

  1. Go - по субъективным причинам самый желаемый вариант. Нравится, что компилируемый и есть в gcc, а ещё си-подобен. Да и фреймворки простые есть. Но терзают сомнения, как оно с нашим ЯДом и Киви?
  2. Node.js - второй претендент. JavaScript для меня совсем не чужой язык и это пока единственный плюс, который я здесь вижу.
  3. Scala - здесь с одной стороны куча плюсов (в т.ч. переносимость кода + множество библиотек Java), но и самые большие сложности для меня (я не знаком с Jav'ой и ФП).

Люди, что посоветуете-подскажете?


Взять что-нибудь живое. Django/Rails например. А то были уже попытки писать работающие проекты на редкоиспользуемых технологиях. Дело доходит до какого-нибудь момента, без которого сайт невозможно закончить и оказывается что данный велосипед не имеет либ/привязок/плагинов к нужной технологии и фсио.

Alve ★★★★★ ()

почему-то вспомнилось

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

Harald ★★★★★ ()

Perl, Bash, C++, C, Common Lisp, Forth - выбирай )

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

Язык не относится к электронным деньгам. Тебе предоставляют API, а данные можешь хоть ассемблером засылать

Deleted ()

Использовать для этой задачи любую из предложенных тобой технологий это явный бред. Бери Django, Rails или PHP - что лучше знаешь.

anonymous ()

Из этих языков - естественно, Scala. Go - очередная поделка из серии «у Боба Пайка оргазм, остальные могут идти сосать», а Node.js лучше всего описывается фразой «в конце концов, PHP тоже поначалу считали быдлоязыком».

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

Ну, вообще, Scala - неплохой императивный язык. До Хаскеля не дотягивает, но всё равно неплохой.

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

На самом деле вариант 4 - это Питон. Но только если все три предыдущих варианта раскритикуют в пух и прах.

Например, есть ли у Django/Sinatra какие-то преимущества перед Scala (Circumflex/Scalatra)?

Bbore ()

Возьми готовое, ламповое (=пыхэпешное). Пых-пых говно, но на нём столько готовых решений...

true_admin ★★★★★ ()

Возьмите PHP и не мучайтесь. Быстрый, простой, и эффективный. А то что на нём пишут быдлокод это проблема не языка а писателей-индусов.

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

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

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

Уж лучше так чем огромные потери в производительности. PHP даже без APC выдаёт такую производительность которая всяческим новомодным рэйлсам, джангам и т.д. и не снилась. Только что протестировал с помощью ab из apache tools на старенькой машине с запущенным на ней KDE3, MySQL, Apache 2.2 + PHP5. PHP выдаёт 706 requests/second на простенькой странице с 1 SQL запросом и 337 requests/second на сложной странице с множеством сложных SQL запросов. При этом большинство запросов выполняются за время около 20 миллисекунд, и самый медленный запрос меньше 1 секунды. На той же машине хвалёный рэйлс на странице с 1 простейшим SQL запросом (SELECT * FROM <table_name>) выдал всего 8 requests/second с самым быстрым запросом больше чем секунда и самым медленным чуть больше 4 секунд. 706/8 == 88. Т.е. вместо 1 машины с PHP вам надо будет поставить 88 с хвалёным рэйлсом. В топку это унылое объектно ориентированное поделко.

psp13 ()

Выбирай сердцем, что ближе и приятнее. Но со своей стороны из данных трех посоветовал бы node.js, так как прёт меня от этого.

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

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

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

с зендом не знаком. а вообще думал на чём делать веб приложение средней сложности. решил на чистом PHP без фреймвёрков вообще т.к. если над кодом работает один человек и этот человек придерживается определённых соглашений код не такой уж и ужасный получается.

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

веб приложение средней сложности
на чистом PHP без фреймвёрков вообще
работает один человек
не такой уж и ужасный


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

бери зенд.

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

Пишешь не правду!

Только сегодня тестировала коммерческую cms на php - abocms При ab -c10 -n500 Дает Requests per second: 6.15 [#/sec] (mean)

При чем это одна из самых шустрых коммерческих цмс на пхп

yanka ★★ ()
Ответ на: Пишешь не правду! от yanka

Писалось про чистый PHP. А то что всяческие CMS строят гиганскую иерархию малонужных классов перед тем как обработать запрос это всем известно.

И где вы это тестили? Это что же надо сделать на PHP что бы 6 r/s? Комерческое не значит хорошее. Собственно мой опыт показывает прямо обратное в отношении PHP приложений.

80 мегабайт памяти съесть на один запрос это пипец конечно а именно столько едят некоторые современные фреймворки. Я для себя решил - такие вещи удел десктопщиков. Это они могут говорить что память и машинное время стоят копейки. А сервер должен обслуживать как можно больше клиентов. И потому в топку эти новомодные MVC фреймвёрки.

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

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

мне кажется команде не так уж и сложно обговорить соглашения по написанию кода. Многие вещи которые реализованы сложными иерархиями ненужных классов в MVC фреймвёрках можно реализовать проще. Например к чему создавать классы и вызывать их методы для того что бы отрисовать template когда достаточно простого include. Так же и в качестве ORM можно взять отдельную библиотеку типа доктрин.

я долгое время писал на чистом PHP и в последнее время изучал всяческие mvc фреймвёрки. для себя я пришёл к выводу что то что они дают не стоит тех ресурсов которых они требуют. но не считаю что зря потратил время на их изучение. после этого я стал лучше организовывать свой чистый код и при этом без всякой потери производительности.

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

Если ты сравниваешь Hello world так и сравнивай корректно, проделай это например с php(mod_php) и с python (mod_wsgi) под апач. А ты сравниваешь Hello world на пхп с полнофункциональным фреймворком таким как рельсы, да я не спорю руби и рельсы не блещут производительностью, но поверь пхп недалеко ушел от руби, в плане производительности )))

yanka ★★ ()

Но терзают сомнения, как оно с нашим ЯДом и Киви?

в общем это только API ...

Люди, что посоветуете-подскажете?

Joomla твой выбор.

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

Я не сравниваю hello world. Я сравниваю типичную страницу веб приложения - несколько запросов к DB и вывод результата в виде HTML. Функциональность одинаковая что в странице реализованной в rails что в странице реализованной в PHP. Так вот и результат что фреймвёчный код в несколько десятков раз медленнее чистого PHP. И это PHP без APC, а с APC будет ещё быстрее.

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

ну у танка и велосипеда функциональность одинаковая в каких то рамках

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

поподробнее можно? почему бред?

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

anonymous ()

Если проект просто написали, поигрались, и забыли то можно писать на любом. Но если потом будет поддержка то помни, что мы в ответе за того кого приручили. Вот сделаешь ты знакомому сайт на Go, а он потом долго и весело будет искать человека для поддержки.

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

Т.е. вместо 1 машины с PHP вам надо будет поставить 88 с хвалёным рэйлсом

Наверняка ты бенчил рельсовое приложение запущенное в режиме разработки, от этого и производетельность была в десятки раз меньше чем в боевом окружении. Так что если не умеешь использовать Rails, нечего выступать тут со своим «экспертным» мнением.

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

Нууу, для Scala есть Lift. Как оно в реальности - хз.

xpahos ★★★★★ ()

Я бы скалу взял. На ней можно писать в фактически империативном стиле, такая ява с плюшками получается. Ну и лифт. Хотя в принципе подойдет любой явовский фреймворк. По крайней мере я лично видел и помогал делать проект на scala + jsf2 + ejb3.1

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

И чем тебе kde 3 помешал. Да он жрёт ресурсы но цель была не выяснение точной цифры сколько выдержит машина с одним только веб приложением а сравнение производительности вышеуказанных технологий.

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

требую аргументированных комментариев. и попрошу не ассоциировать мои бенчмарки с половыми органами поскольку они с ними не связаны :)

psp13 ()

Только Haskell! Только Yesod!

anonymous ()

Товарищи!
Спасибо за ваши ответы.

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

Но вот незадача, пока наблюдал за спором по поводу бенчмарков в Go нашел всё, что мне нужно для проекта... Так что теперь дилемма звучит более категорично: Scala или Go!

Bbore ()

компилируемый и есть в gcc, а ещё си-подобен

Но ведь это автоматически означает, что он - говно...

anonymous ()

Выбор сделан.

Уже вовсю читаю про Скалу. Уже начинаю тащиться от неё. Спасибо всем за помощь в выборе!

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