LINUX.ORG.RU

На чем писать server-side?


0

3

Доброго времени! В общем картина такая, когда-то немного увлекался web-разработкой на PHP(начало 5 ветки), потом по некоторым причинам перестал заниматься вебом, сейчас вот решил вернуться к сему делу, но покурил форумы и понял, что отстал не хило, многое упустил в новшествах различных. Так вот вопрос, на чем сейчас перспективнее писать под веб с невысоким порогом вхождения?

всё ещё пыхпых

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

Python знаю на уровне синтаксиса, т.е. читал маны, но ничего особенного на нем не писал, кроме пары мелких скриптов. Будет ли этого достаточно, чтобы например начать использовать Django или другой фреймворк? Или все же нужно на самом питоне скилл поднять?

soulectro
() автор топика

когда-то немного увлекался web-разработкой на PHP(начало 5 ветки)
на чем сейчас перспективнее писать под веб с невысоким порогом вхождения?

Laravel или Yii. Сам не пишу ни на том, ни на другом, у меня свой зверь, но если бы начинал сейчас, выбрал бы Laravel, наверное :)

Если PHP принципиально не годится, тогда лучше что-то типа Revel на Golang или Play на Java. Ещё NodeJS очень моден, но лучше уж PHP, чем JavaScript :D

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

Python, NodeJS, Java

Даааа, давайте отобьём ему желание возвращаться в веб. И почки тоже. Я за пых и чутка за рельцы.

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

Спасибо за совет. Смотрел мельком Laravel, показался достаточно лаконичным фреймворком, хотя особо не могу с чем-то сравнивать, т.к. мельком юзал только CodeIgniter когда-то =)

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

хотя особо не могу с чем-то сравнивать, т.к. мельком юзал только CodeIgniter когда-то =)

Laravel, вроде, как внук CodeIgniter'а :) Хотя могу и путать.
Интересен тем, что очень модульный и использует последние и эффективные решения в PHP, базируясь на Composer. Легко разворачивается, настраивается, администрируется. Самый стремительно взлетевший фреймворк последнего времени.

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

может и хватит, но код будет не python-way.

x0r ★★★★★
()

Спасибо за внимание, остановлюсь пожалуй на пыхе, т.к. хоть какой-то опыт был на нем :)

soulectro
() автор топика

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

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

Немного знаком с Lua, действительно хороший скриптинг, но популярность его в web, да и перспектива развития там же крайне мала, ИМХО.

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

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

Для большого и высоконагруженного проекта я бы его не взял конечно, по причине необкатанности, но у меня реально есть свой маленький проектик, где я пилю cgi на lua (будет сайт + api на soap (веб сервис)).

elijah_sd
()

Учитывая твой опыт до этого (php/codeigniter), если хочешь начать и сделать что то максимально быстро, то php + laravel, отличный фреймворк и для того кто писал на codeigniter вдвойне отличный, так как все тоже самое, но со всеми современными фишками integrated, это миграции, орм, IoC, модульность хорошая, composer, адекватный trace, прекрасный синтаксис и многое другое, очень много материалов и евангелистов в сети

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

Ruby и рельсы загибается тихо мирно, хайп прошел, новые проекты на нем уже не бегут писать

Java и ее инфраструктура это совсем иной зверь который потребует еще больше времени от тебя, чем питон, компилить еще будешь много и бодро

Иные варианты не очень прагматичные

umren ★★★★★
()
Последнее исправление: umren (всего исправлений: 1)

Странно, про perl перестали писать... В нем вообще цги заюзовываешь и пиши что хочешь с экономией времени на проверку синтаксиса

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

Странно, про perl перестали писать...

не забыли. Просто зачем тревожить мёртвых?

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

лучше уж PHP, чем JavaScript

смешная шутка, оценил

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

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

soulectro
() автор топика

python + django/flask

ggrn ★★★★★
()

Вопрос по теме

Дабы не создавать новый тред: подскажите, на чем лучше писать серверную часть приложения? Клиент должен отсылать данные на сервер, затем на сервере запускаются различные обработчики этих данных, и результаты отдаются обратно клиенту. Какой протокол лучше использовать?

Sahas ★★★★☆
()
Ответ на: Вопрос по теме от Sahas

Можно WebSockets, можно и по старинке синхронно отдать, можно бомбить AJAX.

Сколько юзеров одновременно обслуживает сервер? Насколько критична оперативность апдейта и время ожидания?

noomorph
()

server-side'ов много разных, тебе какие надо делать?

Debasher ★★★★★
()

Есть прекрасный DSL для рисования форм - php. Если хочешь управлять сложностью в проектах, то подойдет 5.3 и выше, там неймспейсы есть.

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

Странно, про perl перестали писать...

CGI.pm слишком унылый, глючный и плохо поддерживается. Даже на простых задачах он плох - ломает файлы при аплоаде.

Да, есть фреймворки хорошие, они часто тут упоминаются.

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

Сколько юзеров одновременно обслуживает сервер? Насколько критична оперативность апдейта и время ожидания?

Несколько пользователей может быть одновременно (десятки). Время ожидания не очень критично (сама обработка данных занимает довольно ощутимое время).

Можно WebSockets, можно и по старинке синхронно отдать, можно бомбить AJAX.

Спасибо, поизучаю...

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

Erlang идеально подходит под твои требования.

Чем подходит? Я его не знаю :) Какие у него батарейки для клиент-серверного общения?

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

Ну, у нас как-то было на проекте, что данные обрабатывались асинхронно, и ты никогда не знал, когда точно появится результат (иногда 50мс, иногда 5-6с, иногда надо было показывать прогресс). Поэтому события шли на веб-страничку прямиком с сервера.

Мне кажется, что для всех распространенных языков уже есть свои реализации этого добра (с фолбеками для старых браузеров), вот что нагуглил:

* NodeJS - Socket.IO * PHP - Ratchet * Ruby - Faye * C# — SignalR

Такая модель кушает много памяти и сетевых ресурсов, но десятки пользователей — это не проблема, думаю. Там числа упираются в несколько сотен (при плохой настройке) до десятков тысяч (в идеальных случаях). Вот как-то так, по-моему.

noomorph
()

PHP же, ничего не изменилось. Для REST в принципе nodejs неплохо зайдёт.
Попробуй laravel.

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

данные обрабатывались асинхронно, и ты никогда не знал, когда точно появится результат (иногда 50мс, иногда 5-6с, иногда надо было показывать прогресс)

показывать прогресс надо, но задержка в 5-10 секунд вполне приемлема

* NodeJS - Socket.IO * PHP - Ratchet * Ruby - Faye * C# — SignalR

так понимаю, можно выбрать одну пару? Мне HTTP совсем не надо (т.е. на сервере не будет крутиться сайт)

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

protobuf подойдёт

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

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

Ха! Так большая часть этих инструментов заточены под веб-разработку. Нет-нет, тогда это не то.

Если это не для веба делается, то тебе скорее будут нужны очереди сообщений (message queues). Например, ZeroMQ или RabbitMQ, ну и много других разных.

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

Я такие штуки никогда не пробовал, могу где-то быть неточным.

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

Чем подходит?

Ты перечислил все use cases. Так вот - подходит для всех перечисленных.

Я его не знаю :)

Возможно, только в твоем запросе ничего про знание/незнание не говорилось.

Какие у него батарейки для клиент-серверного общения?

OTP, развитые WEB-фреймворки.

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

Я его не знаю :)

Возможно, только в твоем запросе ничего про знание/незнание не говорилось.

Я имел ввиду, что для меня совет «use Erlang, Luke!» ни о чём не говорит :)

OTP, развитые WEB-фреймворки.

Спасибо, погуглю про OTP.

P.S. Да, это надо не для HTTP (т.е. сайта не сервере не будет)

Sahas ★★★★☆
()
Последнее исправление: Sahas (всего исправлений: 1)
Ответ на: комментарий от noomorph

Если это не для веба делается

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

P.S. Клиент может быть за натом, прокси и т.п.

Sahas ★★★★☆
()
Последнее исправление: Sahas (всего исправлений: 1)
Ответ на: комментарий от Sahas

Уфф. :(

Давай еще раз. «Прогресс выполнения и результаты обработки» пользователи видят в браузере или в какой-то твоей программе?

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

«Прогресс выполнения и результаты обработки» пользователи видят в браузере или в какой-то твоей программе?

В программе, я исходно так и писал: «серверная часть приложения».

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

Вроде бы там можно обходить NAT

там делается bind на какой-то нестандартный порт, так что не очень подойдет...

Sahas ★★★★☆
()

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

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

Несколько пользователей может быть одновременно (десятки). Время ожидания не очень критично (сама обработка данных занимает довольно ощутимое время).

тут все что угодно тебе подойдет, даже good old php

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

тут все что угодно тебе подойдет, даже good old php

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

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