lyevex
@lyevex
Web developer

Выбор языка для web разработки(real time). Какой вы посоветуете?

Доброго времени и оставшихся дней.
Меня волнует вопрос выбора языка для web разработки(real time application).
Я достаточно долго разрабатываю сайты на языке PHP. Но уже давно думаю о том что бы сменить язык. Многое меня в нем устраивало, но многое и отпугивает. Я знаю не так уже и много языков. Хорошо знаю с# с исвользование asp.net, но я не очень ценитель всего что на windows(linux мой вариант). Знаю с++ на достаточно хорошем уровне. Но сомневаюсь что разработка на нем сайтов будет востребовано. Из фронтенда очень хорошо знаю JavaScript. Я хотел бы найти такой язык который был бы востребован долгие годы, с многопоточностю и красивым OOP.
  • Вопрос задан
  • 664 просмотра
Пригласить эксперта
Ответы на вопрос 8
@webdeveloper48
Python + django + javascript.
Имхо больше и нечего предложить.
Думаю вам понравится)
С знанием Python можно будет и под линукс делать что то,пилить дополнения под свой дистрибутив итд,многое написано на питоне,и он очень прогрессирует!
Ответ написан
@vilgeforce
Раздолбай и программист
Забудьте слова "real time" при написании кода для не real time операционной системы.
Ответ написан
@eoffsock
Кодер (Rails)
Под «real time web» вы понимаете comet, асинхронность и многопоточность?
Node.js, Erlang. Еще Go выходит на сцену многопоточности, и весьма успешно.

Node.js проще всего, особенно если уже имели дело с Javascript. Недостатки — память подтекает. Увы, это факт, но это не смертельно и лечится.
Go — по вкусу. Попробовать советую в любом случае, приятный язык, хорошее будущее. Есть определенные баги, язык все-таки молодой.

Erlang — для больших нагрузок. На тот случай, когда нужно выжать из железа максимум, но при этом не писать проект на C/C++. Память не течет (за исключением пары опасных мест), выстрелить в ногу сложно. Писать тоже сложно, если с непривычки.

В большинстве задач будет достаточно Go/Node.js.
Ответ написан
dmitriy_novikov
@dmitriy_novikov
Занимаюсь web-разработкой с 2010г. http://dmnv.ru
для real time сейчас очень актуален node.js
сложно сказать, сколько продержится этот тренд, но я думаю javascript будет только развиваться. в том числе и серверный.
Ответ написан
@bromzh
Drugs-driven development
Real-time - это, наверное, long-polling, когда сервер и клиент подолгу держат соединение открытым, в противовес обычному вебу, где 1 запрос открывает соединение, ждёт ответа и сразу закрывает его. Для этого обычно используют многопоточные и/или асинхронные штуки.
Со стороны клиента это реализуется через WebSocket (современный вариант), либо другими хитрыми методами. Протокол websocket поддерживают многие браузеры, однако есть SockJS, который в случае чего прозрачно меняет протокол на другой доступный. Там же есть ссылки на реализацию этого протокола для других языков.
Со стороны сервера:
Для питона - это tornado и asyncio (только для 3-й ветке, включён в стандарт). Можно писать в коллбечном стиле, можно в обычном с использованием корутин (сопрограмм). Tornado умеет sockjs, вебсокет есть для обеих вариантов.
Java сама по-себе многопоточна, поддержка websocket включена в стандарт JavaEE. Помимо этого есть решения для спринга. Это удобно, потому что нужен всего 1 фреймворк и для обычной части сайта (если такая есть), и для его асинхронной части. Есть очень производительный сервер netty с неблокирующим вводом-выводом и апи к нему.
И т.д.
В принципе, почти для каждого языка есть свой неблокирующий сервер и фреймворк к нему. Просто смотри на тот язык, который удобнее и для которого есть большая инфраструктура.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Многое меня в нем устраивало, но многое и отпугивает.
Что именно Вас отпугивает: незнание или нежелание изучать глубже? (шучу так :)

Многопоточный сокет-сервер на PHP - вообще нет проблем (например, для клиентского js/websocket).
Ответ написан
@Elizavetta
Matroid: gamedev/js-разработка
Java, Python или Go, выбирайте на свой кус. В контексте realtime часто возникает node.js, но он строго говоря однопоточный, и realtime не зависит от языка.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы